|
@@ -1,10 +1,17 @@
|
|
|
package com.citu.module.menduner.system.service.job;
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
+import com.baomidou.mybatisplus.core.metadata.IPage;
|
|
|
import com.citu.framework.common.pojo.PageParam;
|
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
|
+import com.citu.framework.dict.core.DictFrameworkUtils;
|
|
|
+import com.citu.framework.mybatis.core.util.MyBatisUtils;
|
|
|
+import com.citu.framework.tenant.core.aop.TenantIgnore;
|
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
|
+import com.citu.module.menduner.system.controller.app.jobhunt.flame.AppFlameJobPageReqVO;
|
|
|
+import com.citu.module.menduner.system.controller.app.jobhunt.flame.AppFlameJobRespVO;
|
|
|
import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedRespVO;
|
|
|
import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobAdvertisedSearchPageReqVO;
|
|
|
import com.citu.module.menduner.system.controller.app.jobhunt.job.vo.AppJobCvLookRespVO;
|
|
@@ -23,19 +30,24 @@ import com.citu.module.menduner.system.convert.JobAdvertisedConvert;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobCvRelDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.job.JobFairDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.job.JobFairDetailDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.major.MajorDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.position.PositionDO;
|
|
|
import com.citu.module.menduner.system.dal.es.job.ESJobAdvertisedMergeDO;
|
|
|
import com.citu.module.menduner.system.dal.mysql.area.AreaMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobCvRelMapper;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.job.JobFairDetailMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.major.MajorMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.position.PositionMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.unfit.UnfitCandidateMapper;
|
|
|
import com.citu.module.menduner.system.service.area.AreaService;
|
|
|
import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
|
|
|
+import com.citu.module.menduner.system.service.industry.IndustryService;
|
|
|
import com.citu.module.menduner.system.service.interview.InterviewInviteService;
|
|
|
-import com.citu.module.menduner.system.service.fair.FairService;
|
|
|
+import com.citu.module.menduner.system.service.job.fair.JobFairService;
|
|
|
import com.citu.module.menduner.system.util.ESQueryBuildUtils;
|
|
|
import lombok.extern.slf4j.Slf4j;
|
|
|
import org.elasticsearch.index.query.BoolQueryBuilder;
|
|
@@ -49,6 +61,7 @@ import org.springframework.data.elasticsearch.core.SearchHits;
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQuery;
|
|
|
import org.springframework.data.elasticsearch.core.query.NativeSearchQueryBuilder;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.util.StringUtils;
|
|
|
import org.springframework.validation.annotation.Validated;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -57,6 +70,8 @@ import java.time.temporal.ChronoUnit;
|
|
|
import java.util.*;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
+import static com.citu.module.menduner.system.enums.DictTypeConstants.*;
|
|
|
+
|
|
|
@Slf4j
|
|
|
@Service
|
|
|
@Validated
|
|
@@ -101,6 +116,9 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
|
|
|
@Resource
|
|
|
private FairService fairService;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private IndustryService industryService;
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 包装职位发布联系人
|
|
@@ -366,4 +384,85 @@ public class JobIntegrationServiceImpl implements JobIntegrationService {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public void joinJobFair(joinJobFairReqVO reqVO) {
|
|
|
+ JobFairDetailDO detailDO = jobFairDetailMapper
|
|
|
+ .selectOne(JobFairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
+ JobFairDetailDO::getJobId, reqVO.getJobId());
|
|
|
+ if (null != detailDO) {
|
|
|
+ // 已经加入
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ JobFairDO jobFairDO = jobFairService.getJobFair(reqVO.getJobFairId());
|
|
|
+ jobFairService.checkJobFairExpired(jobFairDO);
|
|
|
+
|
|
|
+ if (ObjectUtil.isNotEmpty(jobFairDO.getVipRequire())) {
|
|
|
+ // 效验是否符合会员要求
|
|
|
+ // 不符合抛出异常提示
|
|
|
+ }
|
|
|
+ JobFairDetailDO detail = JobFairDetailDO.builder()
|
|
|
+ .jobFairId(jobFairDO.getId())
|
|
|
+ .enterpriseId(LoginUserContext.getEnterpriseId())
|
|
|
+ .jobId(reqVO.getJobId())
|
|
|
+ .build();
|
|
|
+ jobFairDetailMapper.insert(detail);
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public void quitJobFair(joinJobFairReqVO reqVO) {
|
|
|
+ JobFairDetailDO detailDO = jobFairDetailMapper
|
|
|
+ .selectOne(JobFairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
+ JobFairDetailDO::getJobId, reqVO.getJobId());
|
|
|
+ if (null == detailDO) {
|
|
|
+ // 不在招聘会里面
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ jobFairDetailMapper.deleteById(detailDO.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @TenantIgnore
|
|
|
+ @Override
|
|
|
+ public PageResult<AppFlameJobRespVO> getFlameJobPage(AppFlameJobPageReqVO reqVO) {
|
|
|
+ IPage<AppFlameJobRespVO> pageResult = jobFairDetailMapper.search(MyBatisUtils.buildPage(reqVO), reqVO);
|
|
|
+ PageResult<AppFlameJobRespVO> result = new PageResult<>(pageResult.getRecords(), pageResult.getTotal());
|
|
|
+ for (AppFlameJobRespVO record : result.getList()) {
|
|
|
+ if (StringUtils.hasText(record.getJob().getPayUnit())) {
|
|
|
+ record.getJob().setPayUnit(DictFrameworkUtils.getDictDataLabel(MENDUNER_PAY_UNIT, record.getJob().getPayUnit()));
|
|
|
+ }
|
|
|
+ if (StringUtils.hasText(record.getJob().getExpType())) {
|
|
|
+ record.getJob().setExpType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EXP_TYPE, record.getJob().getExpType()));
|
|
|
+ }
|
|
|
+ if (StringUtils.hasText(record.getJob().getEduType())) {
|
|
|
+ record.getJob().setEduType(DictFrameworkUtils.getDictDataLabel(MENDUNER_EDUCATION_TYPE, record.getJob().getEduType()));
|
|
|
+ }
|
|
|
+ if (null != record.getJob().getAreaId()) {
|
|
|
+ AreaDO area = areaService.getArea(record.getJob().getAreaId());
|
|
|
+ record.getJob().setAreaName(null != area ? area.getName() : null);
|
|
|
+ }
|
|
|
+ if (null != record.getJob().getPositionId()) {
|
|
|
+ PositionDO position = positionMapper.selectById(record.getJob().getPositionId());
|
|
|
+ record.getJob().setPositionName(null != position ? position.getNameCn() : null);
|
|
|
+ }
|
|
|
+ if (null != record.getJobExtend().getMajorId()) {
|
|
|
+ MajorDO major = majorMapper.selectById(record.getJobExtend().getMajorId());
|
|
|
+ record.getJobExtend().setMajorName(null != major ? major.getNameCn() : null);
|
|
|
+ }
|
|
|
+ if (StringUtils.hasText(record.getEnterprise().getFinancingStatus())) {
|
|
|
+ record.getEnterprise().setFinancingStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_FINANCING_STATUS, record.getEnterprise().getFinancingStatus()));
|
|
|
+ }
|
|
|
+ if (StringUtils.hasText(record.getEnterprise().getScale())) {
|
|
|
+ record.getEnterprise().setScale(DictFrameworkUtils.getDictDataLabel(MENDUNER_SCALE, record.getEnterprise().getScale()));
|
|
|
+ }
|
|
|
+ record.getJob().setStatus(DictFrameworkUtils.getDictDataLabel(MENDUNER_JOB_STATUS, record.getJob().getStatus()));
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public List<Long> getJobIdListByJobFairIdAndEnterpriseId(Long jobFairId, Long enterpriseId) {
|
|
|
+ return jobFairDetailMapper.selectByJobFairIdAndEnterpriseIdList(jobFairId, enterpriseId)
|
|
|
+ .stream()
|
|
|
+ .map(JobFairDetailDO::getJobId)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ }
|
|
|
}
|