From 3fb8e439ecb3bf0cf616e6cec6d3b81f3034aa1c Mon Sep 17 00:00:00 2001 From: pserimal Date: Thu, 15 Jun 2023 18:16:07 +0800 Subject: [PATCH 1/6] =?UTF-8?q?=E5=8A=A8=E6=80=81=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E6=9E=9A=E4=B8=BE=E7=B1=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/ContentSubjectEnum.java | 17 +++++++++++++++++ .../com/cool/store/enums/ContentTypeEnum.java | 16 ++++++++++++++++ .../resources/mapper/HyContentInfoMapper.xml | 4 ++-- .../cool/store/dto/content/ContentAddDto.java | 6 ++++-- .../store/dto/content/ContentQueryListDto.java | 6 ++++-- .../store/dto/content/ContentUpdateDto.java | 6 ++++-- .../com/cool/store/entity/HyContentInfoDO.java | 8 +++++--- .../java/com/cool/store/vo/HyContentInfoVO.java | 6 ++++-- .../store/controller/ContentController.java | 6 ++++-- 9 files changed, 60 insertions(+), 15 deletions(-) create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java create mode 100644 coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java new file mode 100644 index 000000000..a5a7a6c7d --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentSubjectEnum.java @@ -0,0 +1,17 @@ +package com.cool.store.enums; + +/** + * 动态栏目枚举类 + */ +public enum ContentSubjectEnum { + HY_CULTURE("沪姨文化"), + PARTNER_SAYS("加盟商说"), + BRAND_NEWS("品牌动态") + ; + + private String subjectName; + + ContentSubjectEnum(String subjectName) { + this.subjectName = subjectName; + } +} diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java new file mode 100644 index 000000000..3246f3f38 --- /dev/null +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ContentTypeEnum.java @@ -0,0 +1,16 @@ +package com.cool.store.enums; + +/** + * 动态类型(图文/视频) + */ +public enum ContentTypeEnum { + VIDEO("视频"), + IMAGE("图文") + ; + + private String type; + + ContentTypeEnum(String type) { + this.type = type; + } +} diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml index 0c8a7bf6f..cf27b14f9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml @@ -153,10 +153,10 @@ and content_title like concat('%', #{contentTitle}, '%') - + and subject = #{subject} - + and content_type = #{contentType} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentAddDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentAddDto.java index e130c0606..88cfb700c 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentAddDto.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentAddDto.java @@ -1,5 +1,7 @@ package com.cool.store.dto.content; +import com.cool.store.enums.ContentSubjectEnum; +import com.cool.store.enums.ContentTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,10 +15,10 @@ public class ContentAddDto { private String status; @ApiModelProperty(value = "栏目code", required = true) - private String subject; + private ContentSubjectEnum subject; @ApiModelProperty(value = "类型", required = true) - private String contentType; + private ContentTypeEnum contentType; @ApiModelProperty(value = "封面地址", required = true) private String cover; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java index 96e23930d..64432436a 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentQueryListDto.java @@ -1,6 +1,8 @@ package com.cool.store.dto.content; import com.cool.store.common.PageBasicInfo; +import com.cool.store.enums.ContentSubjectEnum; +import com.cool.store.enums.ContentTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; @@ -13,10 +15,10 @@ public class ContentQueryListDto extends PageBasicInfo { private String contentTitle; @ApiModelProperty("栏目Code") - private String subject; + private ContentSubjectEnum subject; @ApiModelProperty("类型,默认选中全部时不传值") - private String contentType; + private ContentTypeEnum contentType; @ApiModelProperty("筛选开始时间") private String startTime; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentUpdateDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentUpdateDto.java index d95330fbf..29d754498 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentUpdateDto.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/content/ContentUpdateDto.java @@ -1,5 +1,7 @@ package com.cool.store.dto.content; +import com.cool.store.enums.ContentSubjectEnum; +import com.cool.store.enums.ContentTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -16,10 +18,10 @@ public class ContentUpdateDto { private String status; @ApiModelProperty("栏目code") - private String subject; + private ContentSubjectEnum subject; @ApiModelProperty("类型") - private String contentType; + private ContentTypeEnum contentType; @ApiModelProperty("封面地址") private String cover; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java index 39724a0e5..1bcb014f4 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyContentInfoDO.java @@ -1,8 +1,10 @@ package com.cool.store.entity; +import com.cool.store.enums.ContentSubjectEnum; +import com.cool.store.enums.ContentTypeEnum; import io.swagger.annotations.ApiModelProperty; import java.io.Serializable; -import java.util.Date; + import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; @@ -25,10 +27,10 @@ public class HyContentInfoDO implements Serializable { private String contentTitle; @ApiModelProperty("栏目CODE") - private String subject; + private ContentSubjectEnum subject; @ApiModelProperty("类型 image-图文 video-视频") - private String contentType; + private ContentTypeEnum contentType; @ApiModelProperty("封面URL") private String cover; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java index 4d412c27d..2a0a1aa06 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/HyContentInfoVO.java @@ -1,5 +1,7 @@ package com.cool.store.vo; +import com.cool.store.enums.ContentSubjectEnum; +import com.cool.store.enums.ContentTypeEnum; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -13,10 +15,10 @@ public class HyContentInfoVO { private String contentTitle; @ApiModelProperty("栏目CODE") - private String subject; + private ContentSubjectEnum subject; @ApiModelProperty("类型 image-图文 video-视频") - private String contentType; + private ContentTypeEnum contentType; @ApiModelProperty("封面URL") private String cover; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java index a93f954aa..fda765b0a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ContentController.java @@ -32,14 +32,16 @@ public class ContentController { @PostMapping("/delete") @ApiOperation("删除动态") - public void deleteContent(@RequestParam(value = "contentId") String contentId) { + public ResponseResult deleteContent(@RequestParam(value = "contentId") String contentId) { contentService.deleteContent(contentId); + return ResponseResult.success(); } @PostMapping("/modify") @ApiOperation("修改动态") - public void updateContent(@RequestBody ContentUpdateDto dto) { + public ResponseResult updateContent(@RequestBody ContentUpdateDto dto) { contentService.updateContent(dto); + return ResponseResult.success(); } @PostMapping("/queryContentList") From d80c70deb7541f541eaf28acfe74f880d40e3f6c Mon Sep 17 00:00:00 2001 From: pserimal Date: Thu, 15 Jun 2023 19:02:01 +0800 Subject: [PATCH 2/6] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E9=80=9A=E8=BF=87?= =?UTF-8?q?=E5=87=BD=E8=AF=A6=E6=83=85=E5=8F=8A=E9=80=9A=E8=BF=87=E5=87=BD?= =?UTF-8?q?=E7=94=9F=E6=88=90=E5=92=8COSS=E6=9C=8D=E5=8A=A1=E5=99=A8?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/utils/PDFUtils.java | 11 +++- .../com/cool/store/utils/PassLetterUtils.java | 46 ++++++++----- .../mapper/HyPartnerInterviewMapper.java | 8 ++- .../resources/mapper/HyContentInfoMapper.xml | 4 +- .../mapper/HyPartnerInterviewMapper.xml | 38 +++++++++-- ...InterviewVO.java => EnterInterviewVO.java} | 8 ++- .../store/vo/PartnerPassLetterDetailVO.java | 5 +- coolstore-partner-service/pom.xml | 5 ++ .../java/com/cool/store/oss/OSSServer.java | 64 +++++++++++++++++++ .../cool/store/service/InterviewService.java | 11 ++++ .../service/PartnerInterviewService.java | 4 +- .../service/impl/InterviewServiceImpl.java | 45 +++++++++++++ .../impl/PartnerInterviewServiceImpl.java | 59 +++++++++++------ .../store/controller/InterviewController.java | 8 ++- .../store/controller/InterviewController.java | 15 +---- 15 files changed, 266 insertions(+), 65 deletions(-) rename coolstore-partner-model/src/main/java/com/cool/store/vo/{PartnerEnterInterviewVO.java => EnterInterviewVO.java} (59%) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java index b12b8b33b..272b19a0e 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PDFUtils.java @@ -94,10 +94,11 @@ public class PDFUtils { * @param color 字体颜色 */ private static void addContent(PdfReader reader, OutputStream outputStream, String content, float x, float y, BaseFont baseFont, float fontSize, int fontStyle, Color color) { + PdfStamper stamper = null; try { //生成 paragraph 并放在正确位置 //抠模板 - PdfStamper stamper = new PdfStamper(reader, outputStream); + stamper = new PdfStamper(reader, outputStream); PdfContentByte over = stamper.getOverContent(1); Font font = new Font(baseFont, fontSize, fontStyle, color); Paragraph insertContent = new Paragraph(content, font); @@ -110,6 +111,14 @@ public class PDFUtils { stamper.close(); } catch (IOException e) { throw new RuntimeException(e); + } finally { + try { + if (stamper != null) { + stamper.close(); + } + } catch (IOException ex) { + throw new RuntimeException(ex); + } } } diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java index af3da67ef..a94e5ee53 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/PassLetterUtils.java @@ -22,19 +22,16 @@ public class PassLetterUtils { * 返回通过函编码 * @param partnerName 加盟商姓名 * @param verifyCity 审批城市 + * @param passCode 通过函编码 * @param passTime 审批通过时间 */ - public static String genPassLetter(String partnerName, String passCode, String verifyCity, DateTime passTime) { - String randomNum = RandomUtil.randomNumbers(5); - if (ObjectUtil.isEmpty(passCode)) { - passCode = "HSAY" + DateUtil.format(passTime, "yyMMdd") + "-" + randomNum; - } + public static ByteArrayOutputStream genPassLetter(String partnerName, String passCode, String verifyCity, DateTime passTime) { String passTimeStr = DateUtil.format(passTime, "yyyy年MM月dd日"); Document document = new Document(); + ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); try { //1. 创建 pdf document -// ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); - FileOutputStream outputStream = new FileOutputStream("passLetter.pdf"); +// FileOutputStream outputStream = new FileOutputStream("passLetter.pdf"); PdfWriter.getInstance(document, outputStream); document.open(); @@ -44,21 +41,38 @@ public class PassLetterUtils { document.close(); //3. 填写通过函模板信息 - addContentToPdf(partnerName + " 先生/女士", 122, 640); - addContentToPdf(passCode, 122, 558); - addContentToPdf(verifyCity, 155, 494); - addContentToPdf("60天", 135, 450); - addContentToPdf(passTimeStr, 393, 152); - return passCode; + addContentToPdf(outputStream, partnerName + " 先生/女士", 122, 640); + addContentToPdf(outputStream, passCode, 122, 558); + addContentToPdf(outputStream, verifyCity, 155, 494); + addContentToPdf(outputStream, "60天", 135, 450); + addContentToPdf(outputStream, passTimeStr, 393, 152); + return outputStream; } catch (IOException e) { throw new RuntimeException(e); + } finally { + try { + document.close(); + outputStream.close(); + } catch (IOException e) { + throw new RuntimeException(e); + } } } - private static void addContentToPdf(String content, float x, float y) { + /** + * 生成 passCode 的方法,拆分出来方便单独获取 passCode + * @return + */ + public static String genPassCode(DateTime passTime) { + String randomNum = RandomUtil.randomNumbers(5); + String passCode = "HSAY" + DateUtil.format(passTime, "yyMMdd") + "-" + randomNum; + return passCode; + } + + private static void addContentToPdf(ByteArrayOutputStream outputStream, String content, float x, float y) { try { - PdfReader pdfReader = new PdfReader(Files.newInputStream(Paths.get("passLetter.pdf"))); - OutputStream outputStream = Files.newOutputStream(Paths.get("passLetter.pdf")); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + PdfReader pdfReader = new PdfReader(inputStream); PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, 20, new Color(255, 82,25)); } catch (IOException e) { throw new RuntimeException(e); diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java index 4e0de1a97..b26ecc51e 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewMapper.java @@ -1,6 +1,7 @@ package com.cool.store.mapper; import com.cool.store.entity.HyPartnerInterviewDO; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.cool.store.vo.PartnerPassLetterDetailVO; import org.apache.ibatis.annotations.Param; @@ -61,11 +62,16 @@ public interface HyPartnerInterviewMapper { /** * 根据会议 id 查询面试官 id */ - String getInterviewerByInterviewId(@Param("interviewId") String interviewId); + EnterInterviewVO getInterviewerByInterviewId(@Param("interviewId") String interviewId); /** * 获取通知函详情 */ PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewId") String interviewId); + /** + * 生成通过函 pdf 后修改 + */ + int updatePassLetterInfo(@Param("passCode") String passCode, @Param("passFileUrl") String passFileUrl, @Param("expiryDate") String expiryDate, @Param("interviewId") String interviewId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml index cf27b14f9..e69a1691f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyContentInfoMapper.xml @@ -106,10 +106,10 @@ content_title = #{record.contentTitle}, - + subject = #{record.subject}, - + content_type = #{record.contentType}, diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml index 0fa5d3610..2eee85c8c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml @@ -34,6 +34,11 @@ + + + + + @@ -311,23 +316,44 @@ - + SELECT interviewer, interviewer interviewer_id, partner_id FROM hy_partner_interview WHERE id = #{interviewId} + + + UPDATE hy_partner_interview + + + pass_code = #{passCode}, + + + pass_file_url = #{passFileUrl}, + + + expiry_date = #{expiryDate} + + + WHERE id = #{interviewId} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterInterviewVO.java similarity index 59% rename from coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java rename to coolstore-partner-model/src/main/java/com/cool/store/vo/EnterInterviewVO.java index c9a294e2d..76f42563d 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerEnterInterviewVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterInterviewVO.java @@ -4,7 +4,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; @Data -public class PartnerEnterInterviewVO { +public class EnterInterviewVO { @ApiModelProperty("userSig 进入会议需要的用户签名") private String userSign; @@ -12,4 +12,10 @@ public class PartnerEnterInterviewVO { @ApiModelProperty("面试官id") private String interviewerId; + @ApiModelProperty("面试官姓名") + private String interviewerName; + + @ApiModelProperty("加盟商姓名") + private String partnerName; + } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java index cc83453f9..4bb0a40e2 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerPassLetterDetailVO.java @@ -9,7 +9,10 @@ public class PartnerPassLetterDetailVO { @ApiModelProperty("加盟商姓名") private String partnerName; - @ApiModelProperty("编码") + @ApiModelProperty("授权码") + private String authCode; + + @ApiModelProperty("通过函编码") private String passCode; @ApiModelProperty("审核城市") diff --git a/coolstore-partner-service/pom.xml b/coolstore-partner-service/pom.xml index 1422f9c1d..d1c4bc08a 100644 --- a/coolstore-partner-service/pom.xml +++ b/coolstore-partner-service/pom.xml @@ -41,6 +41,11 @@ com.aliyun ons20190214 + + + com.aliyun.oss + aliyun-sdk-oss + com.github.pagehelper pagehelper 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 new file mode 100644 index 000000000..6f6261d31 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/oss/OSSServer.java @@ -0,0 +1,64 @@ +package com.cool.store.oss; + +import com.aliyun.oss.ClientException; +import com.aliyun.oss.OSS; +import com.aliyun.oss.OSSClientBuilder; +import com.aliyun.oss.OSSException; +import com.aliyun.oss.model.PutObjectRequest; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +import java.io.InputStream; + +@Component +@Slf4j +public class OSSServer { + + @Value("${oss.accessKeyId:null}") + private String accessKeyId; + @Value("${oss.accessKeySecret:null}") + private String accessKeySecret; + @Value("${oss.endpoint:null}") + private String endpoint; + @Value("${oss.bucket:null}") + private String bucket; + @Value("${corp.id:null}") + private String corpId; + + /** + * 服务端上传文件的方法 + * ObjectName 为文件存放位置 + 名字,不可包含 bucket + */ + public String uploadFileServer(InputStream inputStream, String objectName) { + // 创建OSSClient实例。 + OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret); + try { + // 创建PutObjectRequest对象。 + PutObjectRequest putObjectRequest = new PutObjectRequest(bucket, objectName, inputStream); + // 创建PutObject请求。 + ossClient.putObject(putObjectRequest); + return "http://" + bucket + "." + endpoint + "/" + 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."); + log.error("Error Message:" + oe.getErrorMessage()); + log.error("Error Code:" + oe.getErrorCode()); + log.error("Request ID:" + oe.getRequestId()); + log.error("Host ID:" + oe.getHostId()); + } catch (ClientException ce) { + log.error("Caught an ClientException, which means the client encountered " + + "a serious internal problem while trying to communicate with OSS, " + + "such as not being able to access the network."); + log.error("Error Message:" + ce.getMessage()); + } catch (RuntimeException e) { + throw new RuntimeException(e); + } + finally { + if (ossClient != null) { + ossClient.shutdown(); + } + } + return null; + } +} 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 b101c26a1..c7e1173ed 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 @@ -1,9 +1,11 @@ package com.cool.store.service; +import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.request.EntrustOthersReq; import com.cool.store.request.FinishInterviewReq; import com.cool.store.request.GetInterviewListReq; import com.cool.store.request.ModifyInterviewTimeReq; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.interview.InterviewVO; import java.util.List; @@ -39,4 +41,13 @@ public interface InterviewService { * @param request */ void finishInterview(FinishInterviewReq request); + + /** + * 进入面试间的方法 + * 修改一些面试状态 + * 最后返回 userSign 用于进入腾讯云音视频房间 + * @return userSign 进入视频所需签名 + */ + EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java index efc740737..9d8bca88f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerInterviewService.java @@ -1,7 +1,7 @@ package com.cool.store.service; import com.cool.store.dto.partner.EnterInterviewDto; -import com.cool.store.vo.PartnerEnterInterviewVO; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.cool.store.vo.PartnerPassLetterDetailVO; @@ -20,7 +20,7 @@ public interface PartnerInterviewService { * 最后返回 userSign 用于进入腾讯云音视频房间 * @return userSign 进入视频所需签名 */ - PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto); + EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto); /** * 获取通知函详情 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 5b7fc8700..c4e5488cf 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 @@ -2,8 +2,11 @@ package com.cool.store.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.date.DateUtil; +import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.entity.HyPartnerInterviewDO; import com.cool.store.entity.HyPartnerInterviewPlanDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.mapper.HyPartnerInterviewMapper; import com.cool.store.mapper.HyPartnerInterviewPlanMapper; import com.cool.store.request.EntrustOthersReq; @@ -11,10 +14,14 @@ import com.cool.store.request.FinishInterviewReq; import com.cool.store.request.GetInterviewListReq; import com.cool.store.request.ModifyInterviewTimeReq; import com.cool.store.service.InterviewService; +import com.cool.store.utils.TRTCUtils; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.interview.InterviewVO; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; @@ -28,9 +35,18 @@ import java.util.List; @Service public class InterviewServiceImpl implements InterviewService { + @Value("${trtc.sdkAppId}") + private Long sdkAppId; + + @Value("${trtc.secretKey}") + private String key; + @Autowired private HyPartnerInterviewPlanMapper hyPartnerInterviewPlanMapper; + @Autowired + private HyPartnerInterviewMapper interviewMapper; + @Autowired private HyPartnerInterviewMapper hyPartnerInterviewMapper; @Override @@ -97,6 +113,35 @@ public class InterviewServiceImpl implements InterviewService { } + /** + * 进入面试间的方法 + * 修改一些面试状态 + * 最后返回 userSign 用于进入腾讯云音视频房间 + * + * @return userSign 进入视频所需签名 + */ + @Override + @Transactional + public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) { + try { + //1. 将面试状态改为 --> 2已开始 + interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2); + //3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改 + interviewMapper.updateActualStartTime(dto.getInterviewId(), DateUtil.now()); + //4. 修改加盟商或面试官进入面试时间 + interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now()); + //5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段 + interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId()); + //6. 查询对应的面试官id、姓名及加盟商姓名 + EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId()); + //生成 userSign + String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId()); + vo.setUserSign(userSig); + return vo; + } catch (Exception e) { + throw new ServiceException(ErrorCodeEnum.INTERVIEW_ENTER_FAIL); + } + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java index 3507e4f8b..f2606d200 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerInterviewServiceImpl.java @@ -2,16 +2,16 @@ package com.cool.store.service.impl; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.util.RandomUtil; +import cn.hutool.core.util.ObjectUtil; import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.mapper.HyPartnerInterviewMapper; +import com.cool.store.oss.OSSServer; import com.cool.store.service.PartnerInterviewService; -import com.cool.store.utils.PDFUtils; import com.cool.store.utils.PassLetterUtils; import com.cool.store.utils.TRTCUtils; -import com.cool.store.vo.PartnerEnterInterviewVO; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.cool.store.vo.PartnerPassLetterDetailVO; import org.springframework.beans.factory.annotation.Autowired; @@ -19,8 +19,7 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import java.io.ByteArrayOutputStream; -import java.io.OutputStream; +import java.io.*; @Service public class PartnerInterviewServiceImpl implements PartnerInterviewService { @@ -28,6 +27,9 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { @Autowired private HyPartnerInterviewMapper interviewMapper; + @Autowired + private OSSServer ossServer; + @Value("${trtc.sdkAppId}") private Long sdkAppId; @@ -54,7 +56,7 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { */ @Override @Transactional - public PartnerEnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) { + public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) { try { //1. 将面试状态改为 --> 2已开始 interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2); @@ -64,13 +66,11 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now()); //5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段 interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId()); - //6. 查询对应的面试官id - String interviewId = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId()); + //6. 查询对应的面试官id、姓名及加盟商姓名 + EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId()); //生成 userSign String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId()); - PartnerEnterInterviewVO vo = new PartnerEnterInterviewVO(); vo.setUserSign(userSig); - vo.setInterviewerId(interviewId); return vo; } catch (Exception e) { throw new ServiceException(ErrorCodeEnum.INTERVIEW_ENTER_FAIL); @@ -84,17 +84,8 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { @Override public PartnerPassLetterDetailVO passLetterDetail(String interviewId) { PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewId); - //有效期为审批通过次日起第 60 天的 23:59:59,由此倒推 createTime - DateTime expiryDate = DateUtil.parseDate(vo.getExpiryDate()); - DateTime createTime = DateUtil.offsetDay(expiryDate, -61); - vo.setCreateTime(DateUtil.format(createTime, "yyyy-MM-dd")); //解析意向开店区域为市级行政区 String verifyCity = vo.getVerifyCity(); - if (verifyCity == null) { - String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime); - vo.setPassCode(passCode); - return vo; - } String[] split = verifyCity.split("/"); //根据长度来取市级行政区域 if (split.length == 2) { @@ -106,9 +97,35 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService { } else { System.out.println("wrong"); } - String passCode = PassLetterUtils.genPassLetter(vo.getPartnerName(), verifyCity, vo.getPassCode(), createTime); - vo.setPassCode(passCode); + // TODO 调用生成通过函和修改数据库数据的方法 + String passCode = genPassLetterAndUpdateDB(vo, interviewId); + //再查一次 vo + vo = interviewMapper.getPassLetterDetail(interviewId); + //有效期为审批通过次日起第 60 天的 23:59:59,由此倒推 createTime + DateTime expiryDate = DateUtil.parseDate(vo.getExpiryDate()); + DateTime createTime = DateUtil.offsetDay(expiryDate, -60); + vo.setCreateTime(DateUtil.format(createTime, "yyyy-MM-dd")); return vo; } + /** + * TODO 暂时将生成 passLetter 并上传 OSS 和修改数据库对应信息的方法放在这里,实际应该在 800 的回调方法中 + * @return passCode + */ + private String genPassLetterAndUpdateDB(PartnerPassLetterDetailVO passLetterDetail, String interviewId) { + //已经有 passCode 的话就不要再生成了,默认上游全部数据都正确 + if (ObjectUtil.isEmpty(passLetterDetail.getPassCode())) { + DateTime createTime = DateUtil.date(); + String code = passLetterDetail.getPassCode() == null ? PassLetterUtils.genPassCode(createTime) : passLetterDetail.getPassCode(); + ByteArrayOutputStream outputStream = PassLetterUtils.genPassLetter(passLetterDetail.getPartnerName(), code, passLetterDetail.getVerifyCity(), createTime); + ByteArrayInputStream inputStream = new ByteArrayInputStream(outputStream.toByteArray()); + String passFileUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + code + ".pdf"); + //计算有效期截至日期 + DateTime expiryDate = DateUtil.offsetDay(createTime, 60); + String expiryDateStr = DateUtil.format(expiryDate, "yyyy-MM-dd") + " 23:59:59"; + interviewMapper.updatePassLetterInfo(code, passFileUrl, expiryDateStr, interviewId); + } + return passLetterDetail.getPassCode(); + } + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java index 4a4453ae9..c8360f4b7 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/InterviewController.java @@ -1,8 +1,10 @@ package com.cool.store.controller; +import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.InterviewService; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.interview.InterviewVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; @@ -65,6 +67,10 @@ public class InterviewController { return ResponseResult.success(); } - + @PostMapping("/enter") + @ApiOperation("进入面试间") + public ResponseResult enterInterviewRoom(@RequestBody EnterInterviewDto dto) { + return ResponseResult.success(interviewService.enterInterviewRoom(dto)); + } } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java index 96c06b465..3af188129 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/InterviewController.java @@ -3,25 +3,14 @@ package com.cool.store.controller; import com.cool.store.dto.partner.EnterInterviewDto; import com.cool.store.response.ResponseResult; import com.cool.store.service.PartnerInterviewService; -import com.cool.store.utils.PDFUtils; -import com.cool.store.vo.PartnerEnterInterviewVO; +import com.cool.store.vo.EnterInterviewVO; import com.cool.store.vo.PartnerInterviewInfoVO; import com.cool.store.vo.PartnerPassLetterDetailVO; -import com.lowagie.text.Document; -import com.lowagie.text.Image; -import com.lowagie.text.pdf.PdfWriter; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; -import org.apache.tomcat.util.http.fileupload.IOUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.ServletOutputStream; -import javax.servlet.http.HttpServletResponse; -import java.io.*; -import java.nio.file.Files; -import java.nio.file.Paths; - @Api(tags = "加盟商资格面试") @RestController @RequestMapping("interview") @@ -38,7 +27,7 @@ public class InterviewController { @PostMapping("/enter") @ApiOperation("进入面试间") - public ResponseResult enterInterviewRoom(@RequestBody EnterInterviewDto dto) { + public ResponseResult enterInterviewRoom(@RequestBody EnterInterviewDto dto) { return ResponseResult.success(interviewService.enterInterviewRoom(dto)); } From 8a674179989a2f357d6a16b33605f5f91df2636a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 Jun 2023 19:26:51 +0800 Subject: [PATCH 3/6] =?UTF-8?q?=E6=8B=9B=E5=95=86=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/constants/CommonConstants.java | 4 ++ .../store/dao/HyIntendDevZoneInfoDAO.java | 1 - .../store/dao/HyPartnerIntentInfoDAO.java | 2 +- .../mapper/HyPartnerIntentInfoMapper.java | 2 +- .../mapper/HyPartnerIntentInfoMapper.xml | 2 +- .../store/vo/EnterpriseUserSingleInfoVO.java | 18 ++++++ .../cool/store/vo/PartnerIntentInfoVO.java | 6 ++ .../store/service/EnterpriseUserService.java | 9 +++ .../service/HyPartnerIntentInfoService.java | 3 +- .../com/cool/store/service/ZoneService.java | 6 ++ .../impl/EnterpriseUserServiceImpl.java | 59 ++++++++++++++++++ .../impl/HyPartnerIntentInfoServiceImpl.java | 60 +++++++++++++++---- .../store/service/impl/ZoneServiceImpl.java | 17 +++++- .../cool/store/controller/DeskController.java | 34 ++++++++++- .../store/controller/RegionController.java | 16 +++++ .../cool/store/controller/ZoneController.java | 8 +++ 16 files changed, 226 insertions(+), 21 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java index 31a74495e..07f705625 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java @@ -114,4 +114,8 @@ public class CommonConstants { public static final String FOLLOW = "follow"; public static final String PENDING = "pending"; + public static final String ALLOCATION = "allocation"; + + public static final String TRANSFER = "transfer"; + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java index 89d265abe..a8b47cfc5 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyIntendDevZoneInfoDAO.java @@ -46,5 +46,4 @@ public class HyIntendDevZoneInfoDAO { - } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java index 211c5f87f..1196ec32a 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java @@ -48,7 +48,7 @@ public class HyPartnerIntentInfoDAO { } - public PartnerIntentApplyInfoDTO selectByLineId(Long lineId){ + public HyPartnerIntentInfoDO selectByLineId(Long lineId){ if (lineId==null){ return null; } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java index cd68c7a3e..ea75a2a96 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java @@ -46,5 +46,5 @@ public interface HyPartnerIntentInfoMapper { * @param lineId * @return */ - PartnerIntentApplyInfoDTO selectByLineId(@Param("lineId") Long lineId); + HyPartnerIntentInfoDO selectByLineId(@Param("lineId") Long lineId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml index e495f858c..aa14b21b3 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -279,7 +279,7 @@ order by b.create_time - select from hy_partner_intent_info diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java new file mode 100644 index 000000000..e08f6e3cd --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserSingleInfoVO.java @@ -0,0 +1,18 @@ +package com.cool.store.vo; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/15 14:31 + * @Version 1.0 + */ +@Data +public class EnterpriseUserSingleInfoVO { + + private String userId; + + private String userName; + + private String mobile; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java index fb2d1271c..42b1ddf1e 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerIntentInfoVO.java @@ -22,6 +22,12 @@ public class PartnerIntentInfoVO { @ApiModelProperty("hy_partner_user_info.partner_id") private String partnerId; + @ApiModelProperty("加盟商姓名") + private String partnerUserName; + + @ApiModelProperty("加盟商手机号") + private String partnerUserPhone; + @ApiModelProperty("hy_partner_line_info.id") private Long partnerLineId; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java index 53da2b8ef..ced52a735 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EnterpriseUserService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.request.EnterpriseUserRequest; +import com.cool.store.vo.EnterpriseUserSingleInfoVO; import com.cool.store.vo.buser.EnterpriseUserPageVO; import java.util.List; @@ -16,4 +17,12 @@ public interface EnterpriseUserService { EnterpriseUserDO getUserInfoByUserId(String userId); + + /** + * + * @param userId + * @return + */ + List getInvestmentManagerList(String type,String userId,String keyword); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java index 47a14455b..915635b6e 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java @@ -2,6 +2,7 @@ package com.cool.store.service; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; +import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageInfo; /** @@ -27,7 +28,7 @@ public interface HyPartnerIntentInfoService { * @param lineId * @return */ - PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId); + PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId); /** * 员工端 修改加盟商意向信息 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java index 8526bccfd..1dfdccc5c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/ZoneService.java @@ -61,6 +61,12 @@ public interface ZoneService { */ List checkZone(IntentAreaSettingRequest intentAreaSettingRequest); + /** + * 查询所有绑定战区的组织机构 + * @return + */ + List queryAllBingZoneRegionList(String type); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java index ad101df9a..fd897c898 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseUserServiceImpl.java @@ -1,11 +1,19 @@ package com.cool.store.service.impl; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.*; import com.cool.store.entity.*; import com.cool.store.service.EnterpriseUserService; +import com.cool.store.service.ZoneService; +import com.cool.store.vo.EnterpriseUserSingleInfoVO; import lombok.extern.slf4j.Slf4j; +import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Collection; +import java.util.HashSet; +import java.util.List; /** * @author zhangchenbiao @@ -22,10 +30,61 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService { private EnterpriseUserDAO enterpriseUserDAO; @Resource private EnterpriseUserRoleDAO enterpriseUserRoleDAO; + @Resource + ZoneService zoneService; + @Resource + RegionDAO regionDAO; + @Resource + UserRegionMappingDAO userRegionMappingDAO; + @Override public EnterpriseUserDO getUserInfoByUserId(String userId) { return enterpriseUserDAO.getUserInfoById(userId); } + + @Override + public List getInvestmentManagerList(String type,String userId, String keyword) { + //查询当前人员信息 + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + + //当前登录人所在组织机构 + List regionIds = userRegionMappingDAO.getRegionIdsByUserId(userId); + + //所有绑定了战区的组织机构 + List list = zoneService.queryAllBingZoneRegionList("intend"); + HashSet regionList = new HashSet<>(); + regionIds.forEach(x->{ + if (list.contains(x)){ + regionList.add(x); + } + }); + //分配 + //如果是招商经理 只能分配给自己 + //如果是负责人 分配给负责人所在战区人员 + List enterpriseUserDOS = new ArrayList<>(); + if (CommonConstants.ALLOCATION.equals(type)){ + if (userInfo.getIsLeader()){ + enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE); + } + if (CollectionUtils.isNotEmpty(regionList)){ + //只有招商经理本人 + enterpriseUserDOS.add(userInfo); + } + } + //转交 所有的招商经理 + if (CommonConstants.TRANSFER.equals(type)){ + enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(new ArrayList<>(regionList), keyword, Boolean.TRUE); + } + List enterpriseUserSingleInfoVOS = new ArrayList<>(); + enterpriseUserDOS.forEach(x->{ + EnterpriseUserSingleInfoVO enterpriseUserSingleInfoVO = new EnterpriseUserSingleInfoVO(); + enterpriseUserSingleInfoVO.setUserId(x.getUserId()); + enterpriseUserSingleInfoVO.setUserName(x.getName()); + enterpriseUserSingleInfoVO.setMobile(x.getMobile()); + enterpriseUserSingleInfoVOS.add(enterpriseUserSingleInfoVO); + }); + return enterpriseUserSingleInfoVOS; + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index b3c43a44e..02c75d133 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -1,11 +1,13 @@ package com.cool.store.service.impl; +import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; +import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.enums.WorkflowStageEnum; @@ -13,9 +15,12 @@ import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; +import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; +import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -73,17 +78,6 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return partnerIntentApplyInfo; } - @Override - public PartnerIntentApplyInfoVO getPartnerIntentApplyInfo(Long lineId) { - PartnerIntentApplyInfoDTO partnerIntentApplyInfoDTO= hyPartnerIntentInfoDAO.selectByLineId(lineId); - PartnerIntentApplyInfoVO partnerIntentApplyInfoVO = partnerIntentApplyInfoDTOToVo(partnerIntentApplyInfoDTO); - HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerIntentApplyInfoDTO.getPartnerId()); - partnerIntentApplyInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername()); - partnerIntentApplyInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile()); - //todo su 手机号归属地 意向申请区域名称 - return partnerIntentApplyInfoVO; - } - @Override public Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest) { HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(baseUserInfoRequest.getPartnerId())); @@ -102,6 +96,17 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return Boolean.TRUE; } + @Override + public PartnerIntentInfoVO getPartnerIntentApplyDetail(Long lineId) { + HyPartnerIntentInfoDO hyPartnerIntentInfoDO= hyPartnerIntentInfoDAO.selectByLineId(lineId); + PartnerIntentInfoVO partnerIntentInfoVO = convertPartnerIntentApplyInfoDOToVO(hyPartnerIntentInfoDO); + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(hyPartnerIntentInfoDO.getPartnerId()); + partnerIntentInfoVO.setPartnerUserName(hyPartnerUserInfoDO.getUsername()); + partnerIntentInfoVO.setPartnerUserPhone(hyPartnerUserInfoDO.getMobile()); + //todo su 手机号归属地 意向申请区域名称 + return partnerIntentInfoVO; + } + /** * partnerIntentApplyInfoDTOToVo * @param partnerIntentApplyInfoDTO @@ -121,4 +126,37 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic } + /** + * + * @param hyPartnerIntentInfoDO + * @return + */ + private PartnerIntentInfoVO convertPartnerIntentApplyInfoDOToVO(HyPartnerIntentInfoDO hyPartnerIntentInfoDO){ + PartnerIntentInfoVO partnerIntentInfoVO = new PartnerIntentInfoVO(); + partnerIntentInfoVO.setId(hyPartnerIntentInfoDO.getId()); + partnerIntentInfoVO.setPartnerId(hyPartnerIntentInfoDO.getPartnerId()); + partnerIntentInfoVO.setPartnerLineId(hyPartnerIntentInfoDO.getPartnerLineId()); + partnerIntentInfoVO.setAcceptAdjustType(hyPartnerIntentInfoDO.getAcceptAdjustType()); + partnerIntentInfoVO.setLiveArea(hyPartnerIntentInfoDO.getLiveArea()); + partnerIntentInfoVO.setWantShopArea(hyPartnerIntentInfoDO.getWantShopArea()); + partnerIntentInfoVO.setEducation(hyPartnerIntentInfoDO.getEducation()); + partnerIntentInfoVO.setMaxBudget(hyPartnerIntentInfoDO.getMaxBudget()); + partnerIntentInfoVO.setBrandStrength(hyPartnerIntentInfoDO.getBrandStrength()); + partnerIntentInfoVO.setIsConsumer(hyPartnerIntentInfoDO.getIsConsumer()); + partnerIntentInfoVO.setIsHaveWantShop(hyPartnerIntentInfoDO.getIsHaveWantShop()); + partnerIntentInfoVO.setIsHaveWorkExp(hyPartnerIntentInfoDO.getIsHaveWorkExp()); + partnerIntentInfoVO.setMoneyProve(StringUtil.isEmpty(hyPartnerIntentInfoDO.getMoneyProve())? + Lists.newArrayList(): JSONObject.parseArray(hyPartnerIntentInfoDO.getMoneyProve(),String.class)); + partnerIntentInfoVO.setMoneySource(hyPartnerIntentInfoDO.getMoneySource()); + partnerIntentInfoVO.setWorkYear(hyPartnerIntentInfoDO.getWorkYear()); + partnerIntentInfoVO.setWeakness(hyPartnerIntentInfoDO.getWeakness()); + partnerIntentInfoVO.setCreateTime(hyPartnerIntentInfoDO.getCreateTime()); + partnerIntentInfoVO.setOtherBand(hyPartnerIntentInfoDO.getOtherBand()); + partnerIntentInfoVO.setStrength(hyPartnerIntentInfoDO.getStrength()); + partnerIntentInfoVO.setNeedImprove(hyPartnerIntentInfoDO.getNeedImprove()); + return partnerIntentInfoVO; + } + + + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java index 52aae654d..58bac567c 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/ZoneServiceImpl.java @@ -201,13 +201,26 @@ public class ZoneServiceImpl implements ZoneService { List openAreaIdList = list.stream().map(ZoneCheckDTO::getOpenAreaMappingId).collect(Collectors.toList()); List hyOpenAreaInfoDOList = openAreaInfoDAO.selectByIds(openAreaIdList); Map areaNameMap = hyOpenAreaInfoDOList.stream().collect(Collectors.toMap(HyOpenAreaInfoDO::getId, HyOpenAreaInfoDO::getAreaName)); - List reslut = new ArrayList<>(); + List result = new ArrayList<>(); list.forEach(x->{ ZoneCheckVO zoneCheckVO = new ZoneCheckVO(); zoneCheckVO.setZoneName(x.getZoneName()); String areaName = areaNameMap.get(x.getOpenAreaMappingId()); zoneCheckVO.setAreaName(areaName); + result.add(zoneCheckVO); }); - return reslut; + return result; } + + @Override + public List queryAllBingZoneRegionList(String type) { + PageInfo intend = hyIntendDevZoneInfoDAO.getHyIntendDevZoneInfoList(type); + List list = intend.getList(); + List resultList = list.stream().filter(x->StringUtil.isNotEmpty(x.getAssociatedRegionId())) + .flatMap(HyIntendDevZoneInfoDO -> JSONObject.parseArray(HyIntendDevZoneInfoDO.getAssociatedRegionId(), String.class).stream()) + .collect(Collectors.toList()); + return resultList; + } + + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 3fa03560e..a18ad5337 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -1,7 +1,10 @@ package com.cool.store.controller; import com.cool.store.context.CurrentUserHolder; +import com.cool.store.dto.calendar.UserCalendarsEventDTO; import com.cool.store.enums.LineStatusEnum; +import com.cool.store.exception.ApiException; +import com.cool.store.http.ISVHttpRequest; import com.cool.store.request.*; import com.cool.store.response.ResponseResult; import com.cool.store.service.*; @@ -36,7 +39,10 @@ public class DeskController { HyPartnerLineInfoService hyPartnerLineInfoService; @Resource HyPartnerBaseInfoService hyPartnerBaseInfoService; - + @Resource + private ISVHttpRequest isvHttpRequest; + @Resource + EnterpriseUserService enterpriseUserService; @GetMapping(path = "/interviewSchedule") @@ -48,6 +54,28 @@ public class DeskController { } + @GetMapping(path = "/getInvestmentManagerList") + @ApiOperation("招商经理") + @ApiImplicitParams({ + @ApiImplicitParam(name = "type", value = "allocation-招商经理 transfer", required = false), + @ApiImplicitParam(name = "keyword", value = "keyword", required = false), + }) + public ResponseResult> getInvestmentManagerList(String type,String keyword){ + return ResponseResult.success(enterpriseUserService.getInvestmentManagerList(type,CurrentUserHolder.getUserId(),keyword)); + } + + + @GetMapping(path = "/interviewSchedule") + @ApiOperation("飞书日程信息") + public ResponseResult> interviewSchedule(@RequestParam(value = "startTime",required = true) Long startTime, + @RequestParam(value = "endTime",required = true) Long endTime) throws ApiException { + + String userId = CurrentUserHolder.getUserId(); + return ResponseResult.success(isvHttpRequest.getUserCalendarsEvents(userId,startTime,endTime)); + } + + + @GetMapping(path = "/queryStageCount") @ApiOperation("招商经理视角====各阶段待处理待跟进数量") @ApiImplicitParams({ @@ -118,8 +146,8 @@ public class DeskController { @ApiImplicitParams({ @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), }) - public ResponseResult getPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - return ResponseResult.success(hyPartnerIntentInfoService.getPartnerIntentApplyInfo(lineId)); + public ResponseResult getPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ + return ResponseResult.success(hyPartnerIntentInfoService.getPartnerIntentApplyDetail(lineId)); } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java index 436ca5c64..20703f5ad 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/RegionController.java @@ -2,11 +2,16 @@ package com.cool.store.controller; import com.cool.store.response.ResponseResult; import com.cool.store.service.RegionService; +import com.cool.store.service.ZoneService; import com.cool.store.vo.region.RegionBaseInfoVO; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; +import io.swagger.annotations.ApiOperation; import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; @@ -28,6 +33,8 @@ public class RegionController { @Resource private RegionService regionService; + @Resource + ZoneService zoneService; @GetMapping("/getRegionList") public ResponseResult> getRegionBaseInfoList(){ @@ -36,4 +43,13 @@ public class RegionController { } + @ApiOperation("查询所有被绑定战区的组织机构") + @ApiImplicitParams({ + @ApiImplicitParam(name = "type", value = "intent-意向区域 development 开发区域", required = false) + }) + @GetMapping("/queryAllBingZoneRegionList") + public ResponseResult> queryAllBingZoneRegionList(@RequestParam(value = "type",required = false)String type){ + return ResponseResult.success(zoneService.queryAllBingZoneRegionList(type)); + } + } diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java index a3e150335..65a49967a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/ZoneController.java @@ -4,6 +4,7 @@ import com.cool.store.context.CurrentUserHolder; import com.cool.store.request.IntentAreaSettingRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.ZoneService; +import com.cool.store.vo.ZoneCheckVO; import com.cool.store.vo.ZoneVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; @@ -13,6 +14,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; +import java.util.List; /** * @Author suzhuhong @@ -32,6 +34,12 @@ public class ZoneController { return ResponseResult.success(zoneService.addZone( CurrentUserHolder.getUserId(),intentAreaSettingRequest)); } + @PostMapping(path = "/checkZone") + @ApiOperation("校验战区") + public ResponseResult> checkZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ + return ResponseResult.success(zoneService.checkZone(intentAreaSettingRequest)); + } + @PostMapping(path = "/updateZone") @ApiOperation("编辑意向战区/开发战区") public ResponseResult updateZone(@RequestBody IntentAreaSettingRequest intentAreaSettingRequest){ From 3d52ccaa5b387e05316691b3fcf9d4a29a82217e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Thu, 15 Jun 2023 19:31:10 +0800 Subject: [PATCH 4/6] =?UTF-8?q?=E6=8B=9B=E5=95=86=E7=BB=8F=E7=90=86?= =?UTF-8?q?=E7=AD=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/controller/DeskController.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index a18ad5337..3098e57d5 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -65,9 +65,9 @@ public class DeskController { } - @GetMapping(path = "/interviewSchedule") + @GetMapping(path = "/getUserCalendarsEvents") @ApiOperation("飞书日程信息") - public ResponseResult> interviewSchedule(@RequestParam(value = "startTime",required = true) Long startTime, + public ResponseResult> getUserCalendarsEvents(@RequestParam(value = "startTime",required = true) Long startTime, @RequestParam(value = "endTime",required = true) Long endTime) throws ApiException { String userId = CurrentUserHolder.getUserId(); From 0ad84af01fab6f5b5b8bf2cadbfa0addfb2d8460 Mon Sep 17 00:00:00 2001 From: wxp01309236 Date: Thu, 15 Jun 2023 22:04:30 +0800 Subject: [PATCH 5/6] =?UTF-8?q?=E6=84=8F=E5=90=91=E4=B9=A6=E4=BF=A1?= =?UTF-8?q?=E6=81=AF=E7=BB=B4=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 2 + .../cool/store/dao/HyPartnerBaseInfoDAO.java | 9 +- .../com/cool/store/dao/HyPartnerClerkDAO.java | 26 +++++- .../store/dao/HyPartnerIntentInfoDAO.java | 11 ++- .../cool/store/dao/HyPartnerLineInfoDAO.java | 9 +- .../cool/store/dao/HyPartnerUserInfoDAO.java | 7 ++ .../store/mapper/HyPartnerBaseInfoMapper.java | 3 + .../store/mapper/HyPartnerClerkMapper.java | 13 +++ .../mapper/HyPartnerIntentInfoMapper.java | 2 + .../store/mapper/HyPartnerLineInfoMapper.java | 5 +- .../store/mapper/HyPartnerUserInfoMapper.java | 3 + .../mapper/HyPartnerBaseInfoMapper.xml | 8 ++ .../resources/mapper/HyPartnerClerkMapper.xml | 33 ++++++++ .../mapper/HyPartnerIntentInfoMapper.xml | 7 ++ .../mapper/HyPartnerLineInfoMapper.xml | 7 ++ .../mapper/HyPartnerUserInfoMapper.xml | 7 ++ .../request/PartnerIntentInfoRequest.java | 6 ++ .../service/HyPartnerBaseInfoService.java | 6 ++ .../store/service/HyPartnerClerkService.java | 5 ++ .../service/HyPartnerIntentInfoService.java | 5 ++ .../store/service/PartnerUserInfoService.java | 7 ++ .../impl/HyPartnerBaseInfoServiceImpl.java | 51 ++++++++++++ .../service/impl/HyPartnerClerkImpl.java | 41 ---------- .../impl/HyPartnerClerkServiceImpl.java | 82 +++++++++++++++++++ .../impl/HyPartnerIntentInfoServiceImpl.java | 54 ++++++++++++ .../impl/PartnerUserInfoServiceImpl.java | 27 ++++++ .../store/controller/PartnerController.java | 51 ++++++------ 27 files changed, 412 insertions(+), 75 deletions(-) delete mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java index e6650568f..78257f53f 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/ErrorCodeEnum.java @@ -55,6 +55,8 @@ public enum ErrorCodeEnum { WORK_FLOW_STAGE_PASS_ERROR(500002, "通过错误,非对应阶段!", null), PARTNER_USER_NOT_EXIST(500003, "加盟商用户信息不存在!", null), ZONE_NOT_EXIST(500004, "战区不存在!", null), + PARTNER_BASEINFO_NOT_EXIST(500005, "基本信息不存在!", null), + INTENT_INFO_NOT_EXIST(500006, "意向信息不存在!", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java index edcd63f67..9e141f57d 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerBaseInfoDAO.java @@ -2,7 +2,7 @@ package com.cool.store.dao; import com.cool.store.entity.HyPartnerBaseInfoDO; import com.cool.store.mapper.HyPartnerBaseInfoMapper; -import org.apache.ibatis.annotations.Param; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -38,4 +38,11 @@ public class HyPartnerBaseInfoDAO { return hyPartnerBaseInfoMapper.updateByPartnerId(userName,mobile,partnerId); } + public HyPartnerBaseInfoDO getByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || partnerLineId == null){ + return null; + } + return hyPartnerBaseInfoMapper.getByPartnerIdAndLineId(partnerId, partnerLineId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java index 5edcb6f2e..8963346a6 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerClerkDAO.java @@ -2,11 +2,14 @@ package com.cool.store.dao; import com.cool.store.entity.HyPartnerClerkDO; import com.cool.store.mapper.HyPartnerClerkMapper; -import org.apache.ibatis.annotations.Param; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.Collections; import java.util.List; +import java.util.Objects; /** * @Author suzhuhong @@ -31,4 +34,25 @@ public class HyPartnerClerkDAO { return hyPartnerClerkMapper.getHyPartnerClerkList(lineId); } + public int batchInsert(List hyPartnerClerkDOList){ + if (CollectionUtils.isEmpty(hyPartnerClerkDOList)){ + return -1; + } + return hyPartnerClerkMapper.batchInsert(hyPartnerClerkDOList); + } + + public void deleteByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return; + } + hyPartnerClerkMapper.deleteByPartnerIdAndLineId(partnerId, partnerLineId); + } + + public List listByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return Collections.emptyList(); + } + return hyPartnerClerkMapper.listByPartnerIdAndLineId(partnerId, partnerLineId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java index 1196ec32a..c950a1fed 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerIntentInfoDAO.java @@ -4,13 +4,11 @@ import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.mapper.HyPartnerIntentInfoMapper; import com.github.pagehelper.PageInfo; -import com.google.common.collect.Lists; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; -import java.util.List; +import java.util.Objects; /** * @Author suzhuhong @@ -55,5 +53,12 @@ public class HyPartnerIntentInfoDAO { return hyPartnerIntentInfoMapper.selectByLineId(lineId); } + public HyPartnerIntentInfoDO getByPartnerIdAndLineId(String partnerId, Long partnerLineId){ + if (StringUtils.isEmpty(partnerId) || Objects.isNull(partnerLineId)){ + return null; + } + return hyPartnerIntentInfoMapper.getByPartnerIdAndLineId(partnerId, partnerLineId); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java index 471c5ad53..5ee627712 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java @@ -1,7 +1,6 @@ package com.cool.store.dao; import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; import com.cool.store.entity.HyPartnerLineInfoDO; @@ -10,7 +9,6 @@ import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; import javax.annotation.Resource; @@ -125,7 +123,12 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason); } - + public HyPartnerLineInfoDO getByPartnerId(String partnerId){ + if (StringUtils.isEmpty(partnerId)){ + return null; + } + return hyPartnerLineInfoMapper.getByPartnerId(partnerId); + } } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java index ec703675d..f03520321 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerUserInfoDAO.java @@ -68,5 +68,12 @@ public class HyPartnerUserInfoDAO { return hyPartnerUserInfoMapper.insertSelective(record); } + public int updateJoinKnowById(Integer isWritePartnerKnow, Long id){ + if (id == null || isWritePartnerKnow == null){ + return 0; + } + return hyPartnerUserInfoMapper.updateJoinKnowById(isWritePartnerKnow, id); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java index a2acbe68b..6488260db 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerBaseInfoMapper.java @@ -33,4 +33,7 @@ public interface HyPartnerBaseInfoMapper { int updateByPartnerId(@Param("userName") String userName, @Param("mobile") String mobile, @Param("partnerId") String partnerId); + + HyPartnerBaseInfoDO getByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java index c463c7bce..5f56188b7 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerClerkMapper.java @@ -27,4 +27,17 @@ public interface HyPartnerClerkMapper { List getHyPartnerClerkList(@Param("lineId") Long lineId); + + int batchInsert(@Param("recordList") List recordList); + + void deleteByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); + + /** + * 查询店员信息 + * @return + */ + List listByPartnerIdAndLineId(@Param("partnerId") String partnerId, + @Param("partnerLineId") Long partnerLineId); + + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java index ea75a2a96..711026290 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerIntentInfoMapper.java @@ -47,4 +47,6 @@ public interface HyPartnerIntentInfoMapper { * @return */ HyPartnerIntentInfoDO selectByLineId(@Param("lineId") Long lineId); + + HyPartnerIntentInfoDO getByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java index 274c09095..88e518079 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java @@ -1,11 +1,9 @@ package com.cool.store.mapper; import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; import com.cool.store.entity.HyPartnerLineInfoDO; -import com.cool.store.entity.HyPartnerLineInfoDO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; @@ -132,4 +130,7 @@ public interface HyPartnerLineInfoMapper { @Param("joinReason") String joinReason, @Param("removeReason") String removeReason); + HyPartnerLineInfoDO getByPartnerId(@Param("partnerId") String partnerId); + + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java index 124d573f6..5bf4ead72 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerUserInfoMapper.java @@ -40,4 +40,7 @@ public interface HyPartnerUserInfoMapper { * @return */ List selectByPartnerIds(@Param("partnerIdList") List partnerIdList); + + int updateJoinKnowById(@Param("isWritePartnerKnow")Integer isWritePartnerKnow, @Param("id")Long id); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml index 3fde0213b..8168519e8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml @@ -216,4 +216,12 @@ where partner_id = #{partnerId} + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml index 508288dec..925976e59 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerClerkMapper.xml @@ -108,4 +108,37 @@ from hy_partner_clerk where partner_line_id = #{lineId} + + + insert into + hy_partner_clerk + ( + partner_line_id, + partner_id, + username, + relationship, + age, + choose_reason + ) + values + + (#{record.partnerLineId}, + #{record.partnerId}, + #{record.username}, + #{record.relationship}, + #{record.age}, + #{record.chooseReason}) + + + + + delete from hy_partner_clerk where partner_id = #{partnerId} and partner_line_id = #{partnerLineId} + + + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml index aa14b21b3..dbb61371e 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -288,4 +288,11 @@ + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 9c1866d01..8e9a4387f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -384,4 +384,11 @@ where id = #{lineId} + + \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml index 053fa7474..6fd0729d7 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -147,4 +147,11 @@ where id = #{record.id} + + + update hy_partner_user_info + set `is_write_partner_know`=#{isWritePartnerKnow,jdbcType=INTEGER} + where id=#{id,jdbcType=BIGINT} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java index 65d164d98..5d74e7ec2 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/PartnerIntentInfoRequest.java @@ -18,6 +18,12 @@ public class PartnerIntentInfoRequest { @ApiModelProperty("") private Long id; + @ApiModelProperty("线索表ID") + private Long partnerLineId; + + @ApiModelProperty("加盟商C端用户表ID partnerId ") + private String partnerId; + @ApiModelProperty("常驻区域") private String liveArea; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java index d399e597a..2b57f6384 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerBaseInfoService.java @@ -1,6 +1,8 @@ package com.cool.store.service; import com.cool.store.request.AddTagsRequest; +import com.cool.store.request.PartnerBaseInfoRequest; +import com.cool.store.vo.PartnerBaseInfoVO; /** * @Author suzhuhong @@ -16,4 +18,8 @@ public interface HyPartnerBaseInfoService { * @return */ Boolean addTags(AddTagsRequest addTagsRequest); + + Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request); + + PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java index eeeddc963..a499af9df 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerClerkService.java @@ -1,5 +1,6 @@ package com.cool.store.service; +import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.vo.PartnerClerkVO; import java.util.List; @@ -19,6 +20,10 @@ public interface HyPartnerClerkService { */ List getPartnerClerkList(Long lineId); + Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request); + + List queryPartnerClerkInfo(String partnerId, Long lineId); + diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java index 915635b6e..1edf577c3 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerIntentInfoService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.request.BaseUserInfoRequest; +import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageInfo; @@ -37,4 +38,8 @@ public interface HyPartnerIntentInfoService { */ Boolean updatePartnerIntentInfo(BaseUserInfoRequest baseUserInfoRequest); + Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest partnerIntentInfoRequest); + + PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java index 778cfd105..6a0e51d28 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java @@ -1,5 +1,12 @@ package com.cool.store.service; +import com.cool.store.entity.HyPartnerUserInfoDO; + public interface PartnerUserInfoService { + HyPartnerUserInfoDO selectByPartnerId(String partnerId); + + Boolean queryJoinNotice(String partnerId); + + Boolean completeJoinNotice(String partnerId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java index af7181b85..08e6979f2 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java @@ -1,10 +1,16 @@ package com.cool.store.service.impl; +import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; import com.cool.store.dao.HyPartnerBaseInfoDAO; +import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.request.AddTagsRequest; +import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.vo.PartnerBaseInfoVO; import org.apache.commons.collections4.CollectionUtils; import org.springframework.stereotype.Service; @@ -29,4 +35,49 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(hyPartnerBaseInfoDO); return Boolean.TRUE; } + + /** + * //前提 未提交加盟申请 + * //成功 意向区域变更成功 失败 您已进入意向申请流程,当前不可变更意向区域 + * @param request + * @return + */ + @Override + public Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request) { + HyPartnerBaseInfoDO baseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + if(baseInfoDO == null){ + baseInfoDO = new HyPartnerBaseInfoDO(); + fillBaseInfo(baseInfoDO, request); + hyPartnerBaseInfoDAO.insertSelective(baseInfoDO); + }else { + fillBaseInfo(baseInfoDO, request); + hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO); + } + return true; + } + + @Override + public PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId) { + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); + if (hyPartnerBaseInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_BASEINFO_NOT_EXIST); + } + PartnerBaseInfoVO baseInfoVO = new PartnerBaseInfoVO(); + BeanUtil.copyProperties(hyPartnerBaseInfoDO, baseInfoVO); + return baseInfoVO; + } + + private void fillBaseInfo(HyPartnerBaseInfoDO baseInfoDO, PartnerBaseInfoRequest request) { + baseInfoDO.setPartnerId(request.getPartnerId()); + baseInfoDO.setPartnerLineId(request.getPartnerLineId()); + baseInfoDO.setMobile(request.getMobile()); + baseInfoDO.setUsername(request.getUsername()); + baseInfoDO.setSex(request.getSex()); + baseInfoDO.setNation(request.getNation()); + baseInfoDO.setBirthdate(request.getBirthdate()); + baseInfoDO.setIdCard(request.getIdCard()); + baseInfoDO.setIdCardPhotoFront(request.getIdCardPhotoFront()); + baseInfoDO.setIdCardPhotoBlack(request.getIdCardPhotoBlack()); + baseInfoDO.setLiveAddress(request.getLiveAddress()); + } } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java deleted file mode 100644 index 26b945c7a..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkImpl.java +++ /dev/null @@ -1,41 +0,0 @@ -package com.cool.store.service.impl; - -import com.cool.store.dao.HyPartnerClerkDAO; -import com.cool.store.entity.HyPartnerClerkDO; -import com.cool.store.service.HyPartnerClerkService; -import com.cool.store.vo.PartnerClerkVO; -import org.springframework.stereotype.Service; - -import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.List; - -/** - * @Author suzhuhong - * @Date 2023/6/15 11:05 - * @Version 1.0 - */ -@Service -public class HyPartnerClerkImpl implements HyPartnerClerkService { - - @Resource - HyPartnerClerkDAO hyPartnerClerkDAO; - - - @Override - public List getPartnerClerkList(Long lineId) { - List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); - List result= new ArrayList<>(); - hyPartnerClerkList.forEach(x->{ - PartnerClerkVO partnerClerkVO = new PartnerClerkVO(); - partnerClerkVO.setPartnerId(x.getPartnerId()); - partnerClerkVO.setPartnerLineId(x.getPartnerLineId()); - partnerClerkVO.setAge(x.getAge()); - partnerClerkVO.setChooseReason(x.getChooseReason()); - partnerClerkVO.setUsername(x.getUsername()); - partnerClerkVO.setRelationship(x.getRelationship()); - result.add(partnerClerkVO); - }); - return result; - } -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java new file mode 100644 index 000000000..e2f81a330 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java @@ -0,0 +1,82 @@ +package com.cool.store.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.cool.store.dao.HyPartnerClerkDAO; +import com.cool.store.entity.HyPartnerClerkDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; +import com.cool.store.request.PartnerClerkInfoRequest; +import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.utils.StringUtil; +import com.cool.store.vo.PartnerClerkVO; +import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.collections4.ListUtils; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.List; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @Author wxp + * @Date 2023/6/14 21:37 + * @Version 1.0 + */ +@Service +public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { + + @Resource + HyPartnerClerkDAO hyPartnerClerkDAO; + + @Override + public List getPartnerClerkList(Long lineId) { + List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); + List result= new ArrayList<>(); + hyPartnerClerkList.forEach(x->{ + PartnerClerkVO partnerClerkVO = new PartnerClerkVO(); + partnerClerkVO.setPartnerId(x.getPartnerId()); + partnerClerkVO.setPartnerLineId(x.getPartnerLineId()); + partnerClerkVO.setAge(x.getAge()); + partnerClerkVO.setChooseReason(x.getChooseReason()); + partnerClerkVO.setUsername(x.getUsername()); + partnerClerkVO.setRelationship(x.getRelationship()); + result.add(partnerClerkVO); + }); + return result; + } + + @Override + public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) { + if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId()) || CollectionUtils.isEmpty(request.getPartnerClerkRequestList())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + hyPartnerClerkDAO.deleteByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + List clerkDOList = new ArrayList<>(); + request.getPartnerClerkRequestList().stream().forEach(x->{ + HyPartnerClerkDO clerkDO = new HyPartnerClerkDO(); + clerkDO.setPartnerLineId(request.getPartnerLineId()); + clerkDO.setPartnerId(request.getPartnerId()); + clerkDO.setUsername(x.getUsername()); + clerkDO.setRelationship(x.getRelationship()); + clerkDO.setAge(x.getAge()); + clerkDO.setChooseReason(x.getChooseReason()); + clerkDOList.add(clerkDO); + }); + hyPartnerClerkDAO.batchInsert(clerkDOList); + return true; + } + + @Override + public List queryPartnerClerkInfo(String partnerId, Long lineId) { + List clerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(partnerId, lineId); + List clerkVOList = ListUtils.emptyIfNull(clerkDOList).stream().map(clerkDO -> { + PartnerClerkVO clerkVO = new PartnerClerkVO(); + BeanUtil.copyProperties(clerkDO, clerkVO); + return clerkVO; + }).collect(Collectors.toList()); + return clerkVOList; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index 02c75d133..026cf28ff 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; +import cn.hutool.core.bean.BeanUtil; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerIntentInfoDAO; @@ -14,6 +15,7 @@ import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; +import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; @@ -27,6 +29,7 @@ import javax.annotation.Resource; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.Objects; import java.util.stream.Collectors; /** @@ -107,6 +110,57 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic return partnerIntentInfoVO; } + @Override + public Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest request) { + if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){ + throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); + } + HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); + if(intentInfoDO == null){ + intentInfoDO = new HyPartnerIntentInfoDO(); + fillIntentInfo(intentInfoDO, request); + hyPartnerIntentInfoDAO.insertSelective(intentInfoDO); + }else { + fillIntentInfo(intentInfoDO, request); + hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO); + } + return true; + } + + @Override + public PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId) { + HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); + if (intentInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST); + } + PartnerIntentInfoVO intentInfoVO = new PartnerIntentInfoVO(); + BeanUtil.copyProperties(intentInfoDO, intentInfoVO); + return intentInfoVO; + } + + private void fillIntentInfo(HyPartnerIntentInfoDO intentInfoDO, PartnerIntentInfoRequest request) { + intentInfoDO.setPartnerId(request.getPartnerId()); + intentInfoDO.setPartnerLineId(request.getPartnerLineId()); + intentInfoDO.setLiveArea(request.getLiveArea()); + intentInfoDO.setWantShopArea(request.getWantShopArea()); + intentInfoDO.setAcceptAdjustType(request.getAcceptAdjustType()); + intentInfoDO.setIsHaveWantShop(request.getIsHaveWantShop()); + intentInfoDO.setWantShopInfo(request.getWantShopInfo()); + intentInfoDO.setMaxBudget(request.getMaxBudget()); + intentInfoDO.setMoneySource(request.getMoneySource()); + intentInfoDO.setMoneyProve(String.join(",", request.getMoneyProve())); + intentInfoDO.setEducation(request.getEducation()); + intentInfoDO.setWorkYear(request.getWorkYear()); + intentInfoDO.setIsHaveWorkExp(request.getIsHaveWorkExp()); + intentInfoDO.setWorkExp(request.getWorkExp()); + intentInfoDO.setIsConsumer(request.getIsConsumer()); + intentInfoDO.setOtherBand(request.getOtherBand()); + intentInfoDO.setBrandStrength(request.getBrandStrength()); + intentInfoDO.setNeedImprove(request.getNeedImprove()); + intentInfoDO.setStrength(request.getStrength()); + intentInfoDO.setWeakness(request.getWeakness()); + } + /** * partnerIntentApplyInfoDTOToVo * @param partnerIntentApplyInfoDTO diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java index e7ee84666..8365b31d9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -1,6 +1,10 @@ package com.cool.store.service.impl; +import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.entity.HyPartnerUserInfoDO; +import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.exception.ServiceException; import com.cool.store.service.PartnerUserInfoService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -11,4 +15,27 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { @Autowired private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Override + public HyPartnerUserInfoDO selectByPartnerId(String partnerId) { + return hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + } + + @Override + public Boolean queryJoinNotice(String partnerId) { + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + if (hyPartnerUserInfoDO==null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + return hyPartnerUserInfoDO.getIsWritePartnerKnow() == 1; + } + + @Override + public Boolean completeJoinNotice(String partnerId) { + HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(partnerId); + if (hyPartnerUserInfoDO == null){ + throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); + } + hyPartnerUserInfoDAO.updateJoinKnowById(CommonConstants.ONE, hyPartnerUserInfoDO.getId()); + return true; + } } diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java index d589d8732..a32b338b0 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/controller/PartnerController.java @@ -1,14 +1,16 @@ package com.cool.store.controller; +import com.cool.store.context.PartnerUserHolder; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.response.ResponseResult; +import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.service.HyPartnerClerkService; import com.cool.store.service.HyPartnerIntentInfoService; import com.cool.store.service.PartnerUserInfoService; import com.cool.store.vo.*; -import com.github.pagehelper.PageInfo; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -36,6 +38,14 @@ public class PartnerController { @Resource HyPartnerIntentInfoService hyPartnerIntentInfoService; + @Resource + HyPartnerBaseInfoService hyPartnerBaseInfoService; + @Resource + HyPartnerClerkService hyPartnerClerkService; + + + + @PostMapping(path = "/applyBaseInfo") @ApiOperation("提交基本信息") public ResponseResult applyBaseInfo(@RequestBody BaseUserInfoRequest baseUserInfoRequest){ @@ -79,26 +89,24 @@ public class PartnerController { @PostMapping(path = "/submitPartnerBaseInfo") @ApiOperation("提交加盟商基本信息") - public ResponseResult submitPartnerBaseInfo(@RequestBody PartnerBaseInfoRequest PartnerBaseInfoRequest){ - + public ResponseResult submitPartnerBaseInfo(@RequestBody PartnerBaseInfoRequest baseInfoRequest){ //前提 未提交加盟申请 //成功 意向区域变更成功 失败 您已进入意向申请流程,当前不可变更意向区域 - return ResponseResult.success(); + return ResponseResult.success(hyPartnerBaseInfoService.submitPartnerBaseInfo(baseInfoRequest)); } @PostMapping(path = "/submitPartnerClerkInfo") @ApiOperation("提交加盟商店员信息") public ResponseResult submitPartnerClerkInfo(@RequestBody PartnerClerkInfoRequest partnerClerkInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest)); } @PostMapping(path = "/submitPartnerIntentInfo") @ApiOperation("提交加盟商意向信息/行业认知") public ResponseResult submitPartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){ - - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest)); } @@ -107,7 +115,7 @@ public class PartnerController { @ApiOperation("修改加盟商店员信息") public ResponseResult changePartnerClerkInfo(@RequestBody PartnerClerkInfoRequest partnerClerkInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerClerkService.submitPartnerClerkInfo(partnerClerkInfoRequest)); } @@ -115,7 +123,7 @@ public class PartnerController { @ApiOperation("修改加盟商意向信息/行业认知") public ResponseResult changePartnerIntentInfo(@RequestBody PartnerIntentInfoRequest partnerIntentInfoRequest){ - return ResponseResult.success(); + return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest)); } @@ -140,9 +148,8 @@ public class PartnerController { @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), }) public ResponseResult queryPartnerBaseInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerBaseInfoService.queryPartnerBaseInfo(userInfoVO.getPartnerId(), lineId)); } @@ -153,8 +160,8 @@ public class PartnerController { }) public ResponseResult> queryPartnerClerkInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerClerkService.queryPartnerClerkInfo(userInfoVO.getPartnerId(), lineId)); } @@ -165,8 +172,8 @@ public class PartnerController { }) public ResponseResult queryPartnerIntentInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - - return ResponseResult.success(); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerIntentInfoService.queryPartnerIntentInfo(userInfoVO.getPartnerId(), lineId)); } @@ -177,10 +184,8 @@ public class PartnerController { @ApiImplicitParams({ @ApiImplicitParam(name = "partnerId", value = "加盟商ID", required = false), }) - public ResponseResult completeJoinNotice(@RequestParam(value = "partnerId",required = false)Long partnerId){ - - - return ResponseResult.success(); + public ResponseResult completeJoinNotice(@RequestParam(value = "partnerId",required = false)String partnerId){ + return ResponseResult.success(partnerUserInfoService.completeJoinNotice(partnerId)); } @@ -189,10 +194,8 @@ public class PartnerController { @ApiImplicitParams({ @ApiImplicitParam(name = "partnerId", value = "加盟商ID", required = false), }) - public ResponseResult queryJoinNotice(@RequestParam(value = "partnerId",required = false)Long partnerId){ - - - return ResponseResult.success(); + public ResponseResult queryJoinNotice(@RequestParam(value = "partnerId",required = false)String partnerId){ + return ResponseResult.success(partnerUserInfoService.queryJoinNotice(partnerId)); } } From a6a6093dd92c19dd7b2e9f152d13760b4c9eee6e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Fri, 16 Jun 2023 10:09:44 +0800 Subject: [PATCH 6/6] =?UTF-8?q?=E7=A7=81=E6=B5=B7=E5=88=97=E8=A1=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/dao/HyPartnerLineInfoDAO.java | 25 +++++- .../store/mapper/HyPartnerLineInfoMapper.java | 41 ++++++++- .../mapper/HyPartnerLineInfoMapper.xml | 63 +++++++++++++- .../cool/store/dto/partner/LineCountDTO.java | 17 ++++ .../store/dto/partner/PublicSeaLineDTO.java | 28 ++++++ .../com/cool/store/request/LineRequest.java | 14 ++- .../cool/store/vo/PrivateSeaLineListVo.java | 14 +++ .../cool/store/vo/PublicSeaLineListVo.java | 4 + .../service/HyPartnerLineInfoService.java | 13 ++- .../impl/HyPartnerLineInfoServiceImpl.java | 87 ++++++++++++++++--- .../cool/store/controller/DeskController.java | 12 +-- 11 files changed, 282 insertions(+), 36 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java index 5ee627712..532d95b82 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/HyPartnerLineInfoDAO.java @@ -3,6 +3,7 @@ package com.cool.store.dao; import com.cool.store.dto.partner.PartnerBlackListDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; +import com.cool.store.dto.partner.*; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.mapper.HyPartnerLineInfoMapper; import com.github.pagehelper.PageInfo; @@ -12,6 +13,8 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Repository; import javax.annotation.Resource; +import java.util.ArrayList; +import java.util.Date; import java.util.List; /** @@ -111,8 +114,8 @@ public class HyPartnerLineInfoDAO { } - public PageInfo getBlackList( String keyWord, String intentArea , Integer acceptAdjustType){ - return hyPartnerLineInfoMapper.getBlackList(keyWord,intentArea,acceptAdjustType); + public PageInfo getBlackList( String userNameKeyword,String phoneKeyword, String intentArea , Integer acceptAdjustType){ + return hyPartnerLineInfoMapper.getBlackList(userNameKeyword,phoneKeyword,intentArea,acceptAdjustType); } @@ -123,6 +126,17 @@ public class HyPartnerLineInfoDAO { return hyPartnerLineInfoMapper.joinAndRemoveBlack(lineId,status,joinReason,removeReason); } + public PageInfo getPublicSeaLineList( String userNameKeyword, String phoneKeyword, String intentArea, Integer acceptAdjustType, Date updateStartTime, Date updateEndTime, List userIdList){ + return hyPartnerLineInfoMapper.getPublicSeaLineList(userNameKeyword,phoneKeyword,intentArea,acceptAdjustType,updateStartTime,updateEndTime,userIdList); + } + + + public List getPartnerLastLine(List partnerIdList){ + if (CollectionUtils.isEmpty(partnerIdList)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getPartnerLastLine(partnerIdList); + } public HyPartnerLineInfoDO getByPartnerId(String partnerId){ if (StringUtils.isEmpty(partnerId)){ return null; @@ -131,4 +145,11 @@ public class HyPartnerLineInfoDAO { } + public List getFollowCountList( List partnerIdList){ + if (CollectionUtils.isEmpty(partnerIdList)){ + return new ArrayList<>(); + } + return hyPartnerLineInfoMapper.getFollowCountList(partnerIdList); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java index 88e518079..2e878544f 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerLineInfoMapper.java @@ -1,5 +1,6 @@ package com.cool.store.mapper; +import com.cool.store.dto.partner.*; import com.cool.store.dto.partner.PartnerBlackListDTO; import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; import com.cool.store.dto.partner.StageCountDTO; @@ -7,6 +8,7 @@ import com.cool.store.entity.HyPartnerLineInfoDO; import com.github.pagehelper.PageInfo; import org.apache.ibatis.annotations.Param; +import java.util.Date; import java.util.List; /** @@ -107,12 +109,14 @@ public interface HyPartnerLineInfoMapper { /** * 查询黑名单列表 - * @param keyWord + * @param userNameKeyword + * @param phoneKeyword * @param intentArea * @param acceptAdjustType * @return */ - PageInfo getBlackList(@Param("keyWord") String keyWord, + PageInfo getBlackList(@Param("userNameKeyword") String userNameKeyword, + @Param("phoneKeyword") String phoneKeyword, @Param("intentArea") String intentArea , @Param("acceptAdjustType") Integer acceptAdjustType); @@ -133,4 +137,37 @@ public interface HyPartnerLineInfoMapper { HyPartnerLineInfoDO getByPartnerId(@Param("partnerId") String partnerId); + + /** + * 查询公海线索 + * @param userNameKeyword + * @param phoneKeyword + * @param intentArea + * @param acceptAdjustType + * @param updateStartTime + * @param updateEndTime + * @param userIdList + * @return + */ + PageInfo getPublicSeaLineList(@Param("userNameKeyword") String userNameKeyword, + @Param("phoneKeyword") String phoneKeyword, + @Param("intentArea") String intentArea, + @Param("acceptAdjustType") Integer acceptAdjustType, + @Param("updateStartTime") Date updateStartTime, + @Param("updateEndTime") Date updateEndTime, + @Param("userIdList") List userIdList); + + /** + * 查询对应的加盟商最近线索 + * @param partnerIdList + * @return + */ + List getPartnerLastLine(@Param("partnerIdList") List partnerIdList); + + /** + * 加盟商跟进次数 + * @param partnerIdList + * @return + */ + List getFollowCountList(@Param("partnerIdList") List partnerIdList); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index 8e9a4387f..64e399d3b 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -357,8 +357,11 @@ from hy_partner_line_info a inner join hy_partner_user_info b where a.partner_id = b.partner_id where deleted = 0 and line_status = 3 - - and (b.username like concat('%', #{keyWord}, '%') or b.mobile like concat('%', #{keyWord}, '%')) + + and b.username like concat('%', #{userNameKeyword}, '%') + + + and b.mobile like concat('%', #{phoneKeyword}, '%') and b.want_shop_area = #{intentArea} @@ -391,4 +394,60 @@ where partner_id = #{partnerId} + + + + + + + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java new file mode 100644 index 000000000..c7256636e --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/LineCountDTO.java @@ -0,0 +1,17 @@ +package com.cool.store.dto.partner; + +import lombok.Data; + +/** + * @Author suzhuhong + * @Date 2023/6/15 21:19 + * @Version 1.0 + */ +@Data +public class LineCountDTO { + + private String partnerId; + + private Integer followCount; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java new file mode 100644 index 000000000..0b4a07792 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/PublicSeaLineDTO.java @@ -0,0 +1,28 @@ +package com.cool.store.dto.partner; + +import lombok.Data; + +import java.util.Date; + +/** + * @Author suzhuhong + * @Date 2023/6/15 20:21 + * @Version 1.0 + */ +@Data +public class PublicSeaLineDTO { + + private Date createTime; + + private Long lineId; + + private String partnerId; + + private String userName; + + private String mobile; + + private String wantShopArea; + + private String acceptAdjustType; +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java index 06f75a1ce..b0e4169af 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/LineRequest.java @@ -17,8 +17,11 @@ import java.util.Date; public class LineRequest extends PageInfoRequest{ - @ApiModelProperty("关键字") - private String keyWord; + @ApiModelProperty("用户名关键字") + private String userNameKeyword; + + @ApiModelProperty("手机号关键字") + private String phoneKeyword; @ApiModelProperty("意向区域") private String intentArea; @@ -26,8 +29,11 @@ public class LineRequest extends PageInfoRequest{ @ApiModelProperty("调剂类型") private Integer acceptAdjustType; - @ApiModelProperty("更新时间") - private Date updateTime; + @ApiModelProperty("更新开始时间") + private Date updateStartTime; + + @ApiModelProperty("更新结束时间") + private Date updateEndTime; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java index f0c81cec9..3128e7d9f 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PrivateSeaLineListVo.java @@ -55,8 +55,22 @@ public class PrivateSeaLineListVo { @ApiModelProperty("0不接受调剂、1全国调剂、2省内调剂、3市内调剂") private Integer acceptAdjustType; + @ApiModelProperty("更新时间") + private Date updateTime; + @ApiModelProperty("门店编码") + private String storeCode; + @ApiModelProperty("门店名称") + private String storeName; + @ApiModelProperty("线索状态") + private Integer lineStatus; + + @ApiModelProperty("推荐加盟商ID") + private String recommendPartnerId; + + @ApiModelProperty("推荐加盟商名称") + private String recommendPartnerName; } diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java index bbf5f5acb..848d704ee 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PublicSeaLineListVo.java @@ -59,5 +59,9 @@ public class PublicSeaLineListVo { @ApiModelProperty("跟进次数") private Integer followCount; + @ApiModelProperty("意向开店区域ID") + private String wantShopArea; + + private String acceptAdjustType; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java index 244fbf860..0b7f0b30a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/HyPartnerLineInfoService.java @@ -2,10 +2,7 @@ package com.cool.store.service; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; -import com.cool.store.vo.BlackListVO; -import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO; -import com.cool.store.vo.PartnerLineInfoVO; -import com.cool.store.vo.StageCountVO; +import com.cool.store.vo.*; import com.github.pagehelper.PageInfo; import java.util.List; @@ -99,5 +96,13 @@ public interface HyPartnerLineInfoService { */ Boolean closeOrPassFollow(String userId,CloseFollowRequest closeFollowRequest); + /** + * 公海线索 + * @param userId + * @param lineRequest + * @return + */ + PageInfo publicSeaLineList(String userId,LineRequest lineRequest); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java index 10ec43267..e4b456878 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerLineInfoServiceImpl.java @@ -2,11 +2,12 @@ package com.cool.store.service.impl; import cn.hutool.core.date.DateUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; -import com.cool.store.dto.partner.PartnerBlackListDTO; -import com.cool.store.dto.partner.PartnerLineInfoAndBaseInfoDTO; -import com.cool.store.dto.partner.StageCountDTO; +import com.cool.store.dao.UserRegionMappingDAO; +import com.cool.store.dto.partner.*; +import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; @@ -16,24 +17,20 @@ import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.CloseFollowRequest; import com.cool.store.request.LineRequest; +import com.cool.store.service.EnterpriseUserService; import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.utils.CoolDateUtils; import com.cool.store.utils.StringUtil; -import com.cool.store.vo.BlackListVO; -import com.cool.store.vo.PartnerLineInfoAndBaseInfoVO; -import com.cool.store.vo.PartnerLineInfoVO; -import com.cool.store.vo.StageCountVO; +import com.cool.store.vo.*; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; +import com.google.common.collect.Lists; import org.apache.commons.collections4.CollectionUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Date; -import java.util.List; +import java.util.*; import java.util.stream.Collectors; /** @@ -48,6 +45,10 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @Resource HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + EnterpriseUserDAO enterpriseUserDAO; + @Resource + UserRegionMappingDAO userRegionMappingDAO; @Override public StageCountVO selectStagePendingCount(String userId) { @@ -138,7 +139,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { @Override public PageInfo getBlackList(LineRequest LineRequest) { PageHelper.startPage(LineRequest.getPageNum(),LineRequest.getPageSize()); - PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getKeyWord(), LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType()); + PageInfo blackListDTOPageInfo = hyPartnerLineInfoDAO.getBlackList(LineRequest.getUserNameKeyword(), LineRequest.getPhoneKeyword(),LineRequest.getIntentArea(), LineRequest.getAcceptAdjustType()); List list = blackListDTOPageInfo.getList(); List result = new ArrayList<>(); list.stream().forEach(x->{ @@ -228,6 +229,68 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { hyPartnerLineInfoDAO.updateByPrimaryKeySelective(hyPartnerLineInfoDO); return Boolean.TRUE; } + + @Override + public PageInfo publicSeaLineList(String userId, LineRequest lineRequest) { + //确认是招商经理还是部门负责人 + EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId); + List userIds = new ArrayList<>(); + if (userInfo.getIsLeader()){ + if (StringUtil.isNotEmpty(userInfo.getLeaderDeptIds())){ + List regionIds = JSONObject.parseArray(userInfo.getLeaderDeptIds(), String.class); + List enterpriseUserDOS = enterpriseUserDAO.searchUserByRegionIdsAndKeyword(regionIds, null, true); + userIds =enterpriseUserDOS.stream().map(EnterpriseUserDO::getUserId).collect(Collectors.toList()); + } + }else { + userIds = Arrays.asList(userId); + } + PageHelper.startPage(lineRequest.getPageNum(),lineRequest.getPageSize()); + PageInfo publicSeaLineList = hyPartnerLineInfoDAO.getPublicSeaLineList(lineRequest.getUserNameKeyword(), lineRequest.getPhoneKeyword(), + lineRequest.getIntentArea(), lineRequest.getAcceptAdjustType(), lineRequest.getUpdateStartTime(), lineRequest.getUpdateEndTime(), userIds); + + List list = publicSeaLineList.getList(); + if (CollectionUtils.isEmpty(list)){ + return new PageInfo<>(); + } + //上一次结束的线索 + List partnerIdList = list.stream().map(PublicSeaLineDTO::getPartnerId).collect(Collectors.toList()); + List partnerLastLine = hyPartnerLineInfoDAO.getPartnerLastLine(partnerIdList); + List investmentManagerIds = partnerLastLine.stream().map(HyPartnerLineInfoDO::getInvestmentManager).collect(Collectors.toList()); + List userInfoList = enterpriseUserDAO.getUserInfoByUserIds(investmentManagerIds); + Map mobileMap = userInfoList.stream().filter(x -> + StringUtil.isNotEmpty(x.getMobile())).collect(Collectors.toMap(EnterpriseUserDO::getUserId, EnterpriseUserDO::getMobile)); + Map hyPartnerLineInfoDOMap = partnerLastLine.stream().collect(Collectors.toMap(HyPartnerLineInfoDO::getPartnerId, data -> data)); + + List followCountList = hyPartnerLineInfoDAO.getFollowCountList(partnerIdList); + Map countMap = followCountList.stream().collect(Collectors.toMap(LineCountDTO::getPartnerId, LineCountDTO::getFollowCount)); + + List result = new ArrayList<>(); + list.forEach(x->{ + PublicSeaLineListVo publicSeaLineListVo = new PublicSeaLineListVo(); + + publicSeaLineListVo.setPartnerId(x.getPartnerId()); + publicSeaLineListVo.setCreateTime(x.getCreateTime()); + publicSeaLineListVo.setPartnerUserName(x.getUserName()); + publicSeaLineListVo.setPartnerUserPhone(x.getMobile()); + // TODO: 2023/6/15 手机号归属地 + publicSeaLineListVo.setPhoneAddress(""); + publicSeaLineListVo.setWantShopArea(x.getWantShopArea()); + publicSeaLineListVo.setId(x.getLineId()); + publicSeaLineListVo.setAcceptAdjustType(x.getAcceptAdjustType()); + publicSeaLineListVo.setFollowCount(countMap.getOrDefault(x.getPartnerId(),0)); + + HyPartnerLineInfoDO hy = hyPartnerLineInfoDOMap.getOrDefault(x.getPartnerId(), new HyPartnerLineInfoDO()); + publicSeaLineListVo.setRejectPublicReason(hy.getRejectPublicReason()); + publicSeaLineListVo.setRejectRealReason(hy.getRejectRealReason()); + publicSeaLineListVo.setLastCloseDate(hy.getCloseTime()); + publicSeaLineListVo.setLastInvestmentManager(hy.getInvestmentManager()); + publicSeaLineListVo.setPartnerUserPhone(mobileMap.get(hy.getInvestmentManager())); + result.add(publicSeaLineListVo); + }); + publicSeaLineList.setList(result); + return publicSeaLineList; + } + /** * convertPartnerBlackListDTOToVo * @param partnerBlackListDTO diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java index 3098e57d5..c4fe96c72 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/DeskController.java @@ -82,8 +82,7 @@ public class DeskController { @ApiImplicitParam(name = "type", value = "类型 待处理-Pending 待跟进-follow", required = false), }) public ResponseResult queryStageCount(@RequestParam(value = "type",required = false)String type){ - String userId = ""; - return ResponseResult.success(deskService.getStageCountByType(userId,type)); + return ResponseResult.success(deskService.getStageCountByType(CurrentUserHolder.getUserId(),type)); } @GetMapping(path = "/queryInterviewPlan") @@ -204,7 +203,6 @@ public class DeskController { } - @PostMapping(path = "/queryPublicSeqLineList") @ApiOperation("公海列表") public ResponseResult> queryPublicSeaLineList(@RequestBody LineRequest LineRequest){ @@ -213,8 +211,6 @@ public class DeskController { } - - @PostMapping(path = "/queryPrivateSeaLineList") @ApiOperation("私海列表") public ResponseResult> queryPrivateSeqLineList(@RequestBody PrivateSeaLineListRequest privateSeaLineListRequest){ @@ -222,8 +218,6 @@ public class DeskController { return ResponseResult.success(); } - - @PostMapping(path = "/queryBlackList") @ApiOperation("黑名单列表") public ResponseResult> queryBlackList(@RequestBody LineRequest LineRequest){ @@ -250,9 +244,7 @@ public class DeskController { @PostMapping(path = "/closeOrPassFollow") @ApiOperation("意向申请审核 结束跟进/通过流程") public ResponseResult closeOrPassFollow(@RequestBody CloseFollowRequest closeFollowRequest){ - - String userId = ""; - return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(userId,closeFollowRequest)); + return ResponseResult.success(hyPartnerLineInfoService.closeOrPassFollow(CurrentUserHolder.getUserId(),closeFollowRequest)); } @PostMapping(path = "/changeIntentInfo")