@@ -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 ) ;
}
}