From 60ed31a31354a680f8b7b76820637525643f636c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Wed, 13 Sep 2023 14:11:45 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E5=90=8C=E4=B8=80=E4=B8=AA=E5=BE=AE?= =?UTF-8?q?=E4=BF=A1=E5=8F=B7=E6=A0=A1=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/cool/store/enums/ErrorCodeEnum.java | 1 + .../cool/store/service/impl/WechatMiniAppServiceImpl.java | 6 ++++++ 2 files changed, 7 insertions(+) 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 d1076d61d..dca9e5bb7 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 @@ -86,6 +86,7 @@ public enum ErrorCodeEnum { INTERVIEW_INTERVIEW_TIME_IS_UNUSABLE(1021114, "当前预约时间不可用,请和线索用户协商其他时间后确定预约时间\n面试人:{0} 手机号:{1}", null), INTERVIEW_PARTNER_NOT_EXIST(1021115, "线索下的加盟商不存在!", null), INTERVIEW_STATUS_NOT_TRANSFER(1021116, "当前面试状态不允许转让! 面试状态:{0}", null), + MOBILE_WECHAT_EXIST(1021116, "此号码已绑定其他微信,请更换手机号码或微信后重试。", null), ROOM_STATUS_ERROR(10211156, "当前面试房间状态不允许进行该操作!", null), MOBILE_APP_NOT_ONLINE_ERROR(10211157, "呼叫失败,请确认呼出号码正确并检查是否安装并打开呼叫插件", null), diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java index 0408c753f..ac4aba48a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/WechatMiniAppServiceImpl.java @@ -106,6 +106,12 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { // 微信未授权过 if(hyPartnerUserPlatformBindDO == null){ hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); + if(hyPartnerUserInfoDO != null){ + HyPartnerUserPlatformBindDO hy = hyPartnerUserPlatformBindDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + if (hy!=null){ + throw new ServiceException(ErrorCodeEnum.MOBILE_WECHAT_EXIST); + } + } if(hyPartnerUserInfoDO == null){ hyPartnerUserInfoDO = new HyPartnerUserInfoDO(); hyPartnerUserInfoDO.setMobile(phoneInfoDTO.getPhoneInfo().getPhoneNumber()); From 49f9769995a22c8f2f4c6fa783fc3b6327680036 Mon Sep 17 00:00:00 2001 From: "feng.li" Date: Wed, 13 Sep 2023 16:41:29 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E5=A4=9A=E6=AC=A1=E8=BD=AC=E8=AE=A9?= =?UTF-8?q?=E4=B8=8D=E5=86=8D=E4=BF=AE=E6=94=B9=E6=97=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/mapper/HyPartnerLineInfoMapper.java | 6 ++++++ .../main/resources/mapper/HyPartnerLineInfoMapper.xml | 9 +++++++++ .../cool/store/service/impl/InterviewServiceImpl.java | 5 ++++- .../com/cool/store/config/swagger/Swagger2Config.java | 2 +- 4 files changed, 20 insertions(+), 2 deletions(-) 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 65609017d..5d71a9677 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 @@ -244,4 +244,10 @@ public interface HyPartnerLineInfoMapper { */ List getHyPartnerLineInfoList(@Param("lineIds") List lineIds,String investmentManager); + /** + * 获取线索转让次数 + * @param partnerLineId 线索 id + * @return 线索转让次数 + */ + Integer getTransferTimes(@Param("lineId") Long partnerLineId); } \ 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 3a7f6ec18..55ddbeb4f 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -736,4 +736,13 @@ + + + \ No newline at end of file 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 1eb192533..ea8d4bf2c 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 @@ -186,7 +186,10 @@ public class InterviewServiceImpl implements InterviewService { // } //有可能还未同意面试预约,这时候没有建立日程,只需要修改面试官 - if (interviewInfo.getFeishuCalendarId() != null && interviewInfo.getFeishuScheduleId() != null) { + //1.4 优化多次转让,线索转让次数 >= 1 无需添加日程,只转让线索的招商经理及面试官 + Integer transferTimes = hyPartnerLineInfoMapper.getTransferTimes(request.getPartnerLineId()); + if (interviewInfo.getFeishuCalendarId() != null && interviewInfo.getFeishuScheduleId() != null + && transferTimes < 1) { //V1.3 需求变更为将新面试官拉入原面试官日程,而非删除和新增日程 //1. 原面试官面试日程信息 String oldInterviewerId = CurrentUserHolder.getUserId(); diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java index c548a3935..05e83b144 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/swagger/Swagger2Config.java @@ -52,7 +52,7 @@ public class Swagger2Config { .groupName(groupName) .select() .apis(this.scanBasePackage(packages)) - .paths(PathSelectors.regex(".*/getPartnerIntentInfo|.*/queryPartnerClerkInfoList|.*/queryPartnerBaseInfo")) + //.paths(PathSelectors.regex(".*/getPartnerIntentInfo|.*/queryPartnerClerkInfoList|.*/queryPartnerBaseInfo")) .build() .globalOperationParameters(pars); } From b4d15f5d6ab04909874ee4da4877184e9e9f8cd5 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Wed, 13 Sep 2023 20:18:42 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=BE=8E=E9=A2=9C&?= =?UTF-8?q?=E7=BA=BF=E7=B4=A2=E5=9F=BA=E6=9C=AC=E4=BF=A1=E6=81=AF=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/cool/store/enums/ErrorCodeEnum.java | 1 + .../store/dao/BeautyCameraSettingDAO.java | 46 +++++++++++ .../store/dao/HyPartnerIntentInfoDAO.java | 7 ++ .../cool/store/dao/HyPartnerUserInfoDAO.java | 7 ++ .../mapper/BeautyCameraSettingMapper.java | 26 ++++++ .../mapper/HyPartnerIntentInfoMapper.java | 3 + .../store/mapper/HyPartnerUserInfoMapper.java | 2 + .../mapper/BeautyCameraSettingMapper.xml | 79 +++++++++++++++++++ .../mapper/HyPartnerIntentInfoMapper.xml | 67 +++++++++++++++- .../mapper/HyPartnerUserInfoMapper.xml | 52 ++++++++++++ .../store/entity/BeautyCameraSettingDO.java | 49 ++++++++++++ .../store/request/EditBaseInfoRequest.java | 30 +++++++ .../beauty/AddBeautyCameraSettingRequest.java | 42 ++++++++++ .../vo/beauty/BeautyCameraSettingVO.java | 42 ++++++++++ .../vo/partner/PartnerSimpleBaseInfoVO.java | 54 +++++++++++++ .../service/BeautyCameraSettingService.java | 29 +++++++ .../service/HyPartnerLineInfoService.java | 14 ++++ .../impl/BeautyCameraSettingServiceImpl.java | 35 ++++++++ .../impl/HyPartnerLineInfoServiceImpl.java | 52 +++++++++++- .../BeautyCameraSettingController.java | 41 ++++++++++ .../cool/store/controller/DeskController.java | 13 +++ 21 files changed, 689 insertions(+), 2 deletions(-) create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/dao/BeautyCameraSettingDAO.java create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/BeautyCameraSettingMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/BeautyCameraSettingMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/BeautyCameraSettingDO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/EditBaseInfoRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/beauty/AddBeautyCameraSettingRequest.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/beauty/BeautyCameraSettingVO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/vo/partner/PartnerSimpleBaseInfoVO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/BeautyCameraSettingService.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/service/impl/BeautyCameraSettingServiceImpl.java create mode 100644 coolstore-partner-webb/src/main/java/com/cool/store/controller/BeautyCameraSettingController.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 7374ef0f7..3be33da95 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 @@ -67,6 +67,7 @@ public enum ErrorCodeEnum { NO_TRANSFER_REQUIRED(500013, "招商经理现有私海线索无需转让,请检查后重试!", null), NO_BATCH_TRANSFER_REQUIRED(500014, "已选线索包含此招商经理现有私海线索,无需转让,请检查后重试!", null), PARTNER_MOBILE_EXIST(500010, "手机号码已存在,请核实!", null), + PARTNER_MOBILE_EXIST_0(500016, "手机号码已存在", null), INTERVIEW_ENTER_FAIL(1021101, "进入面试间失败", null), DINGDING_USER_NOT_EXIST(1021102, "用户钉钉信息不存在,无法发起资质审核!", null), diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/BeautyCameraSettingDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BeautyCameraSettingDAO.java new file mode 100644 index 000000000..7df2dd4a7 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/BeautyCameraSettingDAO.java @@ -0,0 +1,46 @@ +package com.cool.store.dao; + +import com.cool.store.entity.BeautyCameraSettingDO; +import com.cool.store.mapper.BeautyCameraSettingMapper; +import org.apache.commons.lang3.StringUtils; +import org.springframework.stereotype.Repository; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: BeautyCameraSettingDAO + * @Description: + * @date 2023-09-11 14:46 + */ +@Repository +public class BeautyCameraSettingDAO { + + @Resource + private BeautyCameraSettingMapper beautyCameraSettingMapper; + + /** + * 插入或更新 + * @param param + * @return + */ + public Long insertOrUpdateBeautyCameraSetting(BeautyCameraSettingDO param){ + if(StringUtils.isBlank(param.getUserId())){ + return 0L; + } + return beautyCameraSettingMapper.insertOrUpdateBeautyCameraSetting(param); + } + + /** + * 获取用户美颜配置 + * @param userId + * @return + */ + public BeautyCameraSettingDO getBeautyCameraSetting(String userId){ + if(StringUtils.isBlank(userId)){ + return null; + } + return beautyCameraSettingMapper.getBeautyCameraSetting(userId); + } + +} 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 fe3a33c4e..29d7f6659 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 @@ -71,4 +71,11 @@ public class HyPartnerIntentInfoDAO { return hyPartnerIntentInfoMapper.updateLineId(newPartnerId,newLineId, oldLineId); } + public int updateByPartnerLineId(HyPartnerIntentInfoDO record){ + if(Objects.isNull(record.getPartnerLineId())){ + return 0; + } + return hyPartnerIntentInfoMapper.updateByPartnerLineId(record); + } + } 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 f03520321..45bff81e6 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 @@ -75,5 +75,12 @@ public class HyPartnerUserInfoDAO { return hyPartnerUserInfoMapper.updateJoinKnowById(isWritePartnerKnow, id); } + public int updateByPartnerId(HyPartnerUserInfoDO record){ + if(StringUtils.isBlank(record.getPartnerId())){ + return 0; + } + return hyPartnerUserInfoMapper.updateByPartnerId(record); + } + } diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BeautyCameraSettingMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BeautyCameraSettingMapper.java new file mode 100644 index 000000000..b59d1f080 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/BeautyCameraSettingMapper.java @@ -0,0 +1,26 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.BeautyCameraSettingDO; +import org.apache.ibatis.annotations.Param; +import tk.mybatis.mapper.common.Mapper; + +/** + * @author zhangchenbiao + * @date 2023-09-11 02:20 + */ +public interface BeautyCameraSettingMapper extends Mapper { + + /** + * 插入或更新 + * @param param + * @return + */ + Long insertOrUpdateBeautyCameraSetting(@Param("record") BeautyCameraSettingDO param); + + /** + * 获取美颜配置 + * @param userId + * @return + */ + BeautyCameraSettingDO getBeautyCameraSetting(@Param("userId") String userId); +} \ 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 da7c61c7a..00f99c3a2 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 @@ -64,4 +64,7 @@ public interface HyPartnerIntentInfoMapper { * @return */ int updateLineId(@Param("newPartnerId")String newPartnerId,@Param("newLineId") Long newLineId, @Param("oldLineId") Long oldLineId); + + + int updateByPartnerLineId(@Param("record") HyPartnerIntentInfoDO record); } \ 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 b2dbe1142..1257fc124 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 @@ -47,4 +47,6 @@ public interface HyPartnerUserInfoMapper { List selectByHourDate(@Param("selectTime") String hourDayDate, @Param("now") String now,@Param("limit1")Integer limit1,@Param("limit2")Integer limit2); int selectByHourDateCount(@Param("selectTime") String hourDayDate, @Param("now") String now); + + int updateByPartnerId(@Param("record") HyPartnerUserInfoDO record); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/BeautyCameraSettingMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/BeautyCameraSettingMapper.xml new file mode 100644 index 000000000..e92f6d17f --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/BeautyCameraSettingMapper.xml @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + id, user_id, beauty_status, beauty, brightness, ruddy, deleted, create_time, update_time + + + + insert into beauty_camera_setting + + + user_id, + + + beauty_status, + + + beauty, + + + brightness, + + + ruddy, + + + deleted, + + + create_time, + + + update_time, + + + + + #{record.userId}, + + + #{record.beautyStatus}, + + + #{record.beauty}, + + + #{record.brightness}, + + + #{record.ruddy}, + + + #{record.deleted}, + + + #{record.createTime}, + + + #{record.updateTime}, + + + ON DUPLICATE KEY UPDATE beauty_status = values(beauty_status), beauty = values(beauty), brightness = values(brightness), ruddy = values(ruddy) + + + + \ 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 ad7c17f26..373c0185c 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerIntentInfoMapper.xml @@ -337,6 +337,71 @@ where partner_line_id = #{oldLineId} - + + update hy_partner_intent_info + + + live_area = #{record.liveArea}, + + + want_shop_area = #{record.wantShopArea}, + + + accept_adjust_type = #{record.acceptAdjustType}, + + + is_have_want_shop = #{record.isHaveWantShop}, + + + want_shop_info = #{record.wantShopInfo}, + + + max_budget = #{record.maxBudget}, + + + money_source = #{record.moneySource}, + + + money_prove = #{record.moneyProve}, + + + education = #{record.education}, + + + work_year = #{record.workYear}, + + + is_have_work_exp = #{record.isHaveWorkExp}, + + + work_exp = #{record.workExp}, + + + is_consumer = #{record.isConsumer}, + + + other_band = #{record.otherBand}, + + + brand_strength = #{record.brandStrength}, + + + need_improve = #{record.needImprove}, + + + strength = #{record.strength}, + + + weakness = #{record.weakness}, + + + create_time = #{record.createTime}, + + + update_time = #{record.updateTime}, + + + where partner_line_id = #{record.partnerLineId} + \ 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 4142e993f..0101fa549 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -282,4 +282,56 @@ where id=#{id,jdbcType=BIGINT} + + update hy_partner_user_info + + + mobile = #{record.mobile}, + + + username = #{record.username}, + + + live_area = #{record.liveArea}, + + + want_shop_area = #{record.wantShopArea}, + + + accept_adjust_type = #{record.acceptAdjustType}, + + + invite_code = #{record.inviteCode}, + + + is_write_partner_know = #{record.isWritePartnerKnow}, + + + create_time = #{record.createTime}, + + + update_time = #{record.updateTime}, + + + shop_code = #{record.shopCode}, + + + shop_name = #{record.shopName}, + + + shop_id = #{record.shopId}, + + + recommend_partner_id = #{record.recommendPartnerId}, + + + recommend_partner_name = #{record.recommendPartnerName}, + + + recommend_partner_mobile = #{record.recommendPartnerMobile}, + + + where partner_id = #{record.partnerId} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/BeautyCameraSettingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/BeautyCameraSettingDO.java new file mode 100644 index 000000000..3623223ce --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/BeautyCameraSettingDO.java @@ -0,0 +1,49 @@ +package com.cool.store.entity; + +import io.swagger.annotations.ApiModelProperty; +import java.io.Serializable; +import java.util.Date; +import javax.persistence.Table; +import lombok.AllArgsConstructor; +import lombok.Builder; +import lombok.Data; +import lombok.NoArgsConstructor; + +/** + * + * @author zhangchenbiao + * @date 2023-09-11 02:20 + */ +@Table(name = "beauty_camera_setting") +@Data +@Builder +@NoArgsConstructor +@AllArgsConstructor +public class BeautyCameraSettingDO implements Serializable { + @ApiModelProperty("主键id") + private Long id; + + @ApiModelProperty("用户id") + private String userId; + + @ApiModelProperty("美颜状态0未开启,1开启") + private Boolean beautyStatus; + + @ApiModelProperty("美颜度") + private Integer beauty; + + @ApiModelProperty("明亮度") + private Integer brightness; + + @ApiModelProperty("红润") + private Integer ruddy; + + @ApiModelProperty("删除标识") + private Boolean deleted; + + @ApiModelProperty("用户创建时间") + private Date createTime; + + @ApiModelProperty("修改时间") + private Date updateTime; +} \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/EditBaseInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/EditBaseInfoRequest.java new file mode 100644 index 000000000..8dcda1890 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/EditBaseInfoRequest.java @@ -0,0 +1,30 @@ +package com.cool.store.request; + +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +/** + * @author zhangchenbiao + * @FileName: EditBaseInfoRequest + * @Description: + * @date 2023-09-13 10:29 + */ +@Data +public class EditBaseInfoRequest { + + @ApiModelProperty("线索id") + private Long partnerLineId; + + @ApiModelProperty("姓名") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("意向区域") + private String wantShopArea; + + @ApiModelProperty("调剂方式") + private Integer acceptAdjustType; + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/beauty/AddBeautyCameraSettingRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/beauty/AddBeautyCameraSettingRequest.java new file mode 100644 index 000000000..f7aa1b6fe --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/beauty/AddBeautyCameraSettingRequest.java @@ -0,0 +1,42 @@ +package com.cool.store.request.beauty; + +import com.cool.store.entity.BeautyCameraSettingDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Date; + +/** + * @author zhangchenbiao + * @FileName: AddBeautyCameraSettingRequest + * @Description: 新增美颜配置 + * @date 2023-09-11 14:31 + */ +@Data +public class AddBeautyCameraSettingRequest { + + @ApiModelProperty("美颜状态0未开启,1开启") + private Boolean beautyStatus; + + @ApiModelProperty("美颜度") + private Integer beauty; + + @ApiModelProperty("明亮度") + private Integer brightness; + + @ApiModelProperty("红润") + private Integer ruddy; + + + public static BeautyCameraSettingDO convertDO(String userId, AddBeautyCameraSettingRequest request){ + BeautyCameraSettingDO result = new BeautyCameraSettingDO(); + result.setUserId(userId); + result.setBeautyStatus(request.getBeautyStatus()); + result.setBeauty(request.getBeauty()); + result.setBrightness(request.getBrightness()); + result.setRuddy(request.getRuddy()); + result.setCreateTime(new Date()); + return result; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/beauty/BeautyCameraSettingVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/beauty/BeautyCameraSettingVO.java new file mode 100644 index 000000000..dd3b55979 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/beauty/BeautyCameraSettingVO.java @@ -0,0 +1,42 @@ +package com.cool.store.vo.beauty; + +import com.cool.store.entity.BeautyCameraSettingDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.Objects; + +/** + * @author zhangchenbiao + * @FileName: BeautyCameraSettingVO + * @Description: + * @date 2023-09-11 14:40 + */ +@Data +public class BeautyCameraSettingVO { + + @ApiModelProperty("美颜状态0未开启,1开启") + private Boolean beautyStatus; + + @ApiModelProperty("美颜度") + private Integer beauty; + + @ApiModelProperty("明亮度") + private Integer brightness; + + @ApiModelProperty("红润") + private Integer ruddy; + + public static BeautyCameraSettingVO convertVO(BeautyCameraSettingDO request){ + if(Objects.isNull(request)){ + return null; + } + BeautyCameraSettingVO result = new BeautyCameraSettingVO(); + result.setBeautyStatus(request.getBeautyStatus()); + result.setBeauty(request.getBeauty()); + result.setBrightness(request.getBrightness()); + result.setRuddy(request.getRuddy()); + return result; + } + +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/partner/PartnerSimpleBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/partner/PartnerSimpleBaseInfoVO.java new file mode 100644 index 000000000..0fa1f84af --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/partner/PartnerSimpleBaseInfoVO.java @@ -0,0 +1,54 @@ +package com.cool.store.vo.partner; + +import com.cool.store.dto.partner.UserPortraitDTO; +import com.cool.store.entity.HyPartnerUserInfoDO; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.util.List; +import java.util.Objects; + +/** + * @author zhangchenbiao + * @FileName: PartnerBaseInfoVO + * @Description: + * @date 2023-09-13 16:47 + */ +@Data +public class PartnerSimpleBaseInfoVO { + + @ApiModelProperty("线索id") + private Long partnerLineId; + + @ApiModelProperty("姓名") + private String username; + + @ApiModelProperty("手机号") + private String mobile; + + @ApiModelProperty("意向区域") + private String wantShopArea; + + @ApiModelProperty("调剂方式") + private Integer acceptAdjustType; + + @ApiModelProperty("加盟申请基本信息ID") + private Long partnerBaseInfoId; + + @ApiModelProperty("用户画像") + private List userPortrait; + + public static PartnerSimpleBaseInfoVO convertVO(Long partnerLineId, HyPartnerUserInfoDO partnerUserInfo){ + if(Objects.isNull(partnerUserInfo)){ + return null; + } + PartnerSimpleBaseInfoVO result = new PartnerSimpleBaseInfoVO(); + result.setPartnerLineId(partnerLineId); + result.setUsername(partnerUserInfo.getUsername()); + result.setMobile(partnerUserInfo.getMobile()); + result.setWantShopArea(partnerUserInfo.getWantShopArea()); + result.setAcceptAdjustType(partnerUserInfo.getAcceptAdjustType()); + return result; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/BeautyCameraSettingService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/BeautyCameraSettingService.java new file mode 100644 index 000000000..42da54d91 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/BeautyCameraSettingService.java @@ -0,0 +1,29 @@ +package com.cool.store.service; + +import com.cool.store.request.beauty.AddBeautyCameraSettingRequest; +import com.cool.store.vo.beauty.BeautyCameraSettingVO; + +/** + * @author zhangchenbiao + * @FileName: BeautyCameraSettingService + * @Description: 美颜配置service + * @date 2023-09-11 14:23 + */ +public interface BeautyCameraSettingService { + + /** + * AddBeautyCameraSettingRequest request + * @param userId + * @param request + * @return + */ + Long saveBeautyCameraSetting(String userId, AddBeautyCameraSettingRequest request); + + /** + * 获取美颜配置 + * @param userId + * @return + */ + BeautyCameraSettingVO queryBeautyCameraSetting(String userId); + +} 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 d0d3edaa0..f442fb768 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 @@ -6,6 +6,7 @@ import com.cool.store.exception.ApiException; import com.cool.store.request.*; import com.cool.store.vo.*; import com.cool.store.vo.interview.InterviewVO; +import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO; import com.github.pagehelper.PageInfo; import java.util.List; @@ -162,4 +163,17 @@ public interface HyPartnerLineInfoService { Long checkGenerateNewLineId(Long lineId); + /** + * 编辑加盟商基本信息 + * @param request + * @return + */ + Integer editBaseInfo(EditBaseInfoRequest request); + + /** + * 获取加盟商基本信息 + * @param partnerLineId + * @return + */ + PartnerSimpleBaseInfoVO queryBaseInfo(Long partnerLineId); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BeautyCameraSettingServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BeautyCameraSettingServiceImpl.java new file mode 100644 index 000000000..533d0dd58 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/BeautyCameraSettingServiceImpl.java @@ -0,0 +1,35 @@ +package com.cool.store.service.impl; + +import com.cool.store.dao.BeautyCameraSettingDAO; +import com.cool.store.entity.BeautyCameraSettingDO; +import com.cool.store.request.beauty.AddBeautyCameraSettingRequest; +import com.cool.store.service.BeautyCameraSettingService; +import com.cool.store.vo.beauty.BeautyCameraSettingVO; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: BeautyCameraSettingServiceImpl + * @Description: + * @date 2023-09-11 14:23 + */ +@Service +public class BeautyCameraSettingServiceImpl implements BeautyCameraSettingService { + + @Resource + private BeautyCameraSettingDAO beautyCameraSettingDAO; + + @Override + public Long saveBeautyCameraSetting(String userId, AddBeautyCameraSettingRequest request) { + BeautyCameraSettingDO beautyCameraSettingDO = AddBeautyCameraSettingRequest.convertDO(userId, request); + return beautyCameraSettingDAO.insertOrUpdateBeautyCameraSetting(beautyCameraSettingDO); + } + + @Override + public BeautyCameraSettingVO queryBeautyCameraSetting(String userId) { + BeautyCameraSettingDO beautyCameraSetting = beautyCameraSettingDAO.getBeautyCameraSetting(userId); + return BeautyCameraSettingVO.convertVO(beautyCameraSetting); + } +} 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 a97408ac9..469346863 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 @@ -23,9 +23,9 @@ import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.StringUtil; import com.cool.store.vo.*; import com.cool.store.vo.interview.InterviewVO; +import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; -import com.google.common.collect.Lists; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; @@ -93,6 +93,8 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { private SmsService smsService; @Resource HyFollowTaskDAO hyFollowTaskDAO; + @Resource + private HyPartnerIntentInfoDAO hyPartnerIntentInfoDAO; @Override public StageCountVO selectStagePendingCount(String userId) { @@ -850,6 +852,54 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { return hyPartnerLineInfoDO.getId(); } + @Override + @Transactional(rollbackFor = Exception.class) + public Integer editBaseInfo(EditBaseInfoRequest request) { + HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(request.getPartnerLineId()); + if(Objects.isNull(lineInfo)){ + throw new ServiceException(ErrorCodeEnum.LINE_ID_IS_NOT_EXIST); + } + HyPartnerUserInfoDO partnerUserInfo = hyPartnerUserInfoDAO.selectByMobile(request.getMobile()); + if(Objects.nonNull(partnerUserInfo) && !lineInfo.getPartnerId().equals(partnerUserInfo.getPartnerId())){ + throw new ServiceException(ErrorCodeEnum.PARTNER_MOBILE_EXIST_0); + } + HyPartnerUserInfoDO update = new HyPartnerUserInfoDO(); + update.setPartnerId(lineInfo.getPartnerId()); + update.setUsername(request.getUsername()); + update.setMobile(request.getMobile()); + update.setWantShopArea(request.getWantShopArea()); + update.setAcceptAdjustType(request.getAcceptAdjustType()); + hyPartnerUserInfoDAO.updateByPartnerId(update); + hyPartnerBaseInfoDAO.updateByPartnerId(request.getUsername(), request.getMobile(), lineInfo.getPartnerId()); + HyPartnerIntentInfoDO updateIntentInfo = new HyPartnerIntentInfoDO(); + updateIntentInfo.setPartnerLineId(request.getPartnerLineId()); + updateIntentInfo.setAcceptAdjustType(request.getAcceptAdjustType()); + updateIntentInfo.setWantShopArea(request.getWantShopArea()); + hyPartnerIntentInfoDAO.updateByPartnerLineId(updateIntentInfo); + return null; + } + + @Override + public PartnerSimpleBaseInfoVO queryBaseInfo(Long partnerLineId) { + HyPartnerLineInfoDO lineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(partnerLineId); + if(Objects.isNull(lineInfo)){ + return null; + } + HyPartnerUserInfoDO partnerUserInfo = hyPartnerUserInfoDAO.selectByPartnerId(lineInfo.getPartnerId()); + HyPartnerBaseInfoDO partnerBaseInfo = hyPartnerBaseInfoDAO.getByPartnerLineId(partnerLineId); + PartnerSimpleBaseInfoVO result = PartnerSimpleBaseInfoVO.convertVO(partnerLineId, partnerUserInfo); + String userPortrait = Optional.ofNullable(partnerBaseInfo).map(o->o.getUserPortrait()).orElse(null); + if (StringUtils.isNotEmpty(userPortrait) && Objects.nonNull(result)){ + Map userPortraitMap = labelService.getUserPortraitMap(Arrays.asList(userPortrait)); + List userPortraitList = userPortraitMap.entrySet().stream() + .map(entry -> new UserPortraitDTO(entry.getKey(), entry.getValue())) + .collect(Collectors.toList()); + result.setPartnerBaseInfoId(partnerBaseInfo.getId()); + result.setUserPortrait(userPortraitList); + } + return result; + } + /** * convertPartnerBlackListDTOToVo diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/BeautyCameraSettingController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/BeautyCameraSettingController.java new file mode 100644 index 000000000..b870e4f66 --- /dev/null +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/BeautyCameraSettingController.java @@ -0,0 +1,41 @@ +package com.cool.store.controller; + +import com.cool.store.context.CurrentUserHolder; +import com.cool.store.request.beauty.AddBeautyCameraSettingRequest; +import com.cool.store.response.ResponseResult; +import com.cool.store.service.BeautyCameraSettingService; +import com.cool.store.vo.beauty.BeautyCameraSettingVO; +import io.swagger.annotations.Api; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +/** + * @author zhangchenbiao + * @FileName: BeautyCameraSettingController + * @Description: 美颜配置 + * @date 2023-09-11 14:21 + */ +@RestController +@Api(tags = "美颜配置") +public class BeautyCameraSettingController { + + @Resource + private BeautyCameraSettingService beautyCameraSettingService; + + + @PostMapping("/saveBeautyCameraSetting") + public ResponseResult saveBeautyCameraSetting(@RequestBody AddBeautyCameraSettingRequest request){ + Long result = beautyCameraSettingService.saveBeautyCameraSetting(CurrentUserHolder.getUserId(), request); + return ResponseResult.success(result); + } + + @PostMapping("/queryBeautyCameraSetting") + public ResponseResult queryBeautyCameraSetting(){ + return ResponseResult.success(beautyCameraSettingService.queryBeautyCameraSetting(CurrentUserHolder.getUserId())); + } + +} 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 9f655c7fe..eb430598f 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 @@ -11,6 +11,7 @@ import com.cool.store.response.ResponseResult; import com.cool.store.service.*; import com.cool.store.vo.*; import com.cool.store.vo.interview.InterviewVO; +import com.cool.store.vo.partner.PartnerSimpleBaseInfoVO; import com.github.pagehelper.PageInfo; import io.swagger.annotations.ApiImplicitParam; import io.swagger.annotations.ApiImplicitParams; @@ -314,4 +315,16 @@ public class DeskController { @RequestParam(value = "needDevelopmentDirector",required = false)Boolean needDevelopmentDirector) throws ApiException { return ResponseResult.success(hyPartnerLineInfoService.getInterviewInfo(lineId,needDevelopmentDirector)); } + + @PostMapping(path = "/editBaseInfo") + @ApiOperation("修改接口") + public ResponseResult editBaseInfo(@RequestBody EditBaseInfoRequest request){ + return ResponseResult.success(hyPartnerLineInfoService.editBaseInfo(request)); + } + + @GetMapping(path = "/queryBaseInfo") + @ApiOperation("获取数据接口") + public ResponseResult queryBaseInfo(@RequestParam(value = "partnerLineId")Long partnerLineId){ + return ResponseResult.success(hyPartnerLineInfoService.queryBaseInfo(partnerLineId)); + } } From 7a628950edf04d8188e08e8e079e55d124b722d9 Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Thu, 14 Sep 2023 10:41:39 +0800 Subject: [PATCH 4/4] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E9=9D=A2=E8=AF=95?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E5=87=BD=E9=80=9A=E8=BF=87=E8=8A=82=E7=82=B9?= =?UTF-8?q?=202.=E6=B7=BB=E5=8A=A0ec=E6=84=8F=E5=90=91=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=203.=E5=AE=9A=E6=97=B6=E5=90=8C=E6=AD=A5800?= =?UTF-8?q?=E8=AF=B7=E6=B1=82=E6=9D=A5=E6=BA=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mapper/HyPartnerFraSourceMapper.java | 26 +++ .../mapper/HyPartnerFraSourceMapper.xml | 190 ++++++++++++++++++ .../mapper/HyPartnerUserInfoMapper.xml | 9 + .../store/dto/response/DictResultDTO.java | 36 ++++ .../store/entity/HyPartnerFraSourceDO.java | 61 ++++++ .../store/entity/HyPartnerUserInfoDO.java | 5 + .../store/request/CreateQualifyVerifyReq.java | 3 + .../store/request/CustomerInfoRequest.java | 3 + .../com/cool/store/job/FraSourceSyncJob.java | 122 +++++++++++ .../com/cool/store/service/FlowService.java | 5 + .../store/service/impl/EcSyncServiceImpl.java | 8 +- .../store/service/impl/FlowServiceImpl.java | 52 ++--- .../cool/store/controller/FlowController.java | 13 +- 13 files changed, 503 insertions(+), 30 deletions(-) create mode 100644 coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerFraSourceMapper.java create mode 100644 coolstore-partner-dao/src/main/resources/mapper/HyPartnerFraSourceMapper.xml create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/dto/response/DictResultDTO.java create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerFraSourceDO.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/job/FraSourceSyncJob.java diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerFraSourceMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerFraSourceMapper.java new file mode 100644 index 000000000..8fe52fa43 --- /dev/null +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/HyPartnerFraSourceMapper.java @@ -0,0 +1,26 @@ +package com.cool.store.mapper; + +import com.cool.store.entity.HyPartnerFraSourceDO; +import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; + +import java.util.List; + +@Mapper +public interface HyPartnerFraSourceMapper { + int deleteByPrimaryKey(Long id); + + int insert(HyPartnerFraSourceDO record); + + int insertSelective(HyPartnerFraSourceDO record); + + HyPartnerFraSourceDO selectByPrimaryKey(Long id); + + int updateByPrimaryKeySelective(HyPartnerFraSourceDO record); + + int updateByPrimaryKey(HyPartnerFraSourceDO record); + + List selectAllFraSourceList(); + + int batchInsertSelective(@Param("insertList") List collect); +} \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerFraSourceMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerFraSourceMapper.xml new file mode 100644 index 000000000..d20aa6582 --- /dev/null +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerFraSourceMapper.xml @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + id, `name`, code, dict_id, source_id, enabled, create_time, update_time, remark + + + + + delete from hy_partner_fra_source + where id = #{id,jdbcType=BIGINT} + + + insert into hy_partner_fra_source (`name`, code, dict_id, + source_id, enabled, create_time, + update_time, remark) + values (#{name,jdbcType=VARCHAR}, #{code,jdbcType=VARCHAR}, #{dictId,jdbcType=VARCHAR}, + #{sourceId,jdbcType=VARCHAR}, #{enabled,jdbcType=BOOLEAN}, #{createTime,jdbcType=TIMESTAMP}, + #{updateTime,jdbcType=TIMESTAMP}, #{remark,jdbcType=VARCHAR}) + + + insert into hy_partner_fra_source + + + `name`, + + + code, + + + dict_id, + + + source_id, + + + enabled, + + + create_time, + + + update_time, + + + remark, + + + + + #{name,jdbcType=VARCHAR}, + + + #{code,jdbcType=VARCHAR}, + + + #{dictId,jdbcType=VARCHAR}, + + + #{sourceId,jdbcType=VARCHAR}, + + + #{enabled,jdbcType=BOOLEAN}, + + + #{createTime,jdbcType=TIMESTAMP}, + + + #{updateTime,jdbcType=TIMESTAMP}, + + + #{remark,jdbcType=VARCHAR}, + + + + + + insert into hy_partner_fra_source + + + `name`, + + + `code`, + + + dict_id, + + + source_id, + + + enabled, + + + create_time, + + + remark, + + + + + #{record.name,jdbcType=VARCHAR}, + + + #{record.code,jdbcType=VARCHAR}, + + + #{record.dictId,jdbcType=VARCHAR}, + + + #{record.sourceId,jdbcType=VARCHAR}, + + + #{record.enabled,jdbcType=BOOLEAN}, + + + #{record.createTime,jdbcType=TIMESTAMP}, + + + #{record.remark,jdbcType=VARCHAR}, + + + ON DUPLICATE KEY UPDATE update_time = now(), enabled = values(enabled), `name` = values(`name`), `code` = values(`code`), dict_id = values(dict_id) + + + + update hy_partner_fra_source + + + `name` = #{name,jdbcType=VARCHAR}, + + + code = #{code,jdbcType=VARCHAR}, + + + dict_id = #{dictId,jdbcType=VARCHAR}, + + + source_id = #{sourceId,jdbcType=VARCHAR}, + + + enabled = #{enabled,jdbcType=BOOLEAN}, + + + create_time = #{createTime,jdbcType=TIMESTAMP}, + + + update_time = #{updateTime,jdbcType=TIMESTAMP}, + + + remark = #{remark,jdbcType=VARCHAR}, + + + where id = #{id,jdbcType=BIGINT} + + + update hy_partner_fra_source + set `name` = #{name,jdbcType=VARCHAR}, + code = #{code,jdbcType=VARCHAR}, + dict_id = #{dictId,jdbcType=VARCHAR}, + source_id = #{sourceId,jdbcType=VARCHAR}, + enabled = #{enabled,jdbcType=BOOLEAN}, + create_time = #{createTime,jdbcType=TIMESTAMP}, + update_time = #{updateTime,jdbcType=TIMESTAMP}, + remark = #{remark,jdbcType=VARCHAR} + where id = #{id,jdbcType=BIGINT} + + \ 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 4142e993f..bd90c39b1 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -166,6 +166,9 @@ user_channel_id, + + ec_want_shop_area, + @@ -219,6 +222,9 @@ #{record.userChannelId}, + + #{record.ecWantShopArea}, + @@ -272,6 +278,9 @@ recommend_partner_mobile = #{record.recommendPartnerMobile}, + + ec_want_shop_area = #{record.ecWantShopArea}, + where id = #{record.id} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/response/DictResultDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/response/DictResultDTO.java new file mode 100644 index 000000000..bfa56ca50 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/response/DictResultDTO.java @@ -0,0 +1,36 @@ +package com.cool.store.dto.response; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author HXD + */ +@Data +@Accessors(chain = true) +public class DictResultDTO { + private String id; + private String createdBy; + private String createdTime; + private String groupCode; + private String code; + private String name; + private String type; + private String enabled; + private String remark; + private List configList; + + @Data + @Accessors(chain = true) + public static class Dict{ + private String id; + private String dictId; + private String code; + private String name; + private String parentId; + private Boolean enabled; + private String remark; + } +} diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerFraSourceDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerFraSourceDO.java new file mode 100644 index 000000000..4bb91cdf2 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerFraSourceDO.java @@ -0,0 +1,61 @@ +package com.cool.store.entity; + +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; +import lombok.experimental.Accessors; + + + +/** + * hy_partner_fra_source + * @author + */ +@Data +@Accessors(chain = true) +public class HyPartnerFraSourceDO implements Serializable { + private Long id; + + /** + * 来源名称 + */ + private String name; + + /** + * 来源code + */ + private String code; + + /** + * 所属字典枚举组的id + */ + private String dictId; + + /** + * 数据的id + */ + private String sourceId; + + /** + * 启用标识 + */ + private Boolean enabled; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 更新时间 + */ + private Date updateTime; + + /** + * 备注 + */ + private String remark; + + private static final long serialVersionUID = 1L; +} \ No newline at end of file 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 236f73978..431c4d5ba 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 @@ -75,4 +75,9 @@ public class HyPartnerUserInfoDO implements Serializable { @ApiModelProperty("hy_partner_user_channel.channel_id") private Integer userChannelId; + + + @ApiModelProperty("ec意向区域") + private String ecWantShopArea; + } \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java index fdb0393c1..e5a454354 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/CreateQualifyVerifyReq.java @@ -38,6 +38,9 @@ public class CreateQualifyVerifyReq { @ApiModelProperty(value = "加盟商类型", required = true) private KeyText fraType; + @ApiModelProperty(value = "请求来源", required = true) + private KeyText fraSource; + @ApiModelProperty(value = "合作关系", required = true) private KeyText partnership; diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/CustomerInfoRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/CustomerInfoRequest.java index a4088a6a8..157037dcd 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/request/CustomerInfoRequest.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/CustomerInfoRequest.java @@ -23,4 +23,7 @@ public class CustomerInfoRequest { private Long lastFollowUserId; private String followUserName; + + + private String ecWantShopArea; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/FraSourceSyncJob.java b/coolstore-partner-service/src/main/java/com/cool/store/job/FraSourceSyncJob.java new file mode 100644 index 000000000..c2ef6c0f5 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/FraSourceSyncJob.java @@ -0,0 +1,122 @@ +package com.cool.store.job; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.util.ObjectUtil; +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONObject; +import com.alibaba.fastjson.TypeReference; +import com.cool.store.dto.mdm.AccessTokenDTO; +import com.cool.store.dto.response.DictResultDTO; +import com.cool.store.dto.response.MDMResultDTO; +import com.cool.store.entity.HyPartnerFraSourceDO; +import com.cool.store.exception.ApiException; +import com.cool.store.exception.ServiceException; +import com.cool.store.mapper.HyPartnerFraSourceMapper; +import com.cool.store.request.RpcGetMdmTokenReq; +import com.cool.store.utils.RestTemplateUtil; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang3.StringUtils; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.http.ResponseEntity; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * @author hxd + */ +@Slf4j +@Component +public class FraSourceSyncJob { + + + @Value("${hs.mdm.baseUrl:null}") + private String mdmBaseUrl; + + @Value("${hs.mdm.appkey:null}") + private String mdmAppKey; + + @Value("${hs.mdm.appsec:null}") + private String mdmAppSec; + + @Resource + private HyPartnerFraSourceMapper hyPartnerFraSourceMapper; + + @XxlJob("FraSourceSyncJob") + public void fraSourceSyncJob() { + XxlJobHelper.log("-------------------------------定时同步800请求来源开始-------------------------------"); + execute(); + XxlJobHelper.log("-------------------------------定时同步800请求来源结束-------------------------------"); + XxlJobHelper.handleSuccess(); + } + + private void execute() { + DictResultDTO dictResultDTO = null; + try { + dictResultDTO = JSON.parseObject(getDictList(), new TypeReference() { + }); + } catch (ApiException e) { + log.error("请求800获取字典报错:" + JSONObject.toJSONString(e)); + } + if (ObjectUtil.isNull(dictResultDTO)) { + return; + } + List configList = dictResultDTO.getConfigList(); + List collect = configList.stream().map(item -> { + HyPartnerFraSourceDO hyPartnerFraSourceDO = new HyPartnerFraSourceDO(); + BeanUtil.copyProperties(item, hyPartnerFraSourceDO); + hyPartnerFraSourceDO.setSourceId(item.getId()); + return hyPartnerFraSourceDO; + }).collect(Collectors.toList()); + hyPartnerFraSourceMapper.batchInsertSelective(collect); + } + + public String getDictList() throws ApiException { + String url = mdmBaseUrl + "/api/openapi/dict/api/dictListByCode?code=mdFraSource"; + ResponseEntity responseEntity = null; + try { + RpcGetMdmTokenReq rpcGetMDMTokenReq = new RpcGetMdmTokenReq(); + rpcGetMDMTokenReq.setAppKey(mdmAppKey); + rpcGetMDMTokenReq.setAppSecret(mdmAppSec); + Map headers = new HashMap<>(1); + headers.put("Authorization", getMdmAccessToken(rpcGetMDMTokenReq)); + responseEntity = RestTemplateUtil.get(url, headers, MDMResultDTO.class); + log.info("url:{}, header:{}, response:{}", url, JSONObject.toJSONString(headers), JSONObject.toJSONString(responseEntity)); + if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) { + return JSONObject.toJSONString(responseEntity.getBody().getData()); + } + } catch (Exception e) { + log.info("调用MDM接口出错 url{}, e{}", url, e); + throw new ApiException(e.getMessage()); + } + return null; + } + + public String getMdmAccessToken(RpcGetMdmTokenReq rpcGetMDMTokenReq) throws ApiException { + String url = mdmBaseUrl + "/api/oauth2/accessToken"; + ResponseEntity responseEntity = null; + try { + responseEntity = RestTemplateUtil.post(url, rpcGetMDMTokenReq, MDMResultDTO.class); + log.info("url:{}, response:{}", url, JSONObject.toJSONString(responseEntity)); + if (Objects.nonNull(responseEntity.getBody()) && responseEntity.getBody().isSuccess()) { + AccessTokenDTO accessTokenDTO = JSONObject.parseObject(JSONObject.toJSONString(responseEntity.getBody().getData()), AccessTokenDTO.class); + if (accessTokenDTO == null || StringUtils.isBlank(accessTokenDTO.getAccessToken())) { + throw new ServiceException("获取Mdm token失败!"); + } + return accessTokenDTO.getAccessToken(); + } + } catch (Exception e) { + log.info("获取MDM Token 出错 url:\t{}, e:\t{}", url, e); + throw new ApiException(e.getMessage()); + } + return null; + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java index 5b2c064dd..59ffc3a1a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/FlowService.java @@ -1,10 +1,12 @@ package com.cool.store.service; +import com.cool.store.entity.HyPartnerFraSourceDO; import com.cool.store.exception.ApiException; import com.cool.store.request.CreateQualifyVerifyReq; import com.cool.store.request.QualificationCallbackReq; import java.io.IOException; +import java.util.List; /** * @Author: young.yu @@ -15,4 +17,7 @@ public interface FlowService { void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException, IOException; void qualificationCallback(QualificationCallbackReq request) throws ApiException; + + List getDictList(); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java index df71f7a3d..8a9fdcfa9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java @@ -75,7 +75,7 @@ public class EcSyncServiceImpl implements EcSyncService { try { insertSelectiveSync(customerInfoItem); } catch (Exception e) { - e.printStackTrace(); + log.error("ec同步至招商小程序报错"+JSONObject.toJSONString(e)); sendFeiShuRobotMessage("推送:"+JSONObject.toJSONString(e),"27243d49-97ca-4981-8aec-7c3bf84eb660"); } } @@ -125,8 +125,7 @@ public class EcSyncServiceImpl implements EcSyncService { } String newPartnerId = UUIDUtils.get32UUID(); HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO(); - resultUser.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile()).setUserChannelId(Convert.toInt(channelId)); - + resultUser.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile()).setUserChannelId(Convert.toInt(channelId)).setEcWantShopArea(customerInfoItem.getEcWantShopArea()); HyPartnerLineInfoDO resultLine = new HyPartnerLineInfoDO(); String followUserName = customerInfoItem.getFollowUserName(); String followUserMobile = customerInfoItem.getFollowUserMobile(); @@ -216,6 +215,9 @@ public class EcSyncServiceImpl implements EcSyncService { setCreateTime(new Date()); hyPartnerBaseInfoDAO.insertSelective(resultBase); } + newUserInfo.setEcWantShopArea(resultUser.getEcWantShopArea()); + //添加ec意向区域同步 + hyPartnerUserInfoDAO.updateByPrimaryKeySelective(newUserInfo); } else { resultUser.setPartnerId(newPartnerId).setCreateTime(new Date()); hyPartnerUserInfoDAO.insertSelective(resultUser); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java index 47bfb7a1f..a39fdd48f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/FlowServiceImpl.java @@ -104,8 +104,11 @@ public class FlowServiceImpl implements FlowService { @Autowired private HyInspectionMapper inspectionMapper; + @Autowired + private HyPartnerFraSourceMapper hyPartnerFraSourceMapper; + @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public void createQualifyVerify(CreateQualifyVerifyReq request) throws ApiException, IOException { //根据面试id获取面试信息 HyPartnerInterviewDO hyPartnerInterviewDO = hyPartnerInterviewMapper.selectByPrimaryKeySelective(request.getInterviewId()); @@ -119,10 +122,7 @@ public class FlowServiceImpl implements FlowService { //1.发起加盟商资质审核 RpcCreateQualifyVerifyReq rpcRequest = new RpcCreateQualifyVerifyReq(); RpcCreateQualifyVerifyReq.Data dataBody = new RpcCreateQualifyVerifyReq().new Data(); - KeyText fraSource = new KeyText(); - fraSource.setKey("HSAYPartner"); - fraSource.setText("沪上阿姨合伙人"); - dataBody.setFraSource(fraSource); + dataBody.setFraSource(request.getFraSource()); //copy properties BeanUtil.copyProperties(request, dataBody); //日期格式问题 @@ -223,6 +223,24 @@ public class FlowServiceImpl implements FlowService { hyPartnerLineInfoDO.setDevelopmentDirector(request.getDevtDirectorId()); hyPartnerLineInfoMapper.updateByPrimaryKeySelective(hyPartnerLineInfoDO); } + //3. 生成通过函并修改数据库相关信息 + String verifyCity = hyPartnerInterviewMapper.getVerifyCityByInterviewId(request.getInterviewId()); + String[] split = verifyCity.split("/"); + //根据长度来取市级行政区域 + if (split.length == 2) { + verifyCity = split[1]; + } else if (split.length == 3) { + verifyCity = split[1]; + } else if (split.length == 4) { + verifyCity = split[2]; + } else { + throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST); + } + // TODO pass_reason 暂无 + //将通过时间修改为本系统处理回调的时间,不以 request 的 modifiedTime 为准(有误) + String partnerName = request.getIntentionSignerUsername(); + //TODO 问题:如果因为 pdf 生成失败或者其他原因导致异常,但是由于 MDM 只是做回调,不对回调是否成功负责,会导致流程信息缺失 + genPassLetterAndUpdateDB(partnerName, verifyCity, new Date(), request.getInterviewId()); //记录日志 CreateQualifyVerifyDTO log = CreateQualifyVerifyDTO.builder().mobile(operator.getMobile()).operateUserId(operator.getUserId()).operateUsername(operator.getName()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC)) .summary(request.getSummary()).qualiVerifyContent(JSON.toJSONString(partnerCertificationInfoDO)).build(); @@ -251,27 +269,10 @@ public class FlowServiceImpl implements FlowService { if ("FINISHED".equals(request.getInstanceStatus())) { //更新面试状态 interviewDAO.updateInterviewWorkflowStatus(interviewPlanId, WorkflowStatusEnum.INTERVIEW_6); - //2. 准备需要的信息 - String partnerName = request.getIntendedSigner(); - String verifyCity = hyPartnerInterviewMapper.getVerifyCityByInterviewId(interviewId); - String[] split = verifyCity.split("/"); - //根据长度来取市级行政区域 - if (split.length == 2) { - verifyCity = split[1]; - } else if (split.length == 3) { - verifyCity = split[1]; - } else if (split.length == 4) { - verifyCity = split[2]; - } else { - throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST); - } // TODO pass_reason 暂无 //将通过时间修改为本系统处理回调的时间,不以 request 的 modifiedTime 为准(有误) Date passDate = new Date(); - //3. 生成通过函并修改数据库相关信息 - //TODO 问题:如果因为 pdf 生成失败或者其他原因导致异常,但是由于 MDM 只是做回调,不对回调是否成功负责,会导致流程信息缺失 - genPassLetterAndUpdateDB(partnerName, verifyCity, passDate, interviewId); - //4. 向面试稽核表中新增一条信息 + //4. 向面试稽核表中新增一条信息 HyInspectionDO hyInspectionDO = new HyInspectionDO(); hyInspectionDO.setInterviewPlanId(Long.parseLong(interviewPlanId)); hyInspectionDO.setCreateTime(DateUtil.formatDateTime(passDate)); @@ -299,6 +300,11 @@ public class FlowServiceImpl implements FlowService { } } + @Override + public List getDictList() { + return hyPartnerFraSourceMapper.selectAllFraSourceList(); + } + public List OSSFileToMDMFile(List fileUrlList) throws ApiException, IOException { String url = mdmBaseUrl + "/api/openapi/ext/upload/file"; ResponseEntity responseEntity = null; diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java index 29db74404..820f92f4a 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/FlowController.java @@ -9,10 +9,7 @@ import com.cool.store.service.FlowService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import java.io.IOException; @@ -28,6 +25,8 @@ public class FlowController { @Autowired private FlowService flowService; + + @PostMapping("/qualifyVerify/create") @ApiOperation("发起加盟商资质审核") public ResponseResult createQualifyVerify(@RequestBody CreateQualifyVerifyReq request) throws ApiException, IOException { @@ -42,4 +41,10 @@ public class FlowController { return ResponseResult.success(); } + @GetMapping("/dictList") + @ApiOperation("获取资质审核数据来源") + public ResponseResult getDictList(){ + return ResponseResult.success(flowService.getDictList()); + } + }