|
@@ -17,9 +17,7 @@ import com.citu.module.menduner.system.controller.app.jobhunt.flame.AppFlameJobR
|
|
|
import com.citu.module.menduner.system.controller.app.recruit.job.vo.joinJobFairReqVO;
|
|
|
import com.citu.module.menduner.system.controller.base.fair.*;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.area.AreaDO;
|
|
|
-import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseEntitlementDO;
|
|
|
-import com.citu.module.menduner.system.dal.dataobject.fair.FairAdmissionDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.fair.FairDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.fair.FairDetailDO;
|
|
|
import com.citu.module.menduner.system.dal.dataobject.fair.FairWhiteDO;
|
|
@@ -27,16 +25,12 @@ import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
|
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.mysql.enterprise.EnterpriseEntitlementMapper;
|
|
|
-import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
-import com.citu.module.menduner.system.dal.mysql.fair.FairAdmissionMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.fair.FairDetailMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.fair.FairMapper;
|
|
|
-import com.citu.module.menduner.system.dal.mysql.fair.FairWhiteMapper;
|
|
|
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.enums.MendunerStatusEnum;
|
|
|
-import com.citu.module.menduner.system.enums.fair.JobFairStatusEnum;
|
|
|
-import com.citu.module.menduner.system.enums.job.JobSourceEnum;
|
|
|
+import com.citu.module.menduner.system.enums.fair.JobFairWhiteSourceEnum;
|
|
|
import com.citu.module.menduner.system.enums.job.JobTypeEnum;
|
|
|
import com.citu.module.menduner.system.service.area.AreaService;
|
|
|
import com.citu.module.menduner.system.service.industry.IndustryService;
|
|
@@ -48,6 +42,7 @@ import org.springframework.validation.annotation.Validated;
|
|
|
import javax.annotation.Resource;
|
|
|
import java.time.LocalDate;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.util.Comparator;
|
|
|
import java.util.List;
|
|
|
import java.util.Map;
|
|
|
import java.util.Set;
|
|
@@ -73,10 +68,7 @@ public class FairServiceImpl implements FairService {
|
|
|
private FairDetailMapper fairDetailMapper;
|
|
|
|
|
|
@Resource
|
|
|
- private FairWhiteMapper fairWhiteMapper;
|
|
|
-
|
|
|
- @Resource
|
|
|
- private FairAdmissionService fairAdmissionService;
|
|
|
+ private FairWhiteService fairWhiteService;
|
|
|
|
|
|
@Resource
|
|
|
private AreaService areaService;
|
|
@@ -90,9 +82,6 @@ public class FairServiceImpl implements FairService {
|
|
|
@Resource
|
|
|
private IndustryService industryService;
|
|
|
|
|
|
- @Resource
|
|
|
- private EnterpriseMapper enterpriseMapper;
|
|
|
-
|
|
|
@Resource
|
|
|
private JobAdvertisedService jobAdvertisedService;
|
|
|
|
|
@@ -112,7 +101,7 @@ public class FairServiceImpl implements FairService {
|
|
|
.map(EnterpriseEntitlementDO::getEnterpriseId).collect(Collectors.toList());
|
|
|
if (CollUtil.isNotEmpty(enterpriseIdList)) {
|
|
|
// 加入白名单
|
|
|
- addWhiteList(jobFair.getId(), enterpriseIdList);
|
|
|
+ fairWhiteService.addWhiteList(jobFair.getId(), enterpriseIdList);
|
|
|
}
|
|
|
|
|
|
return jobFair.getId();
|
|
@@ -181,41 +170,6 @@ public class FairServiceImpl implements FairService {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- public void checkFairWhite(Long jobFairId) {
|
|
|
- EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
|
|
|
-// FairWhiteDO fairWhiteDO = fairWhiteMapper
|
|
|
-// .selectByJobFairIdAndEnterpriseId(jobFairId, LoginUserContext.getEnterpriseId());
|
|
|
- FairWhiteDO white = fairWhiteMapper
|
|
|
- .selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseDO.getId());
|
|
|
- if (null == white) {
|
|
|
- FairAdmissionDO fairAdmission =
|
|
|
- fairAdmissionService.get(enterpriseDO.getId(), jobFairId);
|
|
|
- if (null == fairAdmission) {
|
|
|
- throw exception(JOB_FAIR_NO_PERMISSION);
|
|
|
- }
|
|
|
- fairAdmissionService.checkAdmission(fairAdmission);
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @DSTransactional
|
|
|
- public void quitJobFair(joinJobFairReqVO reqVO) {
|
|
|
- checkFairWhite(reqVO.getJobFairId());
|
|
|
- FairDetailDO detailDO = fairDetailMapper
|
|
|
- .selectOne(
|
|
|
- FairDetailDO::getJobFairId, reqVO.getJobFairId(),
|
|
|
- FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
- FairDetailDO::getJobId, reqVO.getJobId());
|
|
|
- if (null == detailDO) {
|
|
|
- // 不在招聘会里面
|
|
|
- return;
|
|
|
- }
|
|
|
- detailDO.setStatus(JobFairStatusEnum.REMOVE.getStatus());
|
|
|
- fairDetailMapper.updateById(detailDO);
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
@DSTransactional
|
|
@@ -228,8 +182,6 @@ public class FairServiceImpl implements FairService {
|
|
|
// }
|
|
|
fairDO.setStatus(MendunerStatusEnum.ENABLE.getStatus());
|
|
|
fairMapper.updateById(fairDO);
|
|
|
- // 关闭由招聘会创建的职位
|
|
|
- jobAdvertisedService.enableJobAdvertised(JobSourceEnum.FAIR.getType(), fairDO.getId());
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -244,45 +196,80 @@ public class FairServiceImpl implements FairService {
|
|
|
// }
|
|
|
fairDO.setStatus(MendunerStatusEnum.DISABLE.getStatus());
|
|
|
fairMapper.updateById(fairDO);
|
|
|
- // 关闭由招聘会创建的职位
|
|
|
- jobAdvertisedService.closeJobAdvertised(JobSourceEnum.FAIR.getType(), fairDO.getId());
|
|
|
- //TODO 招聘会与职位的关联
|
|
|
}
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@DSTransactional
|
|
|
- public void syncJob(Long jobFairId) {
|
|
|
- EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
|
|
|
+ public void syncJob(Long enterpriseId, Long jobFairId) {
|
|
|
// 将职位都放到招聘会里面
|
|
|
List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedService.getListByEnterpriseIdAndType
|
|
|
- (enterpriseDO.getId(), List.of(JobTypeEnum.FULL_TIME.getType(), JobTypeEnum.INTERNSHIP.getType()));
|
|
|
- jobAdvertisedList.forEach(job -> {
|
|
|
- insertFairJob(jobFairId, job.getId(), true);
|
|
|
- });
|
|
|
+ (enterpriseId, List.of(JobTypeEnum.FULL_TIME.getType(), JobTypeEnum.INTERNSHIP.getType()));
|
|
|
+ FairWhiteDO fairWhite =
|
|
|
+ fairWhiteService.get(enterpriseId, jobFairId);
|
|
|
+ if (null == fairWhite) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ if (JobFairWhiteSourceEnum.ADMIN.getSource().equals(fairWhite.getSource())) {
|
|
|
+ if (null == fairWhite.getNum()) {
|
|
|
+ // 没有次数不同步
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 购买门票
|
|
|
+ List<JobAdvertisedDO> latestNRecords = jobAdvertisedList.stream()
|
|
|
+ .sorted(Comparator.comparing(JobAdvertisedDO::getUpdateTime).reversed())
|
|
|
+ .limit(fairWhite.getNum())
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ latestNRecords.forEach(job -> {
|
|
|
+ insertFairJob(jobFairId, job.getId());
|
|
|
+ });
|
|
|
+ } else {
|
|
|
+ // 不是购买门票
|
|
|
+ jobAdvertisedList.forEach(job -> {
|
|
|
+ insertFairJob(jobFairId, job.getId());
|
|
|
+ });
|
|
|
+ }
|
|
|
+ fairWhiteService.markFirstEnterFair(enterpriseId, jobFairId);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@DSTransactional
|
|
|
public void joinJobFair(joinJobFairReqVO reqVO) {
|
|
|
- checkFairWhite(reqVO.getJobFairId());
|
|
|
- insertFairJob(reqVO.getJobFairId(), reqVO.getJobId(), false);
|
|
|
+ insertFairJob(reqVO.getJobFairId(), reqVO.getJobId());
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void quitJobFair(joinJobFairReqVO reqVO) {
|
|
|
+ FairDetailDO detailDO = fairDetailMapper
|
|
|
+ .selectOne(
|
|
|
+ FairDetailDO::getJobFairId, reqVO.getJobFairId(),
|
|
|
+ FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
+ FairDetailDO::getJobId, reqVO.getJobId());
|
|
|
+ if (null == detailDO) {
|
|
|
+ // 不在招聘会里面
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ fairDetailMapper.deleteById(detailDO.getId());
|
|
|
+
|
|
|
+ // 购买门票的企业, 增加发布职位的数量
|
|
|
+ fairWhiteService.increaseAdmissionNum(LoginUserContext.getEnterpriseId(), reqVO.getJobFairId());
|
|
|
+
|
|
|
}
|
|
|
|
|
|
@DSTransactional
|
|
|
- public void insertFairJob(Long jobFairId, Long jobId, boolean sync) {
|
|
|
+ public void insertFairJob(Long jobFairId, Long jobId) {
|
|
|
FairDetailDO detailDO = fairDetailMapper
|
|
|
.selectOne(
|
|
|
FairDetailDO::getJobFairId, jobFairId,
|
|
|
FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
FairDetailDO::getJobId, jobId);
|
|
|
- if (sync) {
|
|
|
- // 同步数据,存在数据则不同步,同步过不在同步
|
|
|
- if (null != detailDO) {
|
|
|
- // 已经加入
|
|
|
- return;
|
|
|
- }
|
|
|
+
|
|
|
+ if (null != detailDO) {
|
|
|
+ // 已经加入
|
|
|
+ return;
|
|
|
}
|
|
|
+
|
|
|
// sync=true 新增数据会出现,移除后,然后重新新增,所以需要走下面逻辑
|
|
|
FairDO fairDO = getJobFair(jobFairId);
|
|
|
checkJobFairExpired(fairDO);
|
|
@@ -291,20 +278,17 @@ public class FairServiceImpl implements FairService {
|
|
|
// 效验是否符合会员要求
|
|
|
// 不符合抛出异常提示
|
|
|
}
|
|
|
- if (null == detailDO) {
|
|
|
- // 新增数据
|
|
|
- FairDetailDO detail = FairDetailDO.builder()
|
|
|
- .jobFairId(fairDO.getId())
|
|
|
- .enterpriseId(LoginUserContext.getEnterpriseId())
|
|
|
- .jobId(jobId)
|
|
|
- .status(JobFairStatusEnum.NORMAL.getStatus())
|
|
|
- .build();
|
|
|
- fairDetailMapper.insert(detail);
|
|
|
- } else {
|
|
|
- // 修改为正常状态
|
|
|
- detailDO.setStatus(JobFairStatusEnum.NORMAL.getStatus());
|
|
|
- fairDetailMapper.updateById(detailDO);
|
|
|
- }
|
|
|
+
|
|
|
+ // 新增数据
|
|
|
+ FairDetailDO detail = FairDetailDO.builder()
|
|
|
+ .jobFairId(fairDO.getId())
|
|
|
+ .enterpriseId(LoginUserContext.getEnterpriseId())
|
|
|
+ .jobId(jobId)
|
|
|
+ .build();
|
|
|
+ fairDetailMapper.insert(detail);
|
|
|
+
|
|
|
+ // 扣除额度
|
|
|
+ fairWhiteService.deductAdmissionNum(LoginUserContext.getEnterpriseId(), fairDO.getId());
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -354,51 +338,12 @@ public class FairServiceImpl implements FairService {
|
|
|
|
|
|
@Override
|
|
|
public List<Long> getJobIdListByJobFairIdAndEnterpriseId(Long jobFairId, Long enterpriseId) {
|
|
|
- return fairDetailMapper.selectByJobFairIdAndEnterpriseIdList(jobFairId, enterpriseId)
|
|
|
+ return fairDetailMapper.selectByEnterpriseIdAndJobFairIdList(jobFairId, enterpriseId)
|
|
|
.stream()
|
|
|
.map(FairDetailDO::getJobId)
|
|
|
.collect(Collectors.toList());
|
|
|
}
|
|
|
|
|
|
- @Override
|
|
|
- @DSTransactional
|
|
|
- public void addWhiteList(Long jobFairId, List<Long> enterpriseIds) {
|
|
|
- for (Long enterpriseId : enterpriseIds) {
|
|
|
- FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseId);
|
|
|
- if (null != fairWhiteDO) {
|
|
|
- return;
|
|
|
- }
|
|
|
- fairWhiteMapper.insert(FairWhiteDO.builder()
|
|
|
- .jobFairId(jobFairId)
|
|
|
- .enterpriseId(enterpriseId)
|
|
|
- .build());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- @DSTransactional
|
|
|
- public void removeWhiteList(Long jobFairId, List<Long> enterpriseIds) {
|
|
|
- for (Long enterpriseId : enterpriseIds) {
|
|
|
- FairWhiteDO fairWhiteDO = fairWhiteMapper.selectByJobFairIdAndEnterpriseId(jobFairId, enterpriseId);
|
|
|
- if (null == fairWhiteDO) {
|
|
|
- return;
|
|
|
- }
|
|
|
- fairWhiteMapper.deleteById(fairWhiteDO.getId());
|
|
|
-
|
|
|
- // 删除该企业招聘会发布的职位
|
|
|
- fairDetailMapper.update(new LambdaUpdateWrapper<FairDetailDO>()
|
|
|
- .eq(FairDetailDO::getJobFairId, fairWhiteDO.getJobFairId())
|
|
|
- .eq(FairDetailDO::getEnterpriseId, enterpriseId)
|
|
|
- .set(FairDetailDO::getStatus, JobFairStatusEnum.REMOVE.getStatus())
|
|
|
- );
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public PageResult<FairWhiteDetailRespVO> page(FairWhitePageReqVO reqVO) {
|
|
|
- return fairWhiteMapper.selectPage(reqVO);
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
public PageResult<JobFairDetailRespVO> getJobFairDetailPage(JobFairDetailPageReqVO reqVO) {
|
|
@@ -425,6 +370,7 @@ public class FairServiceImpl implements FairService {
|
|
|
if (null != item.getAreaId()) {
|
|
|
item.setArea(areaService.getById(item.getAreaId()));
|
|
|
}
|
|
|
+
|
|
|
});
|
|
|
return result;
|
|
|
}
|
|
@@ -439,4 +385,8 @@ public class FairServiceImpl implements FairService {
|
|
|
);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public List<Long> getJobIdsByEnterpriseIdAndJobFairId(Long enterpriseId, Long jobFairId) {
|
|
|
+ return fairDetailMapper.selectJobIdsByEnterpriseIdAndJobFairId(enterpriseId, jobFairId);
|
|
|
+ }
|
|
|
}
|