Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner
This commit is contained in:
@@ -69,7 +69,7 @@ public enum ErrorCodeEnum {
|
|||||||
FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面试安排失败!", null),
|
FEISHU_DELETE_SCHEDULE_ERROR(1021108, "删除原面试安排失败!", null),
|
||||||
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面试安排失败!", null),
|
CREATE_CALENDAR_EVENT_FAIL(1021109, "创建面试安排失败!", null),
|
||||||
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
|
FEISHU_UPDATE_SCHEDULE_ERROR(1021110, "修改面试安排失败!", null),
|
||||||
INTERVIEW_STATUS_ERROR(1021111, "当前面试状态不允许修改面试时间!", null),
|
INTERVIEW_STATUS_ERROR(1021111, "当前面试状态不允许该操作!", null),
|
||||||
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面试计划已存在,请勿重复申请!", null),
|
INTERVIEW_PLAN_ALREADY_EXIST(1021112, "面试计划已存在,请勿重复申请!", null),
|
||||||
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
|
INTERVIEW_LINE_ID_IS_NULL(1021113, "线索id为空!", null),
|
||||||
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null),
|
||||||
|
|||||||
@@ -153,4 +153,6 @@ public interface HyPartnerInterviewPlanMapper {
|
|||||||
*/
|
*/
|
||||||
HyPartnerInterviewPlanDO getInterviewPlanById(String interviewPlanId);
|
HyPartnerInterviewPlanDO getInterviewPlanById(String interviewPlanId);
|
||||||
|
|
||||||
|
HyPartnerInterviewPlanDO getInterviewPlanByLineId(Long lineId);
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -454,7 +454,7 @@
|
|||||||
</select>
|
</select>
|
||||||
|
|
||||||
<select id="selectInterviewIdByLineId" resultType="java.lang.Long">
|
<select id="selectInterviewIdByLineId" resultType="java.lang.Long">
|
||||||
select id from hy_partner_interview_plan where partner_line_id = #{lineId}
|
select id from hy_partner_interview_plan where partner_line_id = #{lineId} and deleted = '0'
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<!-- 查询用户基本信息 -->
|
<!-- 查询用户基本信息 -->
|
||||||
@@ -484,4 +484,9 @@
|
|||||||
from hy_partner_interview_plan
|
from hy_partner_interview_plan
|
||||||
where id = #{interviewPlanId}
|
where id = #{interviewPlanId}
|
||||||
</select>
|
</select>
|
||||||
|
<select id="getInterviewPlanByLineId" resultType="com.cool.store.entity.HyPartnerInterviewPlanDO">
|
||||||
|
select <include refid="Base_Column_List"></include>
|
||||||
|
from hy_partner_interview_plan
|
||||||
|
where partner_line_id = #{lineId} and deleted = 0
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
@@ -34,11 +34,11 @@ public class PartnerLineBaseInfoVO {
|
|||||||
private String workflowStatus;
|
private String workflowStatus;
|
||||||
|
|
||||||
@ApiModelProperty("当前阶段截止时间")
|
@ApiModelProperty("当前阶段截止时间")
|
||||||
@JsonFormat(pattern = "yyyy.MM.dd HH:mm", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy.MM.dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date deadline;
|
private Date deadline;
|
||||||
|
|
||||||
@ApiModelProperty("结束跟进时间 冷静期使用 计算15天还剩多少天")
|
@ApiModelProperty("结束跟进时间 冷静期使用 计算15天还剩多少天")
|
||||||
@JsonFormat(pattern = "yyyy.MM.dd HH:mm", timezone = "GMT+8")
|
@JsonFormat(pattern = "yyyy.MM.dd HH:mm:ss", timezone = "GMT+8")
|
||||||
private Date closeTime;
|
private Date closeTime;
|
||||||
|
|
||||||
@ApiModelProperty("冷静期首次登录标识 true-是首次")
|
@ApiModelProperty("冷静期首次登录标识 true-是首次")
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ public interface HyPartnerIntentInfoService {
|
|||||||
|
|
||||||
String submitWantShopInfo(PartnerWantShopInfoRequest request);
|
String submitWantShopInfo(PartnerWantShopInfoRequest request);
|
||||||
|
|
||||||
String submitIndustryCognitionInfo(IndustryCognitionInfoRequest request);
|
Boolean submitIndustryCognitionInfo(IndustryCognitionInfoRequest request);
|
||||||
|
|
||||||
PartnerIntentInfoVO queryPartnerIntentInfo(PartnerUserInfoVO userInfoVO, Long lineId);
|
PartnerIntentInfoVO queryPartnerIntentInfo(PartnerUserInfoVO userInfoVO, Long lineId);
|
||||||
|
|
||||||
|
|||||||
@@ -63,7 +63,9 @@ public interface InterviewService {
|
|||||||
*/
|
*/
|
||||||
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
void approveAppointment(ApproveAppointmentReq request) throws ApiException;
|
||||||
void reInterview(ReInterviewReq request) throws ApiException;
|
void reInterview(ReInterviewReq request) throws ApiException;
|
||||||
void rejectInterview(RejectInterviewReq request) throws ApiException;
|
// void rejectInterview(RejectInterviewReq request) throws ApiException;
|
||||||
|
|
||||||
public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException;
|
public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException;
|
||||||
|
|
||||||
|
public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service;
|
package com.cool.store.service;
|
||||||
|
|
||||||
import com.cool.store.enums.WorkflowStageEnum;
|
import com.cool.store.enums.WorkflowStageEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.request.CloseFollowRequest;
|
import com.cool.store.request.CloseFollowRequest;
|
||||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||||
|
|
||||||
@@ -24,6 +25,6 @@ public interface WorkFlowService {
|
|||||||
* @param workflowStage
|
* @param workflowStage
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
void transferInvestmentManager(WorkflowStageEnum workflowStage,TransferInvestmentManagerRequest request);
|
void transferInvestmentManager(WorkflowStageEnum workflowStage,TransferInvestmentManagerRequest request) throws ApiException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String submitIndustryCognitionInfo(IndustryCognitionInfoRequest request) {
|
public Boolean submitIndustryCognitionInfo(IndustryCognitionInfoRequest request) {
|
||||||
log.info("HyPartnerClerkServiceImpl#submitPartnerIntentInfo request:{}", JSONObject.toJSONString(request));
|
log.info("HyPartnerClerkServiceImpl#submitPartnerIntentInfo request:{}", JSONObject.toJSONString(request));
|
||||||
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
|
if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){
|
||||||
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED);
|
||||||
@@ -204,7 +204,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
|||||||
if(!request.getSubmitFlag()){
|
if(!request.getSubmitFlag()){
|
||||||
// 自动保存时
|
// 自动保存时
|
||||||
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
|
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
|
||||||
return "";
|
return true;
|
||||||
}
|
}
|
||||||
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
|
HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId());
|
||||||
if(intentInfoDO == null){
|
if(intentInfoDO == null){
|
||||||
@@ -216,7 +216,7 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic
|
|||||||
hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO);
|
hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO);
|
||||||
}
|
}
|
||||||
redisUtilPool.delKey(cacheKey);
|
redisUtilPool.delKey(cacheKey);
|
||||||
return null;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.cool.store.vo.*;
|
|||||||
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;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
@@ -41,6 +42,7 @@ import java.util.stream.Collectors;
|
|||||||
* @Version 1.0
|
* @Version 1.0
|
||||||
*/
|
*/
|
||||||
@Service
|
@Service
|
||||||
|
@Slf4j
|
||||||
public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
@@ -567,7 +569,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
|
|||||||
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
|
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
|
||||||
// 15天之后可以继续填写意向信息,把之前的线索删除
|
// 15天之后可以继续填写意向信息,把之前的线索删除
|
||||||
if(hyPartnerLineInfoDO != null && hyPartnerLineInfoDO.getDeadline() != null &&
|
if(hyPartnerLineInfoDO != null && hyPartnerLineInfoDO.getDeadline() != null &&
|
||||||
hyPartnerLineInfoDO.getDeadline().before(new Date())){
|
DateUtil.offsetSecond(hyPartnerLineInfoDO.getDeadline(), -2).before(new Date())){
|
||||||
//将老的线索置为删除状态
|
//将老的线索置为删除状态
|
||||||
hyPartnerLineInfoDAO.batchDeleted(Collections.singletonList(hyPartnerLineInfoDO.getId()));
|
hyPartnerLineInfoDAO.batchDeleted(Collections.singletonList(hyPartnerLineInfoDO.getId()));
|
||||||
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerLineInfoDO.getPartnerId());
|
||||||
|
|||||||
@@ -191,17 +191,17 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* PC端修改面试时间,目前和小程序端逻辑一致,后续可能扩展
|
* PC端修改面试时间,和小程序端逻辑不一致,PC端修改需要修改日程信息
|
||||||
* @param request
|
* @param request
|
||||||
* @throws ApiException
|
* @throws ApiException
|
||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
|
public void modifyInterviewTime(ModifyInterviewTimeReq request) throws ApiException {
|
||||||
//只有房间状态是待开放才可以修改时间
|
//只有房间状态是待开放才可以修改时间
|
||||||
Integer roomStatus = hyPartnerInterviewPlanMapper.getRoomStatus(request.getInterviewPlanId());
|
// Integer roomStatus = hyPartnerInterviewPlanMapper.getRoomStatus(request.getInterviewPlanId());
|
||||||
if (!roomStatus.equals(RoomStatus.WAIT_FOR_OPEN.getCode())) {
|
// if (!roomStatus.equals(RoomStatus.WAIT_FOR_OPEN.getCode())) {
|
||||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
// throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||||
}
|
// }
|
||||||
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
||||||
//如果面试信息为空,抛出异常
|
//如果面试信息为空,抛出异常
|
||||||
if (interviewInfo == null) {
|
if (interviewInfo == null) {
|
||||||
@@ -211,11 +211,43 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
throw new ApiException(ErrorCodeEnum.ROOM_STATUS_ERROR);
|
||||||
}
|
}
|
||||||
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
|
||||||
|
if(StringUtils.isNotEmpty(interviewInfo.getFeishuCalendarId())&&StringUtils.isNotEmpty(interviewInfo.getFeishuScheduleId())) {
|
||||||
|
//1.原面试官日程删除
|
||||||
|
DeleteCalendarEventDTO deleteCalendarEventDTO = new DeleteCalendarEventDTO();
|
||||||
|
deleteCalendarEventDTO.setCalendarId(interviewInfo.getFeishuCalendarId());
|
||||||
|
deleteCalendarEventDTO.setEventId(interviewInfo.getFeishuScheduleId());
|
||||||
|
deleteCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||||
|
UserCalendarsEventDTO userCalendarsEventDTO = isvHttpRequest.deleteUserCalendarEvent(deleteCalendarEventDTO);
|
||||||
|
if (userCalendarsEventDTO == null) {
|
||||||
|
throw new ApiException(ErrorCodeEnum.FEISHU_DELETE_SCHEDULE_ERROR);
|
||||||
|
}
|
||||||
|
//2.新面试官日程新增
|
||||||
|
CreateCalendarEventDTO createCalendarEventDTO = new CreateCalendarEventDTO();
|
||||||
|
createCalendarEventDTO.setStartTime(DateUtil.parse(request.getNewStartBookingTime()).getTime());
|
||||||
|
createCalendarEventDTO.setEndTime(DateUtil.parse(request.getNewEndBookingTime()).getTime());
|
||||||
|
createCalendarEventDTO.setUserId(interviewInfo.getInterviewerId());
|
||||||
|
createCalendarEventDTO.setJoinUserIds(Arrays.asList(interviewInfo.getInterviewerId()));
|
||||||
|
createCalendarEventDTO.setSummary(generateInterviewTitle(interviewInfo.getPartnerLineId()));
|
||||||
|
UserCalendarsEventDTO userCalendarEvent = isvHttpRequest.createUserCalendarEvent(createCalendarEventDTO);
|
||||||
|
if (userCalendarEvent == null) {
|
||||||
|
throw new ApiException(ErrorCodeEnum.CREATE_CALENDAR_EVENT_FAIL);
|
||||||
|
}
|
||||||
|
record.setFeishuCalendarId(userCalendarEvent.getCalendarId());
|
||||||
|
record.setFeishuScheduleId(userCalendarEvent.getEventId());
|
||||||
|
}
|
||||||
|
|
||||||
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
record.setId(Long.valueOf(request.getInterviewPlanId()));
|
||||||
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
record.setStartTime(Convert.toDate(request.getNewStartBookingTime()));
|
||||||
record.setEndTime(Convert.toDate(request.getNewEndBookingTime()));
|
record.setEndTime(Convert.toDate(request.getNewEndBookingTime()));
|
||||||
record.setUpdateTime(new Date());
|
record.setUpdateTime(new Date());
|
||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(record);
|
||||||
|
|
||||||
|
//更新面试信息
|
||||||
|
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||||
|
hyPartnerInterviewDO.setInterviewPlanId(Long.valueOf(request.getInterviewPlanId()));
|
||||||
|
hyPartnerInterviewDO.setInterviewer(interviewInfo.getInterviewerId());
|
||||||
|
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||||
|
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -461,64 +493,38 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
|
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
|
||||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
||||||
}
|
}
|
||||||
//更新面试信息
|
rejectInterviewAndSuspendLine(Long.parseLong(interviewVO.getInterviewId()),Long.parseLong(request.getInterviewPlanId()),request.getCertifyFile());
|
||||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
|
||||||
hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
|
|
||||||
hyPartnerInterviewDO.setDeleted(true);
|
|
||||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
|
||||||
hyPartnerInterviewDO.setSummary(request.getReason());
|
|
||||||
hyPartnerInterviewDO.setCertifyFile(request.getCertifyFile());
|
|
||||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
|
||||||
//更新面试计划信息
|
|
||||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
|
||||||
hyPartnerInterviewPlanDO.setId(Long.valueOf(request.getInterviewPlanId()));
|
|
||||||
hyPartnerInterviewPlanDO.setDeleted(true);
|
|
||||||
hyPartnerInterviewPlanDO.setUpdateTime(new Date());
|
|
||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
|
||||||
|
|
||||||
//更新线索状态
|
//更新线索状态
|
||||||
HyPartnerLineInfoDO hyPartnerLineDO = new HyPartnerLineInfoDO();
|
HyPartnerLineInfoDO hyPartnerLineDO = new HyPartnerLineInfoDO();
|
||||||
hyPartnerLineDO.setId(Long.valueOf(request.getInterviewPlanId()));
|
hyPartnerLineDO.setId(interviewVO.getPartnerLineId());
|
||||||
hyPartnerLineDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
|
hyPartnerLineDO.setWorkflowStage(WorkflowStageEnum.RESERVATION.getCode());
|
||||||
hyPartnerLineDO.setWorkflowStatus(WorkflowStatusEnum.RESERVATION_0.getCode());
|
hyPartnerLineDO.setWorkflowStatus(WorkflowStatusEnum.RESERVATION_0.getCode());
|
||||||
hyPartnerLineDO.setUpdateTime(new Date());
|
hyPartnerLineDO.setUpdateTime(new Date());
|
||||||
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineDO);
|
hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineDO);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
// @Override
|
||||||
@Transactional
|
// @Transactional
|
||||||
public void rejectInterview(RejectInterviewReq request) throws ApiException {
|
// public void rejectInterview(RejectInterviewReq request) throws ApiException {
|
||||||
//查询面试计划信息
|
//查询面试计划信息
|
||||||
InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
// InterviewVO interviewVO = hyPartnerInterviewPlanMapper.getInterviewInfo(request.getInterviewPlanId());
|
||||||
//如果面试计划不存在,抛出异常
|
// //如果面试计划不存在,抛出异常
|
||||||
if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
|
// if (interviewVO == null||StringUtil.isEmpty(interviewVO.getInterviewPlanId())) {
|
||||||
throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
// throw new ServiceException(ErrorCodeEnum.INTERVIEW_PLAN_NOT_EXIST);
|
||||||
}
|
// }
|
||||||
//更新面试信息
|
//
|
||||||
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
// rejectInterviewAndSuspendLine(Long.parseLong(request.getInterviewId()),Long.parseLong(request.getInterviewPlanId()),request.getCertifyFile())
|
||||||
hyPartnerInterviewDO.setId(Long.valueOf(interviewVO.getInterviewId()));
|
// //更新线索状态
|
||||||
hyPartnerInterviewDO.setDeleted(true);
|
// CloseFollowRequest closeFollowRequest = new CloseFollowRequest();
|
||||||
hyPartnerInterviewDO.setUpdateTime(new Date());
|
// closeFollowRequest.setRejectPublicReason(request.getRejectPublicReason());
|
||||||
hyPartnerInterviewDO.setCertifyFile(request.getCertifyFile());
|
// closeFollowRequest.setRejectRealReason(request.getRejectRealReason());
|
||||||
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
// closeFollowRequest.setLineId(Long.valueOf(request.getLineId()));
|
||||||
//更新面试计划信息
|
// closeFollowRequest.setType("reject");
|
||||||
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
// if(StringUtils.isNotEmpty(request.getCertifyFile())){
|
||||||
hyPartnerInterviewPlanDO.setId(Long.valueOf(request.getInterviewPlanId()));
|
// closeFollowRequest.setCertifyFile(Arrays.asList(request.getCertifyFile().split(",")));
|
||||||
hyPartnerInterviewPlanDO.setDeleted(true);
|
// }
|
||||||
hyPartnerInterviewPlanDO.setUpdateTime(new Date());
|
// hyPartnerLineInfoService.closeOrPassFollow(request.getOperatorId(),closeFollowRequest);
|
||||||
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
// }
|
||||||
|
|
||||||
//更新线索状态
|
|
||||||
CloseFollowRequest closeFollowRequest = new CloseFollowRequest();
|
|
||||||
closeFollowRequest.setRejectPublicReason(request.getRejectPublicReason());
|
|
||||||
closeFollowRequest.setRejectRealReason(request.getRejectRealReason());
|
|
||||||
closeFollowRequest.setLineId(Long.valueOf(request.getLineId()));
|
|
||||||
closeFollowRequest.setType("reject");
|
|
||||||
if(StringUtils.isNotEmpty(request.getCertifyFile())){
|
|
||||||
closeFollowRequest.setCertifyFile(Arrays.asList(request.getCertifyFile().split(",")));
|
|
||||||
}
|
|
||||||
hyPartnerLineInfoService.closeOrPassFollow(request.getOperatorId(),closeFollowRequest);
|
|
||||||
}
|
|
||||||
|
|
||||||
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
|
public String generateFeiShuInterviewMsg(String partnerName, String partnerMobile, String interviewTime){
|
||||||
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
|
//"您有一个【面试预约申请】待处理,预约人【姓名】手机号【13xxxxxxxxx】,预约面试时间【YYYY年MM月DD日 hh:mm】,请及时处理】"
|
||||||
@@ -556,4 +562,24 @@ public class InterviewServiceImpl implements InterviewService {
|
|||||||
return "意向 "+partnerBaseInfo.getUsername()+" 线上面试";
|
return "意向 "+partnerBaseInfo.getUsername()+" 线上面试";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//拒绝面试更新相关信息
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void rejectInterviewAndSuspendLine(Long iterviewId,Long interviewPlanId,String certifyFile){
|
||||||
|
//更新面试信息
|
||||||
|
HyPartnerInterviewDO hyPartnerInterviewDO = new HyPartnerInterviewDO();
|
||||||
|
hyPartnerInterviewDO.setId(iterviewId);
|
||||||
|
hyPartnerInterviewDO.setDeleted(true);
|
||||||
|
hyPartnerInterviewDO.setUpdateTime(new Date());
|
||||||
|
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.INTERVIEW_7.getCode()));
|
||||||
|
hyPartnerInterviewDO.setCertifyFile(certifyFile);
|
||||||
|
hyPartnerInterviewMapper.updateByPrimaryKeySelective(hyPartnerInterviewDO);
|
||||||
|
//更新面试计划信息
|
||||||
|
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
|
||||||
|
hyPartnerInterviewPlanDO.setId(interviewPlanId);
|
||||||
|
hyPartnerInterviewPlanDO.setDeleted(true);
|
||||||
|
hyPartnerInterviewPlanDO.setUpdateTime(new Date());
|
||||||
|
hyPartnerInterviewPlanMapper.updateByPrimaryKeySelective(hyPartnerInterviewPlanDO);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service.impl;
|
package com.cool.store.service.impl;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.constants.CommonConstants;
|
import com.cool.store.constants.CommonConstants;
|
||||||
|
import com.cool.store.constants.RedisConstant;
|
||||||
import com.cool.store.dao.HyOpenAreaInfoDAO;
|
import com.cool.store.dao.HyOpenAreaInfoDAO;
|
||||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
||||||
import com.cool.store.entity.HyOpenAreaInfoDO;
|
import com.cool.store.entity.HyOpenAreaInfoDO;
|
||||||
@@ -9,11 +10,14 @@ import com.cool.store.entity.HyPartnerUserInfoDO;
|
|||||||
import com.cool.store.enums.ErrorCodeEnum;
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
import com.cool.store.exception.ServiceException;
|
import com.cool.store.exception.ServiceException;
|
||||||
import com.cool.store.request.PartnerUserInfoRequest;
|
import com.cool.store.request.PartnerUserInfoRequest;
|
||||||
|
import com.cool.store.request.PartnerWantShopInfoRequest;
|
||||||
import com.cool.store.service.HyPartnerBaseInfoService;
|
import com.cool.store.service.HyPartnerBaseInfoService;
|
||||||
import com.cool.store.service.HyPartnerLineInfoService;
|
import com.cool.store.service.HyPartnerLineInfoService;
|
||||||
import com.cool.store.service.PartnerUserInfoService;
|
import com.cool.store.service.PartnerUserInfoService;
|
||||||
|
import com.cool.store.utils.RedisUtilPool;
|
||||||
import com.cool.store.vo.ApplyBaseInfoVO;
|
import com.cool.store.vo.ApplyBaseInfoVO;
|
||||||
import com.cool.store.vo.InviteCodeDetailVO;
|
import com.cool.store.vo.InviteCodeDetailVO;
|
||||||
|
import com.cool.store.vo.PartnerIntentInfoVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.apache.commons.collections4.CollectionUtils;
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
@@ -21,6 +25,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
|||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import java.text.MessageFormat;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
|
|
||||||
@@ -39,7 +44,8 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
|||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
HyOpenAreaInfoDAO hyOpenAreaInfoDAO;
|
||||||
|
@Resource
|
||||||
|
private RedisUtilPool redisUtilPool;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HyPartnerUserInfoDO selectByPartnerId(String partnerId) {
|
public HyPartnerUserInfoDO selectByPartnerId(String partnerId) {
|
||||||
@@ -106,6 +112,14 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService {
|
|||||||
applyBaseInfoVO.setProvinceHasOpenArea(true);
|
applyBaseInfoVO.setProvinceHasOpenArea(true);
|
||||||
}
|
}
|
||||||
applyBaseInfoVO.setLineStatus(hyPartnerLineInfoDO.getLineStatus());
|
applyBaseInfoVO.setLineStatus(hyPartnerLineInfoDO.getLineStatus());
|
||||||
|
String cacheKey = MessageFormat.format(RedisConstant.PARTNER_WANTSHOPINFO_CACHE_KEY, partnerUserInfoRequest.getPartnerId(), hyPartnerLineInfoDO.getId());
|
||||||
|
if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) {
|
||||||
|
PartnerWantShopInfoRequest request = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerWantShopInfoRequest.class);
|
||||||
|
if(!partnerUserInfoRequest.getWantShopArea().equals(request.getWantShopArea())){
|
||||||
|
request.setWantShopArea(partnerUserInfoRequest.getWantShopArea());
|
||||||
|
}
|
||||||
|
redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS);
|
||||||
|
}
|
||||||
return applyBaseInfoVO;
|
return applyBaseInfoVO;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service.impl;
|
package com.cool.store.service.impl;
|
||||||
|
|
||||||
import com.cool.store.enums.WorkflowStageEnum;
|
import com.cool.store.enums.WorkflowStageEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.request.CloseFollowRequest;
|
import com.cool.store.request.CloseFollowRequest;
|
||||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||||
import com.cool.store.service.WorkFlowService;
|
import com.cool.store.service.WorkFlowService;
|
||||||
@@ -39,7 +40,7 @@ public class WorkFlowServiceImpl implements WorkFlowService{
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transferInvestmentManager(WorkflowStageEnum workflowStage, TransferInvestmentManagerRequest request) {
|
public void transferInvestmentManager(WorkflowStageEnum workflowStage, TransferInvestmentManagerRequest request) throws ApiException {
|
||||||
getWorkflowService(workflowStage).transferInvestmentManager(request);
|
getWorkflowService(workflowStage).transferInvestmentManager(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,33 @@
|
|||||||
package com.cool.store.service.impl.workflow;
|
package com.cool.store.service.impl.workflow;
|
||||||
|
|
||||||
|
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.UserCalendarsEventDTO;
|
||||||
|
import com.cool.store.entity.HyPartnerInterviewDO;
|
||||||
|
import com.cool.store.enums.ErrorCodeEnum;
|
||||||
|
import com.cool.store.enums.RoomStatus;
|
||||||
import com.cool.store.enums.WorkflowStageEnum;
|
import com.cool.store.enums.WorkflowStageEnum;
|
||||||
|
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.CloseFollowRequest;
|
import com.cool.store.request.CloseFollowRequest;
|
||||||
|
import com.cool.store.request.EntrustOthersReq;
|
||||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||||
|
import com.cool.store.service.InterviewService;
|
||||||
|
import com.cool.store.vo.interview.InterviewVO;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.apache.commons.collections4.CollectionUtils;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author zhangchenbiao
|
* @author zhangchenbiao
|
||||||
* @FileName: InterviewWorkFlowService
|
* @FileName: InterviewWorkFlowService
|
||||||
@@ -16,18 +38,62 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class InterviewWorkFlowService extends WorkFlowBaseService {
|
public class InterviewWorkFlowService extends WorkFlowBaseService {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HyPartnerInterviewMapper hyPartnerInterviewMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private InterviewService interviewService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private ISVHttpRequest isvHttpRequest;
|
||||||
@Override
|
@Override
|
||||||
public WorkflowStageEnum getWorkFlowStage() {
|
public WorkflowStageEnum getWorkFlowStage() {
|
||||||
return WorkflowStageEnum.RESERVATION;
|
return WorkflowStageEnum.RESERVATION;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void endProcess(CloseFollowRequest request) {
|
public void endProcess(CloseFollowRequest request) throws ServiceException{
|
||||||
log.info("面试结束~");
|
Long lineId = request.getLineId();
|
||||||
|
//根据线索id查询面试信息
|
||||||
|
List<HyPartnerInterviewDO> interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
|
||||||
|
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||||
|
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||||
|
}
|
||||||
|
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||||
|
interviewService.rejectInterviewAndSuspendLine(interviewBaseInfo.getId(),interviewBaseInfo.getInterviewPlanId(),null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void transferInvestmentManager(TransferInvestmentManagerRequest request) {
|
public void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ServiceException, ApiException {
|
||||||
log.info("转让招商经理~");
|
Long lineId = request.getLineId();
|
||||||
|
//根据线索id查询面试信息
|
||||||
|
List<HyPartnerInterviewDO> interviewBaseInfos = hyPartnerInterviewMapper.getInterviewBaseInfoListByLineIds(Arrays.asList(lineId));
|
||||||
|
if (CollectionUtils.isEmpty(interviewBaseInfos)) {
|
||||||
|
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||||
|
}
|
||||||
|
HyPartnerInterviewDO interviewBaseInfo = interviewBaseInfos.get(0);
|
||||||
|
InterviewVO interviewInfo = hyPartnerInterviewPlanMapper.getInterviewInfo(String.valueOf(interviewBaseInfo.getInterviewPlanId()));
|
||||||
|
if(null == interviewInfo){
|
||||||
|
throw new ServiceException(ErrorCodeEnum.INTERVIEW_NOT_EXIST);
|
||||||
|
}
|
||||||
|
Integer status = interviewInfo.getStatus();
|
||||||
|
Date now = new Date();
|
||||||
|
if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode()) ||
|
||||||
|
(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.OPEN.getCode()).equals(interviewInfo.getRoomStatus())) ||
|
||||||
|
(DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) <= 0
|
||||||
|
&& DateUtil.compare(DateUtil.parse(interviewInfo.getEndTime()), now) >= 0)) {
|
||||||
|
throw new ServiceException(ErrorCodeEnum.INTERVIEW_STATUS_ERROR);
|
||||||
|
} else if (status == Integer.parseInt(WorkflowStatusEnum.INTERVIEW_2.getCode())
|
||||||
|
&&(interviewInfo.getRoomStatus()!=null && String.valueOf(RoomStatus.WAIT_FOR_OPEN.getCode()).equals(interviewInfo.getRoomStatus()))
|
||||||
|
&& DateUtil.compare(DateUtil.parse(interviewInfo.getStartTime()), now) < 0) {
|
||||||
|
EntrustOthersReq entrustOthersReq = new EntrustOthersReq();
|
||||||
|
entrustOthersReq.setInterviewPlanId(interviewInfo.getInterviewPlanId());
|
||||||
|
entrustOthersReq.setNewInterviewerId(interviewInfo.getInterviewerId());
|
||||||
|
entrustOthersReq.setPartnerLineId(interviewInfo.getPartnerLineId());
|
||||||
|
interviewService.entrustOthers(entrustOthersReq);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package com.cool.store.service.impl.workflow;
|
package com.cool.store.service.impl.workflow;
|
||||||
|
|
||||||
import com.cool.store.enums.WorkflowStageEnum;
|
import com.cool.store.enums.WorkflowStageEnum;
|
||||||
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.request.CloseFollowRequest;
|
import com.cool.store.request.CloseFollowRequest;
|
||||||
import com.cool.store.request.TransferInvestmentManagerRequest;
|
import com.cool.store.request.TransferInvestmentManagerRequest;
|
||||||
|
|
||||||
@@ -28,5 +29,5 @@ public abstract class WorkFlowBaseService {
|
|||||||
* 转让招商经理
|
* 转让招商经理
|
||||||
* @param request
|
* @param request
|
||||||
*/
|
*/
|
||||||
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request);
|
public abstract void transferInvestmentManager(TransferInvestmentManagerRequest request) throws ApiException;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ public class CorsFilter implements Filter {
|
|||||||
response.setHeader("Access-Control-Allow-Credentials", "true");
|
response.setHeader("Access-Control-Allow-Credentials", "true");
|
||||||
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS, GET, DELETE, PUT");
|
response.setHeader("Access-Control-Allow-Methods", "POST, OPTIONS, GET, DELETE, PUT");
|
||||||
response.setHeader("Access-Control-Max-Age", "36000");
|
response.setHeader("Access-Control-Max-Age", "36000");
|
||||||
response.setHeader("Access-Control-Allow-Headers", "x-requested-with, Origin, Authorization, content-type, XMLHttpRequest, Authorization, User-Agent, Cookie, accessToken");
|
response.setHeader("Access-Control-Allow-Headers", "*");
|
||||||
if (reqs.getMethod().equals("OPTIONS") || reqs.getMethod().equals("HEAD")) {
|
if (reqs.getMethod().equals("OPTIONS") || reqs.getMethod().equals("HEAD")) {
|
||||||
response.setStatus(HttpStatus.HTTP_OK);
|
response.setStatus(HttpStatus.HTTP_OK);
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -88,10 +88,10 @@ public class InterviewController {
|
|||||||
return ResponseResult.success();
|
return ResponseResult.success();
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/reject")
|
// @PostMapping("/reject")
|
||||||
@ApiOperation("拒绝面试")
|
// @ApiOperation("拒绝面试")
|
||||||
public ResponseResult reInterview(@RequestBody RejectInterviewReq request) throws ApiException {
|
// public ResponseResult reInterview(@RequestBody RejectInterviewReq request) throws ApiException {
|
||||||
interviewService.rejectInterview(request);
|
// interviewService.rejectInterview(request);
|
||||||
return ResponseResult.success();
|
// return ResponseResult.success();
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -118,7 +118,7 @@ public class PartnerController {
|
|||||||
|
|
||||||
@PostMapping(path = "/submitIndustryCognitionInfo")
|
@PostMapping(path = "/submitIndustryCognitionInfo")
|
||||||
@ApiOperation("提意向书行业认知")
|
@ApiOperation("提意向书行业认知")
|
||||||
public ResponseResult<String> submitIndustryCognitionInfo(@RequestBody IndustryCognitionInfoRequest request){
|
public ResponseResult<Boolean> submitIndustryCognitionInfo(@RequestBody IndustryCognitionInfoRequest request){
|
||||||
return ResponseResult.success(hyPartnerIntentInfoService.submitIndustryCognitionInfo(request));
|
return ResponseResult.success(hyPartnerIntentInfoService.submitIndustryCognitionInfo(request));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user