Merge remote-tracking branch 'origin/cc_20230520_partner' into cc_20230520_partner

This commit is contained in:
苏竹红
2023-06-20 15:44:13 +08:00
15 changed files with 150 additions and 133 deletions

View File

@@ -227,7 +227,7 @@
or id = #{record.id} or id = #{record.id}
</if> </if>
<if test="record.partnerLineId != null"> <if test="record.partnerLineId != null">
or partner_id_line_id = #{record.partnerLineId} or partner_line_id = #{record.partnerLineId}
</if> </if>
</where> </where>
</update> </update>

View File

@@ -47,7 +47,7 @@
<sql id="Base_Column_List"> <sql id="Base_Column_List">
id, status, partner_line_id, interview_plan_id, partner_id, deadline, interviewer, id, status, partner_line_id, interview_plan_id, partner_id, deadline, interviewer,
recorder, process_info, record_time, summary, auth_code, qualify_verify_id, pass_file_url, expiry_date, recorder, process_info, record_time, summary, auth_code, pass_pdf_url, pass_image_url, expiry_date,
latest_log_message, pass_reason, certify_file, create_time, update_time, approve_time, latest_log_message, pass_reason, certify_file, create_time, update_time, approve_time,
partner_enter_time, interviewer_enter_time partner_enter_time, interviewer_enter_time
</sql> </sql>

View File

@@ -0,0 +1,15 @@
package com.cool.store.entity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
public class FraSourceDO {
@ApiModelProperty("key")
private String key;
@ApiModelProperty("text")
private String text;
}

View File

@@ -5,10 +5,9 @@ import io.swagger.annotations.ApiModelProperty;
@ApiModel(description = "面试预约") @ApiModel(description = "面试预约")
public class CreateAppointmentReq { public class CreateAppointmentReq {
@ApiModelProperty(value = "加盟商用户ID", required = true) @ApiModelProperty(value = "加盟商用户ID")
private String partnerId; private String partnerId;
@ApiModelProperty(value = "面试官id")
@ApiModelProperty(value = "面试官id", required = true)
private String interviewerId; private String interviewerId;
@ApiModelProperty(value = "预约开始时间 (YYYY-MM-DD hh:mm:ss)", required = true) @ApiModelProperty(value = "预约开始时间 (YYYY-MM-DD hh:mm:ss)", required = true)
@@ -16,7 +15,7 @@ public class CreateAppointmentReq {
@ApiModelProperty(value = "预约结束时间 (YYYY-MM-DD hh:mm:ss)", required = true) @ApiModelProperty(value = "预约结束时间 (YYYY-MM-DD hh:mm:ss)", required = true)
private String endBookingTime; private String endBookingTime;
@ApiModelProperty(value = "线索id", required = true) @ApiModelProperty(value = "线索id(如果面试官id会根据加盟商id和线索id查询面试官)")
private Long partnerLineId; private Long partnerLineId;
public String getPartnerId() { public String getPartnerId() {
@@ -59,5 +58,4 @@ public class CreateAppointmentReq {
this.endBookingTime = endBookingTime; this.endBookingTime = endBookingTime;
} }
} }

View File

@@ -1,87 +0,0 @@
package com.cool.store.request;
import io.swagger.annotations.ApiModelProperty;
/**
* @Author: young.yu
* @Date: 2023-06-14 15:06
* @Description:
*/
public class RpcCreateQualifyVerfyReq {
@ApiModelProperty(value = "意向签约时间", required = true)
private String intendedSignDate;
@ApiModelProperty(value = "请求来源", required = true)
private String fraSource;
@ApiModelProperty(value = "保证金(元)", required = true, example = "5000")
private int amtDeposit;
@ApiModelProperty(value = "授权码", required = true)
private String authCode;
@ApiModelProperty(value = "意向签约人", required = true)
private String intendedSigner;
@ApiModelProperty(value = "手机号", required = true)
private String intendedSignerTel;
@ApiModelProperty(value = "钉钉用户id", required = true)
private String dingUserId;
public String getIntendedSignDate() {
return intendedSignDate;
}
public void setIntendedSignDate(String intendedSignDate) {
this.intendedSignDate = intendedSignDate;
}
public String getFraSource() {
return fraSource;
}
public void setFraSource(String fraSource) {
this.fraSource = fraSource;
}
public int getAmtDeposit() {
return amtDeposit;
}
public void setAmtDeposit(int amtDeposit) {
this.amtDeposit = amtDeposit;
}
public String getAuthCode() {
return authCode;
}
public void setAuthCode(String authCode) {
this.authCode = authCode;
}
public String getIntendedSigner() {
return intendedSigner;
}
public void setIntendedSigner(String intendedSigner) {
this.intendedSigner = intendedSigner;
}
public String getIntendedSignerTel() {
return intendedSignerTel;
}
public void setIntendedSignerTel(String intendedSignerTel) {
this.intendedSignerTel = intendedSignerTel;
}
public String getDingUserId() {
return dingUserId;
}
public void setDingUserId(String dingUserId) {
this.dingUserId = dingUserId;
}
}

View File

@@ -0,0 +1,42 @@
package com.cool.store.request;
import com.cool.store.entity.FraSourceDO;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author: young.yu
* @Date: 2023-06-14 15:06
* @Description:
*/
@Data
public class RpcCreateQualifyVerifyReq {
@lombok.Data
public class Data {
@ApiModelProperty(value = "意向签约时间", required = true)
private String intendedSignDate;
@ApiModelProperty(value = "请求来源", required = true)
private FraSourceDO fraSource;
@ApiModelProperty(value = "保证金(元)", required = true, example = "5000")
private int amtDeposit;
@ApiModelProperty(value = "授权码", required = true)
private String authCode;
@ApiModelProperty(value = "意向签约人", required = true)
private String intendedSigner;
@ApiModelProperty(value = "手机号", required = true)
private String intendedSignerTel;
}
@ApiModelProperty(value = "数据体", required = true)
private Data data;
@ApiModelProperty(value = "钉钉用户id", required = true)
private String dingUserId;
}

View File

@@ -26,6 +26,9 @@ public class OSSServer {
@Value("${corp.id:null}") @Value("${corp.id:null}")
private String corpId; private String corpId;
@Value("${cdn.url:null}")
private String cdnUrl;
/** /**
* 服务端上传文件的方法 * 服务端上传文件的方法
* ObjectName 为文件存放位置 + 名字,不可包含 bucket * ObjectName 为文件存放位置 + 名字,不可包含 bucket
@@ -38,7 +41,7 @@ public class OSSServer {
PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream); PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream);
// 创建PutObject请求。 // 创建PutObject请求。
ossClient.putObject(putObjectRequest); ossClient.putObject(putObjectRequest);
return "http://" + bucket + "." + endpoint + "/" + objectName; return cdnUrl + "/partner/" + corpId + "/" + objectName;
} catch (OSSException oe) { } catch (OSSException oe) {
log.error("Caught an OSSException, which means your request made it to OSS, " log.error("Caught an OSSException, which means your request made it to OSS, "
+ "but was rejected with an error response for some reason."); + "but was rejected with an error response for some reason.");

View File

@@ -64,4 +64,6 @@ 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;
} }

View File

@@ -13,6 +13,7 @@ import com.cool.store.mapper.HyPartnerInterviewPlanMapper;
import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.cool.store.mapper.HyPartnerLineInfoMapper;
import com.cool.store.request.GetFreeBusyListReq; import com.cool.store.request.GetFreeBusyListReq;
import com.cool.store.service.FeiShuService; import com.cool.store.service.FeiShuService;
import com.cool.store.service.InterviewService;
import com.cool.store.vo.interview.CalendarInfo; import com.cool.store.vo.interview.CalendarInfo;
import com.cool.store.vo.interview.FreeBusyInfo; import com.cool.store.vo.interview.FreeBusyInfo;
import com.cool.store.vo.interview.GetFreeBusyListVO; import com.cool.store.vo.interview.GetFreeBusyListVO;
@@ -39,7 +40,7 @@ public class FeiShuServiceImpl implements FeiShuService {
private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper;
@Autowired @Autowired
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper; private InterviewService interviewService;
@Override @Override
public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException { public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException {
@@ -55,17 +56,7 @@ public class FeiShuServiceImpl implements FeiShuService {
} }
//如果加盟商用户ID不为空且面试官ID为空 //如果加盟商用户ID不为空且面试官ID为空
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) { if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
//根据加盟商用户ID查询面试官ID interviewerId = interviewService.getInterviewerByPartner(partnerId, lineId);
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId));
interviewerId = hyPartnerLineInfoDO.getInvestmentManager();
}else {
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
}
} }
long startTime = 0L; long startTime = 0L;
long endTime = 0L; long endTime = 0L;

View File

@@ -2,7 +2,6 @@ package com.cool.store.service.impl;
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 com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference; import com.alibaba.fastjson.TypeReference;
@@ -21,25 +20,23 @@ import com.cool.store.mapper.HyPartnerLineInfoMapper;
import com.cool.store.oss.OSSServer; import com.cool.store.oss.OSSServer;
import com.cool.store.request.CreateQualifyVerifyReq; import com.cool.store.request.CreateQualifyVerifyReq;
import com.cool.store.request.QualificationCallbackReq; import com.cool.store.request.QualificationCallbackReq;
import com.cool.store.request.RpcCreateQualifyVerfyReq; import com.cool.store.request.RpcCreateQualifyVerifyReq;
import com.cool.store.request.RpcGetMdmTokenReq; import com.cool.store.request.RpcGetMdmTokenReq;
import com.cool.store.service.FlowService; import com.cool.store.service.FlowService;
import com.cool.store.utils.PDFUtils; import com.cool.store.utils.PDFUtils;
import com.cool.store.utils.PassLetterUtils; import com.cool.store.utils.PassLetterUtils;
import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RedisUtilPool;
import com.cool.store.utils.RestTemplateUtil; import com.cool.store.utils.RestTemplateUtil;
import com.cool.store.vo.PartnerPassLetterDetailVO;
import lombok.Data;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.http.ResponseEntity; import org.springframework.http.ResponseEntity;
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.ByteArrayInputStream; import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream; import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.Map; import java.util.Map;
@@ -54,8 +51,15 @@ import java.util.Objects;
@Service @Service
public class FlowServiceImpl implements FlowService { public class FlowServiceImpl implements FlowService {
// @Value("${hs.mdm.baseUrl}") @Value("${hs.mdm.baseUrl}")
private String mdmBaseUrl; private String mdmBaseUrl;
@Value("${hs.mdm.appkey}")
private String mdmAppKey;
@Value("${hs.mdm.appsec}")
private String mdmAppSec;
@Autowired @Autowired
private RedisUtilPool redisUtilPool; private RedisUtilPool redisUtilPool;
@@ -81,14 +85,18 @@ public class FlowServiceImpl implements FlowService {
@Transactional @Transactional
public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException { public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException {
//1.发起加盟商资质审核 //1.发起加盟商资质审核
RpcCreateQualifyVerfyReq rpcRequest = new RpcCreateQualifyVerfyReq(); RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq();
rpcRequest.setIntendedSignDate(request.getWantSignTime()); RpcCreateQualifyVerifyReq.Data data = new RpcCreateQualifyVerifyReq().new Data();
rpcRequest.setFraSource("HSAYPartner"); rpcRequest.setData(data);
rpcRequest.setAmtDeposit(Integer.valueOf(request.getSecurityFund())); FraSourceDO fraSourceDO = new FraSourceDO();
fraSourceDO.setKey("HSAYPartner");
fraSourceDO.setText("沪上阿姨合伙人");
data.setFraSource(fraSourceDO);
data.setAmtDeposit(Integer.valueOf(request.getSecurityFund()));
//获取授权码 //获取授权码
String authCode = null; String authCode = null;
if (StringUtils.isBlank(request.getLineId())) { if (!StringUtils.isBlank(request.getLineId())) {
//根据线索id获取线索信息 //根据线索id获取线索信息
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId())); HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId()));
if (!Objects.isNull(hyPartnerLineInfoDO)) { if (!Objects.isNull(hyPartnerLineInfoDO)) {
@@ -103,13 +111,13 @@ public class FlowServiceImpl implements FlowService {
} }
rpcRequest.setDingUserId(dingdingUserDO.getUserid()); rpcRequest.setDingUserId(dingdingUserDO.getUserid());
authCode = generateAuthCode(jobNumber); authCode = generateAuthCode(jobNumber);
rpcRequest.setAuthCode(authCode); data.setAuthCode(authCode);
} }
} }
} }
rpcRequest.setIntendedSigner(request.getIntentionSignerUsername()); data.setIntendedSigner(request.getIntentionSignerUsername());
rpcRequest.setIntendedSignerTel(request.getIntentionSignerMobile()); data.setIntendedSignerTel(request.getIntentionSignerMobile());
//通过 rpc 请求审核系统获取返回数据 //通过 rpc 请求审核系统获取返回数据
Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {}); Map<String, String> qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference<HashMap<String,String>>() {});
@@ -196,16 +204,17 @@ public class FlowServiceImpl implements FlowService {
} }
public String createQualifyVerify(RpcCreateQualifyVerfyReq rpcRequest) throws ApiException{ public String createQualifyVerify(RpcCreateQualifyVerifyReq rpcRequest) throws ApiException{
String url = mdmBaseUrl + "/api/openapi/runtime/form/startFraQualExamWithData"; String url = mdmBaseUrl + "/api/openapi/runtime/form/startFraQualExamWithData";
ResponseEntity<MDMResultDTO> responseEntity = null; ResponseEntity<MDMResultDTO> responseEntity = null;
try { try {
RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq(); RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq();
// TODO set appKey 与 appSecret rpcGetMDMTokenReq.setAppKey(mdmAppKey);
rpcGetMDMTokenReq.setAppSecret(mdmAppSec);
Map<String, String> headers = new HashMap<>(); Map<String, String> headers = new HashMap<>();
headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq)); headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq));
responseEntity = RestTemplateUtil.post(url, headers, rpcRequest, MDMResultDTO.class); responseEntity = RestTemplateUtil.post(url, headers, rpcRequest, MDMResultDTO.class);
log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); log.info("url:{}, header:{}, request:{} response:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(rpcRequest), JSONObject.toJSONString(responseEntity));
if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) { if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) {
return JSONObject.toJSONString(responseEntity.getBody().getData()); return JSONObject.toJSONString(responseEntity.getBody().getData());
} }
@@ -260,13 +269,13 @@ public class FlowServiceImpl implements FlowService {
ByteArrayOutputStream pdfOut = PassLetterUtils.genPassLetter(partnerName, passCode, verifyCity, passTime); ByteArrayOutputStream pdfOut = PassLetterUtils.genPassLetter(partnerName, passCode, verifyCity, passTime);
//生成的 pdf 通过函内存输入流 //生成的 pdf 通过函内存输入流
ByteArrayInputStream inputStream = new ByteArrayInputStream(pdfOut.toByteArray()); ByteArrayInputStream inputStream = new ByteArrayInputStream(pdfOut.toByteArray());
String passPdfUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + passCode + ".pdf"); String passPdfUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".pdf");
//转换为图片 //转换为图片
inputStream.reset(); inputStream.reset();
ByteArrayOutputStream imageOut = PDFUtils.pdf2Img(inputStream, 2.0f); ByteArrayOutputStream imageOut = PDFUtils.pdf2Img(inputStream, 2.0f);
inputStream = new ByteArrayInputStream(imageOut.toByteArray()); inputStream = new ByteArrayInputStream(imageOut.toByteArray());
//上传 OSS //上传 OSS
String passImageUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + passCode + ".png"); String passImageUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".png");
//计算有效期截止日期 //计算有效期截止日期
DateTime expiryDate = DateUtil.offsetDay(passTime, 60); DateTime expiryDate = DateUtil.offsetDay(passTime, 60);
HyPartnerInterviewDO interviewDO = new HyPartnerInterviewDO(); HyPartnerInterviewDO interviewDO = new HyPartnerInterviewDO();

View File

@@ -10,6 +10,7 @@ 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.entity.HyPartnerLineInfoDO;
import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.MessageTypeEnum; import com.cool.store.enums.MessageTypeEnum;
import com.cool.store.enums.RoomStatus; import com.cool.store.enums.RoomStatus;
@@ -19,6 +20,7 @@ import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest; 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.mapper.HyPartnerLineInfoMapper;
import com.cool.store.request.*; import com.cool.store.request.*;
import com.cool.store.service.InterviewService; import com.cool.store.service.InterviewService;
import com.cool.store.utils.StringUtil; import com.cool.store.utils.StringUtil;
@@ -29,11 +31,11 @@ import com.cool.store.vo.interview.CreateAppointmentVO;
import com.cool.store.vo.interview.InterviewVO; 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.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
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 org.springframework.util.StringUtils;
import java.util.Arrays; import java.util.Arrays;
import java.util.Date; import java.util.Date;
@@ -65,6 +67,9 @@ public class InterviewServiceImpl implements InterviewService {
@Autowired @Autowired
private ISVHttpRequest isvHttpRequest; private ISVHttpRequest isvHttpRequest;
@Autowired
private HyPartnerLineInfoMapper hyPartnerLineInfoMapper;
@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);
@@ -215,6 +220,10 @@ public class InterviewServiceImpl implements InterviewService {
if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)){ if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)){
throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ALREADY_EXIST); throw new ApiException(ErrorCodeEnum.INTERVIEW_PLAN_ALREADY_EXIST);
} }
String interviewrId = request.getInterviewerId();
if(StringUtils.isEmpty(interviewrId)){
interviewrId = getInterviewerByPartner(request.getPartnerId(),String.valueOf(request.getPartnerLineId()));
}
CreateAppointmentVO vo = new CreateAppointmentVO(); CreateAppointmentVO vo = new CreateAppointmentVO();
//1.创建面试计划 //1.创建面试计划
HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO();
@@ -227,7 +236,7 @@ public class InterviewServiceImpl implements InterviewService {
record.setEndTime(Convert.toDate(request.getEndBookingTime())); record.setEndTime(Convert.toDate(request.getEndBookingTime()));
record.setPartnerId(request.getPartnerId()); record.setPartnerId(request.getPartnerId());
record.setPartnerLineId(request.getPartnerLineId()); record.setPartnerLineId(request.getPartnerLineId());
record.setInterviewer(request.getInterviewerId()); record.setInterviewer(interviewrId);
record.setIsPartnerInterview(0); record.setIsPartnerInterview(0);
//生成房间号 //生成房间号
record.setRoomId(StringUtil.generateRoomId(startBookingTime)); record.setRoomId(StringUtil.generateRoomId(startBookingTime));
@@ -248,7 +257,7 @@ public class InterviewServiceImpl implements InterviewService {
hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId); hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId);
hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId()); hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId());
hyPartnerInterviewDO.setPartnerId(request.getPartnerId()); hyPartnerInterviewDO.setPartnerId(request.getPartnerId());
hyPartnerInterviewDO.setInterviewer(request.getInterviewerId()); hyPartnerInterviewDO.setInterviewer(interviewrId);
hyPartnerInterviewDO.setCreateTime(new Date()); hyPartnerInterviewDO.setCreateTime(new Date());
hyPartnerInterviewDO.setUpdateTime(new Date()); hyPartnerInterviewDO.setUpdateTime(new Date());
hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.RESERVATION_1.getCode())); hyPartnerInterviewDO.setStatus(Integer.valueOf(WorkflowStatusEnum.RESERVATION_1.getCode()));
@@ -322,5 +331,23 @@ public class InterviewServiceImpl implements InterviewService {
.append(DateUtil.format(DateUtil.parse(interviewTime), "yyyy年MM月dd日 HH:mm")); .append(DateUtil.format(DateUtil.parse(interviewTime), "yyyy年MM月dd日 HH:mm"));
return sb.toString(); return sb.toString();
} }
@Override
public String getInterviewerByPartner(String partnerId,String lineId){
String interviewerId = null;
if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) {
//根据加盟商用户ID查询面试官ID
HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO();
hyPartnerInterviewPlanDO.setPartnerId(partnerId);
List<HyPartnerInterviewPlanDO> hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO);
//如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准
if (org.springframework.util.CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) {
HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId));
interviewerId = hyPartnerLineInfoDO.getInvestmentManager();
}else {
interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer();
}
}
return interviewerId;
}
} }

View File

@@ -58,8 +58,10 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
signKey=77fea013c3a6459685b83c21a2fc3411 signKey=77fea013c3a6459685b83c21a2fc3411
#八佰流程配置 #MDM
hs.mdm.baseUrl=http://172.35.37.52:8080 hs.mdm.baseUrl=http://10.56.21.30/
hs.mdm.appkey = HSAYPartner
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
#xxljob配置 #xxljob配置
xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin

View File

@@ -64,6 +64,11 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318
signKey=77fea013c3a6459685b83c21a2fc3411 signKey=77fea013c3a6459685b83c21a2fc3411
#MDM
hs.mdm.baseUrl=http://10.56.21.30/
hs.mdm.appkey = HSAYPartner
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3
xxl.job.admin.addresses = xxl.job.admin.addresses =
xxl.job.executor.appname = ${spring.application.name} xxl.job.executor.appname = ${spring.application.name}
xxl.job.executor.ip = xxl.job.executor.ip =

View File

@@ -57,3 +57,8 @@ weixin.appId=wxb2a0addf956ad4b7
weixin.appSecret=77abdcae754add92889566b543e5ad79 weixin.appSecret=77abdcae754add92889566b543e5ad79
signKey=77fea013c3a6459685b83c21a2fc3411 signKey=77fea013c3a6459685b83c21a2fc3411
#MDM
hs.mdm.baseUrl=http://10.56.21.30/
hs.mdm.appkey = HSAYPartner
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3

View File

@@ -64,3 +64,8 @@ weixin.appId=wxb2a0addf956ad4b7
weixin.appSecret=77abdcae754add92889566b543e5ad79 weixin.appSecret=77abdcae754add92889566b543e5ad79
signKey=77fea013c3a6459685b83c21a2fc3411 signKey=77fea013c3a6459685b83c21a2fc3411
#MDM
hs.mdm.baseUrl=http://10.56.21.30/
hs.mdm.appkey = HSAYPartner
hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3