面试/面谈
This commit is contained in:
@@ -23,4 +23,8 @@ public class LineAuditInfoDAO {
|
||||
return auditInfo.getId();
|
||||
}
|
||||
|
||||
public LineAuditInfoDO getAuditInfo(Long auditId){
|
||||
return lineAuditInfoMapper.selectByPrimaryKey(auditId);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
package com.cool.store.vo;
|
||||
|
||||
import com.cool.store.entity.LineAuditInfoDO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.*;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class LineAuditInfoVO {
|
||||
|
||||
@ApiModelProperty("审核id")
|
||||
private Long auditId;
|
||||
|
||||
@ApiModelProperty("结果类型 0通过,1拒绝,2结束跟进")
|
||||
private Integer resultType;
|
||||
|
||||
@ApiModelProperty("通过原因")
|
||||
private String passReason;
|
||||
|
||||
@ApiModelProperty("公开拒绝原因")
|
||||
private String rejectPublicReason;
|
||||
|
||||
@ApiModelProperty("真实拒绝原因")
|
||||
private String rejectRealReason;
|
||||
|
||||
@ApiModelProperty("明文件或凭证")
|
||||
private String certifyFile;
|
||||
|
||||
@ApiModelProperty("审批事件")
|
||||
private Date createTime;
|
||||
|
||||
public static LineAuditInfoVO convertVO(LineAuditInfoDO auditInfo) {
|
||||
LineAuditInfoVO result = new LineAuditInfoVO();
|
||||
result.setAuditId(auditInfo.getId());
|
||||
result.setResultType(auditInfo.getResultType());
|
||||
result.setPassReason(auditInfo.getPassReason());
|
||||
result.setRejectPublicReason(auditInfo.getRejectPublicReason());
|
||||
result.setRejectRealReason(auditInfo.getRejectRealReason());
|
||||
result.setCertifyFile(auditInfo.getCertifyFile());
|
||||
result.setCreateTime(auditInfo.getCreateTime());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -22,20 +22,20 @@ public class EnterInterviewVO {
|
||||
private String interviewerId;
|
||||
|
||||
@ApiModelProperty("面试官姓名")
|
||||
private String interviewerName;
|
||||
private String interviewerUsername;
|
||||
|
||||
@ApiModelProperty("加盟商姓名")
|
||||
private String partnerName;
|
||||
|
||||
|
||||
|
||||
public EnterInterviewVO(Long lineId, String partnerId, String roomId, String userSign, String interviewerId, String interviewerName, String partnerName) {
|
||||
public EnterInterviewVO(Long lineId, String partnerId, String roomId, String userSign, String interviewerId, String interviewerUsername, String partnerName) {
|
||||
this.lineId = lineId;
|
||||
this.partnerId = partnerId;
|
||||
this.roomId = roomId;
|
||||
this.userSign = userSign;
|
||||
this.interviewerId = interviewerId;
|
||||
this.interviewerName = interviewerName;
|
||||
this.interviewerUsername = interviewerUsername;
|
||||
this.partnerName = partnerName;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,93 @@
|
||||
package com.cool.store.vo.interview;
|
||||
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.LineInterviewDO;
|
||||
import com.cool.store.vo.LineAuditInfoVO;
|
||||
import io.swagger.annotations.ApiModelProperty;
|
||||
import lombok.Data;
|
||||
|
||||
import javax.persistence.Column;
|
||||
import java.util.Date;
|
||||
|
||||
@Data
|
||||
public class InterviewDetailVO {
|
||||
|
||||
@ApiModelProperty("线索id")
|
||||
private Long lineId;
|
||||
|
||||
@ApiModelProperty("加盟商id")
|
||||
private String partnerId;
|
||||
|
||||
@ApiModelProperty("面试官id")
|
||||
private String interviewerId;
|
||||
|
||||
@ApiModelProperty("面试官姓名")
|
||||
private String interviewerUsername;
|
||||
|
||||
@ApiModelProperty("加盟商姓名")
|
||||
private String partnerName;
|
||||
|
||||
@ApiModelProperty("区域ID")
|
||||
private Long regionId;
|
||||
|
||||
@ApiModelProperty("面试日期")
|
||||
private Date interviewDate;
|
||||
|
||||
@ApiModelProperty("面试开始时间")
|
||||
private Date startTime;
|
||||
|
||||
@ApiModelProperty("面试结束时间")
|
||||
private Date endTime;
|
||||
|
||||
@ApiModelProperty("0未参加,1加盟商先进入 2面试官先进入 3双方都参加")
|
||||
private Integer joinInterviewStatus;
|
||||
|
||||
@ApiModelProperty("实际开始时间")
|
||||
private Date actualStartTime;
|
||||
|
||||
@ApiModelProperty("实际结束时间")
|
||||
private Date actualEndTime;
|
||||
|
||||
@ApiModelProperty("房间号")
|
||||
private String roomId;
|
||||
|
||||
@ApiModelProperty("房间密码")
|
||||
private String roomPassword;
|
||||
|
||||
@ApiModelProperty("房间状态:0待开放;1已开放; 2已关闭'")
|
||||
private Integer roomStatus;
|
||||
|
||||
@ApiModelProperty("面试状态 1待面试 2待审核 3审批通过 4不通过")
|
||||
private Integer interviewStatus;
|
||||
|
||||
@ApiModelProperty("面试类型:0面谈,1一审,2二审")
|
||||
private Integer interviewType;
|
||||
|
||||
@ApiModelProperty("视频链接")
|
||||
private String videoUrl;
|
||||
|
||||
@ApiModelProperty("审核信息")
|
||||
private LineAuditInfoVO auditInfo;
|
||||
|
||||
public static InterviewDetailVO convertVO(LineInfoDO lineInfo, LineInterviewDO interviewInfo) {
|
||||
InterviewDetailVO result = new InterviewDetailVO();
|
||||
result.setLineId(lineInfo.getId());
|
||||
result.setPartnerId(lineInfo.getPartnerId());
|
||||
result.setInterviewerId(interviewInfo.getInterviewer());
|
||||
result.setPartnerName(lineInfo.getUsername());
|
||||
result.setRegionId(lineInfo.getRegionId());
|
||||
result.setInterviewDate(interviewInfo.getInterviewDate());
|
||||
result.setStartTime(interviewInfo.getStartTime());
|
||||
result.setEndTime(interviewInfo.getEndTime());
|
||||
result.setJoinInterviewStatus(interviewInfo.getJoinInterviewStatus());
|
||||
result.setActualStartTime(interviewInfo.getActualStartTime());
|
||||
result.setActualEndTime(interviewInfo.getActualEndTime());
|
||||
result.setRoomId(interviewInfo.getRoomId());
|
||||
result.setRoomPassword(interviewInfo.getRoomPassword());
|
||||
result.setRoomStatus(interviewInfo.getRoomStatus());
|
||||
result.setInterviewStatus(interviewInfo.getInterviewStatus());
|
||||
result.setInterviewType(interviewInfo.getInterviewType());
|
||||
result.setVideoUrl(interviewInfo.getVideoUrl());
|
||||
return result;
|
||||
}
|
||||
}
|
||||
@@ -6,6 +6,7 @@ import com.cool.store.request.LineInterviewPageRequest;
|
||||
import com.cool.store.request.ModifyInterviewerRequest;
|
||||
import com.cool.store.vo.interview.AppointmentTimeVO;
|
||||
import com.cool.store.vo.interview.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewDetailVO;
|
||||
import com.cool.store.vo.interview.LineInterviewPageVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
|
||||
@@ -74,4 +75,11 @@ public interface LineInterviewService {
|
||||
*/
|
||||
Integer finishInterview(Long interviewId, String userId);
|
||||
|
||||
/**
|
||||
* 获取面试信息
|
||||
* @param lineId
|
||||
* @param interviewType
|
||||
* @return
|
||||
*/
|
||||
InterviewDetailVO getInterviewDetail(Long lineId, Integer interviewType);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.interview.LineInterviewPageDTO;
|
||||
import com.cool.store.entity.LineAuditInfoDO;
|
||||
import com.cool.store.entity.LineCalendarsEventDO;
|
||||
import com.cool.store.entity.LineInfoDO;
|
||||
import com.cool.store.entity.LineInterviewDO;
|
||||
@@ -13,8 +15,10 @@ import com.cool.store.service.LineInterviewService;
|
||||
import com.cool.store.utils.TRTCUtils;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import com.cool.store.utils.poi.DateUtils;
|
||||
import com.cool.store.vo.LineAuditInfoVO;
|
||||
import com.cool.store.vo.interview.AppointmentTimeVO;
|
||||
import com.cool.store.vo.interview.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewDetailVO;
|
||||
import com.cool.store.vo.interview.LineInterviewPageVO;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
@@ -59,6 +63,8 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
private HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||
@Resource
|
||||
private LineAuditInfoDAO lineAuditInfoDAO;
|
||||
|
||||
@Override
|
||||
public List<AppointmentTimeVO> getAppointmentTime(Long lineId, Integer interviewType, LocalDate appointmentDate) {
|
||||
@@ -230,6 +236,24 @@ public class LineInterviewServiceImpl extends LineFlowService implements LineInt
|
||||
return lineInterviewDAO.updateInterviewInfo(interviewInfo);
|
||||
}
|
||||
|
||||
@Override
|
||||
public InterviewDetailVO getInterviewDetail(Long lineId, Integer interviewType) {
|
||||
InterviewTypeEnum interviewTypeEnum = InterviewTypeEnum.match(interviewType);
|
||||
LineInfoDO lineInfo = lineInfoDAO.getLineInfo(lineId);
|
||||
LineInterviewDO interviewInfo = lineInterviewDAO.getInterviewInfo(lineId, interviewTypeEnum);
|
||||
if(Objects.isNull(lineInfo) || Objects.isNull(interviewInfo)){
|
||||
return null;
|
||||
}
|
||||
InterviewDetailVO result = InterviewDetailVO.convertVO(lineInfo, interviewInfo);
|
||||
result.setInterviewerUsername(enterpriseUserDAO.getUserName(interviewInfo.getInterviewer()));
|
||||
Long auditId = interviewInfo.getAuditId();
|
||||
if(Objects.nonNull(auditId) && auditId > CommonConstants.ZERO_LONG){
|
||||
LineAuditInfoDO auditInfo = lineAuditInfoDAO.getAuditInfo(auditId);
|
||||
result.setAuditInfo(LineAuditInfoVO.convertVO(auditInfo));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected Boolean initStage(Long auditId, LineInfoDO lineInfo) {
|
||||
|
||||
@@ -9,6 +9,7 @@ import com.cool.store.request.ModifyInterviewerRequest;
|
||||
import com.cool.store.response.ResponseResult;
|
||||
import com.cool.store.service.LineInterviewService;
|
||||
import com.cool.store.vo.interview.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewDetailVO;
|
||||
import com.cool.store.vo.interview.LineInterviewPageVO;
|
||||
import com.github.pagehelper.PageInfo;
|
||||
import io.swagger.annotations.Api;
|
||||
@@ -52,6 +53,12 @@ public class PCLineInterviewController {
|
||||
return ResponseResult.success(lineInterviewService.getInterviewerPage(request));
|
||||
}
|
||||
|
||||
@ApiOperation("获取面试信息")
|
||||
@GetMapping("/detail")
|
||||
public ResponseResult<InterviewDetailVO> getInterviewDetail(@RequestParam("lineId")Long lineId, @RequestParam("interviewType")Integer interviewType) {
|
||||
return ResponseResult.success(lineInterviewService.getInterviewDetail(lineId, interviewType));
|
||||
}
|
||||
|
||||
@ApiOperation("进入房间")
|
||||
@GetMapping("/room/enter")
|
||||
public ResponseResult<EnterInterviewVO> enterInterviewRoom(@RequestParam("interviewId")Long interviewId) {
|
||||
|
||||
@@ -8,6 +8,7 @@ import com.cool.store.service.LineInterviewService;
|
||||
import com.cool.store.vo.PartnerUserInfoVO;
|
||||
import com.cool.store.vo.interview.AppointmentTimeVO;
|
||||
import com.cool.store.vo.interview.EnterInterviewVO;
|
||||
import com.cool.store.vo.interview.InterviewDetailVO;
|
||||
import io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiImplicitParam;
|
||||
import io.swagger.annotations.ApiImplicitParams;
|
||||
@@ -55,6 +56,12 @@ public class LineInterviewController {
|
||||
return ResponseResult.success(lineInterviewService.appointmentTime(request));
|
||||
}
|
||||
|
||||
@ApiOperation("获取面试信息")
|
||||
@GetMapping("/detail")
|
||||
public ResponseResult<InterviewDetailVO> getInterviewDetail(@RequestParam("lineId")Long lineId, @RequestParam("interviewType")Integer interviewType) {
|
||||
return ResponseResult.success(lineInterviewService.getInterviewDetail(lineId, interviewType));
|
||||
}
|
||||
|
||||
@ApiOperation("进入房间")
|
||||
@GetMapping("/room/enter")
|
||||
public ResponseResult<EnterInterviewVO> enterInterviewRoom(@RequestParam("interviewId")Long interviewId) {
|
||||
|
||||
Reference in New Issue
Block a user