diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index 535d2f7ea..e227d8ecc 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -61,7 +61,7 @@ public enum ErrorCodeEnum { INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), INTERVIEW_NOT_EXIST(1021103, "面试信息不存在!", null), - INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID和面试官ID不能同时为空!", null), + INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID&线索ID和面试官ID不能同时为空!", null), INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面试安排!", null), DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", null), INTERVIEW_PLAN_NOT_EXIST(1021107, "面试计划不存在!", null), 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 5b60798b3..ef22c78aa 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 @@ -18,7 +18,7 @@ public interface HyPartnerInterviewMapper { * 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null * dateTime:2023-06-09 05:51 */ - int insertSelective(HyPartnerInterviewDO record); + int insertSelective(@Param("record") HyPartnerInterviewDO record); /** * diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 584bebc81..7d0e1fd1b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -54,133 +54,133 @@ insert into hy_partner_interview - + status, - + partner_line_id, - + interview_plan_id, - + partner_id, - + deadline, - + interviewer, - + recorder, - + process_info, - + record_time, - + summary, - + auth_code, - + pass_file_url, - + expiry_date, - + latest_log_message, - + pass_reason, - + certify_file, - + create_time, - + update_time, - + approve_time, - + partner_enter_time, - + interviewer_enter_time, - - #{status}, + + #{record.status}, - - #{partnerLineId}, + + #{record.partnerLineId}, - - #{interviewPlanId}, + + #{record.interviewPlanId}, - - #{partnerId}, + + #{record.partnerId}, - - #{deadline}, + + #{record.deadline}, - - #{interviewer}, + + #{record.interviewer}, - - #{recorder}, + + #{record.recorder}, - - #{processInfo}, + + #{record.processInfo}, - - #{recordTime}, + + #{record.recordTime}, - - #{summary}, + + #{record.summary}, - - #{authCode}, + + #{record.authCode}, - - #{passFileUrl}, + + #{record.passFileUrl}, - - #{expiryDate}, + + #{record.expiryDate}, - - #{latestLogMessage}, + + #{record.latestLogMessage}, - - #{passReason}, + + #{record.passReason}, - - #{certifyFile}, + + #{record.certifyFile}, - - #{createTime}, + + #{record.createTime}, - - #{updateTime}, + + #{record.updateTime}, - - #{approveTime}, + + #{record.approveTime}, - - #{partnerEnterTime}, + + #{record.partnerEnterTime}, - - #{interviewerEnterTime}, + + #{record.interviewerEnterTime}, diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetFreeBusyListReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetFreeBusyListReq.java index c1245ea8a..32e13925e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/GetFreeBusyListReq.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetFreeBusyListReq.java @@ -16,8 +16,10 @@ public class GetFreeBusyListReq { private String startDate; @ApiModelProperty("结束时间") private String endDate; - @ApiModelProperty("加盟商用户ID") + @ApiModelProperty("线索id(C端使用)") + private String lineId; + @ApiModelProperty("加盟商用户ID(C端使用,与面试官id两个字段中必传一个,该字段传值时,线索id必传)") private String partnerId; - @ApiModelProperty("面试官ID(如果该字段传了,就查询该面试官的日程忙闲信息,否则查询加盟商对应的面试官的信息)") + @ApiModelProperty("面试官ID(B端使用,如果该字段传了,就查询该面试官的日程忙闲信息,否则查询加盟商对应的面试官的信息)") private String interviewerId; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java index 30ef5c972..1a9363f4f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java @@ -4,11 +4,13 @@ import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.cool.store.dto.calendar.UserFreeBusyInfoDTO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ApiException; import com.cool.store.exception.ServiceException; import com.cool.store.http.ISVHttpRequest; import com.cool.store.mapper.HyPartnerInterviewPlanMapper; +import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.cool.store.request.GetFreeBusyListReq; import com.cool.store.service.FeiShuService; import com.cool.store.vo.interview.CalendarInfo; @@ -36,6 +38,9 @@ public class FeiShuServiceImpl implements FeiShuService { @Autowired private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; + @Autowired + private HyPartnerLineInfoMapper hyPartnerLineInfoMapper; + @Override public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException { GetFreeBusyListVO freeBusyListVO = new GetFreeBusyListVO(); @@ -43,21 +48,24 @@ public class FeiShuServiceImpl implements FeiShuService { String endDate = request.getEndDate();//结束日期 String partnerId = request.getPartnerId();//加盟商用户ID String interviewerId = request.getInterviewerId();//面试官ID + String lineId = request.getLineId();//线索id //如果加盟商用户ID为空且面试官ID为空,返回错误信息 - if (StringUtils.isEmpty(partnerId) && StringUtils.isEmpty(interviewerId)) { + if (!(StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) && StringUtils.isEmpty(interviewerId)) { throw new ServiceException(ErrorCodeEnum.INTERVIEW_AND_PARTNER_ID_IS_NULL); } //如果加盟商用户ID不为空且面试官ID为空 - if (StringUtils.isNotEmpty(partnerId) && StringUtils.isEmpty(interviewerId)) { + if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) { //根据加盟商用户ID查询面试官ID HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO(); hyPartnerInterviewPlanDO.setPartnerId(partnerId); List hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO); - //如果查询结果为空,返回错误信息 + //如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准 if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) { - throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_IS_NULL); + HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId)); + interviewerId = hyPartnerLineInfoDO.getInvestmentManager(); + }else { + interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer(); } - interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer(); } long startTime = 0L; long endTime = 0L; 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 6348b591d..03d894d4b 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 @@ -207,6 +207,7 @@ public class InterviewServiceImpl implements InterviewService { } @Override + @Transactional public CreateAppointmentVO createAppointment(CreateAppointmentReq request) { CreateAppointmentVO vo = new CreateAppointmentVO(); //1.创建面试计划 @@ -226,14 +227,18 @@ public class InterviewServiceImpl implements InterviewService { record.setRoomId(StringUtil.generateRoomId(startBookingTime)); record.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode()); record.setDeleted(false); - long interviewPlanId = hyPartnerInterviewPlanMapper.insertSelective(record); - vo.setInterviewPlanId(String.valueOf(interviewPlanId)); + hyPartnerInterviewPlanMapper.insertSelective(record); + + HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO(); + hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO); + +// vo.setInterviewPlanId(String.valueOf(interviewPlanId)); //2.创建面试信息 HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); - hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId); - hyPartnerInterviewDO.setPartnerId(request.getPartnerId()); +// hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId); hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId()); + hyPartnerInterviewDO.setPartnerId(request.getPartnerId()); hyPartnerInterviewDO.setInterviewer(request.getInterviewerId()); hyPartnerInterviewDO.setCreateTime(new Date()); hyPartnerInterviewDO.setUpdateTime(new Date());