返回通用信息方法对修改时间操作的单独处理

This commit is contained in:
feng.li
2023-12-22 11:32:02 +08:00
parent 8676855e6d
commit bb6c152e5f
5 changed files with 51 additions and 15 deletions

View File

@@ -55,5 +55,5 @@ public interface HyPartnerTaskInfoLogMapper {
* @param partnerLineId
* @return
*/
HyPartnerTaskInfoLogDO getLastTipsLog(@Param("lineId") Long partnerLineId);
List<HyPartnerTaskInfoLogDO> getLastTipsLog(@Param("lineId") Long partnerLineId);
}

View File

@@ -179,7 +179,7 @@
'create_qualifyverify',
'exhibition_create_qualifyverify'
)
ORDER BY create_time DESC LIMIT 1
ORDER BY create_time DESC
</select>
</mapper>

View File

@@ -21,7 +21,7 @@ public class ExhibitionJob {
private ExhibitionService exhibitionService;
@XxlJob("autoCloseExhibition")
//每天 23:59:00 执行
//每天 23:50:00 执行
public void syncUserSourceJob() {
XxlJobHelper.log("-------------------------------自动结束会销任务开始-------------------------------");
log.info("-------------------------------自动结束会销任务开始-------------------------------");
@@ -32,7 +32,7 @@ public class ExhibitionJob {
}
@XxlJob("sendSMSToExhibitionApplicants")
//每天 08:00 执行
//每天 10:00 执行
public void sendSMSToExhibitionApplicants() {
XxlJobHelper.log("-------------------------------给被自动结束会销的参会人发送短信任务开始-------------------------------");
log.info("-------------------------------给被自动结束会销的参会人发送短信任务开始-------------------------------");

View File

@@ -59,27 +59,58 @@ public class CommonServiceImpl implements CommonService {
HyPartnerLineInfoDO hyPartnerLineInfoDO = lineInfoList.get(0);
String workflowStage = hyPartnerLineInfoDO.getWorkflowStage();
String workflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
Long partnerLineId = hyPartnerLineInfoDO.getId();
//会销面试信息
HyPartnerExhibitionDO partnerExhibitionDO = new HyPartnerExhibitionDO();
partnerExhibitionDO.setPartnerLineId(hyPartnerLineInfoDO.getId());
//能用对应的面试计划 id 查到线索参加会销信息就表示该线索是通过会销进行的面试
partnerExhibitionDO.setInterviewPlanId(interviewPlanByLineId.getId());
partnerExhibitionDO.setDeleted(Boolean.FALSE);
partnerExhibitionDO.setParticipationStatus(ExhibitionPartnerStatus.INTERVIEWING.getCode());
partnerExhibitionDO = partnerExhibitionDAO.querySelective(partnerExhibitionDO);
//是否是会销面试
if (partnerExhibitionDO == null || partnerExhibitionDO.getParticipationStatus().compareTo(ExhibitionPartnerStatus.INTERVIEWING.getCode()) < 0) {
return getCommonTipsFix(Long.parseLong(request.getPartnerLineId()));
return getCommonTipsFix(Long.parseLong(request.getPartnerLineId()), workflowStage, workflowStatus);
} else {
return getExhibitionTipsInfoFix(Long.parseLong(request.getPartnerLineId()));
}
}
private String getCommonTipsFix(Long partnerLineId) {
private String getCommonTipsFix(Long partnerLineId, String workflowStage, String workflowStatus) {
//1. 查询该线索需要展示的操作类型相应的操作记录
List<HyPartnerTaskInfoLogDO> operationLogs = hyPartnerTaskInfoLogMapper.getLastTipsLog(partnerLineId);
HyPartnerTaskInfoLogDO lastLog;
if (!operationLogs.isEmpty()) {
lastLog = operationLogs.get(0);
} else {
return null;
}
//以下两种情况下最后一条操作记录时修改面试时间却不展示修改面试时间的 tips
//1.1 加盟商提交预约时间后,客户经理修改面试时间但未同意,展示加盟商预约面试时间的 tips
if (lastLog.getOperateType().equals(OperateTypeEnum.MODIFY_INTERVIEW_TIME.getCode())) {
if (WorkflowStageEnum.RESERVATION.getCode().equals(workflowStage)
&& WorkflowStatusEnum.RESERVATION_1.getCode().equals(workflowStatus)) {
//取出线索提交预约时间的操作记录
Optional<HyPartnerTaskInfoLogDO> logDO = operationLogs.stream()
.filter(log -> log.getOperateType().equals(OperateTypeEnum.INTERVIEW_APPOINTMENT.getCode()))
.findFirst();
return logDO
.map(hyPartnerTaskInfoLogDO -> getInterviewTipsFix(hyPartnerTaskInfoLogDO, "通过合伙人小程序于", "发起预约面试申请"))
.orElse(null);
}
//1.2 客户经理帮约后,再修改面试时间,展示客户经理主动预约面试的 tips
if (WorkflowStageEnum.INTERVIEW.getCode().equals(workflowStage)
&& WorkflowStatusEnum.INTERVIEW_2.getCode().equals(workflowStatus)) {
Optional<HyPartnerTaskInfoLogDO> logDO = operationLogs.stream()
.filter(log -> !log.getOperateType().equals(OperateTypeEnum.MODIFY_INTERVIEW_TIME.getCode()))
.findFirst();
if (logDO.isPresent()
&& logDO.get().getOperateType().equals(OperateTypeEnum.INTERVIEWER_BOOK_INTERVIEW.getCode())) {
return getInterviewTipsFix(logDO.get(), "通过操作后台于", "主动为客户预约面试时间");
}
}
}
String interviewTips = "";
//1. 查询需要展示的操作类型最新一条
HyPartnerTaskInfoLogDO lastLog = hyPartnerTaskInfoLogMapper.getLastTipsLog(partnerLineId);
//2. 判断类型并返回对应的tips
OperateTypeEnum operateType = OperateTypeEnum.getOperateTypeEnum(lastLog.getOperateType());
switch (operateType) {
@@ -120,8 +151,14 @@ public class CommonServiceImpl implements CommonService {
private String getExhibitionTipsInfoFix(Long partnerLineId) {
String interviewTips = "";
//1. 查询需要展示的操作类型最新一条
HyPartnerTaskInfoLogDO lastLog = hyPartnerTaskInfoLogMapper.getLastTipsLog(partnerLineId);
//1. 查询该线索需要展示的操作类型相应的操作记录
List<HyPartnerTaskInfoLogDO> operationLogs = hyPartnerTaskInfoLogMapper.getLastTipsLog(partnerLineId);
HyPartnerTaskInfoLogDO lastLog;
if (!operationLogs.isEmpty()) {
lastLog = operationLogs.get(0);
} else {
return null;
}
//2. 判断类型并返回对应的tips
OperateTypeEnum operateType = OperateTypeEnum.getOperateTypeEnum(lastLog.getOperateType());
switch (operateType) {

View File

@@ -103,10 +103,9 @@ public class ExhibitionServiceImpl implements ExhibitionService {
hyPartnerExhibitionDO.setPartnerLineId(Long.parseLong(dto.getPartnerLineId()));
hyPartnerExhibitionDO = hyPartnerExhibitionDAO.querySelective(hyPartnerExhibitionDO);
//1.2 核验会销签到状态
if (
hyPartnerExhibitionDO == null ||
if (hyPartnerExhibitionDO == null
//线索未会销签到并且提交意向申请或未处在预约面试阶段
!(hyPartnerExhibitionDO.getParticipationStatus().equals(ExhibitionPartnerStatus.SIGNED.getCode())))
|| !(hyPartnerExhibitionDO.getParticipationStatus().equals(ExhibitionPartnerStatus.SIGNED.getCode())))
{
throw new ApiException(ErrorCodeEnum.EXHIBITION_NOT_SIGNED);
}