面试相关修改

This commit is contained in:
俞扬
2023-06-19 01:52:08 +08:00
parent af47bb4c24
commit 4283a6d65d
17 changed files with 274 additions and 37 deletions

View File

@@ -64,6 +64,11 @@ public enum ErrorCodeEnum {
INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID和面试官ID不能同时为空", null),
INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面试安排!", null),
DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", null),
INTERVIEW_PLAN_NOT_EXIST(1021107, "面试计划不存在!", null),
FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面试安排失败!", null),
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面试安排失败!", null),
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
INTERVIEW_STATUS_ERROR(1021111, "面试状态错误!", null),
SIGN_FAIL(600000, "验签失败", null),
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误", null),
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),

View File

@@ -87,7 +87,7 @@ public interface HyPartnerInterviewPlanMapper {
* @param interviewId
* @return
*/
InterviewVO getInterviewInfo(String interviewId);
InterviewVO getInterviewInfo(String interviewPlanId);
/**
* 查询用户基本信息

View File

@@ -12,6 +12,8 @@
<result column="actual_start_time" jdbcType="TIMESTAMP" property="actualStartTime" />
<result column="actual_end_time" jdbcType="TIMESTAMP" property="actualEndTime" />
<result column="room_id" jdbcType="VARCHAR" property="roomId" />
<result column="feishu_calendar_id" jdbcType="VARCHAR" property="feishuCalendarId" />
<result column="feishu_schedule_id" jdbcType="VARCHAR" property="feishuScheduleId" />
<result column="room_password" jdbcType="VARCHAR" property="roomPassword" />
<result column="interviewer" jdbcType="VARCHAR" property="interviewer" />
<result column="room_status" jdbcType="TINYINT" property="roomStatus" />
@@ -22,7 +24,7 @@
<sql id="Base_Column_List">
id, partner_line_id, partner_id, interview_date, start_time, end_time, is_partner_interview,
actual_start_time, actual_end_time, room_id, room_password, interviewer, room_status,
deleted, create_time, update_time
deleted, create_time, update_time,feishu_calendar_id,feishu_schedule_id
</sql>
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
insert into hy_partner_interview_plan
@@ -169,6 +171,12 @@
<if test="record.updateTime != null">
update_time = #{record.updateTime},
</if>
<if test="record.feishuCalendarId != null">
feishu_calendar_id = #{record.feishuCalendarId},
</if>
<if test="record.feishuScheduleId != null">
feishu_schedule_id = #{record.feishuScheduleId},
</if>
</set>
where id = #{record.id}
</update>
@@ -280,7 +288,8 @@
</select>
<select id="getInterviewInfo" resultType="com.cool.store.vo.interview.InterviewVO">
select hpip.id as interviewId,
select hpip.id as interviewPlanId,
hpi.id as interviewId,
hpi.qualify_verify_id as qualifyVerifyId,
hpi.pass_time as passTime,
hpi.pass_reason as passReason,
@@ -302,12 +311,14 @@
hpip.end_time as endTime,
hpip.partner_id as partnerId,
hpip.interviewer as interviewerId,
hpip.feishu_calendar_id as feishuCalendarId,
hpip.feishu_schedule_id as feishuScheduleId,
hpi.status as status
from hy_partner_interview_plan hpip
left join hy_partner_line_info hpll on hpip.partner_line_id = hpll.id
left join hy_partner_user_info hpui on hpui.partner_id = hpip.partner_id
left join hy_partner_interview hpi on hpip.id = hpi.interview_plan_id
where hpip.id = #{interviewId}
where hpip.id = #{interviewPlanId}
</select>
<select id="selectBySelective" resultType="com.cool.store.entity.HyPartnerInterviewPlanDO">
select

View File

@@ -65,4 +65,10 @@ public class HyPartnerInterviewPlanDO implements Serializable {
@ApiModelProperty("更新时间")
private Date updateTime;
@ApiModelProperty("飞书日历id")
private String feishuCalendarId;
@ApiModelProperty("飞书日程id")
private String feishuScheduleId;
}

View File

@@ -0,0 +1,34 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
/**
* @Author: young.yu
* @Date: 2023-06-18 19:54
* @Description:
*/
@ApiModel(description = "同意面试预约")
public class ApproveAppointmentReq {
@ApiModelProperty(value = "面试安排ID", required = true)
private String interviewPlanId;
@ApiModelProperty(value = "面试官ID", required = true)
private String interviewerId;
public String getInterviewPlanId() {
return interviewPlanId;
}
public void setInterviewPlanId(String interviewPlanId) {
this.interviewPlanId = interviewPlanId;
}
public String getInterviewerId() {
return interviewerId;
}
public void setInterviewerId(String interviewerId) {
this.interviewerId = interviewerId;
}
}

View File

@@ -13,7 +13,7 @@ import lombok.Data;
@ApiModel
public class EntrustOthersReq {
@ApiModelProperty("会议编号")
private String interviewId;
private String interviewPlanId;
@ApiModelProperty("新面试官编号")
private String newInterviewerId;

View File

@@ -12,8 +12,8 @@ import lombok.Data;
@Data
@ApiModel
public class ModifyInterviewTimeReq {
@ApiModelProperty("会议编号")
private String interviewId;
@ApiModelProperty("会议安排编号")
private String interviewPlanId;
@ApiModelProperty("新预约开始时间")
private String newStartBookingTime;
@ApiModelProperty("新预约结束时间")

View File

@@ -11,7 +11,7 @@ import lombok.Data;
*/
@Data
@ApiModel
public class QueryByInterviewIdReq {
public class QueryByInterviewPlanIdReq {
@ApiModelProperty("会议编号")
private String interviewId;
private String interviewPlanId;
}

View File

@@ -12,6 +12,10 @@ import lombok.Data;
@Data
@ApiModel(description = "面试信息")
public class InterviewVO {
@ApiModelProperty(value = "面试计划id", required = true)
private String interviewPlanId;
@ApiModelProperty(value = "会议id", required = true)
private String interviewId;
@@ -87,4 +91,10 @@ public class InterviewVO {
@ApiModelProperty("通过函图片文件URL")
private String passImageUrl;
@ApiModelProperty("飞书日历id")
private String feishuCalendarId;
@ApiModelProperty("飞书日程id")
private String feishuScheduleId;
}

View File

@@ -21,6 +21,7 @@ import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity;
import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
@@ -340,6 +341,7 @@ public class ISVHttpRequest {
* 发送飞书卡片消息
* @param param
*/
@Async
public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{
if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){
return;

View File

@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.exception.ApiException;
import com.cool.store.request.*;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.interview.CreateAppointmentVO;
@@ -21,18 +22,18 @@ public interface InterviewService {
* @param interviewId
* @return
*/
InterviewVO getInterviewInfo(String interviewId);
InterviewVO getInterviewInfo(String interviewPlanId);
/**
* 委托他人
* @param request
*/
void entrustOthers(EntrustOthersReq request);
void entrustOthers(EntrustOthersReq request) throws ApiException;
/**
* 修改面试时间
* @param request
*/
void modifyInterviewTime(ModifyInterviewTimeReq request);
void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException;
/**
* 结束面试
@@ -55,4 +56,10 @@ public interface InterviewService {
*/
CreateAppointmentVO createAppointment(CreateAppointmentReq request);
/**
* 同意面试预约
* @param request
* @return
*/
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
}

View File

@@ -1,6 +1,8 @@
package com.cool.store.service;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.exception.ApiException;
import com.cool.store.request.ModifyInterviewTimeReq;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.cool.store.vo.PartnerPassLetterDetailVO;
@@ -27,4 +29,10 @@ public interface PartnerInterviewService {
*/
PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId);
/**
* 修改面试时间
* @param request
*/
void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException;
}

View File

@@ -2,13 +2,21 @@ package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import com.cool.store.dto.calendar.CreateCalendarEventDTO;
import com.cool.store.dto.calendar.DeleteCalendarEventDTO;
import com.cool.store.dto.calendar.UpdateCalendarEventDTO;
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
import com.cool.store.dto.message.SendCardMessageDTO;
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.MessageTypeEnum;
import com.cool.store.enums.RoomStatus;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest;
import com.cool.store.mapper.HyPartnerInterviewMapper;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.request.*;
@@ -24,7 +32,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
@@ -51,6 +61,9 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
@Autowired
private ISVHttpRequest isvHttpRequest;
@Override
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
@@ -58,8 +71,8 @@ public class InterviewServiceImpl implements InterviewService {
}
@Override
public InterviewVO getInterviewInfo(String interviewId) {
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId);
public InterviewVO getInterviewInfo(String interviewPlanId) {
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
//查询面试官和记录人信息
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
vo.setInterviewerName(interviewerInfo.getName());
@@ -71,22 +84,42 @@ public class InterviewServiceImpl implements InterviewService {
}
@Override
public void entrustOthers(EntrustOthersReq request) {
//TODO 1.原面试官日程删除
//TODO 2.新面试官日程新增
//TODO 3.面试信息变更
public void entrustOthers(EntrustOthersReq request) throws ApiException {
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
//如果面试信息为空,抛出异常
if (interviewInfo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//1.原面试官日程删除
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
//TODO 这里的userId是原面试官的userId还是新的
deleteCalendarEventDTO.setUserId(request.getNewInterviewerId());
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
if(userCalendarsEventDTO == null ){
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
}
//2.新面试官日程新增
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
createCalendarEventDTO.setStartTime(DateUtil.parseDate(interviewInfo.getStartTime()).getTime());
createCalendarEventDTO.setEndTime(DateUtil.parseDate(interviewInfo.getEndTime()).getTime());
createCalendarEventDTO.setUserId(request.getNewInterviewerId());
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
if(userCalendarEvent == null ){
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
}
// 3.面试信息变更
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewId()));
record.setInterviewer(request.getInterviewId());
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setInterviewer(request.getNewInterviewerId());
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId()));
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId());
hyPartnerInterviewDO.setUpdateTime(new Date());
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
@@ -94,11 +127,24 @@ public class InterviewServiceImpl implements InterviewService {
}
@Override
public void modifyInterviewTime(ModifyInterviewTimeReq request) {
//TODO 修改面试时间
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
//如果面试信息为空,抛出异常
if (interviewInfo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
UpdateCalendarEventDTO updateCalendarEventDTO = new UpdateCalendarEventDTO();
updateCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
updateCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
updateCalendarEventDTO.setStartTime(DateUtil.parseDate(request.getNewStartBookingTime()).getTime());
updateCalendarEventDTO.setEndTime(DateUtil.parseDate(request.getNewEndBookingTime()).getTime());
updateCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.updateUserCalendarEvent(updateCalendarEventDTO);
if(userCalendarsEventDTO == null ){
throw new ApiException(ErrorCodeEnum.FEISHU_UPDATE_SCHEDULE_ERROR);
}
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewId()));
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
@@ -190,5 +236,59 @@ public class InterviewServiceImpl implements InterviewService {
return vo;
}
@Override
public void approveAppointment(ApproveAppointmentReq request) throws ApiException {
//查询面试计划信息
InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
//如果面试计划不存在,抛出异常
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//创建日程信息
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
createCalendarEventDTO.setStartTime(DateUtil.parseDate(interviewVO.getStartTime()).getTime());
createCalendarEventDTO.setEndTime(DateUtil.parseDate(interviewVO.getEndTime()).getTime());
createCalendarEventDTO.setUserId(request.getInterviewerId());
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
if (userCalendarEvent == null || StringUtil.isEmpty(userCalendarEvent.getEventId())) {
throw new ServiceException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
}
//更新面试计划信息
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
record.setFeishuScheduleId(userCalendarEvent.getEventId());
record.setUpdateTime(new Date());
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
//更新面试信息
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_2.getCode()));
hyPartnerInterviewDO.setUpdateTime(new Date());
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
//TODO 异步发送短信给加盟商
//异步发飞书消息给面试官
SendCardMessageDTO sendCardMessageDTO = new SendCardMessageDTO();
sendCardMessageDTO.setUserIds(Arrays.asList(request.getInterviewerId()));
sendCardMessageDTO.setMessageType(MessageTypeEnum.SCHEDULE_REMINDER);
sendCardMessageDTO.setTitle("面试预约申请");
sendCardMessageDTO.setContent(generateFeiShuInterviewMsg(interviewVO.getPartnerName(), interviewVO.getPartnerMobile(), interviewVO.getStartTime()));
isvHttpRequest.sendFeiShuCardMessage(sendCardMessageDTO);
}
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
//"您有一个【面试预约申请】待处理预约人【姓名】手机号【13xxxxxxxxx】预约面试时间【YYYY年MM月DD日 hh:mm】请及时处理】"
StringBuffer sb = new StringBuffer();
sb.append("您有一个【面试预约申请】待处理,预约人")
.append(partnerName)
.append("手机号")
.append(partnerMobile)
.append(",预约面试时间")
.append(DateUtil.format(DateUtil.parse(interviewTime), "yyyy年MM月dd日 HH:mm"));
return sb.toString();
}
}

View File

@@ -1,13 +1,21 @@
package com.cool.store.service.impl;
import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.ObjectUtil;
import com.cool.store.dto.calendar.UpdateCalendarEventDTO;
import com.cool.store.dto.calendar.UserCalendarsEventDTO;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.entity.HyPartnerInterviewPlanDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.WorkflowStatusEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.HyPartnerInterviewMapper;
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.oss.OSSServer;
import com.cool.store.request.ModifyInterviewTimeReq;
import com.cool.store.service.PartnerInterviewService;
import com.cool.store.utils.PDFUtils;
import com.cool.store.utils.PassLetterUtils;
@@ -15,12 +23,14 @@ import com.cool.store.utils.TRTCUtils;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.cool.store.vo.PartnerPassLetterDetailVO;
import com.cool.store.vo.interview.InterviewVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.io.*;
import java.util.Date;
import static com.cool.store.utils.PDFUtils.pdf2Img;
@@ -30,6 +40,9 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
@Autowired
private HyPartnerInterviewMapper interviewMapper;
@Autowired
private HyPartnerInterviewPlanMapper interviewPlanMapper;
@Autowired
private OSSServer ossServer;
@@ -112,6 +125,24 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
return vo;
}
@Override
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
InterviewVO interviewInfo = interviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
//如果面试信息为空,抛出异常
if (interviewInfo == null) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
}
//如果面试状态不是面试时间待审核,抛出异常
if (interviewInfo.getStatus() != Integer.parseInt(WorkflowStatusEnum.RESERVATION_1.getCode())) {
throw new ApiException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR);
}
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
record.setId(Long.valueOf(request.getInterviewPlanId()));
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
record.setUpdateTime(new Date());
interviewPlanMapper.updateByPrimaryKeySelective(record);
}
/**
* 生成通知函上传 OSS 和修改数据库相应数据
* @return passCode

View File

@@ -21,6 +21,7 @@ import javax.sql.DataSource;
* @date 2023-05-17 11:28
*/
@SpringBootApplication
@EnableAsync
@MapperScan("com.cool.store.mapper")
public class PartnerBWebApplication {

View File

@@ -1,11 +1,11 @@
package com.cool.store.controller;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.exception.ApiException;
import com.cool.store.request.*;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.InterviewService;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.interview.CreateAppointmentVO;
import com.cool.store.vo.interview.InterviewVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
@@ -40,23 +40,23 @@ public class InterviewController {
return ResponseResult.success(new PageInfo<>(interviewList));
}
@PostMapping("/queryByInterviewId")
@PostMapping("/queryByInterviewPlanId")
@ApiOperation("根据面试会议id查询面试信息")
public ResponseResult<InterviewVO> queryByInterviewId(@RequestBody QueryByInterviewIdReq request) {
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewId());
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewPlanId());
return ResponseResult.success(interviewVO);
}
@PostMapping("/entrustOthers")
@ApiOperation("委托他人")
public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) {
public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) throws ApiException {
interviewService.entrustOthers(request);
return ResponseResult.success();
}
@PostMapping("/modifyInterviewTime")
@ApiOperation("修改面试时间")
public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) {
public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) throws ApiException {
interviewService.modifyInterviewTime(request);
return ResponseResult.success();
}
@@ -74,9 +74,10 @@ public class InterviewController {
return ResponseResult.success(interviewService.enterInterviewRoom(dto));
}
@PostMapping("/appointment")
@ApiOperation("预约面试")
public ResponseResult<CreateAppointmentVO> createAppointment(@RequestBody CreateAppointmentReq request) {
return ResponseResult.success(interviewService.createAppointment(request));
@PostMapping("/appointment/approve")
@ApiOperation("同意面试预约")
public ResponseResult approveAppointment(@RequestBody ApproveAppointmentReq request) throws ApiException {
interviewService.approveAppointment(request);
return ResponseResult.success();
}
}

View File

@@ -1,11 +1,16 @@
package com.cool.store.controller;
import com.cool.store.dto.partner.EnterInterviewDto;
import com.cool.store.exception.ApiException;
import com.cool.store.request.CreateAppointmentReq;
import com.cool.store.request.ModifyInterviewTimeReq;
import com.cool.store.response.ResponseResult;
import com.cool.store.service.InterviewService;
import com.cool.store.service.PartnerInterviewService;
import com.cool.store.vo.EnterInterviewVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.cool.store.vo.PartnerPassLetterDetailVO;
import com.cool.store.vo.interview.CreateAppointmentVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +24,9 @@ public class InterviewController {
@Autowired
private PartnerInterviewService interviewService;
@Autowired
private InterviewService interviewBaseService;
@PostMapping("/queryByPartnerId")
@ApiOperation("根据用户id查询面试信息")
public ResponseResult<PartnerInterviewInfoVO> queryByPartnerId(@RequestParam String partnerId) {
@@ -37,4 +45,17 @@ public class InterviewController {
return ResponseResult.success(interviewService.passLetterDetail(interviewPlanId));
}
@PostMapping("/appointment/submit")
@ApiOperation("预约面试")
public ResponseResult<CreateAppointmentVO> createAppointment(@RequestBody CreateAppointmentReq request) {
return ResponseResult.success(interviewBaseService.createAppointment(request));
}
@PostMapping("/modifyInterviewTime")
@ApiOperation("修改面试时间")
public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) throws ApiException {
interviewService.modifyInterviewTime(request);
return ResponseResult.success();
}
}