PC 端修改面试时间修改飞书日程
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -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<HyPartnerInterviewDO> 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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user