From d16331560d69fd77c8b9ecdea452762b0d3b7262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Wed, 28 Jun 2023 18:20:36 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=A0=B9=E6=8D=AE=E7=BA=BF?= =?UTF-8?q?=E7=B4=A2id=E6=9F=A5=E8=AF=A2=E9=9D=A2=E8=AF=95=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/HyPartnerInterviewMapper.java | 1 + .../mapper/HyPartnerInterviewMapper.xml | 8 ++++++++ .../dto/partner/LineQueryInterviewDto.java | 12 ++++++++++++ .../HyPartnerInterviewPlanService.java | 5 +++-- .../service/HyPartnerLineInfoService.java | 2 +- .../service/PartnerInterviewService.java | 5 +++++ .../cool/store/service/WorkFlowService.java | 2 +- .../HyPartnerInterviewPlanServiceImpl.java | 7 ++++--- .../impl/HyPartnerLineInfoServiceImpl.java | 2 +- .../impl/PartnerInterviewServiceImpl.java | 6 ++++++ .../service/impl/WorkFlowServiceImpl.java | 2 +- .../workflow/InterviewWorkFlowService.java | 19 ++++++++++++++++++- .../impl/workflow/WorkFlowBaseService.java | 2 +- .../store/controller/InterviewController.java | 16 ++++++++++++---- 14 files changed, 74 insertions(+), 15 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineQueryInterviewDto.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index 28472bf8e..b36804eb7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -35,6 +35,7 @@ public interface HyPartnerInterviewMapper { * @return */ PartnerInterviewInfoVO queryByPartnerId(@Param("partnerId") String partnerId); + PartnerInterviewInfoVO queryByPartnerLineId(@Param("partnerLineId") String partnerLineId); /** * 根据会议 id 查询面试官 id diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 48dad0be1..3bf931cae 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -477,6 +477,14 @@ FROM hy_partner_interview WHERE interview_plan_id = #{interviewPlanId} + diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineQueryInterviewDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineQueryInterviewDto.java new file mode 100644 index 000000000..bf01e58bc --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineQueryInterviewDto.java @@ -0,0 +1,12 @@ +package com.cool.store.dto.partner; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class LineQueryInterviewDto { + + @ApiModelProperty("加盟商线索id") + private String partnerLineId; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java index 8303b40de..c4351a7f1 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerInterviewPlanService.java @@ -1,5 +1,6 @@ package com.cool.store.service; +import com.cool.store.exception.ApiException; import com.cool.store.vo.InterviewDetailInfoVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.github.pagehelper.PageInfo; @@ -46,7 +47,7 @@ public interface HyPartnerInterviewPlanService { * updateInterviewOverTime * @return */ - void updateInterviewOverTime(); + void updateInterviewOverTime() throws ApiException; /** * 批量打开十分钟之内开始的面试房间 @@ -60,5 +61,5 @@ public interface HyPartnerInterviewPlanService { * updateInterviewOverTime * @return */ - void updateAbsentInterview(); + void updateAbsentInterview() throws ApiException; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java index c1fd5af9a..ca51f1c12 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java @@ -100,7 +100,7 @@ public interface HyPartnerLineInfoService { * @param closeFollowRequest * @return */ - Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest); + Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) throws ApiException; /** * 公海线索 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java index 85c24fed1..fc090431c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.partner.EnterInterviewDto; +import com.cool.store.dto.partner.LineQueryInterviewDto; import com.cool.store.exception.ApiException; import com.cool.store.request.ModifyInterviewTimeReq; import com.cool.store.vo.EnterInterviewVO; @@ -16,6 +17,8 @@ public interface PartnerInterviewService { */ PartnerInterviewInfoVO queryByPartnerId(String partnerId); + PartnerInterviewInfoVO queryByPartnerLineId(LineQueryInterviewDto request) throws ApiException; + /** * 进入面试间的方法 * 修改一些面试状态 @@ -35,4 +38,6 @@ public interface PartnerInterviewService { */ void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException; + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java index 5c7a408a7..b81f2daa6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/WorkFlowService.java @@ -18,7 +18,7 @@ public interface WorkFlowService { * @param workflowStage * @param request */ - void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request); + void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request) throws ApiException; /** * 转让招商经理 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java index 5a45b2067..dcc219dc4 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerInterviewPlanServiceImpl.java @@ -8,6 +8,7 @@ import com.cool.store.entity.*; import com.cool.store.enums.RoomStatus; import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.exception.ApiException; import com.cool.store.mapper.HyPartnerInterviewMapper; import com.cool.store.mapper.HyPartnerInterviewPlanMapper; import com.cool.store.mapper.HyPartnerLineInfoMapper; @@ -170,7 +171,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan @Override @Transactional - public void updateInterviewOverTime() { + public void updateInterviewOverTime() throws ApiException { List overTimeReserveLineList = hyPartnerLineInfoMapper.getOverTimeReserveLineList(new Date(), WorkflowStageEnum.RESERVATION.getCode(), WorkflowStatusEnum.RESERVATION_0.getCode()); if(CollectionUtils.isEmpty(overTimeReserveLineList)){ return; @@ -201,7 +202,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan @Override @Transactional - public void updateAbsentInterview() { + public void updateAbsentInterview() throws ApiException { Date now = new Date(); //查询当天未参加的面试 String startTime = DateUtil.formatDateTime(DateUtil.offsetHour(now,-6)); @@ -223,7 +224,7 @@ public class HyPartnerInterviewPlanServiceImpl implements HyPartnerInterviewPlan * @param interviewBaseInfoList * @param rejectPublicReason */ - public void handleOverTimeInterview(List interviewBaseInfoList,String rejectPublicReason){ + public void handleOverTimeInterview(List interviewBaseInfoList,String rejectPublicReason) throws ApiException { //1.更新面试信息表中超时的面试信息 List interviewIds = interviewBaseInfoList.stream().map(HyPartnerInterviewDO::getId).distinct().collect(Collectors.toList()); hyPartnerInterviewMapper.batchUpdateInterviewStatus(interviewIds,Integer.valueOf(WorkflowStatusEnum.RESERVATION_8.getCode()),1); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index a6b1bd038..58a29c24c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -318,7 +318,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { @Override @Transactional(rollbackFor = Exception.class) - public Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) { + public Boolean closeOrPassFollow(LoginUserInfo user,CloseFollowRequest closeFollowRequest) throws ApiException { HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(closeFollowRequest.getLineId()); if (hyPartnerLineInfoDO==null){ throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java index 51f8151ab..d41148052 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java @@ -7,6 +7,7 @@ import com.cool.store.context.PartnerUserHolder; import com.cool.store.dao.HyInterviewDAO; import com.cool.store.dto.log.ModifyInterviewTimeDTO; import com.cool.store.dto.partner.EnterInterviewDto; +import com.cool.store.dto.partner.LineQueryInterviewDto; import com.cool.store.entity.HyPartnerInterviewDO; import com.cool.store.entity.HyPartnerInterviewPlanDO; import com.cool.store.enums.ErrorCodeEnum; @@ -68,6 +69,11 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { return interviewMapper.queryByPartnerId(partnerId); } + @Override + public PartnerInterviewInfoVO queryByPartnerLineId(LineQueryInterviewDto request) throws ApiException { + return interviewMapper.queryByPartnerLineId(request.getPartnerLineId()); + } + /** * 进入面试间的方法 * 修改一些面试状态 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java index 1a40d3cb6..1a3e9c3ad 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WorkFlowServiceImpl.java @@ -35,7 +35,7 @@ public class WorkFlowServiceImpl implements WorkFlowService{ @Override - public void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request) { + public void endProcess(WorkflowStageEnum workflowStage, CloseFollowRequest request) throws ApiException { getWorkflowService(workflowStage).endProcess(request); } 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 b8b3258b1..dfe6e1122 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 @@ -24,6 +24,7 @@ import com.cool.store.utils.CoolDateUtils; import com.cool.store.vo.interview.InterviewVO; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -61,7 +62,7 @@ public class InterviewWorkFlowService extends WorkFlowBaseService { } @Override - public void endProcess(CloseFollowRequest request) throws ServiceException{ + public void endProcess(CloseFollowRequest request) throws ApiException { Long lineId = request.getLineId(); //根据线索id查询面试信息 List interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId)); @@ -69,6 +70,22 @@ public class InterviewWorkFlowService extends WorkFlowBaseService { throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST); } 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())){ + // 原面试官日程删除 + 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); + } + } interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null); //记录日志 LoginUserInfo operator = CurrentUserHolder.getUser(); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java index 1d32dd1dc..4b60a7017 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/workflow/WorkFlowBaseService.java @@ -23,7 +23,7 @@ public abstract class WorkFlowBaseService { * 结束流程 * @param request */ - public abstract void endProcess(CloseFollowRequest request); + public abstract void endProcess(CloseFollowRequest request) throws ApiException; /** * 转让招商经理 diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java index fd4ae835a..ad22ef790 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java @@ -1,6 +1,7 @@ package com.cool.store.controller; import com.cool.store.dto.partner.EnterInterviewDto; +import com.cool.store.dto.partner.LineQueryInterviewDto; import com.cool.store.dto.partner.PartnerGetPassLetterDetailDto; import com.cool.store.dto.partner.PartnerQueryInterviewDto; import com.cool.store.exception.ApiException; @@ -30,12 +31,19 @@ public class InterviewController { @Autowired private InterviewService interviewBaseService; - @PostMapping("/queryByPartnerId") - @ApiOperation("根据用户id查询面试信息") - public ResponseResult queryByPartnerId(@RequestBody PartnerQueryInterviewDto dto) { - return ResponseResult.success(interviewService.queryByPartnerId(dto.getPartnerId())); +// @PostMapping("/queryByPartnerId") +// @ApiOperation("根据用户id查询面试信息") +// public ResponseResult queryByPartnerId(@RequestBody PartnerQueryInterviewDto dto) { +// return ResponseResult.success(interviewService.queryByPartnerId(dto.getPartnerId())); +// } + + @PostMapping("/queryByPartnerLineId") + @ApiOperation("根据线索id查询面试信息") + public ResponseResult queryByPartnerLineId(@RequestBody LineQueryInterviewDto dto) throws ApiException { + return ResponseResult.success(interviewService.queryByPartnerLineId(dto)); } + @PostMapping("/enter") @ApiOperation("进入面试间") public ResponseResult enterInterviewRoom(@RequestBody EnterInterviewDto dto) throws ApiException {