面试相关修改
This commit is contained in:
@@ -64,6 +64,11 @@ public enum ErrorCodeEnum {
|
|||||||
INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID和面试官ID不能同时为空!", null),
|
INTERVIEW_AND_PARTNER_ID_IS_NULL(1021104, "加盟商用户ID和面试官ID不能同时为空!", null),
|
||||||
INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面试安排!", null),
|
INTERVIEW_PLAN_IS_NULL(1021105, "未查询到相关面试安排!", null),
|
||||||
DATE_PARAMS_IS_ERROR(1021106, "日期参数错误!", 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),
|
SIGN_FAIL(600000, "验签失败", null),
|
||||||
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
GET_ACCESSTOKEN_ERROR(600001, "获取小程序TOKEN错误!", null),
|
||||||
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
|
NEW_MOBILE_HAS_EXIST(600002,"加盟商用户信息已存在",null),
|
||||||
|
|||||||
@@ -87,7 +87,7 @@ public interface HyPartnerInterviewPlanMapper {
|
|||||||
* @param interviewId
|
* @param interviewId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
InterviewVO getInterviewInfo(String interviewId);
|
InterviewVO getInterviewInfo(String interviewPlanId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询用户基本信息
|
* 查询用户基本信息
|
||||||
|
|||||||
@@ -12,6 +12,8 @@
|
|||||||
<result column="actual_start_time" jdbcType="TIMESTAMP" property="actualStartTime" />
|
<result column="actual_start_time" jdbcType="TIMESTAMP" property="actualStartTime" />
|
||||||
<result column="actual_end_time" jdbcType="TIMESTAMP" property="actualEndTime" />
|
<result column="actual_end_time" jdbcType="TIMESTAMP" property="actualEndTime" />
|
||||||
<result column="room_id" jdbcType="VARCHAR" property="roomId" />
|
<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="room_password" jdbcType="VARCHAR" property="roomPassword" />
|
||||||
<result column="interviewer" jdbcType="VARCHAR" property="interviewer" />
|
<result column="interviewer" jdbcType="VARCHAR" property="interviewer" />
|
||||||
<result column="room_status" jdbcType="TINYINT" property="roomStatus" />
|
<result column="room_status" jdbcType="TINYINT" property="roomStatus" />
|
||||||
@@ -22,7 +24,7 @@
|
|||||||
<sql id="Base_Column_List">
|
<sql id="Base_Column_List">
|
||||||
id, partner_line_id, partner_id, interview_date, start_time, end_time, is_partner_interview,
|
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,
|
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>
|
</sql>
|
||||||
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
<insert id="insertSelective" keyColumn="id" keyProperty="record.id" useGeneratedKeys="true">
|
||||||
insert into hy_partner_interview_plan
|
insert into hy_partner_interview_plan
|
||||||
@@ -169,6 +171,12 @@
|
|||||||
<if test="record.updateTime != null">
|
<if test="record.updateTime != null">
|
||||||
update_time = #{record.updateTime},
|
update_time = #{record.updateTime},
|
||||||
</if>
|
</if>
|
||||||
|
<if test="record.feishuCalendarId != null">
|
||||||
|
feishu_calendar_id = #{record.feishuCalendarId},
|
||||||
|
</if>
|
||||||
|
<if test="record.feishuScheduleId != null">
|
||||||
|
feishu_schedule_id = #{record.feishuScheduleId},
|
||||||
|
</if>
|
||||||
</set>
|
</set>
|
||||||
where id = #{record.id}
|
where id = #{record.id}
|
||||||
</update>
|
</update>
|
||||||
@@ -280,7 +288,8 @@
|
|||||||
|
|
||||||
</select>
|
</select>
|
||||||
<select id="getInterviewInfo" resultType="com.cool.store.vo.interview.InterviewVO">
|
<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.qualify_verify_id as qualifyVerifyId,
|
||||||
hpi.pass_time as passTime,
|
hpi.pass_time as passTime,
|
||||||
hpi.pass_reason as passReason,
|
hpi.pass_reason as passReason,
|
||||||
@@ -302,12 +311,14 @@
|
|||||||
hpip.end_time as endTime,
|
hpip.end_time as endTime,
|
||||||
hpip.partner_id as partnerId,
|
hpip.partner_id as partnerId,
|
||||||
hpip.interviewer as interviewerId,
|
hpip.interviewer as interviewerId,
|
||||||
|
hpip.feishu_calendar_id as feishuCalendarId,
|
||||||
|
hpip.feishu_schedule_id as feishuScheduleId,
|
||||||
hpi.status as status
|
hpi.status as status
|
||||||
from hy_partner_interview_plan hpip
|
from hy_partner_interview_plan hpip
|
||||||
left join hy_partner_line_info hpll on hpip.partner_line_id = hpll.id
|
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_user_info hpui on hpui.partner_id = hpip.partner_id
|
||||||
left join hy_partner_interview hpi on hpip.id = hpi.interview_plan_id
|
left join hy_partner_interview hpi on hpip.id = hpi.interview_plan_id
|
||||||
where hpip.id = #{interviewId}
|
where hpip.id = #{interviewPlanId}
|
||||||
</select>
|
</select>
|
||||||
<select id="selectBySelective" resultType="com.cool.store.entity.HyPartnerInterviewPlanDO">
|
<select id="selectBySelective" resultType="com.cool.store.entity.HyPartnerInterviewPlanDO">
|
||||||
select
|
select
|
||||||
|
|||||||
@@ -65,4 +65,10 @@ public class HyPartnerInterviewPlanDO implements Serializable {
|
|||||||
|
|
||||||
@ApiModelProperty("更新时间")
|
@ApiModelProperty("更新时间")
|
||||||
private Date updateTime;
|
private Date updateTime;
|
||||||
|
|
||||||
|
@ApiModelProperty("飞书日历id")
|
||||||
|
private String feishuCalendarId;
|
||||||
|
|
||||||
|
@ApiModelProperty("飞书日程id")
|
||||||
|
private String feishuScheduleId;
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -13,7 +13,7 @@ import lombok.Data;
|
|||||||
@ApiModel
|
@ApiModel
|
||||||
public class EntrustOthersReq {
|
public class EntrustOthersReq {
|
||||||
@ApiModelProperty("会议编号")
|
@ApiModelProperty("会议编号")
|
||||||
private String interviewId;
|
private String interviewPlanId;
|
||||||
|
|
||||||
@ApiModelProperty("新面试官编号")
|
@ApiModelProperty("新面试官编号")
|
||||||
private String newInterviewerId;
|
private String newInterviewerId;
|
||||||
|
|||||||
@@ -12,8 +12,8 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
@ApiModel
|
@ApiModel
|
||||||
public class ModifyInterviewTimeReq {
|
public class ModifyInterviewTimeReq {
|
||||||
@ApiModelProperty("会议编号")
|
@ApiModelProperty("会议安排编号")
|
||||||
private String interviewId;
|
private String interviewPlanId;
|
||||||
@ApiModelProperty("新预约开始时间")
|
@ApiModelProperty("新预约开始时间")
|
||||||
private String newStartBookingTime;
|
private String newStartBookingTime;
|
||||||
@ApiModelProperty("新预约结束时间")
|
@ApiModelProperty("新预约结束时间")
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ import lombok.Data;
|
|||||||
*/
|
*/
|
||||||
@Data
|
@Data
|
||||||
@ApiModel
|
@ApiModel
|
||||||
public class QueryByInterviewIdReq {
|
public class QueryByInterviewPlanIdReq {
|
||||||
@ApiModelProperty("会议编号")
|
@ApiModelProperty("会议编号")
|
||||||
private String interviewId;
|
private String interviewPlanId;
|
||||||
}
|
}
|
||||||
@@ -12,6 +12,10 @@ import lombok.Data;
|
|||||||
@Data
|
@Data
|
||||||
@ApiModel(description = "面试信息")
|
@ApiModel(description = "面试信息")
|
||||||
public class InterviewVO {
|
public class InterviewVO {
|
||||||
|
|
||||||
|
@ApiModelProperty(value = "面试计划id", required = true)
|
||||||
|
private String interviewPlanId;
|
||||||
|
|
||||||
@ApiModelProperty(value = "会议id", required = true)
|
@ApiModelProperty(value = "会议id", required = true)
|
||||||
private String interviewId;
|
private String interviewId;
|
||||||
|
|
||||||
@@ -87,4 +91,10 @@ public class InterviewVO {
|
|||||||
@ApiModelProperty("通过函图片文件URL")
|
@ApiModelProperty("通过函图片文件URL")
|
||||||
private String passImageUrl;
|
private String passImageUrl;
|
||||||
|
|
||||||
|
@ApiModelProperty("飞书日历id")
|
||||||
|
private String feishuCalendarId;
|
||||||
|
|
||||||
|
@ApiModelProperty("飞书日程id")
|
||||||
|
private String feishuScheduleId;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.apache.commons.collections4.CollectionUtils;
|
|||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.http.ResponseEntity;
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.scheduling.annotation.Async;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
@@ -340,6 +341,7 @@ public class ISVHttpRequest {
|
|||||||
* 发送飞书卡片消息
|
* 发送飞书卡片消息
|
||||||
* @param param
|
* @param param
|
||||||
*/
|
*/
|
||||||
|
@Async
|
||||||
public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{
|
public void sendFeiShuCardMessage(SendCardMessageDTO param) throws ApiException{
|
||||||
if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){
|
if(CollectionUtils.isEmpty(param.getUserIds()) || StringUtils.isAnyBlank(param.getTitle(), param.getContent(), param.getMessageUrl()) || Objects.isNull(param.getMessageType())){
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service;
|
package com.cool.store.service;
|
||||||
|
|
||||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.request.*;
|
import com.cool.store.request.*;
|
||||||
import com.cool.store.vo.EnterInterviewVO;
|
import com.cool.store.vo.EnterInterviewVO;
|
||||||
import com.cool.store.vo.interview.CreateAppointmentVO;
|
import com.cool.store.vo.interview.CreateAppointmentVO;
|
||||||
@@ -21,18 +22,18 @@ public interface InterviewService {
|
|||||||
* @param interviewId
|
* @param interviewId
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
InterviewVO getInterviewInfo(String interviewId);
|
InterviewVO getInterviewInfo(String interviewPlanId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 委托他人
|
* 委托他人
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
void entrustOthers(EntrustOthersReq request);
|
void entrustOthers(EntrustOthersReq request) throws ApiException;
|
||||||
/**
|
/**
|
||||||
* 修改面试时间
|
* 修改面试时间
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
void modifyInterviewTime(ModifyInterviewTimeReq request);
|
void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 结束面试
|
* 结束面试
|
||||||
@@ -55,4 +56,10 @@ public interface InterviewService {
|
|||||||
*/
|
*/
|
||||||
CreateAppointmentVO createAppointment(CreateAppointmentReq request);
|
CreateAppointmentVO createAppointment(CreateAppointmentReq request);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 同意面试预约
|
||||||
|
* @param request
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package com.cool.store.service;
|
package com.cool.store.service;
|
||||||
|
|
||||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
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.EnterInterviewVO;
|
||||||
import com.cool.store.vo.PartnerInterviewInfoVO;
|
import com.cool.store.vo.PartnerInterviewInfoVO;
|
||||||
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
import com.cool.store.vo.PartnerPassLetterDetailVO;
|
||||||
@@ -27,4 +29,10 @@ public interface PartnerInterviewService {
|
|||||||
*/
|
*/
|
||||||
PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId);
|
PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 修改面试时间
|
||||||
|
* @param request
|
||||||
|
*/
|
||||||
|
void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,13 +2,21 @@ package com.cool.store.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.convert.Convert;
|
import cn.hutool.core.convert.Convert;
|
||||||
import cn.hutool.core.date.DateUtil;
|
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.dto.partner.EnterInterviewDto;
|
||||||
import com.cool.store.entity.HyPartnerInterviewDO;
|
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.MessageTypeEnum;
|
||||||
import com.cool.store.enums.RoomStatus;
|
import com.cool.store.enums.RoomStatus;
|
||||||
import com.cool.store.enums.WorkflowStatusEnum;
|
import com.cool.store.enums.WorkflowStatusEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
|
import com.cool.store.http.ISVHttpRequest;
|
||||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||||
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||||
import com.cool.store.request.*;
|
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.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -51,6 +61,9 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISVHttpRequest isvHttpRequest;
|
||||||
@Override
|
@Override
|
||||||
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
public List<InterviewVO> getInterviewList(GetInterviewListReq request) {
|
||||||
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
List<InterviewVO> interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request);
|
||||||
@@ -58,8 +71,8 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public InterviewVO getInterviewInfo(String interviewId) {
|
public InterviewVO getInterviewInfo(String interviewPlanId) {
|
||||||
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId);
|
InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewPlanId);
|
||||||
//查询面试官和记录人信息
|
//查询面试官和记录人信息
|
||||||
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
|
EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
|
||||||
vo.setInterviewerName(interviewerInfo.getName());
|
vo.setInterviewerName(interviewerInfo.getName());
|
||||||
@@ -71,22 +84,42 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void entrustOthers(EntrustOthersReq request) {
|
public void entrustOthers(EntrustOthersReq request) throws ApiException {
|
||||||
//TODO 1.原面试官日程删除
|
|
||||||
|
|
||||||
//TODO 2.新面试官日程新增
|
|
||||||
|
|
||||||
//TODO 3.面试信息变更
|
|
||||||
|
|
||||||
|
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();
|
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||||
record.setId(Long.valueOf(request.getInterviewId()));
|
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||||
record.setInterviewer(request.getInterviewId());
|
record.setInterviewer(request.getNewInterviewerId());
|
||||||
record.setUpdateTime(new Date());
|
record.setUpdateTime(new Date());
|
||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
||||||
|
|
||||||
|
|
||||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||||
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewId()));
|
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
|
||||||
hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId());
|
hyPartnerInterviewDO.setInterviewer(request.getNewInterviewerId());
|
||||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
@@ -94,11 +127,24 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void modifyInterviewTime(ModifyInterviewTimeReq request) {
|
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
|
||||||
//TODO 修改面试时间
|
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();
|
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||||
record.setId(Long.valueOf(request.getInterviewId()));
|
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||||
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
||||||
record.setUpdateTime(new Date());
|
record.setUpdateTime(new Date());
|
||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
||||||
@@ -190,5 +236,59 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
return vo;
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,21 @@
|
|||||||
package com.cool.store.service.impl;
|
package com.cool.store.service.impl;
|
||||||
|
|
||||||
|
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 cn.hutool.core.util.ObjectUtil;
|
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.dto.partner.EnterInterviewDto;
|
||||||
|
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.exception.ApiException;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
import com.cool.store.mapper.HyPartnerInterviewMapper;
|
||||||
|
import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
|
||||||
import com.cool.store.oss.OSSServer;
|
import com.cool.store.oss.OSSServer;
|
||||||
|
import com.cool.store.request.ModifyInterviewTimeReq;
|
||||||
import com.cool.store.service.PartnerInterviewService;
|
import com.cool.store.service.PartnerInterviewService;
|
||||||
import com.cool.store.utils.PDFUtils;
|
import com.cool.store.utils.PDFUtils;
|
||||||
import com.cool.store.utils.PassLetterUtils;
|
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.EnterInterviewVO;
|
||||||
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 org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.beans.factory.annotation.Value;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
import static com.cool.store.utils.PDFUtils.pdf2Img;
|
import static com.cool.store.utils.PDFUtils.pdf2Img;
|
||||||
|
|
||||||
@@ -30,6 +40,9 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private HyPartnerInterviewMapper interviewMapper;
|
private HyPartnerInterviewMapper interviewMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HyPartnerInterviewPlanMapper interviewPlanMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private OSSServer ossServer;
|
private OSSServer ossServer;
|
||||||
|
|
||||||
@@ -112,6 +125,24 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
|
|||||||
return vo;
|
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 和修改数据库相应数据
|
* 生成通知函上传 OSS 和修改数据库相应数据
|
||||||
* @return passCode
|
* @return passCode
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import javax.sql.DataSource;
|
|||||||
* @date 2023-05-17 11:28
|
* @date 2023-05-17 11:28
|
||||||
*/
|
*/
|
||||||
@SpringBootApplication
|
@SpringBootApplication
|
||||||
|
@EnableAsync
|
||||||
@MapperScan("com.cool.store.mapper")
|
@MapperScan("com.cool.store.mapper")
|
||||||
public class PartnerBWebApplication {
|
public class PartnerBWebApplication {
|
||||||
|
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
package com.cool.store.controller;
|
package com.cool.store.controller;
|
||||||
|
|
||||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
import com.cool.store.dto.partner.EnterInterviewDto;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.request.*;
|
import com.cool.store.request.*;
|
||||||
import com.cool.store.response.ResponseResult;
|
import com.cool.store.response.ResponseResult;
|
||||||
import com.cool.store.service.InterviewService;
|
import com.cool.store.service.InterviewService;
|
||||||
import com.cool.store.vo.EnterInterviewVO;
|
import com.cool.store.vo.EnterInterviewVO;
|
||||||
import com.cool.store.vo.interview.CreateAppointmentVO;
|
|
||||||
import com.cool.store.vo.interview.InterviewVO;
|
import com.cool.store.vo.interview.InterviewVO;
|
||||||
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageHelper;
|
||||||
import com.github.pagehelper.PageInfo;
|
import com.github.pagehelper.PageInfo;
|
||||||
@@ -40,23 +40,23 @@ public class InterviewController {
|
|||||||
return ResponseResult.success(new PageInfo<>(interviewList));
|
return ResponseResult.success(new PageInfo<>(interviewList));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/queryByInterviewId")
|
@PostMapping("/queryByInterviewPlanId")
|
||||||
@ApiOperation("根据面试会议id查询面试信息")
|
@ApiOperation("根据面试会议id查询面试信息")
|
||||||
public ResponseResult<InterviewVO> queryByInterviewId(@RequestBody QueryByInterviewIdReq request) {
|
public ResponseResult<InterviewVO> queryByInterviewPlanId(@RequestBody QueryByInterviewPlanIdReq request) {
|
||||||
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewId());
|
InterviewVO interviewVO = interviewService.getInterviewInfo(request.getInterviewPlanId());
|
||||||
return ResponseResult.success(interviewVO);
|
return ResponseResult.success(interviewVO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/entrustOthers")
|
@PostMapping("/entrustOthers")
|
||||||
@ApiOperation("委托他人")
|
@ApiOperation("委托他人")
|
||||||
public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) {
|
public ResponseResult entrustOthers(@RequestBody EntrustOthersReq request) throws ApiException {
|
||||||
interviewService.entrustOthers(request);
|
interviewService.entrustOthers(request);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/modifyInterviewTime")
|
@PostMapping("/modifyInterviewTime")
|
||||||
@ApiOperation("修改面试时间")
|
@ApiOperation("修改面试时间")
|
||||||
public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) {
|
public ResponseResult modifyInterviewTime(@RequestBody ModifyInterviewTimeReq request) throws ApiException {
|
||||||
interviewService.modifyInterviewTime(request);
|
interviewService.modifyInterviewTime(request);
|
||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
@@ -74,9 +74,10 @@ public class InterviewController {
|
|||||||
return ResponseResult.success(interviewService.enterInterviewRoom(dto));
|
return ResponseResult.success(interviewService.enterInterviewRoom(dto));
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/appointment")
|
@PostMapping("/appointment/approve")
|
||||||
@ApiOperation("预约面试")
|
@ApiOperation("同意面试预约")
|
||||||
public ResponseResult<CreateAppointmentVO> createAppointment(@RequestBody CreateAppointmentReq request) {
|
public ResponseResult approveAppointment(@RequestBody ApproveAppointmentReq request) throws ApiException {
|
||||||
return ResponseResult.success(interviewService.createAppointment(request));
|
interviewService.approveAppointment(request);
|
||||||
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,16 @@
|
|||||||
package com.cool.store.controller;
|
package com.cool.store.controller;
|
||||||
|
|
||||||
import com.cool.store.dto.partner.EnterInterviewDto;
|
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.response.ResponseResult;
|
||||||
|
import com.cool.store.service.InterviewService;
|
||||||
import com.cool.store.service.PartnerInterviewService;
|
import com.cool.store.service.PartnerInterviewService;
|
||||||
import com.cool.store.vo.EnterInterviewVO;
|
import com.cool.store.vo.EnterInterviewVO;
|
||||||
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.CreateAppointmentVO;
|
||||||
import io.swagger.annotations.Api;
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
@@ -19,6 +24,9 @@ public class InterviewController {
|
|||||||
@Autowired
|
@Autowired
|
||||||
private PartnerInterviewService interviewService;
|
private PartnerInterviewService interviewService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private InterviewService interviewBaseService;
|
||||||
|
|
||||||
@PostMapping("/queryByPartnerId")
|
@PostMapping("/queryByPartnerId")
|
||||||
@ApiOperation("根据用户id查询面试信息")
|
@ApiOperation("根据用户id查询面试信息")
|
||||||
public ResponseResult<PartnerInterviewInfoVO> queryByPartnerId(@RequestParam String partnerId) {
|
public ResponseResult<PartnerInterviewInfoVO> queryByPartnerId(@RequestParam String partnerId) {
|
||||||
@@ -37,4 +45,17 @@ public class InterviewController {
|
|||||||
return ResponseResult.success(interviewService.passLetterDetail(interviewPlanId));
|
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();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user