添加ec同步后员工端接收飞书通知

This commit is contained in:
xiaodong.hu
2023-10-27 17:24:29 +08:00
parent 5498832bd4
commit 5e3672a674
3 changed files with 64 additions and 13 deletions

View File

@@ -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<CustomerInfoRequest> queryListData) {
Map<String, List<HyPartnerUserInfoDO>> sendUserMap = new HashMap<>();
for (CustomerInfoRequest customerInfoItem : queryListData) {
try {
Map<String, List<HyPartnerUserInfoDO>> 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<String, String> feishuUserIdsByUserIds = enterpriseUserDAO.getFeishuUserIdsByUserIds(new ArrayList<String>() {{
add(k);
}});
List<String> 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<String, List<HyPartnerUserInfoDO>> 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<String, List<HyPartnerUserInfoDO>> sendUserMap, String key, HyPartnerUserInfoDO element) {
if (StringUtil.isEmpty(key)) {
return;
}
List<HyPartnerUserInfoDO> list = sendUserMap.get(key);
if (CollectionUtils.isEmpty(list)) {
ArrayList<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = new ArrayList<>();