diff --git a/coolstore-partner-common/pom.xml b/coolstore-partner-common/pom.xml
index 0961b14dd..204706c33 100644
--- a/coolstore-partner-common/pom.xml
+++ b/coolstore-partner-common/pom.xml
@@ -98,6 +98,12 @@
openpdf
1.3.30
+
+
+ org.icepdf.os
+ icepdf-core
+ 6.1.2
+
\ No newline at end of file
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 07f705625..21140ab24 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
@@ -10,6 +10,8 @@ public class CommonConstants {
public static final String REQUEST_ID = "requestId";
+ public static final String MESSAGE_ID = "messageId";
+
public static final String ACCESS_TOKEN_KEY = "access_token";
public static final String REFRESH_TOKEN_KEY = "refresh_token";
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
index 9fd0fb7bb..688c01bec 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/RedisConstant.java
@@ -189,6 +189,11 @@ public class RedisConstant {
public static final String STOREWORK_NOTICE_KEY = "storeWorkNoticeCache:{0}:{1}:{2}:{3}";
+ /**
+ * 冷静期内是否首次登录 冷静期首次登录 是-true 否-false
+ */
+ public static final String COOLINGPERIOD_FIRSTLOGIN_KEY = "coolingPeriodFirstLoginCache:{0}";
+
/**
* 七天
*/
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 86502ebf0..5cb37ba14 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
@@ -48,6 +48,7 @@ public enum ErrorCodeEnum {
IDENTITY_CARD_PARSE_FAIL(1021080, "身份证解析失败", null),
PARAMS_REQUIRED(400002, "参数缺失!", null),
DATA_CONVERT_ERROR(400002, "日期转换异常!", null),
+ PARENT_NODE_NOT_EXIST(400002, "父节点不存在", null),
LINE_ID_IS_NOT_EXIST(500001, "线索ID不存在!", null),
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java
new file mode 100644
index 000000000..ce4f76114
--- /dev/null
+++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/IDCardSideEnum.java
@@ -0,0 +1,32 @@
+package com.cool.store.enums;
+
+/**
+ * @author zhangchenbiao
+ * @FileName: IDCardSideEnum
+ * @Description: 身份证正反面类型
+ * @date 2023-06-16 16:49
+ */
+public enum IDCardSideEnum {
+
+ FACE("face", "正面"),
+ BACK("back", "反面")
+ ;
+
+ private String code;
+
+ private String message;
+
+ IDCardSideEnum(String code, String message) {
+ this.code = code;
+ this.message = message;
+ }
+
+
+ public String getCode() {
+ return code;
+ }
+
+ public String getMessage() {
+ return message;
+ }
+}
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 272b19a0e..e2f9eb1e6 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
@@ -5,10 +5,16 @@ import com.lowagie.text.Font;
import com.lowagie.text.Image;
import com.lowagie.text.Paragraph;
import com.lowagie.text.pdf.*;
+import org.icepdf.core.exceptions.PDFException;
+import org.icepdf.core.exceptions.PDFSecurityException;
+import org.icepdf.core.pobjects.Page;
+import org.icepdf.core.util.GraphicsRenderingHints;
+import javax.imageio.ImageIO;
import java.awt.*;
-import java.io.IOException;
-import java.io.OutputStream;
+import java.awt.image.BufferedImage;
+import java.awt.image.RenderedImage;
+import java.io.*;
/**
* 使用 OpenPDF 封装的 pdf 工具类
@@ -120,7 +126,46 @@ public class PDFUtils {
throw new RuntimeException(ex);
}
}
-
}
+ /**
+ * PDF 转图片
+ * @param inputStream pdf 输入流
+ * @param scale 缩放比例
+ */
+ public static ByteArrayOutputStream pdf2Img(InputStream inputStream, float scale) {
+ org.icepdf.core.pobjects.Document document = new org.icepdf.core.pobjects.Document();
+ ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+ try {
+ document.setInputStream(inputStream, "");
+
+ float rotation = 0f;// 旋转角度
+ for (int i = 0; i < document.getNumberOfPages(); i++) {
+ BufferedImage image = (BufferedImage) document.getPageImage(i,
+ GraphicsRenderingHints.SCREEN, Page.BOUNDARY_CROPBOX,
+ rotation, scale);
+ RenderedImage rendImage = image;
+ try {
+ ImageIO.write(rendImage, "png", outputStream);
+ //例子中是pdf转png格式的,也可以将上面两行改成jpg,转出jpg格式的,
+ //但是从转换效果来看png的清晰度会相对较高。有个小技巧是第一行行改成jpg,
+ //但第二行使用png,也就是转换成jpg格式但有png清晰度的图片。
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
+ image.flush();
+ document.dispose();
+ return outputStream;
+ }
+ } catch (PDFException | PDFSecurityException | IOException e1) {
+ e1.printStackTrace();
+ } finally {
+ try {
+ outputStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ return outputStream;
+ }
}
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 a94e5ee53..264061202 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
@@ -6,6 +6,7 @@ import cn.hutool.core.util.ObjectUtil;
import cn.hutool.core.util.RandomUtil;
import com.lowagie.text.Document;
import com.lowagie.text.Image;
+import com.lowagie.text.pdf.BaseFont;
import com.lowagie.text.pdf.PdfReader;
import com.lowagie.text.pdf.PdfWriter;
@@ -41,15 +42,16 @@ public class PassLetterUtils {
document.close();
//3. 填写通过函模板信息
- 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);
+ addContentToPdf(outputStream, partnerName + " 先生/女士", 122, 638);
+ addContentToPdf(outputStream, passCode, 122, 557);
+ addContentToPdf(outputStream, verifyCity, 155, 492);
+ addContentToPdf(outputStream, "60天", 135, 448);
+ addContentToPdf(outputStream, passTimeStr, 385, 152);
return outputStream;
} catch (IOException e) {
throw new RuntimeException(e);
- } finally {
+ }
+ finally {
try {
document.close();
outputStream.close();
@@ -73,8 +75,10 @@ public class PassLetterUtils {
try {
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) {
+ String fontFamilyPath = PassLetterUtils.class.getResource("/static/Alibaba-PuHuiTi-Regular.ttf").getPath();
+ BaseFont font = BaseFont.createFont(fontFamilyPath, BaseFont.IDENTITY_H, BaseFont.NOT_EMBEDDED);
+ PDFUtils.putParagraphAbsolutely(pdfReader, outputStream, x, y, content, font, 19, 1, new Color(255, 82,25));
+ } catch (Exception e) {
throw new RuntimeException(e);
}
}
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 9e141f57d..f796e298d 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
@@ -45,4 +45,10 @@ public class HyPartnerBaseInfoDAO {
return hyPartnerBaseInfoMapper.getByPartnerIdAndLineId(partnerId, partnerLineId);
}
+ public Long getLineIdByIdCard(String idCard){
+ if (StringUtils.isEmpty(idCard)){
+ return null;
+ }
+ return hyPartnerBaseInfoMapper.getLineIdByIdCard(idCard);
+ }
}
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java
index 95121dbb7..1318be319 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/RegionDAO.java
@@ -7,6 +7,7 @@ import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.collections4.ListUtils;
+import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Repository;
import javax.annotation.Resource;
@@ -61,4 +62,16 @@ public class RegionDAO {
return ListUtils.emptyIfNull(regionList).stream().collect(Collectors.toMap(RegionDO::getRegionId, RegionDO::getName));
}
+ /**
+ * 获取区域
+ * @param regionId
+ * @return
+ */
+ public RegionDO getRegionInfoByRegionId(String regionId){
+ if(StringUtils.isBlank(regionId)){
+ return null;
+ }
+ return regionMapper.getRegionInfoByRegionId(regionId);
+ }
+
}
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 6488260db..2f4e48e5a 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
@@ -36,4 +36,6 @@ public interface HyPartnerBaseInfoMapper {
HyPartnerBaseInfoDO getByPartnerIdAndLineId(@Param("partnerId") String partnerId, @Param("partnerLineId") Long partnerLineId);
+ Long getLineIdByIdCard(@Param("idCard") String idCard);
+
}
\ No newline at end of file
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 3e865e13d..5b60798b3 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
@@ -2,6 +2,7 @@ package com.cool.store.mapper;
import com.cool.store.entity.HyPartnerInterviewDO;
import com.cool.store.vo.EnterInterviewVO;
+import com.cool.store.vo.EnterpriseUserBaseInfoVO;
import com.cool.store.vo.PartnerInterviewInfoVO;
import com.cool.store.vo.PartnerPassLetterDetailVO;
import org.apache.ibatis.annotations.Param;
@@ -37,13 +38,13 @@ public interface HyPartnerInterviewMapper {
* 修改面试状态
* 预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝
*/
- int updateInterviewStatus(@Param("interviewId") String interviewId, @Param("status") Integer status);
+ int updateInterviewStatus(@Param("interviewPlanId") String interviewPlanId, @Param("status") Integer status);
/**
* 修改面试实际开始时间
* @param dateTime "yyyy-MM-dd HH:mm:ss"
*/
- int updateActualStartTime(@Param("interviewId") String interviewId, @Param("dateTime") String dateTime);
+ int updateActualStartTime(@Param("interviewPlanId") String interviewPlanId, @Param("dateTime") String dateTime);
/**
* 修改加盟商或面试官进入面试时间
@@ -51,28 +52,28 @@ public interface HyPartnerInterviewMapper {
* @param dateTime "yyyy-MM-dd HH:mm:ss"
* @return
*/
- int updateEnterTime(@Param("interviewId") String interviewId, @Param("userType") Integer userType, @Param("dateTime") String dateTime);
+ int updateEnterTime(@Param("interviewPlanId") String interviewPlanId, @Param("userType") Integer userType, @Param("dateTime") String dateTime);
/**
* 将加盟商是否参会修改为参会
* 0未参加,1参加
*/
- int updateWhetherPartnerEnter(@Param("interviewId") String interviewId);
+ int updateWhetherPartnerEnter(@Param("interviewPlanId") String interviewPlanId);
/**
* 根据会议 id 查询面试官 id
*/
- EnterInterviewVO getInterviewerByInterviewId(@Param("interviewId") String interviewId);
+ EnterInterviewVO getInterviewerByInterviewPlanId(@Param("interviewPlanId") String interviewPlanId);
/**
* 获取通知函详情
*/
- PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewId") String interviewId);
+ PartnerPassLetterDetailVO getPassLetterDetail(@Param("interviewPlanId") String interviewPlanId);
/**
* 生成通过函 pdf 后修改
*/
- int updatePassLetterInfo(@Param("passCode") String passCode, @Param("passFileUrl") String passFileUrl, @Param("expiryDate") String expiryDate, @Param("interviewId") String interviewId);
+ int updatePassLetterInfo(@Param("passCode") String passCode, @Param("passPdfUrl") String passPdfUrl, @Param("passImageUrl") String passImageUrl, @Param("expiryDate") String expiryDate, @Param("interviewId") String interviewId);
/**
* 根据面试 id 查询面试信息
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
index 4501d7963..1fd495385 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerInterviewPlanMapper.java
@@ -4,6 +4,7 @@ import com.cool.store.dto.partner.PartnerInterviewInfoDTO;
import com.cool.store.dto.partner.SpecialDateRangeInterviewCountDTO;
import com.cool.store.entity.HyPartnerInterviewPlanDO;
import com.cool.store.request.GetInterviewListReq;
+import com.cool.store.vo.EnterpriseUserBaseInfoVO;
import com.cool.store.vo.interview.InterviewVO;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
@@ -88,6 +89,11 @@ public interface HyPartnerInterviewPlanMapper {
*/
InterviewVO getInterviewInfo(String interviewId);
+ /**
+ * 查询用户基本信息
+ */
+ EnterpriseUserBaseInfoVO getEnterpriseUserBaseInfo(@Param("userId") String userId);
+
/**
* 根据条件字段查询面试安排信息
* @param record
diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java
index fc3a734fe..6d7e785f2 100644
--- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java
+++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/RegionMapper.java
@@ -51,4 +51,11 @@ public interface RegionMapper {
* @return
*/
List getRegionBaseInfoList();
+
+ /**
+ * 获取区域信息
+ * @param regionId
+ * @return
+ */
+ RegionDO getRegionInfoByRegionId(@Param("regionId") String regionId);
}
\ 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 8168519e8..a1ba51823 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml
@@ -224,4 +224,11 @@
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/HyPartnerInterviewMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml
index 954b49ad4..584bebc81 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerInterviewMapper.xml
@@ -28,7 +28,7 @@
-
+
@@ -259,7 +259,7 @@
id, partner_id, mobile, username, live_area, want_shop_area, accept_adjust_type,
- invite_code, is_write_partner_know, create_time, update_time
+ invite_code, is_write_partner_know, create_time, update_time, shop_code, shop_name, shop_id, recommend_partner_id, recommend_partner_name, recommend_partner_mobile
select
diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
index 8c0beb799..95576d52f 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
@@ -187,4 +187,13 @@
where
deleted = 0
+
+
+ select
+
+ from
+ region
+ where
+ deleted = 0 and region_id= #{regionId}
+
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java
index 45f2b8e8c..97bb60208 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/SysDepartmentDTO.java
@@ -227,4 +227,47 @@ public class SysDepartmentDTO {
}
return resultList;
}
+
+
+ public static RegionDO convertRegionDO(SysDepartmentDTO dept, Multimap leaderDeptMap, RegionDO parentRegion){
+ RegionDO region = new RegionDO();
+ region.setRegionId(dept.getId());
+ region.setName(dept.getName());
+ region.setParentId(dept.getParentId());
+ region.setUnclassifiedFlag(CommonConstants.ZERO);
+ region.setLeaderUserId(dept.getLeaderUserId());
+ region.setOrderNum(dept.getDepartOrder());
+ region.setThirdDeptId(dept.getId());
+ region.setCreateTime(System.currentTimeMillis());
+ region.setUpdateTime(System.currentTimeMillis());
+ String regionPath = parentRegion.getRegionPath() + region.getRegionId() + CommonConstants.PATH_SPILT;
+ region.setRegionPath(regionPath);
+ region.setDeleted(Boolean.FALSE);
+ if(CollectionUtils.isNotEmpty(dept.getDeptManagerUseridList())){
+ for (String leader : dept.getDeptManagerUseridList()) {
+ leaderDeptMap.put(leader, dept.getId());
+ }
+ }
+ return region;
+ }
+
+ public static RegionDO convertRegionDO(SysDepartmentDTO dept, Multimap leaderDeptMap){
+ RegionDO region = new RegionDO();
+ region.setRegionId(dept.getId());
+ region.setName(dept.getName());
+ region.setParentId(dept.getParentId());
+ region.setUnclassifiedFlag(CommonConstants.ZERO);
+ region.setLeaderUserId(dept.getLeaderUserId());
+ region.setOrderNum(dept.getDepartOrder());
+ region.setThirdDeptId(dept.getId());
+ region.setCreateTime(System.currentTimeMillis());
+ region.setUpdateTime(System.currentTimeMillis());
+ region.setDeleted(Boolean.FALSE);
+ if(CollectionUtils.isNotEmpty(dept.getDeptManagerUseridList())){
+ for (String leader : dept.getDeptManagerUseridList()) {
+ leaderDeptMap.put(leader, dept.getId());
+ }
+ }
+ return region;
+ }
}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java
index 30015417d..6eb2646c3 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/partner/EnterInterviewDto.java
@@ -6,8 +6,8 @@ import lombok.Data;
@Data
public class EnterInterviewDto {
- @ApiModelProperty(value = "会议id", required = true)
- private String interviewId;
+ @ApiModelProperty(value = "会议计划id", required = true)
+ private String interviewPlanId;
@ApiModelProperty(value = "用户id", required = true)
private String userId;
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java
index 01b9f33ef..c1d88f267 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerUserInfoDO.java
@@ -50,4 +50,22 @@ public class HyPartnerUserInfoDO implements Serializable {
@ApiModelProperty("更新时间")
private Date updateTime;
+
+ @ApiModelProperty("店铺编码")
+ private String shopCode;
+
+ @ApiModelProperty("店铺名称")
+ private String shopName;
+
+ @ApiModelProperty("店铺ID")
+ private String shopId;
+
+ @ApiModelProperty("推荐加盟商id")
+ private String recommendPartnerId;
+
+ @ApiModelProperty("推荐加盟商姓名")
+ private String recommendPartnerName;
+
+ @ApiModelProperty("推荐加盟商手机号")
+ private String recommendPartnerMobile;
}
\ No newline at end of file
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserBaseInfoVO.java
new file mode 100644
index 000000000..b44f6a17b
--- /dev/null
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/EnterpriseUserBaseInfoVO.java
@@ -0,0 +1,18 @@
+package com.cool.store.vo;
+
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+/**
+ * 员工基本信息(名字 + 电话)
+ */
+@Data
+public class EnterpriseUserBaseInfoVO {
+
+ @ApiModelProperty("名字")
+ private String name;
+
+ @ApiModelProperty("电话")
+ private String Mobile;
+
+}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java
index 0311cc371..8020b5fbc 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerInterviewInfoVO.java
@@ -15,6 +15,9 @@ import java.util.Date;
@ApiModel
public class PartnerInterviewInfoVO {
+ @ApiModelProperty("会议计划id")
+ private Long interviewPlanId;
+
@ApiModelProperty("会议id")
private Long interviewId;
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 4bb0a40e2..480bba5bb 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
@@ -18,8 +18,11 @@ public class PartnerPassLetterDetailVO {
@ApiModelProperty("审核城市")
private String verifyCity;
- @ApiModelProperty("函文件URL")
- private String passFileUrl;
+ @ApiModelProperty("函文件图片URL")
+ private String passImageUrl;
+
+ @ApiModelProperty("函文件pdfURL")
+ private String passPdfUrl;
@ApiModelProperty("生成日期:YYYY-MM-DD")
private String createTime;
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
index d4855f309..0d0a17823 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/interview/InterviewVO.java
@@ -1,19 +1,29 @@
package com.cool.store.vo.interview;
-import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
/**
* @Author: young.yu
* @Date: 2023-06-08 16:26
* @Description:
*/
+@Data
@ApiModel(description = "面试信息")
public class InterviewVO {
@ApiModelProperty(value = "会议id", required = true)
private String interviewId;
+ @ApiModelProperty("资质审核流程id")
+ private String qualifyVerifyId;
+
+ @ApiModelProperty("审核通过时间")
+ private String passTime;
+
+ @ApiModelProperty("审核通过原因")
+ private String passReason;
+
@ApiModelProperty(value = "加盟商用户编号")
private String partnerId;
@@ -37,6 +47,22 @@ public class InterviewVO {
@ApiModelProperty(value = "面试官手机号", required = true)
private String interviewerMobile;
+
+ @ApiModelProperty(value = "记录人id", required = true)
+ private String recorderId;
+
+ @ApiModelProperty(value = "记录人姓名", required = true)
+ private String recorderName;
+
+ @ApiModelProperty(value = "记录人电话", required = true)
+ private String recorderMobile;
+
+ @ApiModelProperty(value = "记录时间", required = true)
+ private String recordTime;
+
+ @ApiModelProperty(value = "面试总结", required = true)
+ private String summary;
+
@ApiModelProperty(value = "房间状态(0待开放;1已开放;2已关闭)", required = true)
private String roomStatus;
@@ -46,100 +72,19 @@ public class InterviewVO {
@ApiModelProperty(value = "预约状态 0 待预约;1待面试;2已开始;3待审核;4审批中;5审批通过;6拒绝", required = true)
private Integer status;
+ @ApiModelProperty(value = "面试过程信息", required = false)
+ private String processInfo;
- public String getPartnerId() {
- return partnerId;
- }
+ @ApiModelProperty("授权码")
+ private String authCode;
- public void setPartnerId(String partnerId) {
- this.partnerId = partnerId;
- }
+ @ApiModelProperty("通过函有效期至")
+ private String expiryDate;
- public String getInterviewerId() {
- return interviewerId;
- }
+ @ApiModelProperty("通过函PDF文件URL")
+ private String passPdfUrl;
- public void setInterviewerId(String interviewerId) {
- this.interviewerId = interviewerId;
- }
+ @ApiModelProperty("通过函图片文件URL")
+ private String passImageUrl;
- public Integer getStatus() {
- return status;
- }
-
- public void setStatus(Integer status) {
- this.status = status;
- }
-
- public String getInterviewId() {
- return interviewId;
- }
-
- public void setInterviewId(String interviewId) {
- this.interviewId = interviewId;
- }
-
- public String getPartnerName() {
- return partnerName;
- }
-
- public void setPartnerName(String partnerName) {
- this.partnerName = partnerName;
- }
-
- public String getPartnerMobile() {
- return partnerMobile;
- }
-
- public void setPartnerMobile(String partnerMobile) {
- this.partnerMobile = partnerMobile;
- }
-
- public String getRoomId() {
- return roomId;
- }
-
- public void setRoomId(String roomId) {
- this.roomId = roomId;
- }
-
- public String getStartTime() {
- return startTime;
- }
-
- public void setStartTime(String startTime) {
- this.startTime = startTime;
- }
-
- public String getInterviewerName() {
- return interviewerName;
- }
-
- public void setInterviewerName(String interviewerName) {
- this.interviewerName = interviewerName;
- }
-
- public String getInterviewerMobile() {
- return interviewerMobile;
- }
-
- public void setInterviewerMobile(String interviewerMobile) {
- this.interviewerMobile = interviewerMobile;
- }
-
- public String getRoomStatus() {
- return roomStatus;
- }
-
- public void setRoomStatus(String roomStatus) {
- this.roomStatus = roomStatus;
- }
-
- public String getEndTime() {
- return endTime;
- }
-
- public void setEndTime(String endTime) {
- this.endTime = endTime;
- }
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java
index 39e4b658a..510227552 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/handler/CustomExceptionHandler.java
@@ -1,15 +1,26 @@
package com.cool.store.handler;
+import com.alibaba.fastjson.JSON;
+import com.alibaba.fastjson.JSONObject;
+import com.alibaba.fastjson.serializer.SerializerFeature;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
+import com.cool.store.response.ResponseResult;
import com.cool.store.response.error.ErrorResponse;
+import com.cool.store.utils.UUIDUtils;
import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.lang3.StringUtils;
+import org.slf4j.MDC;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
/**
* @author zhangchenbiao
* @FileName: CustomExceptionHandler
@@ -21,24 +32,41 @@ import org.springframework.web.bind.annotation.RestControllerAdvice;
public class CustomExceptionHandler {
@ExceptionHandler(value = ServiceException.class)
- public ResponseEntity handleCustomException(ServiceException e) {
+ public void handleCustomException(ServiceException e, HttpServletResponse httpServletResponse) {
log.error(e.getMessage(), e);
- ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage());
- return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
+ ResponseResult responseResult = new ResponseResult(e.getErrorCode(), e.getMessage());
+ responseResult(httpServletResponse, responseResult);
}
@ExceptionHandler(value = ApiException.class)
- public ResponseEntity handleCustomException(ApiException e) {
+ public void handleCustomException(ApiException e, HttpServletResponse httpServletResponse) {
log.error(e.getMessage(), e);
- ErrorResponse errorResponse = new ErrorResponse(e.getErrorCode(), e.getMessage());
- return new ResponseEntity<>(errorResponse, HttpStatus.BAD_REQUEST);
+ ResponseResult responseResult = new ResponseResult(e.getErrorCode(), e.getMessage());
+ responseResult(httpServletResponse, responseResult);
}
@ExceptionHandler(value = Exception.class)
- public ResponseEntity handleException(Exception e) {
+ public void handleException(Exception e, HttpServletResponse httpServletResponse) {
log.error(e.getMessage(), e);
- ErrorResponse errorResponse = new ErrorResponse(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
- return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
+ ResponseResult responseResult = new ResponseResult(HttpStatus.INTERNAL_SERVER_ERROR.value(), e.getMessage());
+ responseResult(httpServletResponse, responseResult);
+ }
+
+
+ private void responseResult(HttpServletResponse response, ResponseResult result) {
+ response.setCharacterEncoding("UTF-8");
+ response.setHeader("Content-type", "application/json;charset=UTF-8");
+ String requestId = MDC.get(CommonConstants.REQUEST_ID);
+ if(StringUtils.isBlank(requestId)){
+ requestId = UUIDUtils.get32UUID();
+ }
+ result.setRequestId(requestId);
+ result.setData(null);
+ try {
+ response.getWriter().write(JSONObject.toJSONString(result, SerializerFeature.WriteNullStringAsEmpty));
+ } catch (IOException ex) {
+ log.error(ex.getMessage(),ex);
+ }
}
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
index 0d0cdb989..3093ea01a 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
@@ -125,6 +125,28 @@ public class ISVHttpRequest {
return null;
}
+ /**
+ * 获取部门详情
+ * @param deptId
+ * @return
+ */
+ public SysDepartmentDTO getDepartmentDetail(String deptId){
+ String url = isvDomain + "/corp/getDepartmentDetail";
+ HashMap requestMap = new HashMap();
+ requestMap.put("deptId", deptId);
+ ResultDTO responseEntity = null;
+ try {
+ responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap);
+ log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity));
+ if(Objects.nonNull(responseEntity.getData()) && responseEntity.isSuccess()){
+ return JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getData()), SysDepartmentDTO.class);
+ }
+ } catch (Exception e) {
+ log.info("调用isv出错{}", e);
+ }
+ return null;
+ }
+
public AuthScopeDTO getAuthScope(){
String url = isvDomain + "/corp/getAuthScope";
HashMap requestMap = new HashMap();
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java
index 1f1cc1c27..59f62f5e1 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/mq/RocketMqLogAspect.java
@@ -45,10 +45,9 @@ public class RocketMqLogAspect {
Object[] args = joinPoint.getArgs();
Message message = (Message)args[0];
String traceId = message.getMsgID() + Constants.TOPIC_PARTITION_SEPARATOR + message.getReconsumeTimes();
- Map context = MDC.getCopyOfContextMap();
- if(Objects.isNull(context)){
- MDC.put(CommonConstants.REQUEST_ID, traceId);
- }
+ String requestId = message.getUserProperties(CommonConstants.REQUEST_ID);
+ MDC.put(CommonConstants.REQUEST_ID, requestId);
+ MDC.put(CommonConstants.MESSAGE_ID, traceId);
} catch (IllegalArgumentException e) {
log.info("MDC mqBeforeLog", e);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
index 0a7bf8b6c..7ec359b0c 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/AliyunService.java
@@ -1,6 +1,7 @@
package com.cool.store.service;
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
+import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.vo.cuser.IdentityCardInfoVO;
@@ -24,6 +25,6 @@ public interface AliyunService {
* @param faceImageUrl
* @return
*/
- IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException;
+ IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl, IDCardSideEnum sideEnum) throws ApiException;
}
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 2b57f6384..a5d97e465 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
@@ -22,4 +22,8 @@ public interface HyPartnerBaseInfoService {
Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request);
PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId);
+
+ Long getLineIdByIdCard(String idCard);
+
+
}
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 0b7f0b30a..93da5e217 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
@@ -104,5 +104,7 @@ public interface HyPartnerLineInfoService {
*/
PageInfo publicSeaLineList(String userId,LineRequest lineRequest);
+ PartnerLineBaseInfoVO getPartnerLinBaseInfo(String partnerId);
+
}
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 9d8bca88f..8c2ece594 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
@@ -25,6 +25,6 @@ public interface PartnerInterviewService {
/**
* 获取通知函详情
*/
- PartnerPassLetterDetailVO passLetterDetail(String interviewId);
+ PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId);
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
index 0d171c9f1..fcbd9bc8f 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/AliyunServiceImpl.java
@@ -9,6 +9,7 @@ import com.aliyun.ocr20191230.models.RecognizeIdentityCardResponseBody;
import com.aliyun.teaopenapi.models.Config;
import com.cool.store.dto.partner.DescribePhoneNumberDTO;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.service.AliyunService;
@@ -23,6 +24,7 @@ import java.net.MalformedURLException;
import java.net.URL;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
+import java.util.Objects;
import java.util.Optional;
/**
@@ -61,7 +63,7 @@ public class AliyunServiceImpl implements AliyunService {
}
@Override
- public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl) throws ApiException {
+ public IdentityCardInfoVO getIdentityCardInfo(String faceImageUrl, IDCardSideEnum sideEnum) throws ApiException {
//todo zcb ak sk替换
com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config()
.setAccessKeyId("LTAI5t9RaXvABZbHvoXjDFJ1")
@@ -74,23 +76,26 @@ public class AliyunServiceImpl implements AliyunService {
InputStream inputStream = url.openConnection().getInputStream();
com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest recognizeIdentityCardAdvanceRequest = new com.aliyun.ocr20191230.models.RecognizeIdentityCardAdvanceRequest()
.setImageURLObject(inputStream)
- .setSide("face");
+ .setSide(sideEnum.getCode());
com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
RecognizeIdentityCardResponse idCardResponse = client.recognizeIdentityCardAdvance(recognizeIdentityCardAdvanceRequest, runtime);
log.info("身份证解析结果:{}", JSONObject.toJSONString(idCardResponse));
RecognizeIdentityCardResponseBody.RecognizeIdentityCardResponseBodyDataFrontResult frontResult = Optional.ofNullable(idCardResponse).map(o -> o.getBody()).map(o -> o.data).map(o -> o.frontResult).orElse(null);
- String username = frontResult.name;
- String liveAddress = frontResult.address;
- String birthdate = frontResult.birthDate;
- if(StringUtils.isNotBlank(birthdate)){
- birthdate = convertDate(birthdate, "yyyyMMdd");
+ if(Objects.nonNull(frontResult)){
+ String username = frontResult.name;
+ String liveAddress = frontResult.address;
+ String birthdate = frontResult.birthDate;
+ if(StringUtils.isNotBlank(birthdate)){
+ birthdate = convertDate(birthdate, "yyyyMMdd");
+ }
+ String sex = frontResult.gender;
+ String idCard = frontResult.IDNumber;
+ String nation = frontResult.nationality;
+ IdentityCardInfoVO result = new IdentityCardInfoVO(username, liveAddress, birthdate, sex, idCard, nation);
+ log.info("身份证解析:{}", JSONObject.toJSONString(result));
+ return result;
}
- String sex = frontResult.gender;
- String idCard = frontResult.IDNumber;
- String nation = frontResult.nationality;
- IdentityCardInfoVO result = new IdentityCardInfoVO(username, liveAddress, birthdate, sex, idCard, nation);
- log.info("身份证解析:{}", JSONObject.toJSONString(result));
- return result;
+ return null;
} catch (com.aliyun.tea.TeaException e) {
log.error("身份证解析报错TeaException:{}", e);
throw new ApiException(e.getMessage());
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
index c76787c16..564dbfe43 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
@@ -1,5 +1,6 @@
package com.cool.store.service.impl;
+import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
@@ -9,6 +10,8 @@ import com.cool.store.dto.dept.DepartmentEventDTO;
import com.cool.store.dto.enterprise.*;
import com.cool.store.entity.*;
import com.cool.store.enums.DataSourceEnum;
+import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.exception.ServiceException;
import com.cool.store.http.ISVHttpRequest;
import com.cool.store.service.EnterpriseSyncService;
import com.google.common.collect.ArrayListMultimap;
@@ -209,16 +212,61 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
@Override
public void deptUpdateEvent(DepartmentEventDTO param) {
+ SysDepartmentDTO departmentDetail = isvHttpRequest.getDepartmentDetail(param.getDepartmentId());
+ if(Objects.isNull(departmentDetail)){
+ return;
+ }
log.info("部门变更:{}", JSONObject.toJSONString(param));
switch (parseValue(param.getEventType())){
case DEPARTMENT_CREATED:
+ RegionDO parentRegionInfo = regionDAO.getRegionInfoByRegionId(departmentDetail.getParentId());
+ if(Objects.isNull(parentRegionInfo)){
+ throw new ServiceException(ErrorCodeEnum.PARENT_NODE_NOT_EXIST);
+ }
+ Multimap leaderDeptMap = ArrayListMultimap.create();
+ RegionDO region = SysDepartmentDTO.convertRegionDO(departmentDetail, leaderDeptMap, parentRegionInfo);
+ regionDAO.batchInsertOrUpdate(Arrays.asList(region));
+ dealUserLeaderDept(leaderDeptMap);
break;
case DEPARTMENT_UPDATED:
+ if(param.getIsChangeParent()){
+ syncAll();
+ return;
+ }
+ Multimap updateLeaderDeptMap = ArrayListMultimap.create();
+ RegionDO updateRegion = SysDepartmentDTO.convertRegionDO(departmentDetail, updateLeaderDeptMap);
+ regionDAO.batchInsertOrUpdate(Arrays.asList(updateRegion));
+ dealUserLeaderDept(updateLeaderDeptMap);
break;
case DEPARTMENT_DELETED:
+ syncAll();
break;
default:
return;
}
}
+
+ public void dealUserLeaderDept(Multimap leaderDeptMap){
+ if(leaderDeptMap.isEmpty()){
+ return;
+ }
+ List userIds = leaderDeptMap.keys().stream().collect(Collectors.toList());
+ List userList = enterpriseUserDAO.getUserInfoByUserIds(userIds);
+ for (EnterpriseUserDO enterpriseUser : userList) {
+ List deptIds = leaderDeptMap.get(enterpriseUser.getUserId()).stream().collect(Collectors.toList());
+ String leaderDeptIds = enterpriseUser.getLeaderDeptIds();
+ if(StringUtils.isNotBlank(leaderDeptIds)){
+ List existDeptIds = JSONObject.parseArray(leaderDeptIds).stream().map(String::valueOf).collect(Collectors.toList());
+ //取并集
+ existDeptIds.addAll(deptIds);
+ List allDeptIds = existDeptIds.stream().distinct().collect(Collectors.toList());
+ enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(allDeptIds));
+ }else{
+ enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(deptIds));
+ }
+ enterpriseUser.setIsLeader(Boolean.TRUE);
+ }
+ enterpriseUserDAO.batchInsertOrUpdate(userList);
+ }
+
}
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 08e6979f2..d2bffd4e2 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
@@ -67,6 +67,11 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
return baseInfoVO;
}
+ @Override
+ public Long getLineIdByIdCard(String idCard) {
+ return hyPartnerBaseInfoDAO.getLineIdByIdCard(idCard);
+ }
+
private void fillBaseInfo(HyPartnerBaseInfoDO baseInfoDO, PartnerBaseInfoRequest request) {
baseInfoDO.setPartnerId(request.getPartnerId());
baseInfoDO.setPartnerLineId(request.getPartnerLineId());
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 e4b456878..d48672826 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
@@ -1,7 +1,9 @@
package com.cool.store.service.impl;
+import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONObject;
+import com.cool.store.constants.RedisConstant;
import com.cool.store.dao.EnterpriseUserDAO;
import com.cool.store.dao.HyPartnerLineInfoDAO;
import com.cool.store.dao.HyPartnerUserInfoDAO;
@@ -17,19 +19,21 @@ 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.RedisUtilPool;
import com.cool.store.utils.StringUtil;
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.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
+import java.text.MessageFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -49,6 +53,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
EnterpriseUserDAO enterpriseUserDAO;
@Resource
UserRegionMappingDAO userRegionMappingDAO;
+ @Resource
+ private RedisUtilPool redisUtilPool;
@Override
public StageCountVO selectStagePendingCount(String userId) {
@@ -291,6 +297,18 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService {
return publicSeaLineList;
}
+ @Override
+ public PartnerLineBaseInfoVO getPartnerLinBaseInfo(String partnerId) {
+ PartnerLineBaseInfoVO lineBaseInfoVO = new PartnerLineBaseInfoVO();
+ // todo wxp 需要加条件
+ HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(partnerId);
+ BeanUtil.copyProperties(lineInfoDO, lineBaseInfoVO);
+ String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, partnerId);
+ String value = redisUtilPool.getString(coolingPeriodFirstLoginCacheKey);
+ lineBaseInfoVO.setCoolDownFirstLoginFlag(StringUtils.isNotBlank(value));
+ return lineBaseInfoVO;
+ }
+
/**
* convertPartnerBlackListDTOToVo
* @param partnerBlackListDTO
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 c4e5488cf..83d9a1dac 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
@@ -16,6 +16,7 @@ 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.EnterpriseUserBaseInfoVO;
import com.cool.store.vo.interview.InterviewVO;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
@@ -57,7 +58,15 @@ public class InterviewServiceImpl implements InterviewService {
@Override
public InterviewVO getInterviewInfo(String interviewId) {
- return hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId);
+ InterviewVO vo = hyPartnerInterviewPlanMapper.getInterviewInfo(interviewId);
+ //查询面试官和记录人信息
+ EnterpriseUserBaseInfoVO interviewerInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getInterviewerId());
+ vo.setInterviewerName(interviewerInfo.getName());
+ vo.setInterviewerMobile(interviewerInfo.getMobile());
+ EnterpriseUserBaseInfoVO recorderInfo = hyPartnerInterviewPlanMapper.getEnterpriseUserBaseInfo(vo.getRecorderId());
+ vo.setRecorderName(recorderInfo.getName());
+ vo.setRecorderMobile(recorderInfo.getMobile());
+ return vo;
}
@Override
@@ -125,15 +134,15 @@ public class InterviewServiceImpl implements InterviewService {
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
try {
//1. 将面试状态改为 --> 2已开始
- interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2);
+ interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
- interviewMapper.updateActualStartTime(dto.getInterviewId(), DateUtil.now());
+ interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
//4. 修改加盟商或面试官进入面试时间
- interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now());
+ interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
- interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId());
+ interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
//6. 查询对应的面试官id、姓名及加盟商姓名
- EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId());
+ EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
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 f2606d200..fc9d6f8b5 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
@@ -9,6 +9,7 @@ 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.EnterInterviewVO;
@@ -21,6 +22,8 @@ import org.springframework.transaction.annotation.Transactional;
import java.io.*;
+import static com.cool.store.utils.PDFUtils.pdf2Img;
+
@Service
public class PartnerInterviewServiceImpl implements PartnerInterviewService {
@@ -59,15 +62,15 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
public EnterInterviewVO enterInterviewRoom(EnterInterviewDto dto) {
try {
//1. 将面试状态改为 --> 2已开始
- interviewMapper.updateInterviewStatus(dto.getInterviewId(), 2);
+ interviewMapper.updateInterviewStatus(dto.getInterviewPlanId(), 2);
//3. 修改面试实际开始时间,以第一个人进来的时间为准,后续不再修改
- interviewMapper.updateActualStartTime(dto.getInterviewId(), DateUtil.now());
+ interviewMapper.updateActualStartTime(dto.getInterviewPlanId(), DateUtil.now());
//4. 修改加盟商或面试官进入面试时间
- interviewMapper.updateEnterTime(dto.getInterviewId(), dto.getUserType(), DateUtil.now());
+ interviewMapper.updateEnterTime(dto.getInterviewPlanId(), dto.getUserType(), DateUtil.now());
//5. 加盟商如果进入了,就修改面试计划表 is_partner_interview 字段
- interviewMapper.updateWhetherPartnerEnter(dto.getInterviewId());
+ interviewMapper.updateWhetherPartnerEnter(dto.getInterviewPlanId());
//6. 查询对应的面试官id、姓名及加盟商姓名
- EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewId(dto.getInterviewId());
+ EnterInterviewVO vo = interviewMapper.getInterviewerByInterviewPlanId(dto.getInterviewPlanId());
//生成 userSign
String userSig = TRTCUtils.genUserSig(sdkAppId, key, dto.getUserId());
vo.setUserSign(userSig);
@@ -79,11 +82,10 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
/**
* 获取通知函详情
- * TODO 暂时将生成通过函文件的功能放在这里方便测试和联调,审批通过的回调方法完成后应该放到该方法中
*/
@Override
- public PartnerPassLetterDetailVO passLetterDetail(String interviewId) {
- PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewId);
+ public PartnerPassLetterDetailVO passLetterDetail(String interviewPlanId) {
+ PartnerPassLetterDetailVO vo = interviewMapper.getPassLetterDetail(interviewPlanId);
//解析意向开店区域为市级行政区
String verifyCity = vo.getVerifyCity();
String[] split = verifyCity.split("/");
@@ -97,33 +99,48 @@ public class PartnerInterviewServiceImpl implements PartnerInterviewService {
} else {
System.out.println("wrong");
}
- // TODO 调用生成通过函和修改数据库数据的方法
- String passCode = genPassLetterAndUpdateDB(vo, interviewId);
+ verifyCity = vo.getVerifyCity();
+ // 调用生成通过函和修改数据库数据的方法
+ String passCode = genPassLetterAndUpdateDB(vo, interviewPlanId);
//再查一次 vo
- vo = interviewMapper.getPassLetterDetail(interviewId);
+ vo = interviewMapper.getPassLetterDetail(interviewPlanId);
//有效期为审批通过次日起第 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"));
+ vo.setVerifyCity((verifyCity));
return vo;
}
/**
- * TODO 暂时将生成 passLetter 并上传 OSS 和修改数据库对应信息的方法放在这里,实际应该在 800 的回调方法中
+ * 生成通知函上传 OSS 和修改数据库相应数据
* @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);
+ //已经有文件 URL 的话就不要再生成了,默认上游全部数据都正确
+ if (ObjectUtil.isEmpty(passLetterDetail.getPassPdfUrl()) || ObjectUtil.isEmpty(passLetterDetail.getPassImageUrl())) {
+ try {
+ DateTime createTime = DateUtil.date();
+ String code = passLetterDetail.getPassCode() == null ? PassLetterUtils.genPassCode(createTime) : passLetterDetail.getPassCode();
+ //生成的 pdf 通过函内存输出流
+ ByteArrayOutputStream pdfOut = PassLetterUtils.genPassLetter(passLetterDetail.getPartnerName(), code, passLetterDetail.getVerifyCity(), createTime);
+ //生成的 pdf 通过函内存输入流
+ ByteArrayInputStream inputStream = new ByteArrayInputStream(pdfOut.toByteArray());
+ String passPdfUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + code + ".pdf");
+ //转换为图片
+ inputStream.reset();
+ ByteArrayOutputStream imageOut = PDFUtils.pdf2Img(inputStream, 2.0f);
+ inputStream = new ByteArrayInputStream(imageOut.toByteArray());
+ //上传 OSS
+ String passImageUrl = ossServer.uploadFileServer(inputStream, "partner/passLetter/" + code + ".png");
+ //计算有效期截止日期
+ DateTime expiryDate = DateUtil.offsetDay(createTime, 60);
+ String expiryDateStr = DateUtil.format(expiryDate, "yyyy-MM-dd") + " 23:59:59";
+ interviewMapper.updatePassLetterInfo(code, passPdfUrl, passImageUrl, expiryDateStr, interviewId);
+ inputStream.close();
+ } catch (IOException e) {
+ throw new RuntimeException(e);
+ }
}
return passLetterDetail.getPassCode();
}
diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java
index e0c16c7f4..8a6c7d9c4 100644
--- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java
+++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/TestController.java
@@ -13,6 +13,7 @@ import com.cool.store.entity.HyOpenAreaInfoDO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.exception.ApiException;
import com.cool.store.exception.ServiceException;
import com.cool.store.mapper.HyOpenAreaInfoMapper;
@@ -205,7 +206,7 @@ public class TestController {
@ApiOperation("根据身份证正面解析获取数据")
public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){
try {
- IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl);
+ IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl, IDCardSideEnum.FACE);
return ResponseResult.success(identityCardInfo);
} catch (Exception e) {
throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL);
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 3af188129..8f19500d4 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
@@ -33,8 +33,8 @@ public class InterviewController {
@PostMapping("/passLetter/detail")
@ApiOperation("通过函详情")
- public ResponseResult passLetterDetail(@RequestParam String interviewId) {
- return ResponseResult.success(interviewService.passLetterDetail(interviewId));
+ public ResponseResult passLetterDetail(@RequestParam String interviewPlanId) {
+ return ResponseResult.success(interviewService.passLetterDetail(interviewPlanId));
}
}
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 c41b9ea90..34b87581c 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,18 +1,17 @@
package com.cool.store.controller;
+import com.cool.store.constants.RedisConstant;
import com.cool.store.context.PartnerUserHolder;
import com.cool.store.enums.ErrorCodeEnum;
+import com.cool.store.enums.IDCardSideEnum;
import com.cool.store.exception.ServiceException;
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.AliyunService;
-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.service.*;
+import com.cool.store.utils.RedisUtilPool;
import com.cool.store.vo.*;
import com.cool.store.vo.cuser.IdentityCardInfoVO;
import io.swagger.annotations.Api;
@@ -23,6 +22,7 @@ import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
+import java.text.MessageFormat;
import java.util.List;
/**
@@ -38,18 +38,18 @@ public class PartnerController {
@Resource
private PartnerUserInfoService partnerUserInfoService;
-
@Resource
private HyPartnerIntentInfoService hyPartnerIntentInfoService;
-
@Resource
private AliyunService aliyunService;
-
@Resource
private HyPartnerBaseInfoService hyPartnerBaseInfoService;
@Resource
private HyPartnerClerkService hyPartnerClerkService;
-
+ @Resource
+ private HyPartnerLineInfoService hyPartnerLineInfoService;
+ @Resource
+ private RedisUtilPool redisUtilPool;
@@ -76,8 +76,8 @@ public class PartnerController {
})
public ResponseResult getLineByIdCard(@RequestParam(value = "idCard",required = false)String idCard){
-
- return ResponseResult.success();
+ Long lineId = hyPartnerBaseInfoService.getLineIdByIdCard(idCard);
+ return ResponseResult.success(lineId != null);
}
@@ -133,18 +133,21 @@ public class PartnerController {
return ResponseResult.success(hyPartnerIntentInfoService.submitPartnerIntentInfo(partnerIntentInfoRequest));
}
-
-
-
@GetMapping(path = "/getPartnerLineBaseInfo")
@ApiOperation("查询加盟商线索详情(适用全部流程) 包括冷静期是否首次登录")
@ApiImplicitParams({
@ApiImplicitParam(name = "partnerId", value = "C端用户基本信息ID", required = false),
})
- public ResponseResult getPartnerLinBaseInfo(@RequestParam(value = "partnerId",required = false)Long partnerId){
+ public ResponseResult getPartnerLinBaseInfo(@RequestParam(value = "partnerId",required = false)String partnerId){
+ return ResponseResult.success(hyPartnerLineInfoService.getPartnerLinBaseInfo(partnerId));
+ }
-
- return ResponseResult.success();
+ @PostMapping(path = "/delCoolDownFirstLoginFlag")
+ @ApiOperation("删除冷静期是否首次登录缓存")
+ public ResponseResult delCoolDownFirstLoginFlag(@RequestParam(value = "partnerId",required = true)String partnerId){
+ String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, partnerId);
+ redisUtilPool.delKey(coolingPeriodFirstLoginCacheKey);
+ return ResponseResult.success(true);
}
@@ -208,9 +211,9 @@ public class PartnerController {
@GetMapping(path = "/getIdentityCardInfo")
@ApiOperation("根据身份证正面解析获取数据")
- public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl){
+ public ResponseResult getIdentityCardInfo(@RequestParam(value = "faceImageUrl")String faceImageUrl, @RequestParam("side")IDCardSideEnum sideEnum){
try {
- IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl);
+ IdentityCardInfoVO identityCardInfo = aliyunService.getIdentityCardInfo(faceImageUrl, sideEnum);
return ResponseResult.success(identityCardInfo);
} catch (Exception e) {
throw new ServiceException(ErrorCodeEnum.IDENTITY_CARD_PARSE_FAIL);
diff --git a/coolstore-partner-webc/src/main/resources/static/Alibaba-PuHuiTi-Regular.ttf b/coolstore-partner-webc/src/main/resources/static/Alibaba-PuHuiTi-Regular.ttf
new file mode 100644
index 000000000..9f8ab8d8f
Binary files /dev/null and b/coolstore-partner-webc/src/main/resources/static/Alibaba-PuHuiTi-Regular.ttf differ
diff --git a/coolstore-partner-webc/src/main/resources/static/simsun.ttc b/coolstore-partner-webc/src/main/resources/static/simsun.ttc
new file mode 100644
index 000000000..e360db744
Binary files /dev/null and b/coolstore-partner-webc/src/main/resources/static/simsun.ttc differ