From 76a24e2b14c807c7f58bd54e733f4b27ba675eda Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Fri, 25 Aug 2023 14:13:55 +0800 Subject: [PATCH 1/4] =?UTF-8?q?=E6=8F=90=E4=BA=A4ec=E5=90=8C=E6=AD=A5?= =?UTF-8?q?=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/entity/HyPartnerLabelGroupDO.java | 2 ++ .../com/cool/store/request/GetTagRequest.java | 27 +++++++++++++++++++ .../com/cool/store/service/EcSyncService.java | 4 +++ .../store/service/impl/EcSyncServiceImpl.java | 23 ++++++++++++++++ .../store/controller/EcSyncController.java | 7 +++++ 5 files changed, 63 insertions(+) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/request/GetTagRequest.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelGroupDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelGroupDO.java index 2ee131d72..b46f428f5 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelGroupDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelGroupDO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.util.Date; @@ -16,6 +17,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor +@Accessors(chain = true) public class HyPartnerLabelGroupDO { @ApiModelProperty("id") diff --git a/coolstore-partner-model/src/main/java/com/cool/store/request/GetTagRequest.java b/coolstore-partner-model/src/main/java/com/cool/store/request/GetTagRequest.java new file mode 100644 index 000000000..d1dba4f3d --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/request/GetTagRequest.java @@ -0,0 +1,27 @@ +package com.cool.store.request; + +import lombok.Data; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author hxd + */ +@Data +@Accessors(chain = true) +public class GetTagRequest { + private Long groupId; + private String groupName; + private Integer sort; + private Integer type; + private List list; + + @Data + @Accessors(chain = true) + public static class GetTagItem{ + private Long classId; + private String className; + private int sort; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/EcSyncService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/EcSyncService.java index 1901fd924..050fd0eb0 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/EcSyncService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/EcSyncService.java @@ -1,6 +1,7 @@ package com.cool.store.service; import com.cool.store.request.CustomerInfoRequest; +import com.cool.store.request.GetTagRequest; import java.util.List; @@ -8,4 +9,7 @@ public interface EcSyncService { boolean ecToApplet(List queryListData); void getChannelSource(); + + Boolean labelInfo(List getTagRequestList); + } 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 117e4440d..28132e121 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 @@ -15,8 +15,11 @@ import com.cool.store.enums.WorkflowStageEnum; import com.cool.store.enums.WorkflowStatusEnum; import com.cool.store.exception.ApiException; import com.cool.store.http.UserSourceResponse; +import com.cool.store.mapper.HyPartnerLabelGroupMapper; +import com.cool.store.mapper.HyPartnerLabelMapper; import com.cool.store.mapper.HyPartnerUserChannelMapper; import com.cool.store.request.CustomerInfoRequest; +import com.cool.store.request.GetTagRequest; import com.cool.store.sdk.ec.EcClient; import com.cool.store.sdk.ec.bo.ChangeFollowUserBo; import com.cool.store.sdk.ec.bo.UpdateCustomerBo; @@ -49,6 +52,10 @@ public class EcSyncServiceImpl implements EcSyncService { @Value("${ec.baseUrl:null}") private String baseUrl; + + @Value("${ec.sync.createUserId}") + private String createUserId; + @Resource private HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @@ -65,6 +72,12 @@ public class EcSyncServiceImpl implements EcSyncService { @Resource private HyPartnerUserChannelMapper hyPartnerUserChannelMapper; + @Resource + private HyPartnerLabelGroupMapper hyPartnerLabelGroupMapper; + + @Resource + private HyPartnerLabelMapper hyPartnerLabelMapper; + @Override public boolean ecToApplet(List queryListData) { @@ -99,6 +112,16 @@ public class EcSyncServiceImpl implements EcSyncService { } } + @Override + public Boolean labelInfo(List getTagRequestList) { + for (GetTagRequest getTagRequest : getTagRequestList) { + HyPartnerLabelGroupDO hyPartnerLabelGroupDO = new HyPartnerLabelGroupDO(); + hyPartnerLabelGroupDO.setLabelGroupName(getTagRequest.getGroupName()).setId(getTagRequest.getGroupId()); + + } + return null; + } + /** * 同步ec数据到表中 同时将部分数据同步到ec * diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/controller/EcSyncController.java b/coolstore-partner-webb/src/main/java/com/cool/store/controller/EcSyncController.java index 4cebd591d..78978078d 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/controller/EcSyncController.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/controller/EcSyncController.java @@ -2,6 +2,7 @@ package com.cool.store.controller; import com.cool.store.request.CustomerInfoRequest; +import com.cool.store.request.GetTagRequest; import com.cool.store.response.ResponseResult; import com.cool.store.service.EcSyncService; import com.cool.store.vo.InterviewScheduleInfoVO; @@ -28,4 +29,10 @@ public class EcSyncController { return ResponseResult.success(ecSyncService.ecToApplet(queryListData)); } + @PostMapping(path = "/labelInfo") + @ApiOperation("ec同步标签数据到小程序") + public ResponseResult labelInfo(@RequestBody List getTagRequestList){ + return ResponseResult.success(ecSyncService.labelInfo(getTagRequestList)); + } + } From 05c6ef16bdee972f1bb971d4f98697e7468eb397 Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Fri, 25 Aug 2023 17:56:02 +0800 Subject: [PATCH 2/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ec=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E9=83=A8=E5=88=86=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/entity/HyPartnerLabelDO.java | 2 + .../com/cool/store/job/EcSyncLabelJob.java | 43 +++++++++++++ .../cool/store/service/LabelGroupService.java | 9 +++ .../com/cool/store/service/LabelService.java | 6 ++ .../store/service/impl/EcSyncServiceImpl.java | 61 +++++++++++-------- .../service/impl/LabelGroupServiceImpl.java | 17 ++++++ .../store/service/impl/LabelServiceImpl.java | 17 ++++++ 7 files changed, 130 insertions(+), 25 deletions(-) create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelDO.java index 4f0d4d383..6dc765b14 100644 --- a/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelDO.java +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/HyPartnerLabelDO.java @@ -5,6 +5,7 @@ import lombok.AllArgsConstructor; import lombok.Builder; import lombok.Data; import lombok.NoArgsConstructor; +import lombok.experimental.Accessors; import java.util.Date; @@ -16,6 +17,7 @@ import java.util.Date; @Builder @NoArgsConstructor @AllArgsConstructor +@Accessors(chain = true) public class HyPartnerLabelDO { @ApiModelProperty("") private Long id; diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java b/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java new file mode 100644 index 000000000..dc48e4051 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java @@ -0,0 +1,43 @@ +package com.cool.store.job; + +import cn.hutool.core.date.DateUtil; +import com.cool.store.utils.StringUtil; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; + +/** + * @author hxd + */ +@Slf4j +@Component +public class EcSyncLabelJob { + + @Value("${ec.baseUrl:null}") + private String baseUrl; + + @XxlJob("SyncAppletToEcJob") + public void syncAppletToEcJob() { + XxlJobHelper.log("-------------------------------定时同步小程序数据到ec开始-------------------------------"); + syncEcLabelExecute(); + XxlJobHelper.log("-------------------------------定时同步小程序数据到ec结束-------------------------------"); + XxlJobHelper.handleSuccess(); + } + + + //定时同步小程序数据到ec + private void syncEcLabelExecute() { + // 获取参数 + String param = XxlJobHelper.getJobParam(); + String startTime = ""; + if (StringUtil.isNotEmpty(param)) { + XxlJobHelper.log("输入参数为:" + param); + startTime = param; + } + String endTime = DateUtil.now(); + + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LabelGroupService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LabelGroupService.java index 1e2b882c1..5f5bf2aef 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LabelGroupService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LabelGroupService.java @@ -4,6 +4,7 @@ import com.cool.store.dto.label.LabelGroupAddDTO; import com.cool.store.dto.label.LabelGroupDeleteDTO; import com.cool.store.dto.label.LabelGroupListDTO; import com.cool.store.dto.label.LabelGroupUpdateDTO; +import com.cool.store.entity.HyPartnerLabelGroupDO; import com.cool.store.exception.ApiException; import com.cool.store.vo.LabelGroupListVo; @@ -44,4 +45,12 @@ public interface LabelGroupService { */ List getAllLabelGroupList(); + /** + * 添加ec标签组 + * @param hyPartnerLabelGroupDO + */ + void addEcLabelGroup(HyPartnerLabelGroupDO hyPartnerLabelGroupDO); + + HyPartnerLabelGroupDO selectByPrimaryKey(Long id); + } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/LabelService.java b/coolstore-partner-service/src/main/java/com/cool/store/service/LabelService.java index 898f71d03..16b3d3a1f 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/LabelService.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/LabelService.java @@ -4,6 +4,7 @@ import com.cool.store.dto.label.LabelAddDTO; import com.cool.store.dto.label.LabelDeleteDTO; import com.cool.store.dto.label.LabelListDTO; import com.cool.store.dto.label.LabelUpdateDTO; +import com.cool.store.entity.HyPartnerLabelDO; import com.cool.store.exception.ApiException; import com.cool.store.vo.LabelListVo; @@ -55,4 +56,9 @@ public interface LabelService { * @param dto */ void deleteLabel(LabelDeleteDTO dto); + + HyPartnerLabelDO selectByPrimaryKey(Long classId); + + void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO); + } 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 28132e121..61dd06d45 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 @@ -9,6 +9,7 @@ import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; +import com.cool.store.dto.label.LabelAddDTO; import com.cool.store.entity.*; import com.cool.store.enums.LineStatusEnum; import com.cool.store.enums.WorkflowStageEnum; @@ -28,6 +29,8 @@ import com.cool.store.sdk.ec.request.UpdateCustomerRequest; import com.cool.store.sdk.ec.response.ChangeFollowUserResponse; import com.cool.store.sdk.ec.response.UpdateCustomerResponse; import com.cool.store.service.EcSyncService; +import com.cool.store.service.LabelGroupService; +import com.cool.store.service.LabelService; import com.cool.store.utils.Post; import com.cool.store.utils.StringUtil; import com.cool.store.utils.UUIDUtils; @@ -48,14 +51,10 @@ import java.util.List; public class EcSyncServiceImpl implements EcSyncService { - @Value("${ec.baseUrl:null}") private String baseUrl; - @Value("${ec.sync.createUserId}") - private String createUserId; - @Resource private HyPartnerLineInfoDAO hyPartnerLineInfoDAO; @@ -73,10 +72,10 @@ public class EcSyncServiceImpl implements EcSyncService { private HyPartnerUserChannelMapper hyPartnerUserChannelMapper; @Resource - private HyPartnerLabelGroupMapper hyPartnerLabelGroupMapper; + private LabelGroupService labelGroupService; @Resource - private HyPartnerLabelMapper hyPartnerLabelMapper; + private LabelService labelService; @Override @@ -86,7 +85,7 @@ public class EcSyncServiceImpl implements EcSyncService { insertSelectiveSync(customerInfoItem); } catch (Exception e) { e.printStackTrace(); - sendFeiShuRobotMessage("推送:"+JSONObject.toJSONString(e),"27243d49-97ca-4981-8aec-7c3bf84eb660"); + sendFeiShuRobotMessage("推送:" + JSONObject.toJSONString(e), "27243d49-97ca-4981-8aec-7c3bf84eb660"); } } return false; @@ -94,7 +93,7 @@ public class EcSyncServiceImpl implements EcSyncService { @Override public void getChannelSource() { - String s = HttpUtil.get(baseUrl+"/ec/getChannelSource"); + String s = HttpUtil.get(baseUrl + "/ec/getChannelSource"); UserSourceResponse userSourceResponse = JSONObject.parseObject(s, UserSourceResponse.class); for (UserSourceResponse.ChannelSource channelSource : userSourceResponse.getData()) { Long id = channelSource.getId(); @@ -105,7 +104,7 @@ public class EcSyncServiceImpl implements EcSyncService { if (ObjectUtil.isNotNull(selectByChannel)) { hyPartnerUserChannel.setUpdateTime(new Date()).setId(selectByChannel.getId()); hyPartnerUserChannelMapper.updateByPrimaryKeySelective(hyPartnerUserChannel); - }else { + } else { hyPartnerUserChannel.setCreateTime(new Date()); hyPartnerUserChannelMapper.insertSelective(hyPartnerUserChannel); } @@ -115,11 +114,23 @@ public class EcSyncServiceImpl implements EcSyncService { @Override public Boolean labelInfo(List getTagRequestList) { for (GetTagRequest getTagRequest : getTagRequestList) { + Long groupId = getTagRequest.getGroupId(); + if (ObjectUtil.isNotNull(labelGroupService.selectByPrimaryKey(groupId))) { + continue; + } HyPartnerLabelGroupDO hyPartnerLabelGroupDO = new HyPartnerLabelGroupDO(); - hyPartnerLabelGroupDO.setLabelGroupName(getTagRequest.getGroupName()).setId(getTagRequest.getGroupId()); - + hyPartnerLabelGroupDO.setLabelGroupName(getTagRequest.getGroupName()).setId(groupId); + labelGroupService.addEcLabelGroup(hyPartnerLabelGroupDO); + for (GetTagRequest.GetTagItem item : getTagRequest.getList()) { + if (ObjectUtil.isNotNull(labelService.selectByPrimaryKey(item.getClassId()))) { + continue; + } + HyPartnerLabelDO hyPartnerLabelDO = new HyPartnerLabelDO(); + hyPartnerLabelDO.setLabelName(item.getClassName()).setId(item.getClassId()).setLabelGroupId(groupId); + labelService.addEcLabel(hyPartnerLabelDO); + } } - return null; + return Boolean.TRUE; } /** @@ -135,13 +146,13 @@ public class EcSyncServiceImpl implements EcSyncService { //获取客户来源id String channel = customerInfoItem.getChannel(); HyPartnerUserChannelDO hyPartnerUserChannelDO = hyPartnerUserChannelMapper.selectByChannelName(channel); - Long channelId =null; + Long channelId = null; if (StringUtil.isNotEmpty(channel)) { - if (ObjectUtil.isNull(hyPartnerUserChannelDO)||ObjectUtil.isNull(hyPartnerUserChannelDO.getChannelId())) { + if (ObjectUtil.isNull(hyPartnerUserChannelDO) || ObjectUtil.isNull(hyPartnerUserChannelDO.getChannelId())) { getChannelSource(); } HyPartnerUserChannelDO channelDO = hyPartnerUserChannelMapper.selectByChannelName(channel); - channelId=channelDO.getChannelId(); + channelId = channelDO.getChannelId(); } String newPartnerId = UUIDUtils.get32UUID(); HyPartnerUserInfoDO resultUser = new HyPartnerUserInfoDO(); @@ -151,11 +162,11 @@ public class EcSyncServiceImpl implements EcSyncService { String followUserName = customerInfoItem.getFollowUserName(); String followUserMobile = customerInfoItem.getFollowUserMobile(); //传递过来有跟进人的情况下查询跟进人是否存在 - if (StringUtil.isNotEmpty(followUserMobile)&&StringUtil.isNotEmpty(followUserName)) { + if (StringUtil.isNotEmpty(followUserMobile) && StringUtil.isNotEmpty(followUserName)) { String userId = enterpriseUserDAO.selectByMobile(followUserMobile); if (StringUtil.isEmpty(userId)) { // 给飞书群发送消息 跟进人找不到 - sendFeiShuRobotMessage("推送:飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile,"27243d49-97ca-4981-8aec-7c3bf84eb660"); + sendFeiShuRobotMessage("推送:飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile, "27243d49-97ca-4981-8aec-7c3bf84eb660"); throw new ApiException("飞书架构中找不到该用户:【" + followUserName + "】,该用户电话号码为:" + followUserMobile); } resultLine.setInvestmentManager(userId); @@ -167,16 +178,16 @@ public class EcSyncServiceImpl implements EcSyncService { resultBase.setUsername(customerInfoItem.getName()).setMobile(customerInfoItem.getMobile()); HyPartnerUserInfoDO newUserInfo = hyPartnerUserInfoDAO.selectByMobile(resultUser.getMobile()); - EcClient ecClient=new EcClient(); + EcClient ecClient = new EcClient(); //有就更新ec没有就插入 if (newUserInfo != null) { // EC与沪姨合伙人同时存在的线索用户,但用户姓名不同,将沪姨合伙人线索姓名同步至EC覆盖原EC线索姓名 if (!newUserInfo.getUsername().equals(resultUser.getUsername())) { - UpdateCustomerRequest updateUserRequest=new UpdateCustomerRequest(); + UpdateCustomerRequest updateUserRequest = new UpdateCustomerRequest(); UpdateCustomerBo updateCustomerBo = new UpdateCustomerBo(); updateCustomerBo.setUsername(newUserInfo.getUsername()).setMobile(newUserInfo.getMobile()).setCrmId(customerInfoItem.getCrmId()); updateUserRequest.setParameter(updateCustomerBo); - UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl,updateUserRequest); + UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl, updateUserRequest); } String oldPartnerId = newUserInfo.getPartnerId(); //线索表 @@ -187,11 +198,11 @@ public class EcSyncServiceImpl implements EcSyncService { if (StringUtil.isNotEmpty(resultLine.getInvestmentManager())) { resultLine.setId(partnerLine.getId()).setUpdateTime(new Date()); //沪姨合伙人线索存在黑名单,EC该线索分配跟进人同步到沪姨合伙人但线索状态不变,还存在黑名单中 - resultLine.setLineStatus(partnerLine.getLineStatus().intValue()==LineStatusEnum.BLACKLIST.getCode().intValue() - ?LineStatusEnum.BLACKLIST.getCode():resultLine.getLineStatus()); + resultLine.setLineStatus(partnerLine.getLineStatus().intValue() == LineStatusEnum.BLACKLIST.getCode().intValue() + ? LineStatusEnum.BLACKLIST.getCode() : resultLine.getLineStatus()); hyPartnerLineInfoDAO.updateByPrimaryKeySelective(resultLine); } - }else { + } else { EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(partnerLine.getInvestmentManager()); enterpriseUser.setMobile(getNoWith86Number(enterpriseUser.getMobile())); //电话相同但是名字不同 @@ -201,7 +212,7 @@ public class EcSyncServiceImpl implements EcSyncService { changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) .setType(1).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); changeFollowUserRequest.setParameter(changeFollowUserBo); - ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl,changeFollowUserRequest); + ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); } //电话不同 if (!enterpriseUser.getMobile().equals(followUserMobile)) { @@ -210,7 +221,7 @@ public class EcSyncServiceImpl implements EcSyncService { changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) .setType(2).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); changeFollowUserRequest.setParameter(changeFollowUserBo); - ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl,changeFollowUserRequest); + ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); } } //base表 diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelGroupServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelGroupServiceImpl.java index e220b230d..ebb8cef06 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelGroupServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelGroupServiceImpl.java @@ -14,6 +14,7 @@ import com.cool.store.mapper.HyPartnerLabelMapper; import com.cool.store.service.LabelGroupService; import com.cool.store.vo.LabelGroupListVo; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -33,6 +34,10 @@ public class LabelGroupServiceImpl implements LabelGroupService { @Autowired private HyPartnerLabelMapper labelMapper; + + @Value("${ec.sync.createUserId:null}") + private String createUserId; + /** * 查询标签组信息列表 * @param dto 查询条件 @@ -110,6 +115,18 @@ public class LabelGroupServiceImpl implements LabelGroupService { return labelGroupMapper.getLabelGroupList(labelGroupDO); } + @Override + public HyPartnerLabelGroupDO selectByPrimaryKey(Long id){ + return labelGroupMapper.selectByPrimaryKey(id); + } + + @Override + public void addEcLabelGroup(HyPartnerLabelGroupDO hyPartnerLabelGroupDO) { + hyPartnerLabelGroupDO.setCreateTime(new Date()).setCreateUserId(createUserId).setEditDate(new Date()) + .setEditUserId(createUserId); + labelGroupMapper.insertSelective(hyPartnerLabelGroupDO); + } + /** * 某个标签组内是否有未删除的标签 * @param id 标签组 id diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java index 09075ca25..5b7d99db6 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java @@ -15,6 +15,7 @@ import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import javax.annotation.Resource; @@ -32,6 +33,11 @@ public class LabelServiceImpl implements LabelService { @Autowired private HyPartnerLabelMapper labelMapper; + + + @Value("${ec.sync.createUserId:null}") + private String createUserId; + /** * 获取数组列表 * @@ -98,6 +104,17 @@ public class LabelServiceImpl implements LabelService { labelMapper.updateByPrimaryKeySelective(labelDO); } + @Override + public HyPartnerLabelDO selectByPrimaryKey(Long classId) { + return labelMapper.selectByPrimaryKey(classId); + } + + @Override + public void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO) { + hyPartnerLabelDO.setEditDate(new Date()).setCreateTime(new Date()).setEditUserId(createUserId).setCreateUserId(createUserId); + labelMapper.insertSelective(hyPartnerLabelDO); + } + private Boolean whetherLabelRepeat(HyPartnerLabelDO label) throws ApiException { Long id = label.getId(); label.setId(null); From fa2d08915d510e13291d7ee3409b1ca308d0885c Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Mon, 28 Aug 2023 13:53:50 +0800 Subject: [PATCH 3/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ec=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E5=AE=8C=E6=95=B4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/mapper/HyPartnerBaseInfoMapper.java | 7 ++ .../mapper/HyPartnerBaseInfoMapper.xml | 16 ++++ .../store/entity/SyncEcCustomerLabelDO.java | 16 ++++ .../com/cool/store/job/EcSyncLabelJob.java | 43 --------- .../store/job/SyncEcCustomerLabelJob.java | 91 +++++++++++++++++++ .../request/SyncEcCustomerLabelRequest.java | 21 +++++ .../response/SyncEcCustomerLabelResponse.java | 22 +++++ .../store/service/impl/LabelServiceImpl.java | 3 +- .../cool/store/utils/MybatisBatchUtils.java | 56 ++++++++++++ .../store/config/TokenValidateFilter.java | 1 + 10 files changed, 232 insertions(+), 44 deletions(-) create mode 100644 coolstore-partner-model/src/main/java/com/cool/store/entity/SyncEcCustomerLabelDO.java delete mode 100644 coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/request/SyncEcCustomerLabelRequest.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/response/SyncEcCustomerLabelResponse.java create mode 100644 coolstore-partner-service/src/main/java/com/cool/store/utils/MybatisBatchUtils.java 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 712ea26d4..767803b35 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 @@ -1,6 +1,7 @@ package com.cool.store.mapper; import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.entity.SyncEcCustomerLabelDO; import org.apache.ibatis.annotations.Param; import java.util.List; @@ -63,4 +64,10 @@ public interface HyPartnerBaseInfoMapper { @Param("idCardPhotoBlack") String idCardPhotoBlack, @Param("partnerLineId") Long partnerLineId); + int selectAllList(); + + List selectListByLimit(@Param("limit1") Integer limit1, @Param("limit2") Integer limit2); + + void updateByMobile(HyPartnerBaseInfoDO record); + } \ No newline at end of file diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml index f867dc6d3..5cfc81d42 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerBaseInfoMapper.xml @@ -296,6 +296,12 @@ left join hy_partner_line_info b on a.partner_line_id = b.id where a.id_card = #{idCard} and ( b.line_status != 3 and b.deleted = 0 ) + + update hy_partner_base_info @@ -305,5 +311,15 @@ id_card_photo_black = #{idCardPhotoBlack} where partner_line_id = #{partnerLineId} + + update hy_partner_base_info + + update_time=now(), + + user_portrait = #{userPortrait}, + + + where mobile = #{mobile} + \ No newline at end of file diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/SyncEcCustomerLabelDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/SyncEcCustomerLabelDO.java new file mode 100644 index 000000000..05e5e6c24 --- /dev/null +++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/SyncEcCustomerLabelDO.java @@ -0,0 +1,16 @@ +package com.cool.store.entity; + +import lombok.Data; +import lombok.experimental.Accessors; + +@Data +@Accessors(chain = true) +public class SyncEcCustomerLabelDO { + + + private String mobile; + + private String userPortrait; + + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java b/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java deleted file mode 100644 index dc48e4051..000000000 --- a/coolstore-partner-service/src/main/java/com/cool/store/job/EcSyncLabelJob.java +++ /dev/null @@ -1,43 +0,0 @@ -package com.cool.store.job; - -import cn.hutool.core.date.DateUtil; -import com.cool.store.utils.StringUtil; -import com.xxl.job.core.context.XxlJobHelper; -import com.xxl.job.core.handler.annotation.XxlJob; -import lombok.extern.slf4j.Slf4j; -import org.springframework.beans.factory.annotation.Value; -import org.springframework.stereotype.Component; - -/** - * @author hxd - */ -@Slf4j -@Component -public class EcSyncLabelJob { - - @Value("${ec.baseUrl:null}") - private String baseUrl; - - @XxlJob("SyncAppletToEcJob") - public void syncAppletToEcJob() { - XxlJobHelper.log("-------------------------------定时同步小程序数据到ec开始-------------------------------"); - syncEcLabelExecute(); - XxlJobHelper.log("-------------------------------定时同步小程序数据到ec结束-------------------------------"); - XxlJobHelper.handleSuccess(); - } - - - //定时同步小程序数据到ec - private void syncEcLabelExecute() { - // 获取参数 - String param = XxlJobHelper.getJobParam(); - String startTime = ""; - if (StringUtil.isNotEmpty(param)) { - XxlJobHelper.log("输入参数为:" + param); - startTime = param; - } - String endTime = DateUtil.now(); - - } - -} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java b/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java new file mode 100644 index 000000000..1d9d557a7 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java @@ -0,0 +1,91 @@ +package com.cool.store.job; + +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.date.DateUtil; +import cn.hutool.core.util.ObjectUtil; +import com.cool.store.entity.HyPartnerBaseInfoDO; +import com.cool.store.entity.SyncEcCustomerDO; +import com.cool.store.entity.SyncEcCustomerLabelDO; +import com.cool.store.mapper.HyPartnerBaseInfoMapper; +import com.cool.store.sdk.ec.EcClient; +import com.cool.store.sdk.ec.request.SyncEcCustomerLabelRequest; +import com.cool.store.sdk.ec.request.SyncEcCustomerRequest; +import com.cool.store.sdk.ec.response.SyncEcCustomerLabelResponse; +import com.cool.store.service.HyPartnerBaseInfoService; +import com.cool.store.utils.MybatisBatchUtils; +import com.cool.store.utils.StringUtil; +import com.xxl.job.core.context.XxlJobHelper; +import com.xxl.job.core.handler.annotation.XxlJob; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Component; +import org.springframework.util.CollectionUtils; + +import javax.annotation.Resource; +import java.util.List; +import java.util.stream.Collectors; + +/** + * @author hxd + */ +@Slf4j +@Component +public class SyncEcCustomerLabelJob { + + @Value("${ec.baseUrl:null}") + private String baseUrl; + + @Resource + private HyPartnerBaseInfoMapper hyPartnerBaseInfoMapper; + + @XxlJob("SyncEcCustomerLabelJob") + public void execute() { + XxlJobHelper.log("-------------------------------同步ec客户标签数据到小程序开始-------------------------------"); + syncEcLabelExecute(); + XxlJobHelper.log("-------------------------------同步ec标签数据到小程序结束-------------------------------"); + XxlJobHelper.handleSuccess(); + } + + @Autowired + private MybatisBatchUtils mybatisBatchUtils; + + private final Integer count = 10; + + /** + * 同步ec标签到招商数据库中 + */ + private void syncEcLabelExecute() { + //获取总数 + int size = hyPartnerBaseInfoMapper.selectAllList(); + //执行数 + int counts = size / count; + //取余,如果大于1,就再加一 + int yu = size % count; + if (yu > 0) { + counts += 1; + } + for (int i = 1; i <= counts; i++) { + XxlJobHelper.log("执行limit1:" + count * (i - 1) + ",执行limit2:" + count); + List list = hyPartnerBaseInfoMapper.selectListByLimit(count * (i - 1), count); + SyncEcCustomerLabelRequest syncEcCustomerLabelRequest = new SyncEcCustomerLabelRequest(); + syncEcCustomerLabelRequest.setParameter(list); + EcClient ecClient = new EcClient(); + SyncEcCustomerLabelResponse exec = ecClient.exec(baseUrl, syncEcCustomerLabelRequest); + if (ObjectUtil.isNull(exec)) { + continue; + } + List execList = exec.getData(); + if (CollectionUtils.isEmpty(execList)) { + continue; + } + List collect = execList.stream().map((item) -> { + HyPartnerBaseInfoDO hyPartnerBaseInfoDO = new HyPartnerBaseInfoDO(); + BeanUtil.copyProperties(item, hyPartnerBaseInfoDO); + return hyPartnerBaseInfoDO; + }).collect(Collectors.toList()); + mybatisBatchUtils.batchInsertOrUpdate(collect, HyPartnerBaseInfoMapper.class, (record, mapper) -> mapper.updateByMobile(record)); + } + } + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/request/SyncEcCustomerLabelRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/request/SyncEcCustomerLabelRequest.java new file mode 100644 index 000000000..10ec923f0 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/request/SyncEcCustomerLabelRequest.java @@ -0,0 +1,21 @@ +package com.cool.store.sdk.ec.request; + +import com.cool.store.sdk.ec.core.EcRequest; +import com.cool.store.sdk.ec.response.SyncEcCustomerLabelResponse; + +/** + * @author hxd + */ +public class SyncEcCustomerLabelRequest extends EcRequest { + + @Override + public String getApiUrl() { + return "/ec/appletToEcLabel"; + } + + + @Override + public Class getResponseClass() { + return SyncEcCustomerLabelResponse.class; + } +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/response/SyncEcCustomerLabelResponse.java b/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/response/SyncEcCustomerLabelResponse.java new file mode 100644 index 000000000..bff4190f0 --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/sdk/ec/response/SyncEcCustomerLabelResponse.java @@ -0,0 +1,22 @@ +package com.cool.store.sdk.ec.response; + + +import com.cool.store.entity.SyncEcCustomerLabelDO; +import com.cool.store.sdk.ec.core.EcResponse; +import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +import java.util.List; + +/** + * @author hxd + */ +@EqualsAndHashCode(callSuper = true) +@Data +@Accessors(chain = true) +public class SyncEcCustomerLabelResponse extends EcResponse { + + private List data; + +} diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java index 5b7d99db6..dcdf395b8 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LabelServiceImpl.java @@ -111,7 +111,8 @@ public class LabelServiceImpl implements LabelService { @Override public void addEcLabel(HyPartnerLabelDO hyPartnerLabelDO) { - hyPartnerLabelDO.setEditDate(new Date()).setCreateTime(new Date()).setEditUserId(createUserId).setCreateUserId(createUserId); + hyPartnerLabelDO.setEditDate(new Date()).setCreateTime(new Date()).setEditUserId(createUserId).setCreateUserId(createUserId) + .setUpdateUserId(createUserId); labelMapper.insertSelective(hyPartnerLabelDO); } diff --git a/coolstore-partner-service/src/main/java/com/cool/store/utils/MybatisBatchUtils.java b/coolstore-partner-service/src/main/java/com/cool/store/utils/MybatisBatchUtils.java new file mode 100644 index 000000000..90dba4d4c --- /dev/null +++ b/coolstore-partner-service/src/main/java/com/cool/store/utils/MybatisBatchUtils.java @@ -0,0 +1,56 @@ +package com.cool.store.utils; + +import org.apache.ibatis.session.ExecutorType; +import org.apache.ibatis.session.SqlSession; +import org.apache.ibatis.session.SqlSessionFactory; +import org.mybatis.spring.SqlSessionFactoryBean; +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass; +import org.springframework.stereotype.Component; + +import javax.annotation.Resource; +import java.util.List; +import java.util.function.BiConsumer; + +@Component +@ConditionalOnClass({SqlSessionFactory.class, SqlSessionFactoryBean.class}) +public class MybatisBatchUtils { + + /** + * 每次处理500条 + */ + private static final int BATCH_SIZE = 500; + + @Resource + private SqlSessionFactory sqlSessionFactory; + + /** + * 批量处理修改或者插入 + * + * @param data 需要被处理的数据 + * @param mapperClass Mybatis的Mapper类 + * @param consumer 自定义处理逻辑 + * @return int 影响的总行数 + * @author renwd + */ + public int batchInsertOrUpdate(List data, Class mapperClass, BiConsumer consumer) { + int i = 1; + SqlSession sqlSession = sqlSessionFactory.openSession(ExecutorType.BATCH); + try { + U mapper = sqlSession.getMapper(mapperClass); + int size = data.size(); + for (T element : data) { + consumer.accept(element, mapper); + if ((i % BATCH_SIZE == 0) || i == size) { + sqlSession.flushStatements(); + } + i++; + } + sqlSession.commit(); + } catch (Exception e) { + throw new RuntimeException(e); + } finally { + sqlSession.close(); + } + return i - 1; + } +} diff --git a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java index 431e1feb6..4ddcbc071 100644 --- a/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java +++ b/coolstore-partner-webb/src/main/java/com/cool/store/config/TokenValidateFilter.java @@ -51,6 +51,7 @@ public class TokenValidateFilter implements Filter { //TODO 800回调地址暂时不做验证 "/partner/pc/flow/qualificationReview/callback", "/**/ecSync/ecToApplet/**", + "/**/ecSync/labelInfo/**", "/partner/pc/websocket/**", "/partner/pc/call/**"); From b8e23ad785d84dea36f24b5d415c575e2ec2c871 Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Wed, 30 Aug 2023 15:31:53 +0800 Subject: [PATCH 4/4] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ec=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E5=90=8C=E6=AD=A5=E4=BB=A3=E7=A0=81=EF=BC=9B=E4=BC=98=E5=8C=96?= =?UTF-8?q?excel=E4=B8=AD=E6=89=8B=E6=9C=BA=E5=8F=B7=E9=87=8D=E5=90=8D?= =?UTF-8?q?=E6=83=85=E5=86=B5=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../store/constants/ExcelErrorConstants.java | 2 + .../mapper/HyPartnerUserInfoMapper.xml | 65 +++++++++++-------- .../store/job/SyncEcCustomerLabelJob.java | 2 +- .../store/service/impl/EcSyncServiceImpl.java | 64 +++++++++++------- .../service/impl/LineHighSeasServiceImpl.java | 10 +++ 5 files changed, 91 insertions(+), 52 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java index eb3b563d6..f461fb4e0 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/ExcelErrorConstants.java @@ -29,4 +29,6 @@ public class ExcelErrorConstants { public static final String COUNT_MORE = "每次数据最多导入500条,请分批上传"; + public static final String MOBILE_REPEAT = "手机号重复"; + } diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml index aded113d2..6cb81f7f8 100644 --- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml +++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml @@ -55,18 +55,23 @@ diff --git a/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java b/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java index 1d9d557a7..3ae52a0df 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/job/SyncEcCustomerLabelJob.java @@ -50,7 +50,7 @@ public class SyncEcCustomerLabelJob { @Autowired private MybatisBatchUtils mybatisBatchUtils; - private final Integer count = 10; + private final Integer count = 20; /** * 同步ec标签到招商数据库中 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 09bcc1695..fd73adfdf 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 @@ -9,7 +9,7 @@ import com.cool.store.dao.EnterpriseUserDAO; import com.cool.store.dao.HyPartnerBaseInfoDAO; import com.cool.store.dao.HyPartnerLineInfoDAO; import com.cool.store.dao.HyPartnerUserInfoDAO; -import com.cool.store.dto.label.LabelAddDTO; +import com.cool.store.dto.partner.LineCountDTO; import com.cool.store.entity.*; import com.cool.store.enums.LineStatusEnum; import com.cool.store.enums.WorkflowStageEnum; @@ -39,9 +39,11 @@ import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.CollectionUtils; import javax.annotation.Resource; import java.io.IOException; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -208,25 +210,28 @@ public class EcSyncServiceImpl implements EcSyncService { hyPartnerLineInfoDAO.updateByPrimaryKeySelective(resultLine); } } else { - EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(partnerLine.getInvestmentManager()); - enterpriseUser.setMobile(getNoWith86Number(enterpriseUser.getMobile())); - //电话相同但是名字不同 - if (enterpriseUser.getMobile().equals(followUserMobile) && !enterpriseUser.getName().equals(followUserName)) { - ChangeFollowUserRequest changeFollowUserRequest = new ChangeFollowUserRequest(); - ChangeFollowUserBo changeFollowUserBo = new ChangeFollowUserBo(); - changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) - .setType(1).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); - changeFollowUserRequest.setParameter(changeFollowUserBo); - ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); - } - //电话不同 - if (!enterpriseUser.getMobile().equals(followUserMobile)) { - ChangeFollowUserRequest changeFollowUserRequest = new ChangeFollowUserRequest(); - ChangeFollowUserBo changeFollowUserBo = new ChangeFollowUserBo(); - changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) - .setType(2).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); - changeFollowUserRequest.setParameter(changeFollowUserBo); - ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); + if (!getFollowLineStatus(partnerLine)) { + //私海 + EnterpriseUserDO enterpriseUser = enterpriseUserDAO.getUserInfoById(partnerLine.getInvestmentManager()); + enterpriseUser.setMobile(getNoWith86Number(enterpriseUser.getMobile())); + //电话相同但是名字不同 + if (enterpriseUser.getMobile().equals(followUserMobile) && !enterpriseUser.getName().equals(followUserName)) { + ChangeFollowUserRequest changeFollowUserRequest = new ChangeFollowUserRequest(); + ChangeFollowUserBo changeFollowUserBo = new ChangeFollowUserBo(); + changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) + .setType(1).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); + changeFollowUserRequest.setParameter(changeFollowUserBo); + ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); + } + //电话不同 + if (!enterpriseUser.getMobile().equals(followUserMobile)) { + ChangeFollowUserRequest changeFollowUserRequest = new ChangeFollowUserRequest(); + ChangeFollowUserBo changeFollowUserBo = new ChangeFollowUserBo(); + changeFollowUserBo.setFollowUserId(customerInfoItem.getLastFollowUserId()).setCrmId(customerInfoItem.getCrmId()) + .setType(2).setUsername(enterpriseUser.getName()).setMobile(enterpriseUser.getMobile()); + changeFollowUserRequest.setParameter(changeFollowUserBo); + ChangeFollowUserResponse changeFollowUserExec = ecClient.exec(baseUrl, changeFollowUserRequest); + } } } //base表 @@ -257,10 +262,23 @@ public class EcSyncServiceImpl implements EcSyncService { } } - public static void main(String[] args) { - Integer a=null; - System.out.println(a.equals("bb")); + /** + *招商公海内跟进次数大于等于1的用户EC同步该用户进去公海,假若跟进次数为0的同步到EC跟进人就是唐佑玉 + * @param partnerLine + * @return true为公海 false:私海 + */ + public Boolean getFollowLineStatus(HyPartnerLineInfoDO partnerLine){ + if(partnerLine.getLineStatus()!=0){ + return Boolean.FALSE; + } + ArrayList list = new ArrayList<>(); + list.add(partnerLine.getPartnerId()); + List followCountList = hyPartnerLineInfoDAO.getFollowCountList(list); + if (!CollectionUtils.isEmpty(followCountList)) { + return followCountList.get(0).getFollowCount()>0; + } + return Boolean.FALSE; } /** diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java index 3de180c12..f70a855b9 100644 --- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java +++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/LineHighSeasServiceImpl.java @@ -36,6 +36,7 @@ import java.util.List; import java.util.Map; import java.util.regex.Matcher; import java.util.regex.Pattern; +import java.util.stream.Collectors; @Service public class LineHighSeasServiceImpl implements LineHighSeasService { @@ -145,6 +146,10 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { String fileStr = ossServer.uploadFileServer(stream, dir + getExcelName()); return new ResponseResult(500, "共上传" + lineDOList.size() + "条线索,其中" + styleCells.size() + "条存在异常", new ErrorExcelResponse(lineDOList.size(), styleCells.size(), fileStr)); } + //获取重复手机号集合 + List uniqueList = lineDOList.stream().filter(item->StringUtil.isNotEmpty(item.getMobile())).collect(Collectors.groupingBy(HyPartnerLineDO::getMobile, Collectors.counting())) + .entrySet().stream().filter(e -> e.getValue() > 1) + .map(Map.Entry::getKey).collect(Collectors.toList()); for (int i = 0; i < lineDOList.size(); i++) { HyPartnerLineDO hyPartnerLineDO = lineDOList.get(i); String partnerName = hyPartnerLineDO.getPartnerName(); @@ -174,6 +179,11 @@ public class LineHighSeasServiceImpl implements LineHighSeasService { hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.MOBILE_EXIST : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.MOBILE_EXIST)); ExcelUtil.setStyleMap(styleCells, i, 1, new String[]{ExcelUtil.FONT_RED}); } + //手机号重复 + if (uniqueList.contains(mobile)) { + hyPartnerLineDO.setErrorInfo(StringUtil.isEmpty(hyPartnerLineDO.getErrorInfo()) ? ExcelErrorConstants.MOBILE_REPEAT : hyPartnerLineDO.getErrorInfo().concat(Constants.SEMICOLON).concat(ExcelErrorConstants.MOBILE_REPEAT)); + ExcelUtil.setStyleMap(styleCells, i, 1, new String[]{ExcelUtil.FONT_RED}); + } } //常驻区域为空 String liveArea = hyPartnerLineDO.getLiveAreaReplace().trim();