diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
index 8b574df73..c395ab07d 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
@@ -153,4 +153,6 @@ public interface HyPartnerInterviewPlanMapper {
*/
HyPartnerInterviewPlanDO getInterviewPlanById(String interviewPlanId);
+ HyPartnerInterviewPlanDO getInterviewPlanByLineId(Long lineId);
+
}
\ No newline at end of file
diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
index fe9bfaf3a..6b54acac8 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
@@ -482,4 +482,9 @@
from hy_partner_interview_plan
where id = #{interviewPlanId}
+
\ No newline at end of file
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java
index 493075ac4..461508e4f 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java
@@ -63,7 +63,9 @@ public interface InterviewService {
*/
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
void reInterview(ReInterviewReq request) throws ApiException;
- void rejectInterview(RejectInterviewReq request) throws ApiException;
+// void rejectInterview(RejectInterviewReq request) throws ApiException;
public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException;
+
+ public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java
index 418c4a350..0978472c0 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java
@@ -191,17 +191,17 @@ public class InterviewServiceImpl implements InterviewService {
}
/**
- * PC端修改面试时间,目前和小程序端逻辑一致,后续可能扩展
+ * PC端修改面试时间,和小程序端逻辑不一致,PC端修改需要修改日程信息
* @param request
* @throws ApiException
*/
@Override
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
//只有房间状态是待开放才可以修改时间
- Integer roomStatus = hyPartnerInterviewPlanMapper.getRoomStatus(request.getInterviewPlanId());
- if (!roomStatus.equals(RoomStatus.WAIT_FOR_OPEN.getCode())) {
- throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
- }
+// Integer roomStatus = hyPartnerInterviewPlanMapper.getRoomStatus(request.getInterviewPlanId());
+// if (!roomStatus.equals(RoomStatus.WAIT_FOR_OPEN.getCode())) {
+// throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
+// }
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
//如果面试信息为空,抛出异常
if (interviewInfo == null) {
@@ -210,12 +210,41 @@ public class InterviewServiceImpl implements InterviewService {
if(RoomStatus.WAIT_FOR_OPEN.getCode() != Integer.parseInt(interviewInfo.getRoomStatus())){
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
+ //1.原面试官日程删除
+ DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
+ deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
+ deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
+ deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
+ UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
+ if(userCalendarsEventDTO == null ){
+ throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
+ }
+ //2.新面试官日程新增
+ CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
+ createCalendarEventDTO.setStartTime(DateUtil.parse(request.getNewStartBookingTime()).getTime());
+ createCalendarEventDTO.setEndTime(DateUtil.parse(request.getNewEndBookingTime()).getTime());
+ createCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
+ createCalendarEventDTO.setJoinUserIds(Arrays.asList(interviewInfo.getInterviewerId()));
+ createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
+ UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
+ if(userCalendarEvent == null ){
+ throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
+ }
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
record.setEndTime(Convert.toDate(request.getNewEndBookingTime()));
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
+
+ //更新面试信息
+ HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
+ hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
+ record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
+ record.setFeishuScheduleId(userCalendarEvent.getEventId());
+ hyPartnerInterviewDO.setInterviewer(interviewInfo.getInterviewerId());
+ hyPartnerInterviewDO.setUpdateTime(new Date());
+ hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
}
@Override
@@ -461,21 +490,7 @@ public class InterviewServiceImpl implements InterviewService {
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
- //更新面试信息
- HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
- hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
- hyPartnerInterviewDO.setDeleted(true);
- hyPartnerInterviewDO.setUpdateTime(new Date());
- hyPartnerInterviewDO.setSummary(request.getReason());
- hyPartnerInterviewDO.setCertifyFile(request.getCertifyFile());
- hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
- //更新面试计划信息
- HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
- hyPartnerInterviewPlanDO.setId(Long.valueOf(request.getInterviewPlanId()));
- hyPartnerInterviewPlanDO.setDeleted(true);
- hyPartnerInterviewPlanDO.setUpdateTime(new Date());
- hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
-
+ rejectInterviewAndSuspendLine(Long.parseLong(interviewVO.getInterviewId()),Long.parseLong(request.getInterviewPlanId()),request.getCertifyFile());
//更新线索状态
HyPartnerLineInfoDO hyPartnerLineDO = new HyPartnerLineInfoDO();
hyPartnerLineDO.setId(Long.valueOf(request.getInterviewPlanId()));
@@ -485,40 +500,28 @@ public class InterviewServiceImpl implements InterviewService {
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineDO);
}
- @Override
- @Transactional
- public void rejectInterview(RejectInterviewReq request) throws ApiException {
+// @Override
+// @Transactional
+// public void rejectInterview(RejectInterviewReq request) throws ApiException {
//查询面试计划信息
- InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
- //如果面试计划不存在,抛出异常
- if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
- throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
- }
- //更新面试信息
- HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
- hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
- hyPartnerInterviewDO.setDeleted(true);
- hyPartnerInterviewDO.setUpdateTime(new Date());
- hyPartnerInterviewDO.setCertifyFile(request.getCertifyFile());
- hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
- //更新面试计划信息
- HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
- hyPartnerInterviewPlanDO.setId(Long.valueOf(request.getInterviewPlanId()));
- hyPartnerInterviewPlanDO.setDeleted(true);
- hyPartnerInterviewPlanDO.setUpdateTime(new Date());
- hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
-
- //更新线索状态
- CloseFollowRequest closeFollowRequest = new CloseFollowRequest();
- closeFollowRequest.setRejectPublicReason(request.getRejectPublicReason());
- closeFollowRequest.setRejectRealReason(request.getRejectRealReason());
- closeFollowRequest.setLineId(Long.valueOf(request.getLineId()));
- closeFollowRequest.setType("reject");
- if(StringUtils.isNotEmpty(request.getCertifyFile())){
- closeFollowRequest.setCertifyFile(Arrays.asList(request.getCertifyFile().split(",")));
- }
- hyPartnerLineInfoService.closeOrPassFollow(request.getOperatorId(),closeFollowRequest);
- }
+// InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
+// //如果面试计划不存在,抛出异常
+// if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
+// throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
+// }
+//
+// rejectInterviewAndSuspendLine(Long.parseLong(request.getInterviewId()),Long.parseLong(request.getInterviewPlanId()),request.getCertifyFile())
+// //更新线索状态
+// CloseFollowRequest closeFollowRequest = new CloseFollowRequest();
+// closeFollowRequest.setRejectPublicReason(request.getRejectPublicReason());
+// closeFollowRequest.setRejectRealReason(request.getRejectRealReason());
+// closeFollowRequest.setLineId(Long.valueOf(request.getLineId()));
+// closeFollowRequest.setType("reject");
+// if(StringUtils.isNotEmpty(request.getCertifyFile())){
+// closeFollowRequest.setCertifyFile(Arrays.asList(request.getCertifyFile().split(",")));
+// }
+// hyPartnerLineInfoService.closeOrPassFollow(request.getOperatorId(),closeFollowRequest);
+// }
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
@@ -556,4 +559,24 @@ public class InterviewServiceImpl implements InterviewService {
return "意向 "+partnerBaseInfo.getUsername()+" 线上面试";
}
+ //拒绝面试更新相关信息
+
+ @Override
+ public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile){
+ //更新面试信息
+ HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
+ hyPartnerInterviewDO.setId(iterviewId);
+ hyPartnerInterviewDO.setDeleted(true);
+ hyPartnerInterviewDO.setUpdateTime(new Date());
+ hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_7.getCode()));
+ hyPartnerInterviewDO.setCertifyFile(certifyFile);
+ hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
+ //更新面试计划信息
+ HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
+ hyPartnerInterviewPlanDO.setId(interviewPlanId);
+ hyPartnerInterviewPlanDO.setDeleted(true);
+ hyPartnerInterviewPlanDO.setUpdateTime(new Date());
+ hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
+ }
+
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java
index ed4d99aba..e3380a1b5 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/InterviewWorkFlowService.java
@@ -1,10 +1,18 @@
package com.cool.store.service.impl.workflow;
+import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.enums.WorkflowStageEnum;
+import com.cool.store.mapper.HyPartnerInterviewMapper;
+import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.request.CloseFollowRequest;
+import com.cool.store.service.InterviewService;
import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
+import java.util.Arrays;
+import java.util.List;
+
/**
* @author zhangchenbiao
* @FileName: InterviewWorkFlowService
@@ -15,6 +23,11 @@ import org.springframework.stereotype.Service;
@Service
public class InterviewWorkFlowService extends WorkFlowBaseService {
+ @Autowired
+ private HyPartnerInterviewMapper hyPartnerInterviewMapper;
+
+ @Autowired
+ private InterviewService interviewService;
@Override
public WorkflowStageEnum getWorkFlowStage() {
return WorkflowStageEnum.RESERVATION;
@@ -22,6 +35,13 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
@Override
public void endProcess(CloseFollowRequest request) {
- log.info("面试结束~");
+ Long lineId = request.getLineId();
+ //根据线索id查询面试信息
+ List interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
+ if (interviewBaseInfos == null || interviewBaseInfos.size() == 0) {
+ return;
+ }
+ HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
+ interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
}
}
diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java
index 26a7421e9..b89b78d3f 100644
--- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java
+++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java
@@ -88,10 +88,10 @@ public class InterviewController {
return ResponseResult.success();
}
- @PostMapping("/reject")
- @ApiOperation("拒绝面试")
- public ResponseResult reInterview(@RequestBody RejectInterviewReq request) throws ApiException {
- interviewService.rejectInterview(request);
- return ResponseResult.success();
- }
+// @PostMapping("/reject")
+// @ApiOperation("拒绝面试")
+// public ResponseResult reInterview(@RequestBody RejectInterviewReq request) throws ApiException {
+// interviewService.rejectInterview(request);
+// return ResponseResult.success();
+// }
}