获取忙闲信息修改
This commit is contained in:
@@ -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),
|
||||
|
||||
@@ -18,7 +18,7 @@ public interface HyPartnerInterviewMapper {
|
||||
* 会对传进来的字段做判空处理,如果字段为空,则使用数据库默认字段或者null
|
||||
* dateTime:2023-06-09 05:51
|
||||
*/
|
||||
int insertSelective(HyPartnerInterviewDO record);
|
||||
int insertSelective(@Param("record") HyPartnerInterviewDO record);
|
||||
|
||||
/**
|
||||
*
|
||||
|
||||
@@ -54,133 +54,133 @@
|
||||
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
||||
insert into hy_partner_interview
|
||||
<trim prefix="(" suffix=")" suffixOverrides=",">
|
||||
<if test="status != null">
|
||||
<if test="record.status != null">
|
||||
status,
|
||||
</if>
|
||||
<if test="partnerLineId != null">
|
||||
<if test="record.partnerLineId != null">
|
||||
partner_line_id,
|
||||
</if>
|
||||
<if test="interviewPlanId != null">
|
||||
<if test="record.interviewPlanId != null">
|
||||
interview_plan_id,
|
||||
</if>
|
||||
<if test="partnerId != null">
|
||||
<if test="record.partnerId != null">
|
||||
partner_id,
|
||||
</if>
|
||||
<if test="deadline != null">
|
||||
<if test="record.deadline != null">
|
||||
deadline,
|
||||
</if>
|
||||
<if test="interviewer != null">
|
||||
<if test="record.interviewer != null">
|
||||
interviewer,
|
||||
</if>
|
||||
<if test="recorder != null">
|
||||
<if test="record.recorder != null">
|
||||
recorder,
|
||||
</if>
|
||||
<if test="processInfo != null">
|
||||
<if test="record.processInfo != null">
|
||||
process_info,
|
||||
</if>
|
||||
<if test="recordTime != null">
|
||||
<if test="record.recordTime != null">
|
||||
record_time,
|
||||
</if>
|
||||
<if test="summary != null">
|
||||
<if test="record.summary != null">
|
||||
summary,
|
||||
</if>
|
||||
<if test="authCode != null">
|
||||
<if test="record.authCode != null">
|
||||
auth_code,
|
||||
</if>
|
||||
<if test="passFileUrl != null">
|
||||
<if test="record.passFileUrl != null">
|
||||
pass_file_url,
|
||||
</if>
|
||||
<if test="expiryDate != null">
|
||||
<if test="record.expiryDate != null">
|
||||
expiry_date,
|
||||
</if>
|
||||
<if test="latestLogMessage != null">
|
||||
<if test="record.latestLogMessage != null">
|
||||
latest_log_message,
|
||||
</if>
|
||||
<if test="passReason != null">
|
||||
<if test="record.passReason != null">
|
||||
pass_reason,
|
||||
</if>
|
||||
<if test="certifyFile != null">
|
||||
<if test="record.certifyFile != null">
|
||||
certify_file,
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
<if test="record.createTime != null">
|
||||
create_time,
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
<if test="record.updateTime != null">
|
||||
update_time,
|
||||
</if>
|
||||
<if test="approveTime != null">
|
||||
<if test="record.approveTime != null">
|
||||
approve_time,
|
||||
</if>
|
||||
<if test="partnerEnterTime != null">
|
||||
<if test="record.partnerEnterTime != null">
|
||||
partner_enter_time,
|
||||
</if>
|
||||
<if test="interviewerEnterTime != null">
|
||||
<if test="record.interviewerEnterTime != null">
|
||||
interviewer_enter_time,
|
||||
</if>
|
||||
</trim>
|
||||
<trim prefix="values (" suffix=")" suffixOverrides=",">
|
||||
<if test="status != null">
|
||||
#{status},
|
||||
<if test="record.status != null">
|
||||
#{record.status},
|
||||
</if>
|
||||
<if test="partnerLineId != null">
|
||||
#{partnerLineId},
|
||||
<if test="record.partnerLineId != null">
|
||||
#{record.partnerLineId},
|
||||
</if>
|
||||
<if test="interviewPlanId != null">
|
||||
#{interviewPlanId},
|
||||
<if test="record.interviewPlanId != null">
|
||||
#{record.interviewPlanId},
|
||||
</if>
|
||||
<if test="partnerId != null">
|
||||
#{partnerId},
|
||||
<if test="record.partnerId != null">
|
||||
#{record.partnerId},
|
||||
</if>
|
||||
<if test="deadline != null">
|
||||
#{deadline},
|
||||
<if test="record.deadline != null">
|
||||
#{record.deadline},
|
||||
</if>
|
||||
<if test="interviewer != null">
|
||||
#{interviewer},
|
||||
<if test="record.interviewer != null">
|
||||
#{record.interviewer},
|
||||
</if>
|
||||
<if test="recorder != null">
|
||||
#{recorder},
|
||||
<if test="record.recorder != null">
|
||||
#{record.recorder},
|
||||
</if>
|
||||
<if test="processInfo != null">
|
||||
#{processInfo},
|
||||
<if test="record.processInfo != null">
|
||||
#{record.processInfo},
|
||||
</if>
|
||||
<if test="recordTime != null">
|
||||
#{recordTime},
|
||||
<if test="record.recordTime != null">
|
||||
#{record.recordTime},
|
||||
</if>
|
||||
<if test="summary != null">
|
||||
#{summary},
|
||||
<if test="record.summary != null">
|
||||
#{record.summary},
|
||||
</if>
|
||||
<if test="authCode != null">
|
||||
#{authCode},
|
||||
<if test="record.authCode != null">
|
||||
#{record.authCode},
|
||||
</if>
|
||||
<if test="passFileUrl != null">
|
||||
#{passFileUrl},
|
||||
<if test="record.passFileUrl != null">
|
||||
#{record.passFileUrl},
|
||||
</if>
|
||||
<if test="expiryDate != null">
|
||||
#{expiryDate},
|
||||
<if test="record.expiryDate != null">
|
||||
#{record.expiryDate},
|
||||
</if>
|
||||
<if test="latestLogMessage != null">
|
||||
#{latestLogMessage},
|
||||
<if test="record.latestLogMessage != null">
|
||||
#{record.latestLogMessage},
|
||||
</if>
|
||||
<if test="passReason != null">
|
||||
#{passReason},
|
||||
<if test="record.passReason != null">
|
||||
#{record.passReason},
|
||||
</if>
|
||||
<if test="certifyFile != null">
|
||||
#{certifyFile},
|
||||
<if test="record.certifyFile != null">
|
||||
#{record.certifyFile},
|
||||
</if>
|
||||
<if test="createTime != null">
|
||||
#{createTime},
|
||||
<if test="record.createTime != null">
|
||||
#{record.createTime},
|
||||
</if>
|
||||
<if test="updateTime != null">
|
||||
#{updateTime},
|
||||
<if test="record.updateTime != null">
|
||||
#{record.updateTime},
|
||||
</if>
|
||||
<if test="approveTime != null">
|
||||
#{approveTime},
|
||||
<if test="record.approveTime != null">
|
||||
#{record.approveTime},
|
||||
</if>
|
||||
<if test="partnerEnterTime != null">
|
||||
#{partnerEnterTime},
|
||||
<if test="record.partnerEnterTime != null">
|
||||
#{record.partnerEnterTime},
|
||||
</if>
|
||||
<if test="interviewerEnterTime != null">
|
||||
#{interviewerEnterTime},
|
||||
<if test="record.interviewerEnterTime != null">
|
||||
#{record.interviewerEnterTime},
|
||||
</if>
|
||||
</trim>
|
||||
</insert>
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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,22 +48,25 @@ 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<HyPartnerInterviewPlanDO> 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();
|
||||
}
|
||||
}
|
||||
long startTime = 0L;
|
||||
long endTime = 0L;
|
||||
DateTime startDateTime = null;
|
||||
|
||||
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user