From da96dd629af32b4cb4043271ecd07f7fbfa95f32 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E7=AB=B9=E7=BA=A2?= Date: Tue, 20 Jun 2023 16:31:55 +0800 Subject: [PATCH 1/5] =?UTF-8?q?=E9=9D=A2=E8=AF=95=E6=97=A5=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/cool/store/utils/CoolDateUtils.java | 14 ++++++++++++++ .../cool/store/service/impl/DeskServiceImpl.java | 10 ++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java index b835d270f..f11237ce8 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/utils/CoolDateUtils.java @@ -1,5 +1,8 @@ package com.cool.store.utils; +import java.text.DateFormat; +import java.text.ParseException; +import java.text.SimpleDateFormat; import java.time.*; import java.time.format.DateTimeFormatter; import java.util.Calendar; @@ -51,5 +54,16 @@ public class CoolDateUtils { } + public static final Date parseDate(String dateString ){ + DateFormat dateFormat = new SimpleDateFormat(DATE_FORMAT_SEC); + Date date = null; + try { + date = dateFormat.parse(dateString); + } catch (ParseException e) { + e.printStackTrace(); + } + return date; + } + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java index c27ad9bab..cc508e1a7 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/DeskServiceImpl.java @@ -1,5 +1,6 @@ package com.cool.store.service.impl; +import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; import com.cool.store.constants.CommonConstants; import com.cool.store.dao.HyPartnerInterviewPlanDAO; @@ -58,13 +59,14 @@ public class DeskServiceImpl implements DeskService { if (StringUtils.isEmpty(userId)||selectedData==null){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } - Date date = DateUtils.parseDate(selectedData); + Date dateTime = CoolDateUtils.parseDate(selectedData); + InterviewScheduleInfoVO interviewScheduleInfoVO = new InterviewScheduleInfoVO(); //查询面试数量 - String currentDate = DateUtil.format(date, CoolDateUtils.DATE_FORMAT_DAY); - String startTime = DateUtil.format(date, CoolDateUtils.DATE_FORMAT_SEC); - String endTime = DateUtil.format(CoolDateUtils.getDateBefore(date, 7), CoolDateUtils.DATE_FORMAT_SEC); + String currentDate = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_DAY); + String startTime = DateUtil.format(dateTime, CoolDateUtils.DATE_FORMAT_SEC); + String endTime = DateUtil.format(CoolDateUtils.getDateBefore(dateTime, 7), CoolDateUtils.DATE_FORMAT_SEC); SpecialDateRangeInterviewCountDTO interviewCount = hyPartnerInterviewPlanDAO.getInterviewCount(userId, currentDate, startTime, endTime); interviewScheduleInfoVO.setCurrentDayInterviewCount(interviewCount.getCurrentDayInterviewCount()); From f23c7a25133dd1be43105172447c049eb35eaebd Mon Sep 17 00:00:00 2001 From: wxp01309236 Date: Tue, 20 Jun 2023 17:25:49 +0800 Subject: [PATCH 2/5] =?UTF-8?q?=E6=84=8F=E5=90=91=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E6=9A=82=E5=AD=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/constants/RedisConstant.java | 6 +- .../cool/store/dao/HyPartnerBaseInfoDAO.java | 5 ++ .../store/mapper/HyPartnerBaseInfoMapper.java | 5 ++ .../resources/mapper/HyOpenAreaInfoMapper.xml | 2 +- .../mapper/HyPartnerBaseInfoMapper.xml | 9 +++ .../cool/store/vo/PartnerLineBaseInfoVO.java | 3 + .../service/HyPartnerBaseInfoService.java | 3 +- .../store/service/PartnerUserInfoService.java | 2 +- .../impl/HyPartnerBaseInfoServiceImpl.java | 59 ++++++++++++++++--- .../impl/HyPartnerClerkServiceImpl.java | 25 ++++++++ .../impl/HyPartnerIntentInfoServiceImpl.java | 26 ++++++-- .../impl/HyPartnerLineInfoServiceImpl.java | 2 +- .../impl/PartnerUserInfoServiceImpl.java | 40 +++++++++++-- .../impl/WechatMiniAppServiceImpl.java | 9 ++- .../cool/store/config/SignValidateFilter.java | 7 +-- .../store/controller/PartnerController.java | 12 ++-- 16 files changed, 174 insertions(+), 41 deletions(-) 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 381aff8ea..58c08cc73 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 @@ -214,9 +214,11 @@ public class RedisConstant { public static final String ENTERPRISE_OPEN_STATUS_KEY = "enterprise_open_status:{0}_{1}"; - public static final String STOREWORK_BUILD_CACHE_KEY = "storeworkBuildDataCache:{0}:{1}:{2}"; + public static final String PARTNER_BASEINFO_CACHE_KEY = "partnerBaseInfoCache:{0}:{1}"; - public static final String STORE_WORK_COMMENT_CACHE_KEY = "storeWorkCommentCache:{0}:{1}:{2}"; + public static final String PARTNER_CLERKINFO_CACHE_KEY = "partnerClerkInfoCache:{0}:{1}"; + + public static final String PARTNER_INTENTINFO_CACHE_KEY = "partnerIntentInfoCache:{0}:{1}"; public static final String DEVICE_OPEN_TOKEN = "device_open_token:{0}:{1}:{2}"; 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 44c25f107..59c49028e 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 @@ -37,6 +37,11 @@ public class HyPartnerBaseInfoDAO { public int updateByPartnerId(String userName,String mobile,String partnerId){ return hyPartnerBaseInfoMapper.updateByPartnerId(userName,mobile,partnerId); } + public int cleanIdCardInfoByPartnerLineId(String idCard, String idCardPhotoFront, + String idCardPhotoBlack, Long partnerLineId){ + return hyPartnerBaseInfoMapper.cleanIdCardInfoByPartnerLineId(idCard, idCardPhotoFront, idCardPhotoBlack, partnerLineId); + } + public HyPartnerBaseInfoDO getByPartnerIdAndLineId(String partnerId, Long partnerLineId){ if (StringUtils.isEmpty(partnerId) || partnerLineId == null){ 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 d870e306e..2d47cdf3c 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 @@ -40,4 +40,9 @@ public interface HyPartnerBaseInfoMapper { Long getLineIdByIdCard(@Param("idCard") String idCard); + int cleanIdCardInfoByPartnerLineId(@Param("idCard") String idCard, + @Param("idCardPhotoFront") String idCardPhotoFront, + @Param("idCardPhotoBlack") String idCardPhotoBlack, + @Param("partnerLineId") Long partnerLineId); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml index 7136184a1..7d99774a5 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyOpenAreaInfoMapper.xml @@ -21,7 +21,7 @@ insert into hy_open_area_info diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml index 803f47adb..a108097d9 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml @@ -238,4 +238,13 @@ where id_card = #{idCard} + + update hy_partner_base_info + set + id_card = #{idCard}, + id_card_photo_front = #{idCardPhotoFront}, + id_card_photo_black = #{idCardPhotoBlack} + where partner_line_id = #{partnerLineId} + + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineBaseInfoVO.java b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineBaseInfoVO.java index e99dded87..6b311cdc6 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineBaseInfoVO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/vo/PartnerLineBaseInfoVO.java @@ -22,6 +22,9 @@ public class PartnerLineBaseInfoVO { @ApiModelProperty("hy_partner_user_info.partner_id") private String partnerId; + @ApiModelProperty("hy_partner_line_info.id") + private Long partnerLineId; + @ApiModelProperty("流程阶段:1意向申请审核;2预约面试时间;3加盟资格面试;4分配选址开发经理;5商圈点位评估;6上传店铺租赁信息;7完善加盟签约信息;8支付加盟费用;9签订加盟合同") private String workflowStage; 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 8a45ed8cd..2c31eedaf 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 @@ -3,6 +3,7 @@ package com.cool.store.service; import com.cool.store.request.AddTagsRequest; import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.vo.PartnerBaseInfoVO; +import com.cool.store.vo.PartnerUserInfoVO; /** * @Author suzhuhong @@ -27,7 +28,7 @@ public interface HyPartnerBaseInfoService { Long getLineIdByIdCard(String idCard); - Boolean changeBinding(String idCard, Long lineId); + Boolean changeBinding(String idCard, Long lineId, PartnerUserInfoVO currentUser); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java index 209e1d8c0..a15b932b5 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/PartnerUserInfoService.java @@ -14,6 +14,6 @@ public interface PartnerUserInfoService { InviteCodeDetailVO selectInviteCodeDetail(String partnerId); - Boolean updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest); + String updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest); } 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 3f84643dc..e75ecfca0 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 @@ -2,19 +2,29 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.RedisConstant; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.LineStatusEnum; +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.AddTagsRequest; import com.cool.store.request.PartnerBaseInfoRequest; import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.service.HyPartnerLineInfoService; +import com.cool.store.utils.RedisUtilPool; import com.cool.store.vo.PartnerBaseInfoVO; +import com.cool.store.vo.PartnerUserInfoVO; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.MessageFormat; /** * @Author suzhuhong @@ -27,6 +37,15 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { @Resource HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; + @Resource + HyPartnerLineInfoService hyPartnerLineInfoService; + + @Resource + HyPartnerLineInfoDAO hyPartnerLineInfoDAO; + + @Resource + private RedisUtilPool redisUtilPool; + @Override public Boolean addTags(AddTagsRequest addTagsRequest) { HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); @@ -44,6 +63,12 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { */ @Override public Boolean submitPartnerBaseInfo(PartnerBaseInfoRequest request) { + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_BASEINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId()); + if(!request.getSubmitFlag()){ + // 自动保存时 + redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS); + return Boolean.TRUE; + } HyPartnerBaseInfoDO baseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(request.getPartnerId(), request.getPartnerLineId()); if(baseInfoDO == null){ baseInfoDO = new HyPartnerBaseInfoDO(); @@ -53,17 +78,22 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { fillBaseInfo(baseInfoDO, request); hyPartnerBaseInfoDAO.updateByPrimaryKeySelective(baseInfoDO); } - return true; + redisUtilPool.delKey(cacheKey); + return Boolean.TRUE; } @Override public PartnerBaseInfoVO queryPartnerBaseInfo(String partnerId, Long lineId) { - HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); - if (hyPartnerBaseInfoDO == null){ - throw new ServiceException(ErrorCodeEnum.PARTNER_BASEINFO_NOT_EXIST); + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_BASEINFO_CACHE_KEY, partnerId, lineId); + if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) { + PartnerBaseInfoVO partnerBaseInfoVO = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerBaseInfoVO.class); + return partnerBaseInfoVO; } + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); PartnerBaseInfoVO baseInfoVO = new PartnerBaseInfoVO(); - BeanUtil.copyProperties(hyPartnerBaseInfoDO, baseInfoVO); + if (hyPartnerBaseInfoDO != null){ + BeanUtil.copyProperties(hyPartnerBaseInfoDO, baseInfoVO); + } return baseInfoVO; } @@ -84,9 +114,22 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService { } @Override - public Boolean changeBinding(String idCard, Long lineId) { - // 先把之前状态置为 待提交,清空身份证号 ,把新的绑定身份证号 - HyPartnerBaseInfoDO hyPartnerBaseInfoDO = hyPartnerBaseInfoDAO.getByPartnerLineId(lineId); + public Boolean changeBinding(String idCard, Long lineId, PartnerUserInfoVO currentUser) { + // 把旧线索的身份证号置空,状态改为待提交 + Long oldLineId = hyPartnerBaseInfoDAO.getLineIdByIdCard(idCard); + HyPartnerLineInfoDO oldLineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(oldLineId); + // 该身份证当前申请状态同步至该账号下,原账号变为【加盟意向申请 待提交状态】 + HyPartnerLineInfoDO newLineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId); + newLineInfo.setWorkflowStage(oldLineInfo.getWorkflowStage()); + newLineInfo.setWorkflowStatus(oldLineInfo.getWorkflowStatus()); + newLineInfo.setLineStatus(oldLineInfo.getLineStatus()); + hyPartnerLineInfoDAO.updateByPrimaryKeySelective(newLineInfo); + oldLineInfo.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); + oldLineInfo.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); + oldLineInfo.setLineStatus(LineStatusEnum.PUBLIC_SEAS.getCode()); + hyPartnerLineInfoDAO.updateByPrimaryKeySelective(oldLineInfo); + hyPartnerBaseInfoDAO.cleanIdCardInfoByPartnerLineId(null, null, null, oldLineId); + // 新线索绑定身份证号 return true; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java index e2f81a330..2ce9c3fba 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerClerkServiceImpl.java @@ -1,19 +1,24 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; +import com.alibaba.fastjson.JSONObject; +import com.cool.store.constants.RedisConstant; import com.cool.store.dao.HyPartnerClerkDAO; import com.cool.store.entity.HyPartnerClerkDO; import com.cool.store.enums.ErrorCodeEnum; import com.cool.store.exception.ServiceException; import com.cool.store.request.PartnerClerkInfoRequest; import com.cool.store.service.HyPartnerClerkService; +import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerClerkVO; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.collections4.ListUtils; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -30,6 +35,9 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { @Resource HyPartnerClerkDAO hyPartnerClerkDAO; + @Resource + private RedisUtilPool redisUtilPool; + @Override public List getPartnerClerkList(Long lineId) { List hyPartnerClerkList = hyPartnerClerkDAO.getHyPartnerClerkList(lineId); @@ -49,6 +57,12 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { @Override public Boolean submitPartnerClerkInfo(PartnerClerkInfoRequest request) { + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_CLERKINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId()); + if(!request.getSubmitFlag()){ + // 自动保存时 + redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS); + return Boolean.TRUE; + } if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId()) || CollectionUtils.isEmpty(request.getPartnerClerkRequestList())){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } @@ -65,11 +79,22 @@ public class HyPartnerClerkServiceImpl implements HyPartnerClerkService { clerkDOList.add(clerkDO); }); hyPartnerClerkDAO.batchInsert(clerkDOList); + redisUtilPool.delKey(cacheKey); return true; } @Override public List queryPartnerClerkInfo(String partnerId, Long lineId) { + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_CLERKINFO_CACHE_KEY, partnerId, lineId); + if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) { + PartnerClerkInfoRequest partnerClerkInfoRequest = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerClerkInfoRequest.class); + List clerkVOList = ListUtils.emptyIfNull(partnerClerkInfoRequest.getPartnerClerkRequestList()).stream().map(clerkRequest -> { + PartnerClerkVO clerkVO = new PartnerClerkVO(); + BeanUtil.copyProperties(clerkRequest, clerkVO); + return clerkVO; + }).collect(Collectors.toList()); + return clerkVOList; + } List clerkDOList = hyPartnerClerkDAO.listByPartnerIdAndLineId(partnerId, lineId); List clerkVOList = ListUtils.emptyIfNull(clerkDOList).stream().map(clerkDO -> { PartnerClerkVO clerkVO = new PartnerClerkVO(); diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java index c1000ecaa..b89f87431 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerIntentInfoServiceImpl.java @@ -3,9 +3,9 @@ package com.cool.store.service.impl; import com.alibaba.fastjson.JSONObject; import cn.hutool.core.bean.BeanUtil; import com.cool.store.constants.CommonConstants; +import com.cool.store.constants.RedisConstant; import com.cool.store.dao.*; import com.cool.store.dto.partner.PartnerIntentApplyInfoDTO; -import com.cool.store.entity.EnterpriseUserDO; import com.cool.store.entity.HyPartnerIntentInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; @@ -15,15 +15,18 @@ import com.cool.store.exception.ServiceException; import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.request.PartnerIntentInfoRequest; import com.cool.store.service.HyPartnerIntentInfoService; +import com.cool.store.utils.RedisUtilPool; import com.cool.store.utils.StringUtil; import com.cool.store.vo.PartnerIntentApplyInfoVO; import com.cool.store.vo.PartnerIntentInfoVO; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import com.google.common.collect.Lists; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.MessageFormat; import java.util.ArrayList; import java.util.List; import java.util.Map; @@ -47,6 +50,8 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @Resource HyPartnerBaseInfoDAO hyPartnerBaseInfoDAO; + @Resource + private RedisUtilPool redisUtilPool; @Override public PageInfo getPartnerIntentApplyList(String userId, String type, Integer pageSize, Integer pageNumber) { @@ -114,6 +119,12 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic @Override public Boolean submitPartnerIntentInfo(PartnerIntentInfoRequest request) { + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, request.getPartnerId(), request.getPartnerLineId()); + if(!request.getSubmitFlag()){ + // 自动保存时 + redisUtilPool.setString(cacheKey, JSONObject.toJSONString(request), RedisConstant.ONE_DAY_SECONDS); + return Boolean.TRUE; + } if (StringUtil.isBlank(request.getPartnerId()) || Objects.isNull(request.getPartnerLineId())){ throw new ServiceException(ErrorCodeEnum.PARAMS_REQUIRED); } @@ -126,17 +137,22 @@ public class HyPartnerIntentInfoServiceImpl implements HyPartnerIntentInfoServic fillIntentInfo(intentInfoDO, request); hyPartnerIntentInfoDAO.updateByPrimaryKeySelective(intentInfoDO); } + redisUtilPool.delKey(cacheKey); return true; } @Override public PartnerIntentInfoVO queryPartnerIntentInfo(String partnerId, Long lineId) { - HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); - if (intentInfoDO == null){ - throw new ServiceException(ErrorCodeEnum.INTENT_INFO_NOT_EXIST); + String cacheKey = MessageFormat.format(RedisConstant.PARTNER_INTENTINFO_CACHE_KEY, partnerId, lineId); + if (StringUtils.isNotBlank(redisUtilPool.getString(cacheKey))) { + PartnerIntentInfoVO intentInfoVO = JSONObject.parseObject(redisUtilPool.getString(cacheKey), PartnerIntentInfoVO.class); + return intentInfoVO; } + HyPartnerIntentInfoDO intentInfoDO = hyPartnerIntentInfoDAO.getByPartnerIdAndLineId(partnerId, lineId); PartnerIntentInfoVO intentInfoVO = new PartnerIntentInfoVO(); - BeanUtil.copyProperties(intentInfoDO, intentInfoVO); + if (intentInfoDO != null){ + BeanUtil.copyProperties(intentInfoDO, intentInfoVO); + } return intentInfoVO; } 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 86e64a24c..61a420e18 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 @@ -26,7 +26,6 @@ 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; @@ -366,6 +365,7 @@ public class HyPartnerLineInfoServiceImpl implements HyPartnerLineInfoService { String coolingPeriodFirstLoginCacheKey = MessageFormat.format(RedisConstant.COOLINGPERIOD_FIRSTLOGIN_KEY, partnerId); String value = redisUtilPool.getString(coolingPeriodFirstLoginCacheKey); lineBaseInfoVO.setCoolDownFirstLoginFlag(StringUtils.isNotBlank(value)); + lineBaseInfoVO.setPartnerLineId(lineInfoDO.getId()); return lineBaseInfoVO; } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java index b434b01e0..2bb8d4f6a 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/PartnerUserInfoServiceImpl.java @@ -1,23 +1,42 @@ package com.cool.store.service.impl; import com.cool.store.constants.CommonConstants; +import com.cool.store.dao.HyOpenAreaInfoDAO; +import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.entity.HyOpenAreaInfoDO; +import com.cool.store.entity.HyPartnerLineInfoDO; import com.cool.store.entity.HyPartnerUserInfoDO; import com.cool.store.enums.ErrorCodeEnum; +import com.cool.store.enums.LineStatusEnum; +import com.cool.store.enums.WorkflowStageEnum; +import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ServiceException; -import com.cool.store.request.BaseUserInfoRequest; import com.cool.store.request.PartnerUserInfoRequest; +import com.cool.store.service.HyPartnerLineInfoService; import com.cool.store.service.PartnerUserInfoService; import com.cool.store.vo.InviteCodeDetailVO; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.annotation.Resource; + @Service public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { @Autowired private HyPartnerUserInfoDAO hyPartnerUserInfoDAO; + @Resource + private HyPartnerLineInfoDAO hyPartnerLineInfoDAO; + + @Resource + HyPartnerLineInfoService hyPartnerLineInfoService; + + @Resource + HyOpenAreaInfoDAO hyOpenAreaInfoDAO; + + @Override public HyPartnerUserInfoDO selectByPartnerId(String partnerId) { return hyPartnerUserInfoDAO.selectByPartnerId(partnerId); @@ -57,9 +76,9 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { } @Override - public Boolean updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) { + public String updatePartnerUserInfo(PartnerUserInfoRequest partnerUserInfoRequest) { HyPartnerUserInfoDO hyPartnerUserInfoDO = hyPartnerUserInfoDAO.selectByPartnerId(String.valueOf(partnerUserInfoRequest.getPartnerId())); - if (hyPartnerUserInfoDO==null){ + if (hyPartnerUserInfoDO == null){ throw new ServiceException(ErrorCodeEnum.PARTNER_USER_NOT_EXIST); } hyPartnerUserInfoDO.setUsername(partnerUserInfoRequest.getUsername()); @@ -75,6 +94,19 @@ public class PartnerUserInfoServiceImpl implements PartnerUserInfoService { hyPartnerUserInfoDO.setRecommendPartnerName(partnerUserInfoRequest.getRecommendPartnerName()); hyPartnerUserInfoDO.setRecommendPartnerMobile(partnerUserInfoRequest.getRecommendPartnerMobile()); hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO); - return Boolean.TRUE; + + // 生成一条线索 + HyPartnerLineInfoDO exsitLineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + if(exsitLineInfoDO == null){ + HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); + hyPartnerLineInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); + hyPartnerLineInfoDO.setWorkflowStage(WorkflowStageEnum.INTENT.getCode()); + hyPartnerLineInfoDO.setWorkflowStatus(WorkflowStatusEnum.INTENT_0.getCode()); + Boolean flag = hyPartnerLineInfoService.getLineStatus(Long.valueOf(partnerUserInfoRequest.getWantShopArea()), partnerUserInfoRequest.getAcceptAdjustType()); + hyPartnerLineInfoDO.setLineStatus(flag ? LineStatusEnum.PRIVATE_SEAS.getCode() : LineStatusEnum.PUBLIC_SEAS.getCode()); + hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO); + } + HyOpenAreaInfoDO hyOpenAreaInfoDO = hyOpenAreaInfoDAO.selectById(Long.valueOf(partnerUserInfoRequest.getWantShopArea())); + return hyOpenAreaInfoDO != null ? hyOpenAreaInfoDO.getAreaStatus() : ""; } } 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 09cd8136a..6a4dc4f36 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 @@ -1,7 +1,6 @@ package com.cool.store.service.impl; import cn.hutool.core.bean.BeanUtil; -import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.aliyun.openservices.shade.org.apache.commons.lang3.StringUtils; import com.cool.store.constants.CommonConstants; @@ -98,10 +97,6 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { hyPartnerUserInfoDO.setAcceptAdjustType(0); hyPartnerUserInfoDO.setIsWritePartnerKnow(0); hyPartnerUserInfoDAO.insertSelective(hyPartnerUserInfoDO); - // 生成一条线索 也可在提交加盟信息时插入 - HyPartnerLineInfoDO hyPartnerLineInfoDO = new HyPartnerLineInfoDO(); - hyPartnerLineInfoDO.setPartnerId(hyPartnerUserInfoDO.getPartnerId()); - hyPartnerLineInfoDAO.insertSelective(hyPartnerLineInfoDO); } HyPartnerUserPlatformBindDO hyPartnerUserPlatformBindDO = hyPartnerUserPlatformBindDAO.getByPlatformTypeAndUserId(UserPlatformTypeEnum.WECHAT.getCode(), openid); if(hyPartnerUserPlatformBindDO == null){ @@ -113,6 +108,10 @@ public class WechatMiniAppServiceImpl implements WechatMiniAppService { hyPartnerUserPlatformBindDAO.insertSelective(hyPartnerUserPlatformBindDO); } BeanUtil.copyProperties(hyPartnerUserInfoDO, userInfoVO); + HyPartnerLineInfoDO lineInfoDO = hyPartnerLineInfoDAO.getByPartnerId(hyPartnerUserInfoDO.getPartnerId()); + if (lineInfoDO != null){ + userInfoVO.setPartnerLineId(lineInfoDO.getId()); + } } userInfoVO.setOpenid(openid); userInfoVO.setUnionId(unionId); diff --git a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java index 94a526258..9d554b0a3 100644 --- a/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java +++ b/coolstore-partner-webc/src/main/java/com/cool/store/config/SignValidateFilter.java @@ -89,12 +89,7 @@ public class SignValidateFilter implements Filter { if ( !isInWhiteList && !method.equals("OPTIONS")) { String params = ""; if("GET".equalsIgnoreCase(method)){ - Map parameterMap = new HashMap(); - Map requestMap = request.getParameterMap(); - for(String key : requestMap.keySet()){ - parameterMap.put(key, requestMap.get(key)[0]); - } - params = JSONObject.toJSONString(parameterMap); + params = request.getQueryString(); }else if("POST".equalsIgnoreCase(method)){ params = wrapper.getBody(); // params = request.getReader().lines().collect(Collectors.joining(System.lineSeparator())); 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 02dc83c0c..ab7e2e96d 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 @@ -49,15 +49,12 @@ public class PartnerController { @Resource private RedisUtilPool redisUtilPool; - - @PostMapping(path = "/applyBaseInfo") @ApiOperation("提交加盟商基本信息") - public ResponseResult applyBaseInfo(@RequestBody PartnerUserInfoRequest partnerUserInfoRequest){ + public ResponseResult applyBaseInfo(@RequestBody PartnerUserInfoRequest partnerUserInfoRequest){ return ResponseResult.success(partnerUserInfoService.updatePartnerUserInfo(partnerUserInfoRequest)); } - @GetMapping(path = "/getSubmitIntentionApplyFlag") @ApiOperation("获取提交意向申请标识 true 已提交 false 未提交") public ResponseResult getSubmitIntentionApplyFlag(){ @@ -88,8 +85,8 @@ public class PartnerController { }) public ResponseResult changeBinding(@RequestParam(value = "idCard",required = false)String idCard, @RequestParam(value = "lineId",required = false)Long lineId){ - - return ResponseResult.success(hyPartnerBaseInfoService.changeBinding(idCard, lineId)); + PartnerUserInfoVO currentUser = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerBaseInfoService.changeBinding(idCard, lineId, currentUser)); } @@ -157,7 +154,8 @@ public class PartnerController { @ApiImplicitParam(name = "lineId", value = "线索ID", required = false), }) public ResponseResult queryPartnerBaseInfo(@RequestParam(value = "lineId",required = false)Long lineId){ - return ResponseResult.success(hyPartnerBaseInfoService.getByPartnerLineId(lineId)); + PartnerUserInfoVO userInfoVO = PartnerUserHolder.getUser(); + return ResponseResult.success(hyPartnerBaseInfoService.queryPartnerBaseInfo(userInfoVO.getPartnerId(), lineId)); } From 8dd498f3e3fa7209c4c27d30645dcc39c6677b58 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 20 Jun 2023 17:37:27 +0800 Subject: [PATCH 3/5] update --- .../src/main/resources/mapper/HyPartnerLineInfoMapper.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml index b41f58754..0438e9b35 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerLineInfoMapper.xml @@ -306,7 +306,7 @@ on a.id = b.partner_line_id - and a.id = #{id} + and a.id = #{lineId} @@ -491,12 +491,12 @@ AND hpuinfo.recommend_partner_mobile like concat('%',#{storeKeyword},'%') - + #{userId} - + #{developmentManager} From dfc9fc2877091100cd6309ec6ebd3a75393897f2 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 20 Jun 2023 17:49:42 +0800 Subject: [PATCH 4/5] add config --- .../src/main/resources/application-ab.properties | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/coolstore-partner-webc/src/main/resources/application-ab.properties b/coolstore-partner-webc/src/main/resources/application-ab.properties index 749e58d09..33290e95f 100644 --- a/coolstore-partner-webc/src/main/resources/application-ab.properties +++ b/coolstore-partner-webc/src/main/resources/application-ab.properties @@ -59,4 +59,9 @@ trtc.secretKey=4854bab106c2ca2a2fda16a8c966933e28a078a34e458999d6227e8cd8ab8219 weixin.appId=wxb2a0addf956ad4b7 weixin.appSecret=77abdcae754add92889566b543e5ad79 -signKey=77fea013c3a6459685b83c21a2fc3411 \ No newline at end of file +signKey=77fea013c3a6459685b83c21a2fc3411 + +#MDM +hs.mdm.baseUrl=http://10.56.21.30/ +hs.mdm.appkey = HSAYPartner +hs.mdm.appsec = ab39fedb886fa3587c7f517551976de8b2606f5511fd8f8675266825d74c5cd3 \ No newline at end of file From b9f16ef2ccf205579e0a67415bba15a899b21870 Mon Sep 17 00:00:00 2001 From: zhangchenbiao Date: Tue, 20 Jun 2023 17:56:17 +0800 Subject: [PATCH 5/5] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E6=A0=B9=E6=8D=AE?= =?UTF-8?q?=E9=83=A8=E9=97=A8=E6=8B=BF=E4=BA=BA=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/cool/store/dao/EnterpriseUserDAO.java | 8 ++++++++ .../java/com/cool/store/mapper/EnterpriseUserMapper.java | 7 +++++++ .../src/main/resources/mapper/EnterpriseUserMapper.xml | 9 +++++++++ 3 files changed, 24 insertions(+) diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java index 4b9736dfd..0454438ca 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/dao/EnterpriseUserDAO.java @@ -90,4 +90,12 @@ public class EnterpriseUserDAO { } return enterpriseUserMapper.getUserListByDeptLeaders(regionIds); } + + + public List getUserListByRegionIds(List regionIds){ + if(CollectionUtils.isEmpty(regionIds)){ + return Lists.newArrayList(); + } + return enterpriseUserMapper.getUserListByRegionIds(regionIds); + } } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java index 3360d9b63..f83646ae2 100644 --- a/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java +++ b/coolstore-partner-dao/src/main/java/com/cool/store/mapper/EnterpriseUserMapper.java @@ -83,4 +83,11 @@ public interface EnterpriseUserMapper { * @return */ List getUserListByDeptLeaders(@Param("regionIds") List regionIds); + + /** + * 获取部门人员 + * @param regionIds + * @return + */ + List getUserListByRegionIds(@Param("regionIds") List regionIds); } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml index 95d7dedc8..72c925596 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/EnterpriseUserMapper.xml @@ -297,4 +297,13 @@ where deleted = 0 and leader_dept_ids like concat("%", #{regionId}, "%") + + \ No newline at end of file