进入面试间增加修改房间状态及SQL查询优化
This commit is contained in:
@@ -34,32 +34,6 @@ public interface HyPartnerInterviewMapper {
|
||||
*/
|
||||
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
|
||||
*/
|
||||
|
||||
@@ -28,7 +28,7 @@
|
||||
</resultMap>
|
||||
|
||||
<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="interviewerId" property="interviewerId"/>
|
||||
<association property="partnerName" column="partnerId" select="queryPartnerName" javaType="string"/>
|
||||
@@ -279,7 +279,7 @@
|
||||
|
||||
<!-- 根据加盟商id查询面试信息 -->
|
||||
<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
|
||||
LEFT JOIN hy_partner_interview_plan t2 ON t1.interview_plan_id = t2.id
|
||||
WHERE t1.partner_id = #{partnerId}
|
||||
@@ -296,41 +296,6 @@
|
||||
AND user_id = #{interview}
|
||||
</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 -->
|
||||
<select id="getInterviewerByInterviewPlanId" resultMap="partnerEnterInterviewVO">
|
||||
SELECT interviewer, interviewer interviewer_id, partner_id
|
||||
|
||||
@@ -67,7 +67,7 @@ public class HyPartnerInterviewDO implements Serializable {
|
||||
private Date passTime;
|
||||
|
||||
@ApiModelProperty("有效期")
|
||||
private Date expiryDate;
|
||||
private String expiryDate;
|
||||
|
||||
@ApiModelProperty("最近的日志消息")
|
||||
private String latestLogMessage;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package com.cool.store.vo.interview;
|
||||
|
||||
import com.cool.store.entity.EnterpriseUserDO;
|
||||
import io.swagger.annotations.ApiModel;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
@@ -105,4 +106,10 @@ public class InterviewVO {
|
||||
@ApiModelProperty("飞书日程id")
|
||||
private String feishuScheduleId;
|
||||
|
||||
@ApiModelProperty("开发主管信息")
|
||||
private EnterpriseUserDO developmentDirector;
|
||||
|
||||
@ApiModelProperty("所属战区id")
|
||||
private String affiliationZone;
|
||||
|
||||
}
|
||||
|
||||
@@ -19,10 +19,10 @@ public interface InterviewService {
|
||||
|
||||
/**
|
||||
* 根据面试会议计划id查询面试信息
|
||||
* @param interviewPlanId
|
||||
* @param request
|
||||
* @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.HyPartnerLineInfoMapper;
|
||||
import com.cool.store.request.*;
|
||||
import com.cool.store.service.HyPartnerInterviewPlanService;
|
||||
import com.cool.store.service.InterviewService;
|
||||
import com.cool.store.utils.StringUtil;
|
||||
import com.cool.store.utils.TRTCUtils;
|
||||
@@ -59,9 +60,6 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
@Autowired
|
||||
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper interviewMapper;
|
||||
|
||||
@Autowired
|
||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||
|
||||
@@ -77,7 +75,8 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
}
|
||||
|
||||
@Override
|
||||
public InterviewVO getInterviewInfo(String interviewPlanId) {
|
||||
public InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request) {
|
||||
String interviewPlanId = request.getInterviewPlanId();
|
||||
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
||||
//将 processInfo 解析为 List
|
||||
if (!StringUtils.isEmpty(vo.getProcessInfo())) {
|
||||
@@ -92,6 +91,11 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
|
||||
vo.setRecorderName(recorderInfo.getName());
|
||||
vo.setRecorderMobile(recorderInfo.getMobile());
|
||||
//查询开发主管信息
|
||||
if (request.getNeedDevelopmentDirector() != null && request.getNeedDevelopmentDirector()) {
|
||||
//查询所属战区
|
||||
String affiliationZoneId = hyPartnerLineInfoMapper.getAffiliationZoneIdByInterviewPlanId(interviewPlanId);
|
||||
}
|
||||
return vo;
|
||||
}
|
||||
|
||||
@@ -191,17 +195,31 @@ public class InterviewServiceImpl implements InterviewService {
|
||||
@Transactional
|
||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||
try {
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
|
||||
//1. 将面试状态改为 --> 2已开始
|
||||
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
|
||||
hyPartnerInterviewDO.setStatus(2);
|
||||
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
||||
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
|
||||
hyPartnerInterviewDO.setInterviewer(DateUtil.now());
|
||||
//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 字段
|
||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
|
||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
||||
//生成 userSign
|
||||
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
|
||||
//6. 修改房间状态为已开放
|
||||
hyPartnerInterviewPlanDO.setRoomStatus(1);
|
||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||
//7. 查询对应的面试官id、姓名及加盟商姓名
|
||||
EnterInterviewVO vo = hyPartnerInterviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
||||
//8. 生成 userSign
|
||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||
vo.setUserSign(userSig);
|
||||
return vo;
|
||||
|
||||
@@ -4,6 +4,7 @@ import cn.hutool.core.convert.Convert;
|
||||
import cn.hutool.core.date.DateTime;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||
import com.cool.store.entity.HyPartnerInterviewPlanDO;
|
||||
import com.cool.store.enums.ErrorCodeEnum;
|
||||
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.utils.TRTCUtils;
|
||||
import com.cool.store.vo.EnterInterviewVO;
|
||||
import com.cool.store.vo.EnterpriseUserBaseInfoVO;
|
||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||
import com.cool.store.vo.interview.InterviewVO;
|
||||
@@ -64,17 +66,33 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
||||
@Transactional
|
||||
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
|
||||
try {
|
||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||
hyPartnerInterviewDO.setInterviewPlanId(Long.parseLong(dto.getInterviewPlanId()));
|
||||
//1. 将面试状态改为 --> 2已开始
|
||||
interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
|
||||
hyPartnerInterviewDO.setStatus(2);
|
||||
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
|
||||
interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
|
||||
hyPartnerInterviewDO.setInterviewerEnterTime(DateUtil.date());
|
||||
//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 字段
|
||||
interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
|
||||
//6. 查询对应的面试官id、姓名及加盟商姓名
|
||||
if (dto.getUserType().equals(2)) {
|
||||
hyPartnerInterviewPlanDO.setIsPartnerInterview(1);
|
||||
}
|
||||
//6. 修改房间状态为已开放
|
||||
hyPartnerInterviewPlanDO.setRoomStatus(1);
|
||||
interviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||
//7. 查询对应的面试官id、姓名及加盟商姓名
|
||||
EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
|
||||
//生成 userSign
|
||||
//8. 生成 userSign
|
||||
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
|
||||
vo.setUserSign(userSig);
|
||||
return vo;
|
||||
|
||||
@@ -43,7 +43,7 @@ public class InterviewController {
|
||||
@PostMapping("/queryByInterviewPlanId")
|
||||
@ApiOperation("根据面试会议id查询面试信息")
|
||||
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
|
||||
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewPlanId());
|
||||
InterviewVO interviewVO = interviewService.getInterviewInfo(request);
|
||||
return ResponseResult.success(interviewVO);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user