Merge remote-tracking branch 'hs/dev/feat/partner1.3_20230904' into dev/feat/partner1.3_20230904

This commit is contained in:
zhangchenbiao
2023-09-08 11:04:39 +08:00
8 changed files with 31 additions and 6 deletions

View File

@@ -84,13 +84,15 @@ public enum ErrorCodeEnum {
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空", null),
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人{0} 手机号:{1}", null),
INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null),
INTERVIEW_STATUS_NOT_TRANSFER(1021116, "当前面试状态不允许转让! 面试状态:{}", null),
INTERVIEW_STATUS_NOT_TRANSFER(1021116, "当前面试状态不允许转让! 面试状态:{0}", null),
ROOM_STATUS_ERROR(10211156, "当前面试房间状态不允许进行该操作!", null),
MOBILE_APP_NOT_ONLINE_ERROR(10211157, "呼叫失败,请确认呼出号码正确并检查是否安装并打开呼叫插件", null),
CALL_RECORD_NOT_EXIST_ERROR(10211158, "通话记录不存在!", null),
CALL_UP_ERROR(10211159, "拨出电话异常!", null),
CREATE_CALL_REQUEST_ERROR(10211160, "创建电话请求失败!", null),
CREATE_APPOINTMENT_TIME_ERROR(10211161, "当前时间不可预约面试,请选择其他时间", null),
CONTENT_DUPLICATED(10211200, "动态标题重复!", null),
SIGN_FAIL(600000, "验签失败", null),
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误", null),

View File

@@ -15,7 +15,7 @@ public enum FeiShuNoticeMsgEnum {
BATCH_TRANS_INVESTMENT_MANAGER("收到新线索", "有{0}条新线索于 {1} 转让给您,请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g"),
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g"),
FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g"),
INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {3} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g"),
INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g"),
;
private String title;

View File

@@ -94,6 +94,13 @@ public class HyPartnerInterviewPlanDAO {
return hyPartnerInterviewPlanMapper.selectInterviewIdByLineId(lineId);
}
public HyPartnerInterviewPlanDO getInterviewPlanByLineId(Long lineId){
if (lineId==null){
return null;
}
return hyPartnerInterviewPlanMapper.getInterviewPlanByLineId(lineId);
}
/**
* 根据线索表ID查询
* @param lindIds

View File

@@ -317,7 +317,7 @@
<set>
update_time=now(),
<if test="userPortrait != null and userPortrait!=''">
user_portrait = #{userPortrait},
user_portrait = concat(",",#{userPortrait},","),
</if>
</set>
where mobile = #{mobile}

View File

@@ -205,7 +205,11 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
}
//如果是面试预约待审批阶段还要发送面试预约申请通知
if (WorkflowStageEnum.RESERVATION.getCode().equals(hyPartnerLineInfoDO.getWorkflowStage()) && WorkflowStatusEnum.RESERVATION_1.getCode().equals(hyPartnerLineInfoDO.getWorkflowStatus())) {
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.INTERVIEW_APPOINTMENT, Arrays.asList(request.getUserId()),hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile(),dateTime);
HyPartnerInterviewPlanDO interviewPlanByLine = hyPartnerInterviewPlanDAO.getInterviewPlanByLineId(request.getLineId());
if (interviewPlanByLine!=null && interviewPlanByLine.getStartTime()!=null ){
String startTime = DateUtil.format(interviewPlanByLine.getStartTime(), CoolDateUtils.DATE_FORMAT_SEC_7);
noticeService.sendFeiShuNotice(FeiShuNoticeMsgEnum.INTERVIEW_APPOINTMENT, Arrays.asList(request.getUserId()),hyPartnerUserInfoDO.getUsername(),hyPartnerUserInfoDO.getMobile(),startTime);
}
}
//作废待完成&已逾期的任务
@@ -252,6 +256,9 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
HyPartnerUserInfoDO hyPartnerUserInfoDO = partnerUserInfoDOMap.get(partnerMap.get(lineId));
BatchTransferVO batchTransferVO = new BatchTransferVO();
batchTransferVO.setErrorMessage(e.getMessage());
if (e instanceof ServiceException){
batchTransferVO.setErrorMessage(((ServiceException)e).getErrorMessage());
}
batchTransferVO.setPartnerMobile(hyPartnerUserInfoDO.getMobile());
batchTransferVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername());
result.add(batchTransferVO);

View File

@@ -419,6 +419,10 @@ public class InterviewServiceImpl implements InterviewService {
if(request.getPartnerLineId() == null || request.getPartnerLineId()<=0){
throw new ApiException(ErrorCodeEnum.INTERVIEW_LINE_ID_IS_NULL);
}
//如果开始时间小于当前时间需要报错
if(DateUtil.date().isAfter(DateUtil.parse(request.getStartBookingTime()))){
throw new ApiException(ErrorCodeEnum.CREATE_APPOINTMENT_TIME_ERROR);
}
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setPartnerLineId(request.getPartnerLineId());
hyPartnerInterviewPlanDO.setDeleted(false);

View File

@@ -184,6 +184,10 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
//如果开始时间小于当前时间需要报错
if(DateUtil.date().isAfter(DateUtil.parse(request.getNewStartBookingTime()))){
throw new ApiException(ErrorCodeEnum.CREATE_APPOINTMENT_TIME_ERROR);
}
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));

View File

@@ -74,13 +74,15 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
}
LoginUserInfo operator = CurrentUserHolder.getUser();
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(String.valueOf(interviewBaseInfo.getInterviewPlanId()));
if(Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()) == interviewBaseInfo.getStatus()
&& StringUtils.isNotEmpty(interviewInfo.getRoomStatus())
&& String.valueOf(RoomStatus.WAIT_FOR_OPEN.getCode()).equals(interviewInfo.getRoomStatus())
&& StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())
&& StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())){
&& StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())
&& interviewInfo.getInterviewerId().equals(operator.getUserId())){
// 原面试官日程删除
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
@@ -100,7 +102,6 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
}
interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
//记录日志
LoginUserInfo operator = CurrentUserHolder.getUser();
RejectInterviewDTO log = RejectInterviewDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC))
.rejectRealReason(request.getRejectRealReason()).rejectPublicReason(request.getRejectPublicReason()).certifyFile(request.getCertifyFile()).build();
logService.recordBizLog(operator,request.getLineId(), OperateTypeEnum.REJECT_INTERVIEW,log);