|
@@ -1,22 +1,18 @@
|
|
package com.citu.module.menduner.system.service.job;
|
|
package com.citu.module.menduner.system.service.job;
|
|
|
|
|
|
-import cn.hutool.core.collection.CollUtil;
|
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelPageReqVO;
|
|
import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
|
|
import com.citu.module.menduner.system.controller.appadmin.person.hire.AppAdminHireJobCvRelRespVO;
|
|
-import com.citu.module.menduner.system.controller.appadmin.person.vo.AppAdminPersonSimpleRespVO;
|
|
|
|
import com.citu.module.menduner.system.dal.dataobject.hire.HireCommissionRatioDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.hire.HireCommissionRatioDO;
|
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.job.JobAdvertisedDO;
|
|
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.JobCvRelDO;
|
|
-import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
|
|
|
|
import com.citu.module.menduner.system.dal.mysql.job.JobAdvertisedMapper;
|
|
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.JobCvRelMapper;
|
|
import com.citu.module.menduner.system.enums.MathOperationEnum;
|
|
import com.citu.module.menduner.system.enums.MathOperationEnum;
|
|
import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
|
|
import com.citu.module.menduner.system.enums.account.BalanceBizTypeEnum;
|
|
import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
|
|
import com.citu.module.menduner.system.enums.account.PointBizTypeEnum;
|
|
-import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
|
|
|
|
-import com.citu.module.menduner.system.enums.cv.JobCvRelStatusEnum;
|
|
|
|
import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
|
|
import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
|
|
import com.citu.module.menduner.system.service.interview.InterviewInviteService;
|
|
import com.citu.module.menduner.system.service.interview.InterviewInviteService;
|
|
import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
|
|
import com.citu.module.menduner.system.service.record.EnterpriseAccountRecordService;
|
|
@@ -28,10 +24,8 @@ import org.springframework.validation.annotation.Validated;
|
|
import javax.annotation.Resource;
|
|
import javax.annotation.Resource;
|
|
import java.math.BigDecimal;
|
|
import java.math.BigDecimal;
|
|
import java.math.RoundingMode;
|
|
import java.math.RoundingMode;
|
|
-import java.util.List;
|
|
|
|
|
|
|
|
import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
-import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_COMMISSION_RATIO_NOT_EXISTS;
|
|
|
|
import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_JOB_CV_REL_NOT_EXISTS;
|
|
import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_JOB_CV_REL_NOT_EXISTS;
|
|
|
|
|
|
@Slf4j
|
|
@Slf4j
|
|
@@ -39,14 +33,15 @@ import static com.citu.module.menduner.system.enums.ErrorCodeConstants.HIRE_JOB_
|
|
@Validated
|
|
@Validated
|
|
public class HireJobIntegrationServiceImpl implements HireJobIntegrationService {
|
|
public class HireJobIntegrationServiceImpl implements HireJobIntegrationService {
|
|
|
|
|
|
-
|
|
|
|
@Resource
|
|
@Resource
|
|
- private JobCvRelMapper jobCvRelMapper;
|
|
|
|
-
|
|
|
|
|
|
+ private JobCvRelService jobCvRelService;
|
|
|
|
|
|
@Resource
|
|
@Resource
|
|
private JobAdvertisedMapper jobAdvertisedMapper;
|
|
private JobAdvertisedMapper jobAdvertisedMapper;
|
|
|
|
|
|
|
|
+ @Resource
|
|
|
|
+ private InterviewInviteService interviewInviteService;
|
|
|
|
+
|
|
@Resource
|
|
@Resource
|
|
private HireCommissionRatioService ratioService;
|
|
private HireCommissionRatioService ratioService;
|
|
|
|
|
|
@@ -59,34 +54,25 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
|
|
|
|
@Override
|
|
@Override
|
|
public PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
|
|
public PageResult<AppAdminHireJobCvRelRespVO> page(AppAdminHireJobCvRelPageReqVO reqVO) {
|
|
- PageResult<AppAdminHireJobCvRelRespVO> pageResult = jobCvRelMapper.page(reqVO);
|
|
|
|
- if (CollUtil.isEmpty(pageResult.getList())) {
|
|
|
|
- return PageResult.empty();
|
|
|
|
- }
|
|
|
|
- return pageResult;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public List<AppAdminPersonSimpleRespVO> getRecommendUser() {
|
|
|
|
- return jobCvRelMapper.getRecommendUser();
|
|
|
|
|
|
+ return jobCvRelService.page(reqVO);
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@DSTransactional
|
|
@DSTransactional
|
|
public boolean settlement(Long id) {
|
|
public boolean settlement(Long id) {
|
|
- JobCvRelDO cv = jobCvRelMapper.selectById(id);
|
|
|
|
- if (null == cv) {
|
|
|
|
- throw exception(HIRE_JOB_CV_REL_NOT_EXISTS);
|
|
|
|
- }
|
|
|
|
- cv.setStatus(ConversationStatusEnum.SETTLEMENT.getStatus());
|
|
|
|
- jobCvRelMapper.updateById(cv);
|
|
|
|
|
|
+
|
|
|
|
+ InterviewInviteDO interviewInvite = interviewInviteService.getInterviewInvite(id);
|
|
|
|
+
|
|
|
|
+ // 标记结算
|
|
|
|
+ interviewInviteService.settlement(id);
|
|
|
|
+
|
|
|
|
+ // 获取 面试的求职者投递的简历信息
|
|
|
|
+ JobCvRelDO cv = jobCvRelService
|
|
|
|
+ .selectByUserIdAndJobId(interviewInvite.getUserId(), interviewInvite.getJobId());
|
|
|
|
|
|
// 猎头、 推荐人、投递人
|
|
// 猎头、 推荐人、投递人
|
|
// 获取比例配置
|
|
// 获取比例配置
|
|
HireCommissionRatioDO ratio = ratioService.get();
|
|
HireCommissionRatioDO ratio = ratioService.get();
|
|
- if (null == ratio) {
|
|
|
|
- throw exception(HIRE_COMMISSION_RATIO_NOT_EXISTS);
|
|
|
|
- }
|
|
|
|
|
|
|
|
JobAdvertisedDO job = jobAdvertisedMapper.selectById(cv.getJobId());
|
|
JobAdvertisedDO job = jobAdvertisedMapper.selectById(cv.getJobId());
|
|
|
|
|
|
@@ -124,7 +110,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
.divide(totalRate, 2, RoundingMode.HALF_UP);
|
|
.divide(totalRate, 2, RoundingMode.HALF_UP);
|
|
|
|
|
|
// 猎头 (平台自己)
|
|
// 猎头 (平台自己)
|
|
- if(headhuntPrice.compareTo(BigDecimal.ZERO)>0) {
|
|
|
|
|
|
+ if (headhuntPrice.compareTo(BigDecimal.ZERO) > 0) {
|
|
enterpriseAccountRecordService.createBalanceRecord(
|
|
enterpriseAccountRecordService.createBalanceRecord(
|
|
1L,
|
|
1L,
|
|
1L,
|
|
1L,
|
|
@@ -137,7 +123,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
}
|
|
}
|
|
|
|
|
|
// 推荐人
|
|
// 推荐人
|
|
- if(headhuntPrice.compareTo(BigDecimal.ZERO)>0) {
|
|
|
|
|
|
+ if (headhuntPrice.compareTo(BigDecimal.ZERO) > 0) {
|
|
userAccountRecordService.createBalanceRecord(
|
|
userAccountRecordService.createBalanceRecord(
|
|
cv.getRecommendUserId(),
|
|
cv.getRecommendUserId(),
|
|
BalanceBizTypeEnum.RECOMMENDED_POSITIONS.getName(),
|
|
BalanceBizTypeEnum.RECOMMENDED_POSITIONS.getName(),
|
|
@@ -149,7 +135,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
}
|
|
}
|
|
|
|
|
|
// 投递人
|
|
// 投递人
|
|
- if(headhuntPrice.compareTo(BigDecimal.ZERO)>0) {
|
|
|
|
|
|
+ if (headhuntPrice.compareTo(BigDecimal.ZERO) > 0) {
|
|
userAccountRecordService.createBalanceRecord(
|
|
userAccountRecordService.createBalanceRecord(
|
|
cv.getUserId(),
|
|
cv.getUserId(),
|
|
BalanceBizTypeEnum.DELIVERY_PERSON.getName(),
|
|
BalanceBizTypeEnum.DELIVERY_PERSON.getName(),
|
|
@@ -189,7 +175,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
headhuntPoint += remainingPoint;
|
|
headhuntPoint += remainingPoint;
|
|
|
|
|
|
// 猎头 (平台自己)
|
|
// 猎头 (平台自己)
|
|
- if(headhuntPoint>0) {
|
|
|
|
|
|
+ if (headhuntPoint > 0) {
|
|
enterpriseAccountRecordService.createPointRecord(
|
|
enterpriseAccountRecordService.createPointRecord(
|
|
1L,
|
|
1L,
|
|
1L,
|
|
1L,
|
|
@@ -202,7 +188,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
}
|
|
}
|
|
|
|
|
|
// 推荐人
|
|
// 推荐人
|
|
- if(headhuntPoint>0) {
|
|
|
|
|
|
+ if (headhuntPoint > 0) {
|
|
userAccountRecordService.createPointRecord(
|
|
userAccountRecordService.createPointRecord(
|
|
cv.getRecommendUserId(),
|
|
cv.getRecommendUserId(),
|
|
"",
|
|
"",
|
|
@@ -215,7 +201,7 @@ public class HireJobIntegrationServiceImpl implements HireJobIntegrationService
|
|
}
|
|
}
|
|
|
|
|
|
// 投递人
|
|
// 投递人
|
|
- if(headhuntPoint>0) {
|
|
|
|
|
|
+ if (headhuntPoint > 0) {
|
|
userAccountRecordService.createPointRecord(
|
|
userAccountRecordService.createPointRecord(
|
|
cv.getUserId(),
|
|
cv.getUserId(),
|
|
"",
|
|
"",
|