添加ec同步后员工端接收飞书通知
This commit is contained in:
@@ -13,6 +13,7 @@ public enum FeiShuNoticeMsgEnum {
|
|||||||
ALLOCATION_INVESTMENT_MANAGER("分配招商经理", "有新的线索于 {0} 分配给您,线索信息 {1} 手机号 {2},请及时跟进", "img_v2_33296002-829e-490e-bd11-0d9ae763a67g", "1567d83b966f2d312fd7fcd2e72dbce9"),
|
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"),
|
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"),
|
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"),
|
INTENTION_APPLY("加盟意向申请", "您有一个【加盟意向申请】待审核,申请人 {0} 手机号 {1} 于 {2} 提交加盟意向申请,请及时处理", "img_v2_c909097d-67d1-4c11-a911-a2584b67ca6g", "1567d83b966f2d312fd7fcd2e72dbce9"),
|
||||||
FOLLOW_TASK("线索跟进任务", "{0}", "img_v2_1960b7ef-8c4e-4c3d-8b67-3d918a85578g", "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"),
|
INTERVIEW_APPOINTMENT("面试预约申请", "您有一个【面试预约申请】待处理,预约人 {0} 手机号 {1} ,预约面试时间 {2} ","img_v2_107bb06b-2a7a-43e1-a6ae-e5d2f2dae17g", "1567d83b966f2d312fd7fcd2e72dbce9"),
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ import static com.cool.store.enums.OperateLogFieldValueEnum.*;
|
|||||||
*/
|
*/
|
||||||
public enum OperateTypeEnum {
|
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)),
|
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)),
|
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)),
|
REMOVE_BLACKLIST("remove_blacklist", "移除黑名单", Arrays.asList(OPERATE_USER_ID,OPERATE_USER_NAME, MOBILE, OPERATE_TIME, REASON)),
|
||||||
|
|||||||
@@ -8,15 +8,13 @@ import cn.hutool.http.HttpUtil;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.cool.store.constants.CommonConstants;
|
import com.cool.store.constants.CommonConstants;
|
||||||
import com.cool.store.dao.EnterpriseUserDAO;
|
import com.cool.store.constants.MessageConstants;
|
||||||
import com.cool.store.dao.HyPartnerBaseInfoDAO;
|
import com.cool.store.dao.*;
|
||||||
import com.cool.store.dao.HyPartnerLineInfoDAO;
|
import com.cool.store.dto.log.BlackListLogDTO;
|
||||||
import com.cool.store.dao.HyPartnerUserInfoDAO;
|
import com.cool.store.dto.log.LineLogInfo;
|
||||||
import com.cool.store.dto.partner.LineCountDTO;
|
import com.cool.store.dto.partner.LineCountDTO;
|
||||||
import com.cool.store.entity.*;
|
import com.cool.store.entity.*;
|
||||||
import com.cool.store.enums.LineStatusEnum;
|
import com.cool.store.enums.*;
|
||||||
import com.cool.store.enums.WorkflowStageEnum;
|
|
||||||
import com.cool.store.enums.WorkflowStatusEnum;
|
|
||||||
import com.cool.store.exception.ApiException;
|
import com.cool.store.exception.ApiException;
|
||||||
import com.cool.store.http.EventCenterHttpRequest;
|
import com.cool.store.http.EventCenterHttpRequest;
|
||||||
import com.cool.store.http.UserSourceResponse;
|
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.EcSyncService;
|
||||||
import com.cool.store.service.LabelGroupService;
|
import com.cool.store.service.LabelGroupService;
|
||||||
import com.cool.store.service.LabelService;
|
import com.cool.store.service.LabelService;
|
||||||
import com.cool.store.utils.MybatisBatchUtils;
|
import com.cool.store.utils.*;
|
||||||
import com.cool.store.utils.Post;
|
|
||||||
import com.cool.store.utils.StringUtil;
|
|
||||||
import com.cool.store.utils.UUIDUtils;
|
|
||||||
import com.cool.store.utils.poi.constant.Constants;
|
import com.cool.store.utils.poi.constant.Constants;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
@@ -73,6 +68,9 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
private EnterpriseUserDAO enterpriseUserDAO;
|
private EnterpriseUserDAO enterpriseUserDAO;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
HyPartnerTaskInfoLogDAO hyPartnerTaskInfoLogDAO;
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private MybatisBatchUtils mybatisBatchUtils;
|
private MybatisBatchUtils mybatisBatchUtils;
|
||||||
|
|
||||||
@@ -89,17 +87,37 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
@Resource
|
@Resource
|
||||||
private EventCenterHttpRequest eventCenterHttpRequest;
|
private EventCenterHttpRequest eventCenterHttpRequest;
|
||||||
|
|
||||||
|
|
||||||
|
@Value("${ec.sync.createUserId:null}")
|
||||||
|
private String operateId;
|
||||||
|
|
||||||
|
|
||||||
|
private final String operateName="EC系统";
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean ecToApplet(List<CustomerInfoRequest> queryListData) {
|
public boolean ecToApplet(List<CustomerInfoRequest> queryListData) {
|
||||||
|
Map<String, List<HyPartnerUserInfoDO>> sendUserMap = new HashMap<>();
|
||||||
for (CustomerInfoRequest customerInfoItem : queryListData) {
|
for (CustomerInfoRequest customerInfoItem : queryListData) {
|
||||||
try {
|
try {
|
||||||
Map<String, List<HyPartnerUserInfoDO>> sendUserMap = new HashMap<>();
|
|
||||||
insertSelectiveSync(customerInfoItem, false, sendUserMap);
|
insertSelectiveSync(customerInfoItem, false, sendUserMap);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("ec同步至招商小程序报错" + JSONObject.toJSONString(e));
|
log.error("ec同步至招商小程序报错" + JSONObject.toJSONString(e));
|
||||||
sendFeiShuRobotMessage("推送:" + JSONObject.toJSONString(e), "27243d49-97ca-4981-8aec-7c3bf84eb660");
|
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;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -272,6 +290,7 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送请求更改ec线索跟进人
|
* 发送请求更改ec线索跟进人
|
||||||
|
*
|
||||||
* @param customerInfoItem
|
* @param customerInfoItem
|
||||||
* @param ecClient
|
* @param ecClient
|
||||||
* @param enterpriseUser
|
* @param enterpriseUser
|
||||||
@@ -288,6 +307,7 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 发送请求更改ec客户
|
* 发送请求更改ec客户
|
||||||
|
*
|
||||||
* @param customerInfoItem
|
* @param customerInfoItem
|
||||||
* @param newUserInfo
|
* @param newUserInfo
|
||||||
* @param ecClient
|
* @param ecClient
|
||||||
@@ -300,6 +320,15 @@ public class EcSyncServiceImpl implements EcSyncService {
|
|||||||
UpdateCustomerResponse updateUserExec = ecClient.exec(baseUrl, updateUserRequest);
|
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) {
|
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);
|
resultLine.setPartnerId(newPartnerId).setCreateTime(time).setUpdateTime(time);
|
||||||
hyPartnerLineInfoDAO.insertSelective(resultLine);
|
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())).
|
resultBase.setPartnerId(newPartnerId).setPartnerLineId(resultLine.getId()).setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode())).
|
||||||
setCreateTime(time).setUpdateTime(time);
|
setCreateTime(time).setUpdateTime(time);
|
||||||
hyPartnerBaseInfoDAO.insertSelective(resultBase);
|
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) {
|
private void putElement(Map<String, List<HyPartnerUserInfoDO>> sendUserMap, String key, HyPartnerUserInfoDO element) {
|
||||||
|
if (StringUtil.isEmpty(key)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
List<HyPartnerUserInfoDO> list = sendUserMap.get(key);
|
List<HyPartnerUserInfoDO> list = sendUserMap.get(key);
|
||||||
if (CollectionUtils.isEmpty(list)) {
|
if (CollectionUtils.isEmpty(list)) {
|
||||||
ArrayList<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = new ArrayList<>();
|
ArrayList<HyPartnerUserInfoDO> hyPartnerUserInfoDOS = new ArrayList<>();
|
||||||
|
|||||||
Reference in New Issue
Block a user