|
@@ -21,14 +21,18 @@ import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
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;
|
|
|
+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.EnterpriseMapper;
|
|
|
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.job.JobAdvertisedMapper;
|
|
|
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.fair.JobFairStatusEnum;
|
|
|
+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;
|
|
|
import org.springframework.stereotype.Service;
|
|
@@ -80,6 +84,9 @@ public class FairServiceImpl implements FairService {
|
|
|
@Resource
|
|
|
private EnterpriseMapper enterpriseMapper;
|
|
|
|
|
|
+ @Resource
|
|
|
+ private JobAdvertisedMapper jobAdvertisedMapper;
|
|
|
+
|
|
|
|
|
|
@Override
|
|
|
public Long createJobFair(JobFairSaveReqVO createReqVO) {
|
|
@@ -144,42 +151,72 @@ public class FairServiceImpl implements FairService {
|
|
|
|
|
|
@Override
|
|
|
public void checkFairWhite(Long jobFairId) {
|
|
|
- EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
|
|
|
+ EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
|
|
|
// FairWhiteDO fairWhiteDO = fairWhiteMapper
|
|
|
// .selectByJobFairIdAndEnterpriseId(jobFairId, LoginUserContext.getEnterpriseId());
|
|
|
FairWhiteDO fairWhiteDO = fairWhiteMapper
|
|
|
- .selectByJobFairIdAndEnterpriseName(jobFairId,enterpriseDO.getName(),enterpriseDO.getAnotherName());
|
|
|
+ .selectByJobFairIdAndEnterpriseName(jobFairId, enterpriseDO.getName(), enterpriseDO.getAnotherName());
|
|
|
if (null == fairWhiteDO) {
|
|
|
throw exception(JOB_FAIR_NO_PERMISSION);
|
|
|
}
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ @DSTransactional
|
|
|
+ public void syncJob(Long jobFairId) {
|
|
|
+ EnterpriseDO enterpriseDO = enterpriseMapper.selectById(LoginUserContext.getEnterpriseId());
|
|
|
+ // 将职位都放到招聘会里面
|
|
|
+ List<JobAdvertisedDO> jobAdvertisedList = jobAdvertisedMapper.selectListByEnterpriseIdAndType
|
|
|
+ (enterpriseDO.getId(), List.of(JobTypeEnum.FULL_TIME.getType(), JobTypeEnum.INTERNSHIP.getType()));
|
|
|
+ jobAdvertisedList.forEach(job -> {
|
|
|
+ insertFairJob(jobFairId, job.getId(),true);
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void joinJobFair(joinJobFairReqVO reqVO) {
|
|
|
checkFairWhite(reqVO.getJobFairId());
|
|
|
+ insertFairJob(reqVO.getJobFairId(), reqVO.getJobId(),false);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void insertFairJob(Long jobFairId, Long jobId, boolean sync) {
|
|
|
FairDetailDO detailDO = fairDetailMapper
|
|
|
.selectOne(FairDetailDO::getEnterpriseId, LoginUserContext.getEnterpriseId(),
|
|
|
- FairDetailDO::getJobId, reqVO.getJobId());
|
|
|
- if (null != detailDO) {
|
|
|
- // 已经加入
|
|
|
- return;
|
|
|
+ FairDetailDO::getJobId, jobId);
|
|
|
+ if (sync) {
|
|
|
+ // 同步数据,存在数据则不同步,同步过不在同步
|
|
|
+ if (null != detailDO) {
|
|
|
+ // 已经加入
|
|
|
+ return;
|
|
|
+ }
|
|
|
}
|
|
|
- FairDO fairDO = getJobFair(reqVO.getJobFairId());
|
|
|
+ // sync=true 新增数据会出现,移除后,然后重新新增,所以需要走下面逻辑
|
|
|
+ FairDO fairDO = getJobFair(jobFairId);
|
|
|
checkJobFairExpired(fairDO);
|
|
|
|
|
|
if (ObjectUtil.isNotEmpty(fairDO.getVipRequire())) {
|
|
|
// 效验是否符合会员要求
|
|
|
// 不符合抛出异常提示
|
|
|
}
|
|
|
- FairDetailDO detail = FairDetailDO.builder()
|
|
|
- .jobFairId(fairDO.getId())
|
|
|
- .enterpriseId(LoginUserContext.getEnterpriseId())
|
|
|
- .jobId(reqVO.getJobId())
|
|
|
- .build();
|
|
|
- fairDetailMapper.insert(detail);
|
|
|
+ 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);
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
+ @DSTransactional
|
|
|
public void quitJobFair(joinJobFairReqVO reqVO) {
|
|
|
checkFairWhite(reqVO.getJobFairId());
|
|
|
FairDetailDO detailDO = fairDetailMapper
|
|
@@ -189,7 +226,8 @@ public class FairServiceImpl implements FairService {
|
|
|
// 不在招聘会里面
|
|
|
return;
|
|
|
}
|
|
|
- fairDetailMapper.deleteById(detailDO.getId());
|
|
|
+ detailDO.setStatus(JobFairStatusEnum.REMOVE.getStatus());
|
|
|
+ fairDetailMapper.updateById(detailDO);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -301,7 +339,7 @@ public class FairServiceImpl implements FairService {
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public PageResult<FairWhiteDO> page(FairWhitePageReqVO reqVO) {
|
|
|
+ public PageResult<FairWhiteDO> page(FairWhitePageReqVO reqVO) {
|
|
|
return fairWhiteMapper.selectPage(reqVO);
|
|
|
}
|
|
|
}
|