Commit 0deed017 by xugaojun

新增第三方转换

parent 5611ecc6
package com.gic.haoban.manage.service.mq.processor; package com.gic.haoban.manage.service.mq.processor;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import cn.hutool.http.HttpUtil;
import com.alibaba.fastjson.JSON; 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.commons.util.EntityUtil; import com.gic.commons.util.EntityUtil;
import com.gic.dubbo.entity.ProviderLocalTag;
import com.gic.haoban.manage.api.dto.ExternalUserDTO; import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO; import com.gic.haoban.manage.api.dto.MemberUnionidRelatedDTO;
import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO; import com.gic.haoban.manage.api.dto.StaffClerkRelationDTO;
...@@ -29,9 +27,7 @@ import org.slf4j.LoggerFactory; ...@@ -29,9 +27,7 @@ import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import java.util.HashMap; import java.util.*;
import java.util.Map;
import java.util.Objects;
/** /**
* desc:添加微信好友关系消息消费处理器 * desc:添加微信好友关系消息消费处理器
...@@ -74,7 +70,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -74,7 +70,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
@Override @Override
void doProcess(MemberUnionRelatedBO bo) { void doProcess(MemberUnionRelatedBO bo) {
String staffId = bo.getStaffId(); String staffId = bo.getStaffId();
messageAlert(staffId);
String wxEnterpriseId = bo.getWxEnterpriseId(); String wxEnterpriseId = bo.getWxEnterpriseId();
String externalUserid = bo.getExternalUserid(); String externalUserid = bo.getExternalUserid();
String wxUserId = bo.getWxUserId(); String wxUserId = bo.getWxUserId();
...@@ -109,12 +104,15 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -109,12 +104,15 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
logger.info("会员信息不存在unionId:{}", dto.getUnionid()); logger.info("会员信息不存在unionId:{}", dto.getUnionid());
return; return;
} }
// 转换外部联系人id
String serviceExternalUserid = qywxUserApiService.toServiceExternalUserid(bo.getCorpid(), config.getWxSuiteid(), externalUserid);
// 幂等 // 幂等
MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByUnionId(wxEnterpriseId, wxUserId, dto.getUnionid()); MemberUnionidRelatedDTO exsitDTO = memberUnionRelatedService.getByUnionId(wxEnterpriseId, wxUserId, dto.getUnionid());
String memberUnionIdRelatedId; String memberUnionIdRelatedId;
if (Objects.isNull(exsitDTO)) { if (Objects.isNull(exsitDTO)) {
dto.setMemberId(member.getMemberId()); dto.setMemberId(member.getMemberId());
dto.setEnterpriseId(enterpriseId); dto.setEnterpriseId(enterpriseId);
dto.setExternalUserid(serviceExternalUserid);
// 创建memberUnion 临时表关联 // 创建memberUnion 临时表关联
memberUnionIdRelatedId = memberUnionRelatedService.addMemberUnionidRelated(dto); memberUnionIdRelatedId = memberUnionRelatedService.addMemberUnionidRelated(dto);
} else { } else {
...@@ -137,7 +135,7 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -137,7 +135,7 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
related.setClerkId(staffClerkRelationDTO.getClerkId()); related.setClerkId(staffClerkRelationDTO.getClerkId());
related.setEnterpriseId(enterpriseId); related.setEnterpriseId(enterpriseId);
related.setExternalName(dto.getExternalName()); related.setExternalName(dto.getExternalName());
related.setExternalUserId(externalUserid); related.setExternalUserId(serviceExternalUserid);
related.setStaffId(staffId); related.setStaffId(staffId);
related.setHeadUrl(dto.getAvatar()); related.setHeadUrl(dto.getAvatar());
related.setMemberUnionidRelatedId(memberUnionIdRelatedId); related.setMemberUnionidRelatedId(memberUnionIdRelatedId);
...@@ -150,22 +148,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -150,22 +148,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
externalClerkRelatedService.insert(related); externalClerkRelatedService.insert(related);
} }
private void messageAlert(String staffId) {
ProviderLocalTag providerLocalTag = ProviderLocalTag.tag.get();
String traceId = providerLocalTag.traceId;
String traceUrl = "http://10.105.8.172:8780/damo-stats/mongodb/getLogMessagesView?trace_id=" + traceId;
Map<String, Object> map = new HashMap<>();
Map<String, Object> link = new HashMap<>();
map.put("msgtype", "link");
link.put("title", "存量会员关联提醒");
link.put("text", "员工id:" + staffId);
link.put("messageUrl", traceUrl);
map.put("link", link);
String post = HttpUtil.post(ALERT_URL, JSONObject.toJSONString(map));
logger.info("alert:{}", post);
}
private MemberUnionidRelatedDTO getAndMergeMemberUnion(MemberUnionRelatedBO bo) { private MemberUnionidRelatedDTO getAndMergeMemberUnion(MemberUnionRelatedBO bo) {
// 查询自建 // 查询自建
ExternalUserDTO selfExternalUserDTO = getCorpSelfExternalUseridInfo( ExternalUserDTO selfExternalUserDTO = getCorpSelfExternalUseridInfo(
...@@ -175,36 +157,26 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -175,36 +157,26 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
bo.getSecret(), bo.getSecret(),
bo.getCorpid() bo.getCorpid()
); );
// 查询第三方 if (Objects.isNull(selfExternalUserDTO)) {
ExternalUserDTO thirdExternalUserDTO = getExternalUseridInfo( logger.info("新增外部联系人, 自建为空");
bo.getWxEnterpriseId(),
bo.getWxUserId(),
bo.getExternalUserid(),
bo.getCorpid()
);
if (Objects.isNull(selfExternalUserDTO) && Objects.isNull(thirdExternalUserDTO)) {
logger.info("新增外部联系人, 自建与第三方均为空");
return null; return null;
} }
MemberUnionidRelatedDTO dto = EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, bo); MemberUnionidRelatedDTO dto = EntityUtil.changeEntityNew(MemberUnionidRelatedDTO.class, bo);
// 合并数据 // 合并数据
dto.setExternalName(EmojiFilterUtil.removeAllEmoji( dto.setExternalName(EmojiFilterUtil.removeAllEmoji(
Objects.nonNull(selfExternalUserDTO) ? selfExternalUserDTO.getName() : thirdExternalUserDTO.getName() selfExternalUserDTO.getName()
)); ));
dto.setAddCreateTime( dto.setAddCreateTime(
Objects.nonNull(selfExternalUserDTO) ? selfExternalUserDTO.getAddCreateTime() : thirdExternalUserDTO.getAddCreateTime() selfExternalUserDTO.getAddCreateTime()
); );
dto.setAvatar( dto.setAvatar(
Objects.nonNull(selfExternalUserDTO) ? selfExternalUserDTO.getAvatar() : thirdExternalUserDTO.getAvatar() selfExternalUserDTO.getAvatar()
); );
dto.setUnionid( dto.setUnionid(
Objects.nonNull(selfExternalUserDTO) ? selfExternalUserDTO.getUnionId() : null selfExternalUserDTO.getUnionId()
); );
dto.setSelfExternalUserid( dto.setSelfExternalUserid(
Objects.nonNull(selfExternalUserDTO) ? selfExternalUserDTO.getExternalUserId() : null selfExternalUserDTO.getExternalUserId()
);
dto.setExternalUserid(
Objects.nonNull(thirdExternalUserDTO) ? thirdExternalUserDTO.getExternalUserId() : null
); );
return dto; return dto;
} }
...@@ -223,60 +195,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce ...@@ -223,60 +195,6 @@ public class AddMemberUnionRelateConsumerProcessor extends AbstractConsumerProce
} }
public ExternalUserDTO getExternalUseridInfo(String wxEnterpriseId, String wxUserId, String externalUserId, String corpId) {
String uJ = qywxUserApiService.getExternalUseridInfo(corpId, config.getWxSuiteid(), externalUserId);
if (StringUtils.isBlank(uJ)) {
logger.info("好友不存在");
return null;
} else if ("1".equals(uJ)) {
logger.info("限制次数");
throw new WxApiLimitException("getExternalUseridInfo接口次数限制");
}
String name = "";
String createTime = "";
String avatar = "";
Integer friendType = 1;
if (StringUtils.isNotBlank(uJ)) {
JSONObject jo = JSON.parseObject(uJ);
String external_contact = jo.getString("external_contact");
String uj_follow_user = jo.getString("follow_user");
JSONObject jt = null;
if (StringUtils.isNotBlank(external_contact)) {
jt = JSON.parseObject(external_contact);
name = EmojiFilterUtil.filterEmojiLast(jt.getString("name"), true);
if (StringUtils.isBlank(name)) {
name = "--";
}
friendType = jt.getInteger("type");
avatar = jt.getString("avatar");
}
if (StringUtils.isNotBlank(uj_follow_user)) {
JSONArray j = JSON.parseArray(uj_follow_user);
String uj_userId = "";
for (Object object : j) {
String followJson = JSON.toJSONString(object);
JSONObject follow = JSON.parseObject(followJson);
uj_userId = follow.getString("userid");
if (uj_userId.equals(wxUserId)) {
if (jt != null) {
externalUserId = jt.getString("external_userid");
createTime = follow.getString("createtime");
break;
}
}
}
}
}
ExternalUserPojo pojo = new ExternalUserPojo();
pojo.setExternalUserId(externalUserId);
pojo.setName(name);
pojo.setAddCreateTime(createTime);
pojo.setWxEnterpriseId(wxEnterpriseId);
pojo.setAvatar(avatar);
pojo.setFriendType(friendType);
return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo);
}
private ExternalUserPojo getExternalUserPojo(String unionIdJson, String userId1, String wxEnterpriseId) { private ExternalUserPojo getExternalUserPojo(String unionIdJson, String userId1, String wxEnterpriseId) {
ExternalUserPojo pojo = new ExternalUserPojo(); ExternalUserPojo pojo = new ExternalUserPojo();
String unionId = ""; String unionId = "";
......
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