进入面试间增加修改房间状态及SQL查询优化

This commit is contained in:
pserimal
2023-06-20 19:03:35 +08:00
parent 712ca7b2c8
commit 322443f2c6
8 changed files with 66 additions and 84 deletions

View File

@@ -19,10 +19,10 @@ public interface InterviewService {
/**
* 根据面试会议计划id查询面试信息
* @param interviewPlanId
* @param request
* @return
*/
InterviewVO getInterviewInfo(String interviewPlanId);
InterviewVO getInterviewInfo(QueryByInterviewPlanIdReq request);
/**
* 委托他人

View File

@@ -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;

View File

@@ -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;