Commit c64318b1 by 墨竹

feat:欧泊莱定制需求

parent dce837f7
...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl; ...@@ -3,6 +3,12 @@ package com.gic.haoban.manage.service.service.impl;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.common.utils.EntityUtil; import com.gic.haoban.common.utils.EntityUtil;
import com.gic.haoban.common.utils.StringUtil; import com.gic.haoban.common.utils.StringUtil;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO; import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
...@@ -17,8 +23,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation; ...@@ -17,8 +23,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService; import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.service.MemberApiService;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.MemberService;
import com.gic.mq.sdk.GicMQClient;
import com.gic.search.engine.api.dto.ESResponseQuerySingle; import com.gic.search.engine.api.dto.ESResponseQuerySingle;
import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO; import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService; import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
...@@ -52,6 +62,12 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -52,6 +62,12 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper; private TabHaobanStaffClerkRelationMapper staffClerkRelationMapper;
@Autowired @Autowired
private WxUserAddLogService wxUserAddLogService; private WxUserAddLogService wxUserAddLogService;
@Autowired
private StoreService storeService;
@Autowired
private ClerkService clerkService;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override @Override
public void insert(TabHaobanExternalClerkRelated related) { public void insert(TabHaobanExternalClerkRelated related) {
...@@ -69,13 +85,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -69,13 +85,13 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
@Override @Override
public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto , String wxUserId) { public void delByUserIdAndExternalUserId(MemberUnionidRelatedDTO dto, String wxUserId) {
int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto)); int count = mapper.delByUserIdAndExternalUserId(EntityUtil.changeEntityByJSON(TabHaobanExternalClerkRelated.class, dto));
if (count <= 0) { if (count <= 0) {
logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto)); logger.error("无需删除的好友数据:{}", JSON.toJSONString(dto));
return; return;
} }
String staffId = dto.getStaffId() ; String staffId = dto.getStaffId();
String externalUserid = dto.getExternalUserid(); String externalUserid = dto.getExternalUserid();
List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2); List<TabHaobanExternalClerkRelated> tabHaobanExternalClerkRelatedList = mapper.listByExTernalUseridAndWxUserId(externalUserid, staffId, 2);
if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) { if (CollectionUtils.isEmpty(tabHaobanExternalClerkRelatedList)) {
...@@ -91,7 +107,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -91,7 +107,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
} }
staffId = tabHaobanStaff.getStaffId(); staffId = tabHaobanStaff.getStaffId();
List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId,null); List<TabHaobanStaffClerkRelation> tabHaobanStaffClerkRelations = staffClerkRelationMapper.lisByStaffId(wxEnterpriseId, staffId, null);
if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) { if (CollectionUtils.isEmpty(tabHaobanStaffClerkRelations)) {
logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId); logger.error("找不到员工导购关联关系:staffId:{},wxEnterpriseId:{}", staffId, wxEnterpriseId);
return; return;
...@@ -129,6 +145,64 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -129,6 +145,64 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
wxUserAddLogQDTO.setStaffId(related.getStaffId()); wxUserAddLogQDTO.setStaffId(related.getStaffId());
wxUserAddLogQDTO.setClerkId(related.getClerkId()); wxUserAddLogQDTO.setClerkId(related.getClerkId());
wxUserAddLogService.save(wxUserAddLogQDTO); wxUserAddLogService.save(wxUserAddLogQDTO);
//定制
addFriendEvent(related.getUnionid(), related.getClerkId(), enterpriseId, related.getMemberId(), related.getStoreId());
}
/**
* 欧泊莱定制需求
*
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName", storeDTO.getStoreName());
msgBody.put("storeCode", storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName", clerkDTO.getClerkName());
msgBody.put("clerkCode", clerkDTO.getClerkCode());
}
msgBody.put("changeType", 0);
msgBody.put("addCreateTime", "");
msgBody.put("delCreateTime", new Date());
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
logger.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
} }
@Override @Override
......
...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON; ...@@ -7,6 +7,7 @@ import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.api.base.commons.JSONResponse; import com.gic.api.base.commons.JSONResponse;
import com.gic.api.base.dto.SubscribeMessageDTO;
import com.gic.clerk.api.dto.ClerkDTO; import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.clerk.api.service.PowerService; import com.gic.clerk.api.service.PowerService;
...@@ -61,10 +62,9 @@ import com.gic.haoban.manage.service.service.hm.WxUserAddLogService; ...@@ -61,10 +62,9 @@ import com.gic.haoban.manage.service.service.hm.WxUserAddLogService;
import com.gic.haoban.manage.service.util.CommonUtil; import com.gic.haoban.manage.service.util.CommonUtil;
import com.gic.haoban.manage.service.util.EmojiFilterUtil; import com.gic.haoban.manage.service.util.EmojiFilterUtil;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberApiService; import com.gic.member.api.dto.MemberSourceDetailDTO;
import com.gic.member.api.service.MemberOpenCardBusinessService; import com.gic.member.api.dto.MemberSourceShowDTO;
import com.gic.member.api.service.MemberService; import com.gic.member.api.service.*;
import com.gic.member.api.service.MemberStoreService;
import com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO; import com.gic.member.tag.api.dto.outapi.MemberTagSingleDTO;
import com.gic.member.tag.api.service.MemberTagOpenApiService; import com.gic.member.tag.api.service.MemberTagOpenApiService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
...@@ -170,6 +170,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -170,6 +170,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
private HmClerkRelationApiService hmClerkRelationApiService; private HmClerkRelationApiService hmClerkRelationApiService;
@Autowired @Autowired
private StaffMapper staffMapper ; private StaffMapper staffMapper ;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
@Override @Override
...@@ -549,6 +551,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -549,6 +551,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
} }
String memberId = member.getMemberId(); String memberId = member.getMemberId();
String storeId = staffClerkRelationDTO.getStoreId();
List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, staffId); List<TabHaobanExternalClerkRelated> externalClerkRelateds = externalClerkRelatedService.listByExTernalUseridAndWxUserIdAllStatus(wxEnterpriseId, externalUserid, staffId);
String relationKey = SecureUtil.md5(staffId + externalUserid); String relationKey = SecureUtil.md5(staffId + externalUserid);
String memberUnionidRelatedId = dto.getMemberUnionidRelatedId(); String memberUnionidRelatedId = dto.getMemberUnionidRelatedId();
...@@ -563,7 +566,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -563,7 +566,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
related.setStaffId(staffId); related.setStaffId(staffId);
related.setHeadUrl(dto.getAvatar()); related.setHeadUrl(dto.getAvatar());
related.setMemberUnionidRelatedId(memberUnionidRelatedId); related.setMemberUnionidRelatedId(memberUnionidRelatedId);
related.setStoreId(staffClerkRelationDTO.getStoreId()); related.setStoreId(storeId);
related.setRelationKey(relationKey); related.setRelationKey(relationKey);
related.setUnionid(unionId); related.setUnionid(unionId);
related.setWxEnterpriseId(wxEnterpriseId); related.setWxEnterpriseId(wxEnterpriseId);
...@@ -578,7 +581,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -578,7 +581,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setUnionid(unionId); exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey); exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(dto.getAvatar()); exsitDTO.setHeadUrl(dto.getAvatar());
exsitDTO.setStoreId(staffClerkRelationDTO.getStoreId()); exsitDTO.setStoreId(storeId);
exsitDTO.setEnterpriseId(enterpriseId); exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(clerkId); exsitDTO.setClerkId(clerkId);
exsitDTO.setStatusFlag(1); exsitDTO.setStatusFlag(1);
...@@ -598,9 +601,66 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -598,9 +601,66 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//回调给会员,更新是否为企微好友 //回调给会员,更新是否为企微好友
log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId); log.info("通知会员 合并会员后更新为企微好友,memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制事件订阅
addFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId);
return memberId; return memberId;
} }
/**
* 欧泊莱定制需求
* @param unionId
* @param clerkId
* @param enterpriseId
* @param memberId
* @param storeId
*/
private void addFriendEvent(String unionId, String clerkId, String enterpriseId, String memberId, String storeId) {
//欧泊莱定制需求
ClerkDTO clerkDTO = clerkService.getClerkByClerkId(clerkId);
StoreDTO storeDTO = storeService.getStore(storeId);
MemberDTO member = memberService.getMember(memberId);
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
JSONObject msgBody = new JSONObject();
msgBody.put("cardNum", member.getCardNum());
msgBody.put("enterpriseId", enterpriseId);
msgBody.put("unionid", unionId);
if (storeDTO != null) {
msgBody.put("storeName",storeDTO.getStoreName());
msgBody.put("storeCode",storeDTO.getStoreCode());
}
if (clerkDTO != null) {
msgBody.put("clerkName",clerkDTO.getClerkName());
msgBody.put("clerkCode",clerkDTO.getClerkCode());
}
msgBody.put("changeType",1);
msgBody.put("addCreateTime",new Date());
msgBody.put("delCreateTime","");
//获取渠道
List<String> list = new ArrayList<>();
MemberSourceShowDTO memberSourceShowDTO = memberEntranceApiService.getMemberSourceByMemberId(enterpriseId, memberId);
if (memberSourceShowDTO != null && CollectionUtils.isNotEmpty(memberSourceShowDTO.getMemberSourceList())) {
for (MemberSourceDetailDTO memberSourceDetailDTO : memberSourceShowDTO.getMemberSourceList()) {
if (null != memberSourceDetailDTO.getHighlight() && memberSourceDetailDTO.getHighlight() == 1) {
list.add(memberSourceDetailDTO.getParentSourceCode());
}
}
}
SubscribeMessageDTO subscribeMessageDTO = new SubscribeMessageDTO();
subscribeMessageDTO.setEvent("addDelFriendEvent");
subscribeMessageDTO.setTopic("member");
subscribeMessageDTO.setEnterpriseId(enterpriseId);
subscribeMessageDTO.setMemberId(memberId);
subscribeMessageDTO.setMemberChannels(list);
subscribeMessageDTO.setMsgBody(msgBody.toJSONString());
clientInstance.sendMessage("dealQywxExternalUserEvent", JSONObject.toJSONString(subscribeMessageDTO));
} catch (Exception e) {
log.info("加好友事件订阅通知:{}", e.getMessage(), e);
}
}
/** /**
* 欢迎语新增好友 * 欢迎语新增好友
...@@ -1582,6 +1642,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1582,6 +1642,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
//通知企微好友 //通知企微好友
log.info("通知会员 更新为企微好友 memberId:{}", memberId); log.info("通知会员 更新为企微好友 memberId:{}", memberId);
memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1); memberApiService.updateMemberQywxFlag(enterpriseId, memberId, 1);
//定制需求
addFriendEvent(unionId, clerkId, enterpriseId, memberId, storeId);
return ""; return "";
} }
......
...@@ -192,5 +192,6 @@ ...@@ -192,5 +192,6 @@
<dubbo:reference interface="com.gic.marketing.api.service.AccountOverdueSmsSendService" id="accountOverdueSmsSendService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.marketing.api.service.AccountOverdueSmsSendService" id="accountOverdueSmsSendService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.thirdparty.api.service.VoiceService" id="voiceService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/> <dubbo:reference interface="com.gic.thirdparty.api.service.CommunicationService" id="communicationService" timeout="10000" retries="0"/>
<dubbo:reference interface="com.gic.member.api.service.MemberEntranceApiService" id="memberEntranceApiService" timeout="10000" retries="0"/>
</beans> </beans>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment