From 545f0e62205b9a1731d5e0ed495443717ee0b570 Mon Sep 17 00:00:00 2001 From: pserimal Date: Tue, 20 Jun 2023 11:10:36 +0800 Subject: [PATCH 1/3] =?UTF-8?q?OSSServer=E8=B0=83=E6=95=B4=E4=B8=BACDN?= =?UTF-8?q?=E8=AE=BF=E9=97=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/oss/OSSServer.java | 5 ++++- .../java/com/cool/store/service/impl/FlowServiceImpl.java | 4 ++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java b/coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java index 6f6261d31..03f7bfcf9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java @@ -26,6 +26,9 @@ public class OSSServer { @Value("${corp.id:null}") private String corpId; + @Value("${cdn.url:null}") + private String cdnUrl; + /** * 服务端上传文件的方法 * ObjectName 为文件存放位置 + 名字,不可包含 bucket @@ -38,7 +41,7 @@ public class OSSServer { PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream); // 创建PutObject请求。 ossClient.putObject(putObjectRequest); - return "http://" + bucket + "." + endpoint + "/" + objectName; + return cdnUrl + "/partner/" + corpId + "/" + objectName; } catch (OSSException oe) { log.error("Caught an OSSException, which means your request made it to OSS, " + "but was rejected with an error response for some reason."); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index bd74b8a3a..c72ac90be 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -260,13 +260,13 @@ public class FlowServiceImpl implements FlowService { ByteArrayOutputStream pdfOut = PassLetterUtils.genPassLetter(partnerName, passCode, verifyCity, passTime); //生成的 pdf 通过函内存输入流 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(); ByteArrayOutputStream imageOut = PDFUtils.pdf2Img(inputStream, 2.0f); inputStream = new ByteArrayInputStream(imageOut.toByteArray()); //上传 OSS - String passImageUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + passCode + ".png"); + String passImageUrl = ossServer.uploadFileServer(inputStream, "passLetter/" + passCode + ".png"); //计算有效期截止日期 DateTime expiryDate = DateUtil.offsetDay(passTime, 60); HyPartnerInterviewDO interviewDO = new HyPartnerInterviewDO(); From e95638408c5cb9e1461587091431db0d398270a8 Mon Sep 17 00:00:00 2001 From: pserimal Date: Tue, 20 Jun 2023 15:06:37 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E5=8A=A0=E7=9B=9F=E5=95=86=E8=B5=84?= =?UTF-8?q?=E8=B4=A8=E5=AE=A1=E6=A0=B8=E5=8F=91=E8=B5=B7=E6=B5=81=E7=A8=8B?= =?UTF-8?q?=E8=B5=B0=E9=80=9A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HyPartnerCertificationInfoMapper.xml | 2 +- .../mapper/HyPartnerInterviewMapper.xml | 2 +- .../com/cool/store/entity/FraSourceDO.java | 15 ++++ .../request/RpcCreateQualifyVerfyReq.java | 87 ------------------- .../request/RpcCreateQualifyVerifyReq.java | 42 +++++++++ .../store/service/impl/FlowServiceImpl.java | 43 +++++---- .../main/resources/application-dev.properties | 6 +- .../resources/application-local.properties | 5 ++ .../main/resources/application-dev.properties | 7 +- .../resources/application-local.properties | 7 +- 10 files changed, 106 insertions(+), 110 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/FraSourceDO.java delete mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml index 3e9bc528c..254aaa261 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerCertificationInfoMapper.xml @@ -227,7 +227,7 @@ or id = #{record.id} - or partner_id_line_id = #{record.partnerLineId} + or partner_line_id = #{record.partnerLineId} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index ef8ff2273..429dd8897 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -47,7 +47,7 @@ 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, partner_enter_time, interviewer_enter_time diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/FraSourceDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/FraSourceDO.java new file mode 100644 index 000000000..ce917a084 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/FraSourceDO.java @@ -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; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java deleted file mode 100644 index c47ee84a0..000000000 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerfyReq.java +++ /dev/null @@ -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; - } -} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java new file mode 100644 index 000000000..efe94d3a6 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/RpcCreateQualifyVerifyReq.java @@ -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; +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index c72ac90be..7b2c13f50 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -2,7 +2,6 @@ package com.cool.store.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.ObjectUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; 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.request.CreateQualifyVerifyReq; 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.service.FlowService; import com.cool.store.utils.PDFUtils; import com.cool.store.utils.PassLetterUtils; import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.RestTemplateUtil; -import com.cool.store.vo.PartnerPassLetterDetailVO; -import lombok.Data; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; -import java.io.IOException; import java.util.Date; import java.util.HashMap; import java.util.Map; @@ -54,8 +51,15 @@ import java.util.Objects; @Service public class FlowServiceImpl implements FlowService { - // @Value("${hs.mdm.baseUrl}") + @Value("${hs.mdm.baseUrl}") private String mdmBaseUrl; + + @Value("${hs.mdm.appkey}") + private String mdmAppKey; + + @Value("${hs.mdm.appsec}") + private String mdmAppSec; + @Autowired private RedisUtilPool redisUtilPool; @@ -81,14 +85,18 @@ public class FlowServiceImpl implements FlowService { @Transactional public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException { //1.发起加盟商资质审核 - RpcCreateQualifyVerfyReq rpcRequest = new RpcCreateQualifyVerfyReq(); - rpcRequest.setIntendedSignDate(request.getWantSignTime()); - rpcRequest.setFraSource("HSAYPartner"); - rpcRequest.setAmtDeposit(Integer.valueOf(request.getSecurityFund())); + RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq(); + RpcCreateQualifyVerifyReq.Data data = new RpcCreateQualifyVerifyReq().new Data(); + rpcRequest.setData(data); + FraSourceDO fraSourceDO = new FraSourceDO(); + fraSourceDO.setKey("HSAYPartner"); + fraSourceDO.setText("沪上阿姨合伙人"); + data.setFraSource(fraSourceDO); + data.setAmtDeposit(Integer.valueOf(request.getSecurityFund())); //获取授权码 String authCode = null; - if (StringUtils.isBlank(request.getLineId())) { + if (!StringUtils.isBlank(request.getLineId())) { //根据线索id获取线索信息 HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(request.getLineId())); if (!Objects.isNull(hyPartnerLineInfoDO)) { @@ -103,13 +111,13 @@ public class FlowServiceImpl implements FlowService { } rpcRequest.setDingUserId(dingdingUserDO.getUserid()); authCode = generateAuthCode(jobNumber); - rpcRequest.setAuthCode(authCode); + data.setAuthCode(authCode); } } } - rpcRequest.setIntendedSigner(request.getIntentionSignerUsername()); - rpcRequest.setIntendedSignerTel(request.getIntentionSignerMobile()); + data.setIntendedSigner(request.getIntentionSignerUsername()); + data.setIntendedSignerTel(request.getIntentionSignerMobile()); //通过 rpc 请求审核系统获取返回数据 Map qualifyVerifyRespData = JSON.parseObject(createQualifyVerify(rpcRequest), new TypeReference>() {}); @@ -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"; ResponseEntity responseEntity = null; try { RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq(); - // TODO set appKey 与 appSecret + rpcGetMDMTokenReq.setAppKey(mdmAppKey); + rpcGetMDMTokenReq.setAppSecret(mdmAppSec); Map headers = new HashMap<>(); headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq)); 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()) { return JSONObject.toJSONString(responseEntity.getBody().getData()); } diff --git a/coolstore-partner-webb/src/main/resources/application-dev.properties b/coolstore-partner-webb/src/main/resources/application-dev.properties index 563263bcf..5f0639fd7 100644 --- a/coolstore-partner-webb/src/main/resources/application-dev.properties +++ b/coolstore-partner-webb/src/main/resources/application-dev.properties @@ -58,8 +58,10 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 signKey=77fea013c3a6459685b83c21a2fc3411 -#八佰流程配置 -hs.mdm.baseUrl=http://172.35.37.52:8080 +#MDM +hs.mdm.baseUrl=http://10.56.21.30/ +hs.mdm.appkey = HSAYPartner +hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3 #xxljob配置 xxl.job.admin.addresses = https://djob.coolstore.cn/xxl-job-admin diff --git a/coolstore-partner-webb/src/main/resources/application-local.properties b/coolstore-partner-webb/src/main/resources/application-local.properties index e3eb4fe20..643b59023 100644 --- a/coolstore-partner-webb/src/main/resources/application-local.properties +++ b/coolstore-partner-webb/src/main/resources/application-local.properties @@ -64,6 +64,11 @@ weixin.appSecret=245a483747e6e9f8762d3e8539cf0318 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.executor.appname = ${spring.application.name} xxl.job.executor.ip = diff --git a/coolstore-partner-webc/src/main/resources/application-dev.properties b/coolstore-partner-webc/src/main/resources/application-dev.properties index 295a2a312..523ab9009 100644 --- a/coolstore-partner-webc/src/main/resources/application-dev.properties +++ b/coolstore-partner-webc/src/main/resources/application-dev.properties @@ -56,4 +56,9 @@ trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 weixin.appId=wxb2a0addf956ad4b7 weixin.appSecret=77abdcae754add92889566b543e5ad79 -signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file +signKey=77fea013c3a6459685b83c21a2fc3411 + +#MDM +hs.mdm.baseUrl=http://10.56.21.30/ +hs.mdm.appkey = HSAYPartner +hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3 diff --git a/coolstore-partner-webc/src/main/resources/application-local.properties b/coolstore-partner-webc/src/main/resources/application-local.properties index 059473d6b..af3619e16 100644 --- a/coolstore-partner-webc/src/main/resources/application-local.properties +++ b/coolstore-partner-webc/src/main/resources/application-local.properties @@ -63,4 +63,9 @@ trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 weixin.appId=wxb2a0addf956ad4b7 weixin.appSecret=77abdcae754add92889566b543e5ad79 -signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file +signKey=77fea013c3a6459685b83c21a2fc3411 + +#MDM +hs.mdm.baseUrl=http://10.56.21.30/ +hs.mdm.appkey = HSAYPartner +hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3 From 828084ef6e5018a0be79d4a4da2fd785f20d8451 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=BF=9E=E6=89=AC?= Date: Tue, 20 Jun 2023 15:29:07 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E9=A2=84=E7=BA=A6=E7=94=B3=E8=AF=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/request/CreateAppointmentReq.java | 8 ++--- .../cool/store/service/InterviewService.java | 2 ++ .../store/service/impl/FeiShuServiceImpl.java | 15 ++------- .../service/impl/InterviewServiceImpl.java | 33 +++++++++++++++++-- 4 files changed, 38 insertions(+), 20 deletions(-) diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/CreateAppointmentReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateAppointmentReq.java index e27385e98..733c2614a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/CreateAppointmentReq.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateAppointmentReq.java @@ -5,10 +5,9 @@ import io.swagger.annotations.ApiModelProperty; @ApiModel(description = "面试预约") public class CreateAppointmentReq { - @ApiModelProperty(value = "加盟商用户ID", required = true) + @ApiModelProperty(value = "加盟商用户ID") private String partnerId; - - @ApiModelProperty(value = "面试官id", required = true) + @ApiModelProperty(value = "面试官id") private String interviewerId; @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) private String endBookingTime; - @ApiModelProperty(value = "线索id", required = true) + @ApiModelProperty(value = "线索id(如果面试官id,会根据加盟商id和线索id查询面试官)") private Long partnerLineId; public String getPartnerId() { @@ -59,5 +58,4 @@ public class CreateAppointmentReq { this.endBookingTime = endBookingTime; } - } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java index 6e343168e..e4f0d2974 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/InterviewService.java @@ -64,4 +64,6 @@ public interface InterviewService { void approveAppointment(ApproveAppointmentReq request) throws ApiException; void reInterview(ReInterviewReq request) throws ApiException; void rejectInterview(RejectInterviewReq request) throws ApiException; + + public String getInterviewerByPartner(String partnerId,String lineId)throws ApiException; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java index 1a9363f4f..032923666 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FeiShuServiceImpl.java @@ -13,6 +13,7 @@ import com.cool.store.mapper.HyPartnerInterviewPlanMapper; import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.cool.store.request.GetFreeBusyListReq; 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.FreeBusyInfo; import com.cool.store.vo.interview.GetFreeBusyListVO; @@ -39,7 +40,7 @@ public class FeiShuServiceImpl implements FeiShuService { private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; @Autowired - private HyPartnerLineInfoMapper hyPartnerLineInfoMapper; + private InterviewService interviewService; @Override public GetFreeBusyListVO getFreeBusyList(GetFreeBusyListReq request) throws ApiException { @@ -55,17 +56,7 @@ public class FeiShuServiceImpl implements FeiShuService { } //如果加盟商用户ID不为空且面试官ID为空 if (StringUtils.isNotEmpty(partnerId) && StringUtils.isNotEmpty(lineId)) { - //根据加盟商用户ID查询面试官ID - HyPartnerInterviewPlanDO hyPartnerInterviewPlanDO = new HyPartnerInterviewPlanDO(); - hyPartnerInterviewPlanDO.setPartnerId(partnerId); - List hyPartnerInterviewPlanDOS = hyPartnerInterviewPlanMapper.selectBySelective(hyPartnerInterviewPlanDO); - //如果查询结果为空,则去线索中获取招商经理,面试官只有两个阶段,一个是在第一次申请时不存在面试安排直接取招商经理,第二个时面试信息中可修改面试官信息,这个时候以面试信息中为准 - if (CollectionUtils.isEmpty(hyPartnerInterviewPlanDOS)) { - HyPartnerLineInfoDO hyPartnerLineInfoDO = hyPartnerLineInfoMapper.selectByPrimaryKeySelective(Long.valueOf(lineId)); - interviewerId = hyPartnerLineInfoDO.getInvestmentManager(); - }else { - interviewerId = hyPartnerInterviewPlanDOS.get(0).getInterviewer(); - } + interviewerId = interviewService.getInterviewerByPartner(partnerId, lineId); } long startTime = 0L; long endTime = 0L; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java index 9b12d5b38..a7498aaf8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/InterviewServiceImpl.java @@ -10,6 +10,7 @@ import com.cool.store.dto.message.SendCardMessageDTO; import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.entity.HyPartnerInterviewDO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.MessageTypeEnum; 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.mapper.HyPartnerInterviewMapper; import com.cool.store.mapper.HyPartnerInterviewPlanMapper; +import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.cool.store.request.*; import com.cool.store.service.InterviewService; 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 lombok.extern.slf4j.Slf4j; 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.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.StringUtils; import java.util.Arrays; import java.util.Date; @@ -65,6 +67,9 @@ public class InterviewServiceImpl implements InterviewService { @Autowired private ISVHttpRequest isvHttpRequest; + + @Autowired + private HyPartnerLineInfoMapper hyPartnerLineInfoMapper; @Override public List getInterviewList(GetInterviewListReq request) { List interviewList = hyPartnerInterviewPlanMapper.getInterviewList(request); @@ -215,6 +220,10 @@ public class InterviewServiceImpl implements InterviewService { if(CollectionUtils.isNotEmpty(hyPartnerInterviewPlanDOS)){ 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(); //1.创建面试计划 HyPartnerInterviewPlanDO record = new HyPartnerInterviewPlanDO(); @@ -227,7 +236,7 @@ public class InterviewServiceImpl implements InterviewService { record.setEndTime(Convert.toDate(request.getEndBookingTime())); record.setPartnerId(request.getPartnerId()); record.setPartnerLineId(request.getPartnerLineId()); - record.setInterviewer(request.getInterviewerId()); + record.setInterviewer(interviewrId); record.setIsPartnerInterview(0); //生成房间号 record.setRoomId(StringUtil.generateRoomId(startBookingTime)); @@ -248,7 +257,7 @@ public class InterviewServiceImpl implements InterviewService { hyPartnerInterviewDO.setInterviewPlanId(interviewPlanId); hyPartnerInterviewDO.setPartnerLineId(request.getPartnerLineId()); hyPartnerInterviewDO.setPartnerId(request.getPartnerId()); - hyPartnerInterviewDO.setInterviewer(request.getInterviewerId()); + hyPartnerInterviewDO.setInterviewer(interviewrId); hyPartnerInterviewDO.setCreateTime(new Date()); hyPartnerInterviewDO.setUpdateTime(new Date()); 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")); 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 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; + } }