From 5e3672a6742c47c13d4c9e8b4e18fd48dde59f56 Mon Sep 17 00:00:00 2001 From: "xiaodong.hu" <1075471126@qq.com> Date: Fri, 27 Oct 2023 17:24:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0ec=E5=90=8C=E6=AD=A5=E5=90=8E?= =?UTF-8?q?=E5=91=98=E5=B7=A5=E7=AB=AF=E6=8E=A5=E6=94=B6=E9=A3=9E=E4=B9=A6?= =?UTF-8?q?=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cool/store/enums/FeiShuNoticeMsgEnum.java | 1 + .../com/cool/store/enums/OperateTypeEnum.java | 1 + .../store/service/impl/EcSyncServiceImpl.java | 75 +++++++++++++++---- 3 files changed, 64 insertions(+), 13 deletions(-) diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java index bbcb200a3..612969de3 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/FeiShuNoticeMsgEnum.java @@ -13,6 +13,7 @@ public enum FeiShuNoticeMsgEnum { ALLOCATION_INVESTMENT_MANAGER("分配招商经理", "有新的线索于 {0} 分配给您,线索信息 {1} 手机号 {2},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"), TRANS_INVESTMENT_MANAGER("转让招商经理", "有新的线索于 {0} 转让给您,线索信息 {1} 手机号 {2},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"), BATCH_TRANS_INVESTMENT_MANAGER("收到新线索", "有{0}条新线索于 {1} 转让给您,请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"), + EC_RECEIVE_LINE("收到EC新线索", "有{0}条新线索于EC同步给您,线索信息 {1},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"), INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g", "1567d83b966f2d312fd7fcd2e72dbce9"), FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g", "1567d83b966f2d312fd7fcd2e72dbce9"), INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g", "1567d83b966f2d312fd7fcd2e72dbce9"), diff --git a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java index 1c57efba3..2929276be 100644 --- a/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java +++ b/coolstore-partner-common/src/main/java/com/cool/store/enums/OperateTypeEnum.java @@ -13,6 +13,7 @@ import static com.cool.store.enums.OperateLogFieldValueEnum.*; */ public enum OperateTypeEnum { + EC_SYNC_ADD_LINE("ec_sync_add_line", "ec同步新增线索", Arrays.asList(MOBILE,OPERATE_TIME, OPERATE_USER_ID, OPERATE_USER_NAME)), ALLOCATION_INVESTMENT_MANAGER("allocation_investment_manager", "分配招商经理", Arrays.asList(ALLOCATION_USERID,ALLOCATION_USERNAME, MOBILE, OPERATE_TIME)), ADD_BLACKLIST("add_blacklist", "加入黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), REMOVE_BLACKLIST("remove_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)), 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 a8d390e2d..7f2a89b4c 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 @@ -8,15 +8,13 @@ import cn.hutool.http.HttpUtil; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.cool.store.constants.CommonConstants; -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.constants.MessageConstants; +import com.cool.store.dao.*; +import com.cool.store.dto.log.BlackListLogDTO; +import com.cool.store.dto.log.LineLogInfo; import com.cool.store.dto.partner.LineCountDTO; import com.cool.store.entity.*; -import com.cool.store.enums.LineStatusEnum; -import com.cool.store.enums.WorkflowStageEnum; -import com.cool.store.enums.WorkflowStatusEnum; +import com.cool.store.enums.*; import com.cool.store.exception.ApiException; import com.cool.store.http.EventCenterHttpRequest; import com.cool.store.http.UserSourceResponse; @@ -34,10 +32,7 @@ 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.MybatisBatchUtils; -import com.cool.store.utils.Post; -import com.cool.store.utils.StringUtil; -import com.cool.store.utils.UUIDUtils; +import com.cool.store.utils.*; import com.cool.store.utils.poi.constant.Constants; import lombok.SneakyThrows; import lombok.extern.slf4j.Slf4j; @@ -73,6 +68,9 @@ public class EcSyncServiceImpl implements EcSyncService { private EnterpriseUserDAO enterpriseUserDAO; + @Resource + HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO; + @Resource private MybatisBatchUtils mybatisBatchUtils; @@ -89,17 +87,37 @@ public class EcSyncServiceImpl implements EcSyncService { @Resource private EventCenterHttpRequest eventCenterHttpRequest; + + @Value("${ec.sync.createUserId:null}") + private String operateId; + + + private final String operateName="EC系统"; + @Override public boolean ecToApplet(List queryListData) { + Map> sendUserMap = new HashMap<>(); for (CustomerInfoRequest customerInfoItem : queryListData) { try { - Map> sendUserMap = new HashMap<>(); insertSelectiveSync(customerInfoItem, false, sendUserMap); } catch (Exception e) { log.error("ec同步至招商小程序报错" + JSONObject.toJSONString(e)); sendFeiShuRobotMessage("推送:" + JSONObject.toJSONString(e), "27243d49-97ca-4981-8aec-7c3bf84eb660"); } } + sendUserMap.forEach((k, v) -> { + //将多个电话与姓名拼接在一块 + String str = v.stream().map(item -> item.getUsername().concat(item.getMobile())).collect(Collectors.joining(Constants.COMMA)); + Map feishuUserIdsByUserIds = enterpriseUserDAO.getFeishuUserIdsByUserIds(new ArrayList() {{ + add(k); + }}); + List feishuIds = feishuUserIdsByUserIds.entrySet().stream().map(Map.Entry::getKey).collect(Collectors.toList()); + try { + eventCenterHttpRequest.sendFeiShuNotice(FeiShuNoticeMsgEnum.EC_RECEIVE_LINE,feishuIds,v.size(),str); + } catch (ApiException e) { + log.error("ec同步至招商发送飞书通知错误" + JSONObject.toJSONString(e)); + } + }); return false; } @@ -272,6 +290,7 @@ public class EcSyncServiceImpl implements EcSyncService { /** * 发送请求更改ec线索跟进人 + * * @param customerInfoItem * @param ecClient * @param enterpriseUser @@ -288,6 +307,7 @@ public class EcSyncServiceImpl implements EcSyncService { /** * 发送请求更改ec客户 + * * @param customerInfoItem * @param newUserInfo * @param ecClient @@ -300,6 +320,15 @@ public class EcSyncServiceImpl implements EcSyncService { UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl, updateUserRequest); } + /** + * 添加线索信息 + * @param sendUserMap + * @param newPartnerId + * @param resultBase + * @param resultUser + * @param time + * @param resultLine + */ private void insertUserInfo(Map> sendUserMap, String newPartnerId, HyPartnerBaseInfoDO resultBase, HyPartnerUserInfoDO resultUser, Date time, HyPartnerLineInfoDO resultLine) { resultLine.setPartnerId(newPartnerId).setCreateTime(time).setUpdateTime(time); hyPartnerLineInfoDAO.insertSelective(resultLine); @@ -307,11 +336,31 @@ public class EcSyncServiceImpl implements EcSyncService { resultBase.setPartnerId(newPartnerId).setPartnerLineId(resultLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())). setCreateTime(time).setUpdateTime(time); hyPartnerBaseInfoDAO.insertSelective(resultBase); - putElement(sendUserMap, newPartnerId, resultUser); + //存放待发送飞书通知消息 + putElement(sendUserMap, resultLine.getInvestmentManager(), resultUser); + //添加新增线索的ec操作日志 + LineLogInfo lineLogInfo = new LineLogInfo(newPartnerId, resultLine.getId(), operateId, + operateName, OperateTypeEnum.EC_SYNC_ADD_LINE, + WorkflowStageEnum.getWorkflowStageByCode(resultLine.getWorkflowStage()), + WorkflowStatusEnum.INTENT_0.getCode(), ""); + BlackListLogDTO logDTO = BlackListLogDTO.builder().operateUserId(operateId).operateUsername(operateName) + .mobile(resultBase.getMobile()).operateTime(DateUtil.format(new Date(), CoolDateUtils.DATE_FORMAT_SEC_2)).build(); + lineLogInfo.setData(logDTO); + hyPartnerTaskInfoLogDAO.addOperateLog(lineLogInfo); } + /** + * 存放待发送飞书通知消息 + * + * @param sendUserMap + * @param key + * @param element + */ private void putElement(Map> sendUserMap, String key, HyPartnerUserInfoDO element) { + if (StringUtil.isEmpty(key)) { + return; + } List list = sendUserMap.get(key); if (CollectionUtils.isEmpty(list)) { ArrayList hyPartnerUserInfoDOS = new ArrayList<>();