面试提示信息去除招商经理修改面试时间操作

This commit is contained in:
feng.li
2024-01-09 11:35:03 +08:00
parent 672dc9d657
commit 4d3fede659

View File

@@ -57,6 +57,7 @@ public class CommonServiceImpl implements CommonService {
//获取面试计划 id 信息
HyPartnerInterviewPlanDO interviewPlanByLineId = partnerInterviewPlanMapper.getInterviewPlanByLineId(Long.parseLong(request.getPartnerLineId()));
HyPartnerLineInfoDO hyPartnerLineInfoDO = lineInfoList.get(0);
String partnerId = hyPartnerLineInfoDO.getPartnerId();
String workflowStage = hyPartnerLineInfoDO.getWorkflowStage();
String workflowStatus = hyPartnerLineInfoDO.getWorkflowStatus();
//会销面试信息
@@ -68,47 +69,29 @@ public class CommonServiceImpl implements CommonService {
partnerExhibitionDO = partnerExhibitionDAO.querySelective(partnerExhibitionDO);
//是否是会销面试
//1. 非会销面试
if (partnerExhibitionDO == null || partnerExhibitionDO.getParticipationStatus().compareTo(ExhibitionPartnerStatus.INTERVIEWING.getCode()) < 0) {
return getCommonTipsFix(Long.parseLong(request.getPartnerLineId()), workflowStage, workflowStatus);
return getCommonTipsFix(Long.parseLong(request.getPartnerLineId()), partnerId, workflowStage, workflowStatus);
} else {
//2. 会销面试
return getExhibitionTipsInfoFix(Long.parseLong(request.getPartnerLineId()));
}
}
private String getCommonTipsFix(Long partnerLineId, String workflowStage, String workflowStatus) {
private String getCommonTipsFix(Long partnerLineId, String partnerId, String workflowStage, String workflowStatus) {
//1. 查询该线索需要展示的操作类型相应的操作记录
List<HyPartnerTaskInfoLogDO> operationLogs = hyPartnerTaskInfoLogMapper.getLastTipsLog(partnerLineId);
HyPartnerTaskInfoLogDO lastLog;
if (!operationLogs.isEmpty()) {
lastLog = operationLogs.get(0);
lastLog = operationLogs.stream().filter(operationLog ->
//修改面试时间的 log 只要线索操作的
(OperateTypeEnum.MODIFY_INTERVIEW_TIME.getCode().equals(operationLog.getOperateType())
&& operationLog.getOperateUserId().equals(partnerId))
|| !operationLog.getOperateType().equals(OperateTypeEnum.MODIFY_INTERVIEW_TIME.getCode())
).findFirst().orElse(new HyPartnerTaskInfoLogDO());
} 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 = "";
//2. 判断类型并返回对应的tips