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 abaf2eed2..a691e1977 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
@@ -70,7 +70,8 @@ public enum ErrorCodeEnum {
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
INTERVIEW_STATUS_ERROR(1021111, "面试状态错误!", null),
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面试计划已存在,请勿重复申请!", null),
- INTERVIEW_PLAN_ID_IS_NULL(1021113, "面试计划Id为空!", null),
+ INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
+ INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
SIGN_FAIL(600000, "验签失败", null),
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
index ab58eb601..d0e947807 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewPlanMapper.xml
@@ -184,6 +184,9 @@
feishu_schedule_id = #{record.feishuScheduleId},
+
+ application_approved = #{record.applicationApproved},
+
where id = #{record.id}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/ApproveAppointmentReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/ApproveAppointmentReq.java
index 97d17484f..d159744a3 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/ApproveAppointmentReq.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/ApproveAppointmentReq.java
@@ -16,6 +16,17 @@ public class ApproveAppointmentReq {
@ApiModelProperty(value = "面试官ID", required = true)
private String interviewerId;
+ @ApiModelProperty(value = "线索ID", required = true)
+ private Long partnerLineId;
+
+ public Long getPartnerLineId() {
+ return partnerLineId;
+ }
+
+ public void setPartnerLineId(Long partnerLineId) {
+ this.partnerLineId = partnerLineId;
+ }
+
public String getInterviewPlanId() {
return interviewPlanId;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java
index 95c88cc18..b8a4d26e3 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EntrustOthersReq.java
@@ -17,4 +17,7 @@ public class EntrustOthersReq {
@ApiModelProperty("新面试官编号")
private String newInterviewerId;
+
+ @ApiModelProperty(value = "线索ID", required = true)
+ private Long partnerLineId;
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
index 477bc316b..bb576196b 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
@@ -22,6 +22,9 @@ public class InterviewVO {
@ApiModelProperty(value = "会议id", required = true)
private String interviewId;
+ @ApiModelProperty(value = "线索id", required = true)
+ private Long partnerLineId;
+
@ApiModelProperty("资质审核流程id")
private String qualifyVerifyId;
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 d8f9abed6..9b6ca541b 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
@@ -8,6 +8,7 @@ import com.cool.store.dto.calendar.UpdateCalendarEventDTO;
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
import com.cool.store.dto.message.SendCardMessageDTO;
import com.cool.store.dto.partner.EnterInterviewDto;
+import com.cool.store.entity.HyPartnerBaseInfoDO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.entity.HyPartnerInterviewPlanDO;
@@ -19,6 +20,7 @@ import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest;
+import com.cool.store.mapper.HyPartnerBaseInfoMapper;
import com.cool.store.mapper.EnterpriseUserMapper;
import com.cool.store.mapper.HyPartnerInterviewMapper;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
@@ -63,6 +65,9 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
+ @Autowired
+ private HyPartnerInterviewMapper interviewMapper;
+
@Autowired
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
@@ -72,6 +77,9 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
+ @Autowired
+ private HyPartnerBaseInfoMapper hyPartnerBaseInfoMapper;
+
@Autowired
private EnterpriseUserService enterpriseUserService;
@@ -134,6 +142,8 @@ public class InterviewServiceImpl implements InterviewService {
createCalendarEventDTO.setStartTime(DateUtil.parseDate(interviewInfo.getStartTime()).getTime());
createCalendarEventDTO.setEndTime(DateUtil.parseDate(interviewInfo.getEndTime()).getTime());
createCalendarEventDTO.setUserId(request.getNewInterviewerId());
+ createCalendarEventDTO.setJoinUserIds(Arrays.asList(request.getNewInterviewerId()));
+ createCalendarEventDTO.setSummary(generateInterviewTitle(request.getPartnerLineId()));
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
if(userCalendarEvent == null ){
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
@@ -245,13 +255,13 @@ public class InterviewServiceImpl implements InterviewService {
@Transactional
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) throws ApiException {
if(request.getPartnerLineId() == null || request.getPartnerLineId()<=0){
- throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ID_IS_NULL);
+ throw new ApiException(ErrorCodeEnum.INTERVIEW_LINE_ID_IS_NULL);
}
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setPartnerLineId(request.getPartnerLineId());
List hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)&&hyPartnerInterviewPlanDOS.get(0).getId()!=null){
- throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ID_IS_NULL);
+ throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ALREADY_EXIST);
}
String interviewrId = request.getInterviewerId();
if(StringUtils.isEmpty(interviewrId)){
@@ -308,11 +318,20 @@ public class InterviewServiceImpl implements InterviewService {
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
+ HyPartnerBaseInfoDO partnerBaseInfo = hyPartnerBaseInfoMapper.getByPartnerLineId(interviewVO.getPartnerLineId());
+
+
+ List 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);
+ }
//创建日程信息
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
- createCalendarEventDTO.setStartTime(DateUtil.parseDate(interviewVO.getStartTime()).getTime());
- createCalendarEventDTO.setEndTime(DateUtil.parseDate(interviewVO.getEndTime()).getTime());
+ 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);
@@ -322,6 +341,7 @@ public class InterviewServiceImpl implements InterviewService {
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
record.setFeishuScheduleId(userCalendarEvent.getEventId());
+ record.setApplicationApproved(1);
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
@@ -383,4 +403,10 @@ public class InterviewServiceImpl implements InterviewService {
return interviewerId;
}
+
+ public String generateInterviewTitle(Long partnerLineId){
+ HyPartnerBaseInfoDO partnerBaseInfo = hyPartnerBaseInfoMapper.getByPartnerLineId(partnerLineId);
+ return "意向 "+partnerBaseInfo.getUsername()+" 线上面试";
+ }
+
}