进入面试间增加修改房间状态及SQL查询优化
This commit is contained in:
@@ -34,32 +34,6 @@ public interface HyPartnerInterviewMapper {
|
|||||||
*/
|
*/
|
||||||
PartnerInterviewInfoVO queryByPartnerId(@Param("partnerId") String partnerId);
|
PartnerInterviewInfoVO queryByPartnerId(@Param("partnerId") String partnerId);
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改面试状态
|
|
||||||
* 预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝
|
|
||||||
*/
|
|
||||||
int updateInterviewStatus(@Param("interviewPlanId") String interviewPlanId, @Param("status") Integer status);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改面试实际开始时间
|
|
||||||
* @param dateTime "yyyy-MM-dd HH:mm:ss"
|
|
||||||
*/
|
|
||||||
int updateActualStartTime(@Param("interviewPlanId") String interviewPlanId, @Param("dateTime") String dateTime);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 修改加盟商或面试官进入面试时间
|
|
||||||
* @param userType 1.面试官2.加盟商3.其他
|
|
||||||
* @param dateTime "yyyy-MM-dd HH:mm:ss"
|
|
||||||
* @return
|
|
||||||
*/
|
|
||||||
int updateEnterTime(@Param("interviewPlanId") String interviewPlanId, @Param("userType") Integer userType, @Param("dateTime") String dateTime);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* 将加盟商是否参会修改为参会
|
|
||||||
* 0未参加,1参加
|
|
||||||
*/
|
|
||||||
int updateWhetherPartnerEnter(@Param("interviewPlanId") String interviewPlanId);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据会议 id 查询面试官 id
|
* 根据会议 id 查询面试官 id
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
</resultMap>
|
</resultMap>
|
||||||
|
|
||||||
<resultMap id="PartnerInterviewInfoVO" type="com.cool.store.vo.PartnerInterviewInfoVO">
|
<resultMap id="PartnerInterviewInfoVO" type="com.cool.store.vo.PartnerInterviewInfoVO">
|
||||||
<id column="interviewId" property="interviewPlanId"/>
|
<id column="interviewId" property="interviewId"/>
|
||||||
<result column="partnerId" property="partnerId"/>
|
<result column="partnerId" property="partnerId"/>
|
||||||
<result column="interviewerId" property="interviewerId"/>
|
<result column="interviewerId" property="interviewerId"/>
|
||||||
<association property="partnerName" column="partnerId" select="queryPartnerName" javaType="string"/>
|
<association property="partnerName" column="partnerId" select="queryPartnerName" javaType="string"/>
|
||||||
@@ -279,7 +279,7 @@
|
|||||||
|
|
||||||
<!-- 根据加盟商id查询面试信息 -->
|
<!-- 根据加盟商id查询面试信息 -->
|
||||||
<select id="queryByPartnerId" resultMap="PartnerInterviewInfoVO">
|
<select id="queryByPartnerId" resultMap="PartnerInterviewInfoVO">
|
||||||
SELECT t1.id interviewId, t1.id interview_id, t1.interview_plan_id, `status`, start_time, end_time, room_id, t1.partner_id partnerId, t1.interviewer interviewerId
|
SELECT t1.id interviewId, t1.id interview_id, t2.id as interviewPlanId, `status`, start_time, end_time, room_id, t1.partner_id partnerId, t1.interviewer interviewerId
|
||||||
FROM hy_partner_interview t1
|
FROM hy_partner_interview t1
|
||||||
LEFT JOIN hy_partner_interview_plan t2 ON t1.interview_plan_id = t2.id
|
LEFT JOIN hy_partner_interview_plan t2 ON t1.interview_plan_id = t2.id
|
||||||
WHERE t1.partner_id = #{partnerId}
|
WHERE t1.partner_id = #{partnerId}
|
||||||
@@ -296,41 +296,6 @@
|
|||||||
AND user_id = #{interview}
|
AND user_id = #{interview}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 修改面试状态 -->
|
|
||||||
<update id="updateInterviewStatus">
|
|
||||||
UPDATE hy_partner_interview
|
|
||||||
SET `status` = #{status}
|
|
||||||
WHERE interview_plan_id = #{interviewPlanId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 修改面试实际开始时间 -->
|
|
||||||
<update id="updateActualStartTime">
|
|
||||||
UPDATE hy_partner_interview_plan
|
|
||||||
SET actual_start_time = IF(actual_start_time IS NULL, #{dateTime}, actual_start_time)
|
|
||||||
WHERE id = #{interviewPlanId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 修改面试官或加盟商入会时间 -->
|
|
||||||
<update id="updateEnterTime">
|
|
||||||
UPDATE hy_partner_interview
|
|
||||||
<set>
|
|
||||||
<if test="userType != null and userType == 1">
|
|
||||||
interviewer_enter_time = IF(interviewer_enter_time IS NULL, #{dateTime}, interviewer_enter_time),
|
|
||||||
</if>
|
|
||||||
<if test="userType != null and userType == 2">
|
|
||||||
partner_enter_time = IF(partner_enter_time IS NULL, #{dateTime}, partner_enter_time)
|
|
||||||
</if>
|
|
||||||
</set>
|
|
||||||
WHERE interview_plan_id = #{interviewPlanId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 修改加盟商参会状态为参加 -->
|
|
||||||
<update id="updateWhetherPartnerEnter">
|
|
||||||
UPDATE hy_partner_interview_plan
|
|
||||||
SET is_partner_interview = 1
|
|
||||||
WHERE id = #{interviewPlanId}
|
|
||||||
</update>
|
|
||||||
|
|
||||||
<!-- 根据会议 id 获取面试官 id -->
|
<!-- 根据会议 id 获取面试官 id -->
|
||||||
<select id="getInterviewerByInterviewPlanId" resultMap="partnerEnterInterviewVO">
|
<select id="getInterviewerByInterviewPlanId" resultMap="partnerEnterInterviewVO">
|
||||||
SELECT interviewer, interviewer interviewer_id, partner_id
|
SELECT interviewer, interviewer interviewer_id, partner_id
|
||||||
|
|||||||
@@ -67,7 +67,7 @@ public class HyPartnerInterviewDO implements Serializable {
|
|||||||
private Date passTime;
|
private Date passTime;
|
||||||
|
|
||||||
@ApiModelProperty("有效期")
|
@ApiModelProperty("有效期")
|
||||||
private Date expiryDate;
|
private String expiryDate;
|
||||||
|
|
||||||
@ApiModelProperty("最近的日志消息")
|
@ApiModelProperty("最近的日志消息")
|
||||||
private String latestLogMessage;
|
private String latestLogMessage;
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
package com.cool.store.vo.interview;
|
package com.cool.store.vo.interview;
|
||||||
|
|
||||||
|
import com.cool.store.entity.EnterpriseUserDO;
|
||||||
import io.swagger.annotations.ApiModel;
|
import io.swagger.annotations.ApiModel;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
@@ -105,4 +106,10 @@ public class InterviewVO {
|
|||||||
@ApiModelProperty("飞书日程id")
|
@ApiModelProperty("飞书日程id")
|
||||||
private String feishuScheduleId;
|
private String feishuScheduleId;
|
||||||
|
|
||||||
|
@ApiModelProperty("开发主管信息")
|
||||||
|
private EnterpriseUserDO developmentDirector;
|
||||||
|
|
||||||
|
@ApiModelProperty("所属战区id")
|
||||||
|
private String affiliationZone;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,10 +19,10 @@ public interface InterviewService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据面试会议计划id查询面试信息
|
* 根据面试会议计划id查询面试信息
|
||||||
* @param interviewPlanId
|
* @param request
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
InterviewVO getInterviewInfo(String interviewPlanId);
|
InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 委托他人
|
* 委托他人
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ import com.cool.store.mapper.HyPartnerInterviewMapper;
|
|||||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||||
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
import com.cool.store.mapper.HyPartnerLineInfoMapper;
|
||||||
import com.cool.store.request.*;
|
import com.cool.store.request.*;
|
||||||
|
import com.cool.store.service.HyPartnerInterviewPlanService;
|
||||||
import com.cool.store.service.InterviewService;
|
import com.cool.store.service.InterviewService;
|
||||||
import com.cool.store.utils.StringUtil;
|
import com.cool.store.utils.StringUtil;
|
||||||
import com.cool.store.utils.TRTCUtils;
|
import com.cool.store.utils.TRTCUtils;
|
||||||
@@ -59,9 +60,6 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private HyPartnerInterviewMapper interviewMapper;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||||
|
|
||||||
@@ -77,7 +75,8 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InterviewVO getInterviewInfo(String interviewPlanId) {
|
public InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) {
|
||||||
|
String interviewPlanId = request.getInterviewPlanId();
|
||||||
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
||||||
//将 processInfo 解析为 List
|
//将 processInfo 解析为 List
|
||||||
if (!StringUtils.isEmpty(vo.getProcessInfo())) {
|
if (!StringUtils.isEmpty(vo.getProcessInfo())) {
|
||||||
@@ -92,6 +91,11 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
|
EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
|
||||||
vo.setRecorderName(recorderInfo.getName());
|
vo.setRecorderName(recorderInfo.getName());
|
||||||
vo.setRecorderMobile(recorderInfo.getMobile());
|
vo.setRecorderMobile(recorderInfo.getMobile());
|
||||||
|
//查询开发主管信息
|
||||||
|
if (request.getNeedDevelopmentDirector() != null && request.getNeedDevelopmentDirector()) {
|
||||||
|
//查询所属战区
|
||||||
|
String affiliationZoneId = hyPartnerLineInfoMapper.getAffiliationZoneIdByInterviewPlanId(interviewPlanId);
|
||||||
|
}
|
||||||
return vo;
|
return vo;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -191,17 +195,31 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||||
try {
|
try {
|
||||||
|
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||||
|
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
|
||||||
//1. 将面试状态改为 --> 2已开始
|
//1. 将面试状态改为 --> 2已开始
|
||||||
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
|
hyPartnerInterviewDO.setStatus(2);
|
||||||
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
||||||
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
|
hyPartnerInterviewDO.setInterviewer(DateUtil.now());
|
||||||
//4. 修改加盟商或面试官进入面试时间
|
//4. 修改加盟商或面试官进入面试时间
|
||||||
interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
|
//加盟商
|
||||||
|
if (dto.getUserType().equals(2)) {
|
||||||
|
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
|
||||||
|
} else if (dto.getUserType().equals(1)) {
|
||||||
|
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
|
||||||
|
}
|
||||||
|
//更新
|
||||||
|
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
|
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||||
|
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
|
||||||
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
||||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
|
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
|
||||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
//6. 修改房间状态为已开放
|
||||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
hyPartnerInterviewPlanDO.setRoomStatus(1);
|
||||||
//生成 userSign
|
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||||
|
//7. 查询对应的面试官id、姓名及加盟商姓名
|
||||||
|
EnterInterviewVO vo = hyPartnerInterviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
||||||
|
//8. 生成 userSign
|
||||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||||
vo.setUserSign(userSig);
|
vo.setUserSign(userSig);
|
||||||
return vo;
|
return vo;
|
||||||
|
|||||||
@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
|
|||||||
import cn.hutool.core.date.DateTime;
|
import cn.hutool.core.date.DateTime;
|
||||||
import cn.hutool.core.date.DateUtil;
|
import cn.hutool.core.date.DateUtil;
|
||||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||||
|
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||||
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.enums.WorkflowStatusEnum;
|
import com.cool.store.enums.WorkflowStatusEnum;
|
||||||
@@ -15,6 +16,7 @@ import com.cool.store.request.ModifyInterviewTimeReq;
|
|||||||
import com.cool.store.service.PartnerInterviewService;
|
import com.cool.store.service.PartnerInterviewService;
|
||||||
import com.cool.store.utils.TRTCUtils;
|
import com.cool.store.utils.TRTCUtils;
|
||||||
import com.cool.store.vo.EnterInterviewVO;
|
import com.cool.store.vo.EnterInterviewVO;
|
||||||
|
import com.cool.store.vo.EnterpriseUserBaseInfoVO;
|
||||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||||
import com.cool.store.vo.interview.InterviewVO;
|
import com.cool.store.vo.interview.InterviewVO;
|
||||||
@@ -64,17 +66,33 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
|||||||
@Transactional
|
@Transactional
|
||||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||||
try {
|
try {
|
||||||
|
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||||
|
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
|
||||||
//1. 将面试状态改为 --> 2已开始
|
//1. 将面试状态改为 --> 2已开始
|
||||||
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
|
hyPartnerInterviewDO.setStatus(2);
|
||||||
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
||||||
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
|
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
|
||||||
//4. 修改加盟商或面试官进入面试时间
|
//4. 修改加盟商或面试官进入面试时间
|
||||||
interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
|
//加盟商
|
||||||
|
if (dto.getUserType().equals(2)) {
|
||||||
|
hyPartnerInterviewDO.setPartnerEnterTime(DateUtil.date());
|
||||||
|
} else if (dto.getUserType().equals(1)) {
|
||||||
|
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
|
||||||
|
}
|
||||||
|
//更新
|
||||||
|
interviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
|
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||||
|
hyPartnerInterviewPlanDO.setId(Long.parseLong(dto.getInterviewPlanId()));
|
||||||
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
|
||||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
|
if (dto.getUserType().equals(2)) {
|
||||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
|
||||||
|
}
|
||||||
|
//6. 修改房间状态为已开放
|
||||||
|
hyPartnerInterviewPlanDO.setRoomStatus(1);
|
||||||
|
interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||||
|
//7. 查询对应的面试官id、姓名及加盟商姓名
|
||||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
||||||
//生成 userSign
|
//8. 生成 userSign
|
||||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||||
vo.setUserSign(userSig);
|
vo.setUserSign(userSig);
|
||||||
return vo;
|
return vo;
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ public class InterviewController {
|
|||||||
@PostMapping("/queryByInterviewPlanId")
|
@PostMapping("/queryByInterviewPlanId")
|
||||||
@ApiOperation("根据面试会议id查询面试信息")
|
@ApiOperation("根据面试会议id查询面试信息")
|
||||||
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
|
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
|
||||||
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewPlanId());
|
InterviewVO interviewVO = interviewService.getInterviewInfo(request);
|
||||||
return ResponseResult.success(interviewVO);
|
return ResponseResult.success(interviewVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user