获取忙闲信息修改

This commit is contained in:
俞扬
2023-06-20 11:47:51 +08:00
parent 2820a86d80
commit d1f0e4748e
6 changed files with 91 additions and 76 deletions

View File

@@ -61,7 +61,7 @@ public enum ErrorCodeEnum {
INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null),
DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null),
INTERVIEW_NOT_EXIST(1021103, "面试信息不存在!", 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), INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面试安排!", null),
DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", null), DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", null),
INTERVIEW_PLAN_NOT_EXIST(1021107, "面试计划不存在!", null), INTERVIEW_PLAN_NOT_EXIST(1021107, "面试计划不存在!", null),

View File

@@ -18,7 +18,7 @@ public interface HyPartnerInterviewMapper {
* 会对传进来的字段做判空处理如果字段为空则使用数据库默认字段或者null * 会对传进来的字段做判空处理如果字段为空则使用数据库默认字段或者null
* dateTime:2023-06-09 05:51 * dateTime:2023-06-09 05:51
*/ */
int insertSelective(HyPartnerInterviewDO record); int insertSelective(@Param("record") HyPartnerInterviewDO record);
/** /**
* *

View File

@@ -54,133 +54,133 @@
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true"> <insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
insert into hy_partner_interview insert into hy_partner_interview
<trim prefix="(" suffix=")" suffixOverrides=","> <trim prefix="(" suffix=")" suffixOverrides=",">
<if test="status != null"> <if test="record.status != null">
status, status,
</if> </if>
<if test="partnerLineId != null"> <if test="record.partnerLineId != null">
partner_line_id, partner_line_id,
</if> </if>
<if test="interviewPlanId != null"> <if test="record.interviewPlanId != null">
interview_plan_id, interview_plan_id,
</if> </if>
<if test="partnerId != null"> <if test="record.partnerId != null">
partner_id, partner_id,
</if> </if>
<if test="deadline != null"> <if test="record.deadline != null">
deadline, deadline,
</if> </if>
<if test="interviewer != null"> <if test="record.interviewer != null">
interviewer, interviewer,
</if> </if>
<if test="recorder != null"> <if test="record.recorder != null">
recorder, recorder,
</if> </if>
<if test="processInfo != null"> <if test="record.processInfo != null">
process_info, process_info,
</if> </if>
<if test="recordTime != null"> <if test="record.recordTime != null">
record_time, record_time,
</if> </if>
<if test="summary != null"> <if test="record.summary != null">
summary, summary,
</if> </if>
<if test="authCode != null"> <if test="record.authCode != null">
auth_code, auth_code,
</if> </if>
<if test="passFileUrl != null"> <if test="record.passFileUrl != null">
pass_file_url, pass_file_url,
</if> </if>
<if test="expiryDate != null"> <if test="record.expiryDate != null">
expiry_date, expiry_date,
</if> </if>
<if test="latestLogMessage != null"> <if test="record.latestLogMessage != null">
latest_log_message, latest_log_message,
</if> </if>
<if test="passReason != null"> <if test="record.passReason != null">
pass_reason, pass_reason,
</if> </if>
<if test="certifyFile != null"> <if test="record.certifyFile != null">
certify_file, certify_file,
</if> </if>
<if test="createTime != null"> <if test="record.createTime != null">
create_time, create_time,
</if> </if>
<if test="updateTime != null"> <if test="record.updateTime != null">
update_time, update_time,
</if> </if>
<if test="approveTime != null"> <if test="record.approveTime != null">
approve_time, approve_time,
</if> </if>
<if test="partnerEnterTime != null"> <if test="record.partnerEnterTime != null">
partner_enter_time, partner_enter_time,
</if> </if>
<if test="interviewerEnterTime != null"> <if test="record.interviewerEnterTime != null">
interviewer_enter_time, interviewer_enter_time,
</if> </if>
</trim> </trim>
<trim prefix="values (" suffix=")" suffixOverrides=","> <trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="status != null"> <if test="record.status != null">
#{status}, #{record.status},
</if> </if>
<if test="partnerLineId != null"> <if test="record.partnerLineId != null">
#{partnerLineId}, #{record.partnerLineId},
</if> </if>
<if test="interviewPlanId != null"> <if test="record.interviewPlanId != null">
#{interviewPlanId}, #{record.interviewPlanId},
</if> </if>
<if test="partnerId != null"> <if test="record.partnerId != null">
#{partnerId}, #{record.partnerId},
</if> </if>
<if test="deadline != null"> <if test="record.deadline != null">
#{deadline}, #{record.deadline},
</if> </if>
<if test="interviewer != null"> <if test="record.interviewer != null">
#{interviewer}, #{record.interviewer},
</if> </if>
<if test="recorder != null"> <if test="record.recorder != null">
#{recorder}, #{record.recorder},
</if> </if>
<if test="processInfo != null"> <if test="record.processInfo != null">
#{processInfo}, #{record.processInfo},
</if> </if>
<if test="recordTime != null"> <if test="record.recordTime != null">
#{recordTime}, #{record.recordTime},
</if> </if>
<if test="summary != null"> <if test="record.summary != null">
#{summary}, #{record.summary},
</if> </if>
<if test="authCode != null"> <if test="record.authCode != null">
#{authCode}, #{record.authCode},
</if> </if>
<if test="passFileUrl != null"> <if test="record.passFileUrl != null">
#{passFileUrl}, #{record.passFileUrl},
</if> </if>
<if test="expiryDate != null"> <if test="record.expiryDate != null">
#{expiryDate}, #{record.expiryDate},
</if> </if>
<if test="latestLogMessage != null"> <if test="record.latestLogMessage != null">
#{latestLogMessage}, #{record.latestLogMessage},
</if> </if>
<if test="passReason != null"> <if test="record.passReason != null">
#{passReason}, #{record.passReason},
</if> </if>
<if test="certifyFile != null"> <if test="record.certifyFile != null">
#{certifyFile}, #{record.certifyFile},
</if> </if>
<if test="createTime != null"> <if test="record.createTime != null">
#{createTime}, #{record.createTime},
</if> </if>
<if test="updateTime != null"> <if test="record.updateTime != null">
#{updateTime}, #{record.updateTime},
</if> </if>
<if test="approveTime != null"> <if test="record.approveTime != null">
#{approveTime}, #{record.approveTime},
</if> </if>
<if test="partnerEnterTime != null"> <if test="record.partnerEnterTime != null">
#{partnerEnterTime}, #{record.partnerEnterTime},
</if> </if>
<if test="interviewerEnterTime != null"> <if test="record.interviewerEnterTime != null">
#{interviewerEnterTime}, #{record.interviewerEnterTime},
</if> </if>
</trim> </trim>
</insert> </insert>

View File

@@ -16,8 +16,10 @@ public class GetFreeBusyListReq {
private String startDate; private String startDate;
@ApiModelProperty("结束时间") @ApiModelProperty("结束时间")
private String endDate; private String endDate;
@ApiModelProperty("加盟商用户ID") @ApiModelProperty("线索id(C端使用)")
private String lineId;
@ApiModelProperty("加盟商用户IDC端使用与面试官id两个字段中必传一个,该字段传值时线索id必传")
private String partnerId; private String partnerId;
@ApiModelProperty("面试官ID(如果该字段传了,就查询该面试官的日程忙闲信息,否则查询加盟商对应的面试官的信息)") @ApiModelProperty("面试官ID(B端使用,如果该字段传了,就查询该面试官的日程忙闲信息,否则查询加盟商对应的面试官的信息)")
private String interviewerId; private String interviewerId;
} }

View File

@@ -4,11 +4,13 @@ import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil; import cn.hutool.core.date.DateUtil;
import com.cool.store.dto.calendar.UserFreeBusyInfoDTO; import com.cool.store.dto.calendar.UserFreeBusyInfoDTO;
import com.cool.store.entity.HyPartnerInterviewPlanDO; import com.cool.store.entity.HyPartnerInterviewPlanDO;
import com.cool.store.entity.HyPartnerLineInfoDO;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ApiException; import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException; import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest; import com.cool.store.http.ISVHttpRequest;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper; import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.mapper.HyPartnerLineInfoMapper;
import com.cool.store.request.GetFreeBusyListReq; import com.cool.store.request.GetFreeBusyListReq;
import com.cool.store.service.FeiShuService; import com.cool.store.service.FeiShuService;
import com.cool.store.vo.interview.CalendarInfo; import com.cool.store.vo.interview.CalendarInfo;
@@ -36,6 +38,9 @@ public class FeiShuServiceImpl implements FeiShuService {
@Autowired @Autowired
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
@Autowired
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
@Override @Override
public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException { public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException {
GetFreeBusyListVO freeBusyListVO = new GetFreeBusyListVO(); GetFreeBusyListVO freeBusyListVO = new GetFreeBusyListVO();
@@ -43,22 +48,25 @@ public class FeiShuServiceImpl implements FeiShuService {
String endDate = request.getEndDate();//结束日期 String endDate = request.getEndDate();//结束日期
String partnerId = request.getPartnerId();//加盟商用户ID String partnerId = request.getPartnerId();//加盟商用户ID
String interviewerId = request.getInterviewerId();//面试官ID String interviewerId = request.getInterviewerId();//面试官ID
String lineId = request.getLineId();//线索id
//如果加盟商用户ID为空且面试官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); throw new ServiceException(ErrorCodeEnum.INTERVIEW_AND_PARTNER_ID_IS_NULL);
} }
//如果加盟商用户ID不为空且面试官ID为空 //如果加盟商用户ID不为空且面试官ID为空
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isEmpty(interviewerId)) { if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
//根据加盟商用户ID查询面试官ID //根据加盟商用户ID查询面试官ID
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO(); HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setPartnerId(partnerId); hyPartnerInterviewPlanDO.setPartnerId(partnerId);
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO); List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
//如果查询结果为空,返回错误信息 //如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) { 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 startTime = 0L;
long endTime = 0L; long endTime = 0L;
DateTime startDateTime = null; DateTime startDateTime = null;

View File

@@ -207,6 +207,7 @@ public class InterviewServiceImpl implements InterviewService {
} }
@Override @Override
@Transactional
public CreateAppointmentVO createAppointment(CreateAppointmentReq request) { public CreateAppointmentVO createAppointment(CreateAppointmentReq request) {
CreateAppointmentVO vo = new CreateAppointmentVO(); CreateAppointmentVO vo = new CreateAppointmentVO();
//1.创建面试计划 //1.创建面试计划
@@ -226,14 +227,18 @@ public class InterviewServiceImpl implements InterviewService {
record.setRoomId(StringUtil.generateRoomId(startBookingTime)); record.setRoomId(StringUtil.generateRoomId(startBookingTime));
record.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode()); record.setRoomStatus(RoomStatus.WAIT_FOR_OPEN.getCode());
record.setDeleted(false); record.setDeleted(false);
long interviewPlanId = hyPartnerInterviewPlanMapper.insertSelective(record); hyPartnerInterviewPlanMapper.insertSelective(record);
vo.setInterviewPlanId(String.valueOf(interviewPlanId));
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
// vo.setInterviewPlanId(String.valueOf(interviewPlanId));
//2.创建面试信息 //2.创建面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO(); HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId); // hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId);
hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId()); hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId());
hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
hyPartnerInterviewDO.setInterviewer(request.getInterviewerId()); hyPartnerInterviewDO.setInterviewer(request.getInterviewerId());
hyPartnerInterviewDO.setCreateTime(new Date()); hyPartnerInterviewDO.setCreateTime(new Date());
hyPartnerInterviewDO.setUpdateTime(new Date()); hyPartnerInterviewDO.setUpdateTime(new Date());