|
@@ -5,17 +5,16 @@ import cn.hutool.core.collection.CollUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
import cn.hutool.core.util.StrUtil;
|
|
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.framework.common.util.date.DateUtils;
|
|
|
|
import com.citu.framework.common.util.object.BeanUtils;
|
|
import com.citu.framework.common.util.object.BeanUtils;
|
|
import com.citu.framework.security.core.LoginUser;
|
|
import com.citu.framework.security.core.LoginUser;
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
import com.citu.module.menduner.common.util.LoginUserContext;
|
|
import com.citu.module.menduner.system.controller.app.jobhunt.interview.vo.AppInterviewInvitePageReqVO;
|
|
import com.citu.module.menduner.system.controller.app.jobhunt.interview.vo.AppInterviewInvitePageReqVO;
|
|
-import com.citu.module.menduner.system.controller.base.interview.InterviewInviteDetailRespVO;
|
|
|
|
import com.citu.module.menduner.system.controller.app.recruit.interview.vo.*;
|
|
import com.citu.module.menduner.system.controller.app.recruit.interview.vo.*;
|
|
import com.citu.module.menduner.system.controller.base.CommonRespVO;
|
|
import com.citu.module.menduner.system.controller.base.CommonRespVO;
|
|
import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
|
|
import com.citu.module.menduner.system.controller.base.analysis.RecruitAnalysisPageReqVO;
|
|
import com.citu.module.menduner.system.controller.base.analysis.RecruitInterviewInviteAnalysisRespVO;
|
|
import com.citu.module.menduner.system.controller.base.analysis.RecruitInterviewInviteAnalysisRespVO;
|
|
import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
|
|
import com.citu.module.menduner.system.controller.base.contact.EnterpriseUserContactRespVO;
|
|
|
|
+import com.citu.module.menduner.system.controller.base.interview.InterviewInviteDetailRespVO;
|
|
import com.citu.module.menduner.system.controller.base.interview.InterviewInvitePageReqVO;
|
|
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.controller.base.interview.InterviewInviteSaveReqVO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
import com.citu.module.menduner.system.dal.dataobject.enterprise.EnterpriseDO;
|
|
@@ -24,7 +23,6 @@ import com.citu.module.menduner.system.dal.dataobject.interview.InterviewInviteD
|
|
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.dataobject.person.PersonInfoDO;
|
|
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.dal.mysql.interview.InterviewInviteMapper;
|
|
import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
|
|
import com.citu.module.menduner.system.enums.cv.ConversationStatusEnum;
|
|
import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
|
|
import com.citu.module.menduner.system.enums.interview.InterviewInviteStatusEnum;
|
|
@@ -39,6 +37,7 @@ import com.citu.module.menduner.system.util.RedisUtils;
|
|
import com.citu.module.pay.api.wallet.PayWalletApi;
|
|
import com.citu.module.pay.api.wallet.PayWalletApi;
|
|
import com.citu.module.pay.api.wallet.dto.PayWalletAddBalanceDTO;
|
|
import com.citu.module.pay.api.wallet.dto.PayWalletAddBalanceDTO;
|
|
import com.citu.module.pay.enums.wallet.PayWalletBizTypeEnum;
|
|
import com.citu.module.pay.enums.wallet.PayWalletBizTypeEnum;
|
|
|
|
+import com.citu.module.system.api.social.dto.SocialWxaSubscribeMessageSendReqDTO;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import lombok.extern.slf4j.Slf4j;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.validation.annotation.Validated;
|
|
import org.springframework.validation.annotation.Validated;
|
|
@@ -55,9 +54,9 @@ import java.util.stream.Collectors;
|
|
import static com.citu.framework.common.exception.util.ServiceExceptionUtil.exception;
|
|
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.date.DateUtils.FORMAT_YEAR_MONTH_DAY3;
|
|
import static com.citu.framework.common.util.validation.ValidationUtils.isMobile;
|
|
import static com.citu.framework.common.util.validation.ValidationUtils.isMobile;
|
|
|
|
+import static com.citu.module.menduner.common.util.TimeUtils.generateDateTimeRange;
|
|
import static com.citu.module.menduner.system.enums.CommonConstants.*;
|
|
import static com.citu.module.menduner.system.enums.CommonConstants.*;
|
|
import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
|
|
import static com.citu.module.menduner.system.enums.ErrorCodeConstants.*;
|
|
-import static com.citu.module.menduner.common.util.TimeUtils.generateDateTimeRange;
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 面试邀请 Service 实现类
|
|
* 面试邀请 Service 实现类
|
|
@@ -179,7 +178,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_AGREE_TEMPLATE,
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_AGREE_TEMPLATE,
|
|
personInfoDO.getName(),
|
|
personInfoDO.getName(),
|
|
jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId()).getName())
|
|
jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId()).getName())
|
|
- );
|
|
|
|
|
|
+ );
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -188,7 +187,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
// 设置状态
|
|
// 设置状态
|
|
setStatus(interviewInvite, InterviewInviteStatusEnum.REJECTED);
|
|
setStatus(interviewInvite, InterviewInviteStatusEnum.REJECTED);
|
|
mapper.updateById(interviewInvite);
|
|
mapper.updateById(interviewInvite);
|
|
- PersonInfoDO personInfoDO = personInfoService.getUserInfoByUserId(interviewInvite.getUserId());
|
|
|
|
|
|
+ PersonInfoDO personInfoDO = personInfoService.getUserInfoByUserId(interviewInvite.getUserId());
|
|
// 发送给职位发布者
|
|
// 发送给职位发布者
|
|
messageUtils.sendSystemImMessage(
|
|
messageUtils.sendSystemImMessage(
|
|
interviewInvite.getInviteUserId(),
|
|
interviewInvite.getInviteUserId(),
|
|
@@ -214,7 +213,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
}
|
|
}
|
|
|
|
|
|
@Override
|
|
@Override
|
|
- public PageResult<InterviewInviteDetailRespVO> page(AppInterviewInvitePageReqVO reqVO,Long userId) {
|
|
|
|
|
|
+ public PageResult<InterviewInviteDetailRespVO> page(AppInterviewInvitePageReqVO reqVO, Long userId) {
|
|
PageResult<InterviewInviteDetailRespVO> result = mapper.page(reqVO, userId);
|
|
PageResult<InterviewInviteDetailRespVO> result = mapper.page(reqVO, userId);
|
|
result.getList().forEach(resp -> {
|
|
result.getList().forEach(resp -> {
|
|
EnterpriseUserContactRespVO contactRespVO = userBindService
|
|
EnterpriseUserContactRespVO contactRespVO = userBindService
|
|
@@ -246,7 +245,7 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
@Override
|
|
@Override
|
|
public PageResult<AppRecruitInterviewInviteRespVO> page(AppRecruitInterviewInviteReqPageVO reqVO) {
|
|
public PageResult<AppRecruitInterviewInviteRespVO> page(AppRecruitInterviewInviteReqPageVO reqVO) {
|
|
LoginUser loginUser = LoginUserContext.get();
|
|
LoginUser loginUser = LoginUserContext.get();
|
|
- PageResult<AppRecruitInterviewInviteRespVO> result= mapper.page(
|
|
|
|
|
|
+ PageResult<AppRecruitInterviewInviteRespVO> result = mapper.page(
|
|
reqVO,
|
|
reqVO,
|
|
LoginUserContext.getEnterpriseId(loginUser),
|
|
LoginUserContext.getEnterpriseId(loginUser),
|
|
LoginUserContext.getUserId(loginUser)
|
|
LoginUserContext.getUserId(loginUser)
|
|
@@ -285,27 +284,43 @@ public class InterviewInviteServiceImpl implements InterviewInviteService {
|
|
interviewInvite.setEnterpriseId(enterpriseId);
|
|
interviewInvite.setEnterpriseId(enterpriseId);
|
|
interviewInvite.setInviteUserId(userId);
|
|
interviewInvite.setInviteUserId(userId);
|
|
JobAdvertisedDO job = jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId());
|
|
JobAdvertisedDO job = jobAdvertisedService.getJobAdvertised(interviewInvite.getJobId());
|
|
- EnterpriseDO enterprise =enterpriseService.getEnterprise(interviewInvite.getEnterpriseId());
|
|
|
|
|
|
+ EnterpriseDO enterprise = enterpriseService.getEnterprise(interviewInvite.getEnterpriseId());
|
|
|
|
+ // 构建消息体
|
|
|
|
+ SocialWxaSubscribeMessageSendReqDTO reqDTO =
|
|
|
|
+ messageUtils.buildWxSubscribeMessage(reqVO.getUserId(), WX_SUBSCRIBE_INTERVIEW_REMIND_TEMPLATE);
|
|
|
|
+ reqDTO = messageUtils.buildWxSubscribeMessageByInterview(reqDTO,
|
|
|
|
+ job.getName(),
|
|
|
|
+ interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3)),
|
|
|
|
+ interviewInvite.getInvitePhone(),
|
|
|
|
+ interviewInvite.getAddress(),
|
|
|
|
+ interviewInvite.getRemark()
|
|
|
|
+ );
|
|
if (null == reqVO.getId()) {
|
|
if (null == reqVO.getId()) {
|
|
mapper.insert(interviewInvite);
|
|
mapper.insert(interviewInvite);
|
|
// 发送给求职者
|
|
// 发送给求职者
|
|
- messageUtils.sendSystemImMessage(reqVO.getUserId(),
|
|
|
|
|
|
+ messageUtils.sendSystemImAndWxSubscribeMessage(reqVO.getUserId(),
|
|
null,
|
|
null,
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_TEMPLATE,
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_TEMPLATE,
|
|
enterprise.getName(),
|
|
enterprise.getName(),
|
|
job.getName(),
|
|
job.getName(),
|
|
interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
- )
|
|
|
|
|
|
+ ),
|
|
|
|
+ reqDTO
|
|
|
|
+
|
|
);
|
|
);
|
|
|
|
+
|
|
|
|
+
|
|
|
|
+
|
|
} else {
|
|
} else {
|
|
mapper.updateById(interviewInvite);
|
|
mapper.updateById(interviewInvite);
|
|
- messageUtils.sendSystemImMessage(reqVO.getUserId(),
|
|
|
|
|
|
+ messageUtils.sendSystemImAndWxSubscribeMessage(reqVO.getUserId(),
|
|
null,
|
|
null,
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_MODIFY_TEMPLATE,
|
|
StrUtil.format(IM_SYS_INTERVIEW_INVITE_MODIFY_TEMPLATE,
|
|
enterprise.getName(),
|
|
enterprise.getName(),
|
|
job.getName(),
|
|
job.getName(),
|
|
interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
interviewInvite.getTime().format(DateTimeFormatter.ofPattern(FORMAT_YEAR_MONTH_DAY3))
|
|
- )
|
|
|
|
|
|
+ ),
|
|
|
|
+ reqDTO
|
|
);
|
|
);
|
|
}
|
|
}
|
|
|
|
|