|
@@ -2,8 +2,10 @@ package com.citu.module.menduner.system.service.interview;
|
|
|
|
|
|
|
|
|
import cn.hutool.core.collection.CollUtil;
|
|
|
+import cn.hutool.core.util.StrUtil;
|
|
|
import com.baomidou.dynamic.datasource.annotation.DSTransactional;
|
|
|
import com.citu.framework.common.pojo.PageResult;
|
|
|
+import com.citu.framework.common.util.date.DateUtils;
|
|
|
import com.citu.framework.common.util.object.BeanUtils;
|
|
|
import com.citu.framework.security.core.LoginUser;
|
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
@@ -16,17 +18,23 @@ import com.citu.module.menduner.system.controller.base.analysis.RecruitInterview
|
|
|
import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
|
|
|
import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
|
|
|
import com.citu.module.menduner.system.controller.base.interview.InterviewInviteSaveReqVO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
|
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.JobCvRelDO;
|
|
|
+import com.citu.module.menduner.system.dal.dataobject.person.PersonInfoDO;
|
|
|
+import com.citu.module.menduner.system.dal.mysql.enterprise.EnterpriseMapper;
|
|
|
import com.citu.module.menduner.system.dal.mysql.interview.InterviewInviteMapper;
|
|
|
import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
|
|
|
import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
|
|
|
+import com.citu.module.menduner.system.service.enterprise.EnterpriseService;
|
|
|
import com.citu.module.menduner.system.service.enterprise.bind.EnterpriseUserBindService;
|
|
|
import com.citu.module.menduner.system.service.hire.HireCommissionRatioService;
|
|
|
import com.citu.module.menduner.system.service.job.JobAdvertisedService;
|
|
|
import com.citu.module.menduner.system.service.job.JobCvRelService;
|
|
|
+import com.citu.module.menduner.system.service.person.info.PersonInfoService;
|
|
|
+import com.citu.module.menduner.system.util.MessageUtils;
|
|
|
import com.citu.module.menduner.system.util.RedisUtils;
|
|
|
import com.citu.module.pay.api.wallet.PayWalletApi;
|
|
|
import com.citu.module.pay.api.wallet.dto.PayWalletAddBalanceDTO;
|
|
@@ -39,12 +47,15 @@ import javax.annotation.Resource;
|
|
|
import java.math.BigDecimal;
|
|
|
import java.math.RoundingMode;
|
|
|
import java.time.LocalDateTime;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
import java.util.Collections;
|
|
|
import java.util.List;
|
|
|
import java.util.stream.Collectors;
|
|
|
|
|
|
import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
|
+import static com.citu.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY3;
|
|
|
import static com.citu.framework.common.util.validation.ValidationUtils.isMobile;
|
|
|
+import static com.citu.module.menduner.system.enums.CommonConstants.*;
|
|
|
import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
|
|
|
import static com.citu.module.menduner.common.util.TimeUtils.generateDateTimeRange;
|
|
|
|
|
@@ -75,7 +86,13 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
|
@Resource
|
|
|
private JobAdvertisedService jobAdvertisedService;
|
|
|
@Resource
|
|
|
+ private EnterpriseService enterpriseService;
|
|
|
+ @Resource
|
|
|
+ private PersonInfoService personInfoService;
|
|
|
+ @Resource
|
|
|
private RedisUtils redisUtils;
|
|
|
+ @Resource
|
|
|
+ private MessageUtils messageUtils;
|
|
|
|
|
|
/**
|
|
|
* 计算佣金
|
|
@@ -153,6 +170,16 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
|
setStatus(interviewInvite, InterviewInviteStatusEnum.PENDING_INTERVIEW);
|
|
|
interviewInvite.setPhone(reqVO.getPhone());
|
|
|
mapper.updateById(interviewInvite);
|
|
|
+
|
|
|
+ PersonInfoDO personInfoDO = personInfoService.getUserInfoByUserId(interviewInvite.getUserId());
|
|
|
+ // 发送给职位发布者
|
|
|
+ messageUtils.sendSystemImMessage(
|
|
|
+ interviewInvite.getInviteUserId(),
|
|
|
+ interviewInvite.getEnterpriseId(),
|
|
|
+ StrUtil.format(IM_SYS_INTERVIEW_INVITE_AGREE_TEMPLATE,
|
|
|
+ personInfoDO.getName(),
|
|
|
+ jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId()).getName())
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
@Override
|
|
@@ -161,6 +188,15 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
|
// 设置状态
|
|
|
setStatus(interviewInvite, InterviewInviteStatusEnum.REJECTED);
|
|
|
mapper.updateById(interviewInvite);
|
|
|
+ PersonInfoDO personInfoDO = personInfoService.getUserInfoByUserId(interviewInvite.getUserId());
|
|
|
+ // 发送给职位发布者
|
|
|
+ messageUtils.sendSystemImMessage(
|
|
|
+ interviewInvite.getInviteUserId(),
|
|
|
+ interviewInvite.getEnterpriseId(),
|
|
|
+ StrUtil.format(IM_SYS_INTERVIEW_INVITE_REJECT_TEMPLATE,
|
|
|
+ personInfoDO.getName(),
|
|
|
+ jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId()).getName())
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
public void setStatus(InterviewInviteDO interviewInvite, InterviewInviteStatusEnum statusEnum) {
|
|
@@ -248,10 +284,29 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
|
setStatus(interviewInvite, InterviewInviteStatusEnum.PENDING_ACCEPTANCE);
|
|
|
interviewInvite.setEnterpriseId(enterpriseId);
|
|
|
interviewInvite.setInviteUserId(userId);
|
|
|
+ JobAdvertisedDO job = jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId());
|
|
|
+ EnterpriseDO enterprise =enterpriseService.getEnterprise(interviewInvite.getEnterpriseId());
|
|
|
if (null == reqVO.getId()) {
|
|
|
mapper.insert(interviewInvite);
|
|
|
+ // 发送给求职者
|
|
|
+ messageUtils.sendSystemImMessage(reqVO.getUserId(),
|
|
|
+ null,
|
|
|
+ StrUtil.format(IM_SYS_INTERVIEW_INVITE_TEMPLATE,
|
|
|
+ enterprise.getName(),
|
|
|
+ job.getName(),
|
|
|
+ interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
|
+ )
|
|
|
+ );
|
|
|
} else {
|
|
|
mapper.updateById(interviewInvite);
|
|
|
+ messageUtils.sendSystemImMessage(reqVO.getUserId(),
|
|
|
+ null,
|
|
|
+ StrUtil.format(IM_SYS_INTERVIEW_INVITE_MODIFY_TEMPLATE,
|
|
|
+ enterprise.getName(),
|
|
|
+ job.getName(),
|
|
|
+ interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
|
+ )
|
|
|
+ );
|
|
|
}
|
|
|
|
|
|
}
|