取消对飞书日程的任何操作(除工作台日历)

This commit is contained in:
feng.li
2023-11-09 17:43:11 +08:00
parent b8a159fb58
commit 0e623604e4
3 changed files with 93 additions and 83 deletions

View File

@@ -233,8 +233,10 @@ public class ISVHttpRequest {
* @param userId
* @param startTime 开始时间 毫秒时间戳
* @param endTime 截止时间 毫秒时间戳
* @deprecated 1.5.2 后取消飞书日程的任何使用
* @return
*/
@Deprecated
public List<UserFreeBusyInfoDTO> getFreeBusyList(String userId, long startTime, long endTime) throws ApiException{
String url = isvDomain + "/user/getFreeBusyList";
HashMap requestMap = new HashMap();
@@ -259,8 +261,10 @@ public class ISVHttpRequest {
* 创建飞书日程
* @param param
* @return
* @deprecated 1.5.2 后取消操作飞书日程
* @throws ApiException
*/
@Deprecated
public UserCalendarsEventDTO createUserCalendarEvent(CreateCalendarEventDTO param) throws ApiException{
String url = isvDomain + "/user/createUserCalendarEvent";
ResultDTO responseEntity = null;
@@ -281,8 +285,10 @@ public class ISVHttpRequest {
* 更新飞书日程
* @param param
* @return
* @deprecated 1.5.2 后取消操作飞书日程
* @throws ApiException
*/
@Deprecated
public UserCalendarsEventDTO updateUserCalendarEvent(UpdateCalendarEventDTO param) throws ApiException{
String url = isvDomain + "/user/updateUserCalendarEvent";
ResultDTO responseEntity = null;
@@ -303,8 +309,10 @@ public class ISVHttpRequest {
* 取消飞书日程
* @param param
* @return
* @deprecated 1.5.2 后取消操作飞书日程
* @throws ApiException
*/
@Deprecated
public UserCalendarsEventDTO deleteUserCalendarEvent(DeleteCalendarEventDTO param) throws ApiException {
String url = isvDomain + "/user/deleteUserCalendarEvent";
ResultDTO responseEntity = null;
@@ -352,7 +360,9 @@ public class ISVHttpRequest {
/**
* 发送飞书卡片消息
* @param param
* @deprecated {@link EventCenterHttpRequest#sendFeiShuNotice(FeiShuNoticeMsgEnum, List, Object...)}
*/
@Deprecated
@Async
public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{
if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){

View File

@@ -198,35 +198,36 @@ public class InterviewServiceImpl implements InterviewService {
// throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
// }
//1.5.2 后不再使用飞书日程
//有可能还未同意面试预约,这时候没有建立日程,只需要修改面试官
//1.4 优化多次转让,线索转让次数 >= 1 无需添加日程,只转让线索的招商经理及面试官
Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(request.getPartnerLineId());
if (interviewInfo.getFeishuCalendarId() != null && interviewInfo.getFeishuScheduleId() != null
&& transferTimes < 1) {
//V1.3 需求变更为将新面试官拉入原面试官日程,而非删除和新增日程
//1. 原面试官面试日程信息
String oldInterviewerId = CurrentUserHolder.getUserId();
UpdateCalendarEventDTO updateCalendarEventDTO = new UpdateCalendarEventDTO();
updateCalendarEventDTO.setUserId(oldInterviewerId);
updateCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
updateCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
updateCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
updateCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
updateCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
//2. 邀请新面试官加入日程
List<String> list = new ArrayList();
list.add(request.getNewInterviewerId());
//当前招商经理不是面试官,但是日程在招商经理这里
if (!oldInterviewerId.equals(list.get(0))) {
list.add(oldInterviewerId);
}
updateCalendarEventDTO.setJoinUserIds(list);
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.updateUserCalendarEvent(updateCalendarEventDTO);
if(userCalendarsEventDTO == null ){
throw new ApiException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
}
}
// Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(request.getPartnerLineId());
// if (interviewInfo.getFeishuCalendarId() != null && interviewInfo.getFeishuScheduleId() != null
// && transferTimes < 1) {
// //V1.3 需求变更为将新面试官拉入原面试官日程,而非删除和新增日程
// //1. 原面试官面试日程信息
// String oldInterviewerId = CurrentUserHolder.getUserId();
// UpdateCalendarEventDTO updateCalendarEventDTO = new UpdateCalendarEventDTO();
// updateCalendarEventDTO.setUserId(oldInterviewerId);
// updateCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
// updateCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
// updateCalendarEventDTO.setStartTime(DateUtil.parse(interviewInfo.getStartTime()).getTime());
// updateCalendarEventDTO.setEndTime(DateUtil.parse(interviewInfo.getEndTime()).getTime());
// updateCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
//
// //2. 邀请新面试官加入日程
// List<String> list = new ArrayList();
// list.add(request.getNewInterviewerId());
// //当前招商经理不是面试官,但是日程在招商经理这里
// if (!oldInterviewerId.equals(list.get(0))) {
// list.add(oldInterviewerId);
// }
// updateCalendarEventDTO.setJoinUserIds(list);
// UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.updateUserCalendarEvent(updateCalendarEventDTO);
// if(userCalendarsEventDTO == null ){
// throw new ApiException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
// }
// }
// 3.面试信息计划变更
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
@@ -277,38 +278,39 @@ public class InterviewServiceImpl implements InterviewService {
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
}
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
//被委托或者因转让导致的面试官变更的线索不操作日程
Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(interviewInfo.getPartnerLineId());
if(transferTimes==0&&StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())&&StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())) {
//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());
List<String> list = Arrays.asList(interviewInfo.getInterviewerId());
//可能当前招商经理不是面试官,但是日程在招商经理这里
String userId = CurrentUserHolder.getUserId();
if (!userId.equals(list.get(0))) {
list.add(userId);
}
createCalendarEventDTO.setJoinUserIds(list);
createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
if (userCalendarEvent == null) {
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
}
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
record.setFeishuScheduleId(userCalendarEvent.getEventId());
}
//1.5.2 后不再使用飞书日程
// //被委托或者因转让导致的面试官变更的线索不操作日程
// Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(interviewInfo.getPartnerLineId());
// if(transferTimes==0&&StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())&&StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())) {
// //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());
// List<String> list = Arrays.asList(interviewInfo.getInterviewerId());
// //可能当前招商经理不是面试官,但是日程在招商经理这里
// String userId = CurrentUserHolder.getUserId();
// if (!userId.equals(list.get(0))) {
// list.add(userId);
// }
// createCalendarEventDTO.setJoinUserIds(list);
// createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
// UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
// if (userCalendarEvent == null) {
// throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
// }
// record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
// record.setFeishuScheduleId(userCalendarEvent.getEventId());
// }
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
@@ -541,26 +543,23 @@ public class InterviewServiceImpl implements InterviewService {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PARTNER_NOT_EXIST);
}
List<UserFreeBusyInfoDTO> userFreeBusyInfoList = isvHttpRequest.getFreeBusyList(request.getInterviewerId(), DateUtil.parse(interviewVO.getStartTime()).getTime(), DateUtil.parse(interviewVO.getEndTime()).getTime());
if (CollectionUtils.isNotEmpty(userFreeBusyInfoList)) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE,partnerBaseInfo.getUsername(),partnerBaseInfo.getMobile());
}
//创建日程信息
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
createCalendarEventDTO.setStartTime(DateUtil.parse(interviewVO.getStartTime()).getTime());
createCalendarEventDTO.setEndTime(DateUtil.parse(interviewVO.getEndTime()).getTime());
createCalendarEventDTO.setUserId(request.getInterviewerId());
createCalendarEventDTO.setJoinUserIds(Arrays.asList(request.getInterviewerId()));
createCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
if (userCalendarEvent == null || StringUtil.isEmpty(userCalendarEvent.getEventId())) {
throw new ServiceException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
}
// CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
// createCalendarEventDTO.setStartTime(DateUtil.parse(interviewVO.getStartTime()).getTime());
// createCalendarEventDTO.setEndTime(DateUtil.parse(interviewVO.getEndTime()).getTime());
// createCalendarEventDTO.setUserId(request.getInterviewerId());
// createCalendarEventDTO.setJoinUserIds(Arrays.asList(request.getInterviewerId()));
// createCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
// UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
// if (userCalendarEvent == null || StringUtil.isEmpty(userCalendarEvent.getEventId())) {
// throw new ServiceException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
// }
//更新面试计划信息
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
record.setFeishuScheduleId(userCalendarEvent.getEventId());
// record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
// record.setFeishuScheduleId(userCalendarEvent.getEventId());
record.setApplicationApproved(1);
//如果同意的时候已经超过预约的时间前 5 分钟,直接进入面试已开始阶段
DateTime interviewStartTime = DateUtil.offsetMinute(DateUtil.parseDateTime(interviewVO.getStartTime()), -5);

View File

@@ -88,15 +88,16 @@ public class InterviewWorkFlowService extends WorkFlowBaseService {
&& StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())
&& StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())
&& interviewInfo.getInterviewerId().equals(operator.getUserId())){
//1.5.2 后不再使用飞书日程
// 原面试官日程删除
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);
}
// 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);
// }
} else if (Integer.parseInt(WorkflowStatusEnum.INTERVIEW_6.getCode()) == interviewBaseInfo.getStatus()) {
//删除稽核信息
HyInspectionDO rawHyInspection = inspectionMapper.selectByInterviewPlanId(interviewBaseInfo.getInterviewPlanId());