Commit 0394a026 by 徐高华

刷新好友不更新门店导购

parent 21d8717d
...@@ -146,14 +146,7 @@ public interface MemberUnionidRelatedApiService { ...@@ -146,14 +146,7 @@ public interface MemberUnionidRelatedApiService {
ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId, String externalUserId,String enterpriseId); ExternalUserDTO getCorpSelfExternalUseridInfoForMember(String wxEnterpriseId, String wxUserId, String externalUserId,String enterpriseId);
/** public String dealMergeForReflsh(ExternalUserDTO externalUserDTO, String wxEnterpriseId , String staffId) ;
* 添加企微好友关联关系表-无需触达
*
* @param dto
* @return
*/
String addExternal(ExternalUserDTO dto);
/** /**
* 获取客户详情-第三方 * 获取客户详情-第三方
* *
......
...@@ -186,7 +186,7 @@ public interface PreDealLogMapper { ...@@ -186,7 +186,7 @@ public interface PreDealLogMapper {
* @param relationKey * @param relationKey
* @return * @return
*/ */
TabHaobanPreDealLog getByRelationKey(@Param("taskId") String taskId, @Param("dataType") int dataType, @Param("relationKey") String relationKey); List<TabHaobanPreDealLog> getByRelationKey(@Param("taskId") String taskId, @Param("dataType") int dataType, @Param("relationKey") String relationKey);
/** /**
* 校验任务 * 校验任务
......
...@@ -173,7 +173,7 @@ public interface PreDealService { ...@@ -173,7 +173,7 @@ public interface PreDealService {
* @param relationKey * @param relationKey
* @return * @return
*/ */
public TabHaobanPreDealLog getByRelationKey(String taskId, Integer dataType, String relationKey); public List<TabHaobanPreDealLog> getByRelationKey(String taskId, Integer dataType, String relationKey);
/** /**
* 获取任务是否有在同步中 好友 * 获取任务是否有在同步中 好友
......
...@@ -164,7 +164,7 @@ public class PreDealServiceImpl implements PreDealService { ...@@ -164,7 +164,7 @@ public class PreDealServiceImpl implements PreDealService {
} }
@Override @Override
public TabHaobanPreDealLog getByRelationKey(String taskId, Integer dataType, String relationKey) { public List<TabHaobanPreDealLog> getByRelationKey(String taskId, Integer dataType, String relationKey) {
return preDealLogMapper.getByRelationKey(taskId, dataType, relationKey); return preDealLogMapper.getByRelationKey(taskId, dataType, relationKey);
} }
......
...@@ -43,6 +43,7 @@ import com.gic.haoban.app.customer.service.api.service.CustomerApiService; ...@@ -43,6 +43,7 @@ import com.gic.haoban.app.customer.service.api.service.CustomerApiService;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.common.utils.DingUtils; import com.gic.haoban.common.utils.DingUtils;
import com.gic.haoban.manage.api.constants.Manage3Constants; import com.gic.haoban.manage.api.constants.Manage3Constants;
import com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO;
import com.gic.haoban.manage.api.dto.ContentMaterialDTO; import com.gic.haoban.manage.api.dto.ContentMaterialDTO;
import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO; import com.gic.haoban.manage.api.dto.ExternalClerkRelatedDTO;
import com.gic.haoban.manage.api.dto.ExternalMemberLogDTO; import com.gic.haoban.manage.api.dto.ExternalMemberLogDTO;
...@@ -59,6 +60,7 @@ import com.gic.haoban.manage.api.dto.hm.HmQrcodeDTO; ...@@ -59,6 +60,7 @@ import com.gic.haoban.manage.api.dto.hm.HmQrcodeDTO;
import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO; import com.gic.haoban.manage.api.dto.qdto.hm.WxUserAddLogQDTO;
import com.gic.haoban.manage.api.enums.SecretTypeEnum; import com.gic.haoban.manage.api.enums.SecretTypeEnum;
import com.gic.haoban.manage.api.service.CheckQywxSettingApiService; import com.gic.haoban.manage.api.service.CheckQywxSettingApiService;
import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService; import com.gic.haoban.manage.api.service.ExternalClerkRelatedApiService;
import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService; import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService;
import com.gic.haoban.manage.api.service.hm.HmQrcodeApiService; import com.gic.haoban.manage.api.service.hm.HmQrcodeApiService;
...@@ -191,6 +193,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -191,6 +193,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
private WelcomeSendService welcomeSendService ; private WelcomeSendService welcomeSendService ;
@Autowired @Autowired
private ExternalMemberService externalMemberService ; private ExternalMemberService externalMemberService ;
@Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService ;
GicMQClient instance = GICMQClientUtil.getClientInstance(); GicMQClient instance = GICMQClientUtil.getClientInstance();
...@@ -661,24 +665,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -661,24 +665,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
memberId = memberService.getMemberIdByPhoneNumber(mobile, enterpriseId); memberId = memberService.getMemberIdByPhoneNumber(mobile, enterpriseId);
} }
if (null == memberId) { if (null == memberId) {
QywxMemberQDTO qdto = new QywxMemberQDTO() ; memberId = this.getMeberId(enterpriseId,unionId, name, avatar, qrcodeParam, externalUserid, wxEnterpriseRelated.getWxEnterpriseType(), 2) ;
qdto.setEnterpriseId(enterpriseId);
qdto.setNick(name);
qdto.setPhotoUrl(avatar);
qdto.setQrcodeParam(qrcodeParam);
qdto.setUnionId(unionId);
if(wxEnterpriseRelated.getWxEnterpriseType()==0) {
qdto.setUserId(externalUserid);
}
qdto.setSence(2);
com.gic.api.base.commons.ServiceResponse<MemberSimpleDetailDTO> resp = this.memberEntranceApiService.enterpriseWechatByFriendEntrance(qdto);
log.info("新增外部联系人,创建member,resp={},param={}",JSON.toJSON(resp),JSON.toJSONString(qdto));
if(resp.isSuccess()) {
MemberSimpleDetailDTO member = resp.getResult() ;
memberId = member.getMemberId() ;
}else {
log.info(JSON.toJSONString(resp));
}
} }
if (memberId == null) { if (memberId == null) {
log.info("新增外部联系人,创建member失败,unionid={},外部联系人id={},", unionId,externalUserid); log.info("新增外部联系人,创建member失败,unionid={},外部联系人id={},", unionId,externalUserid);
...@@ -739,9 +726,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -739,9 +726,13 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
exsitDTO.setUnionid(unionId); exsitDTO.setUnionid(unionId);
exsitDTO.setRelationKey(relationKey); exsitDTO.setRelationKey(relationKey);
exsitDTO.setHeadUrl(avatar); exsitDTO.setHeadUrl(avatar);
exsitDTO.setStoreId(storeId); if(StringUtils.isEmpty(exsitDTO.getStoreId())) {
exsitDTO.setStoreId(storeId);
}
if(StringUtils.isEmpty(exsitDTO.getClerkId())) {
exsitDTO.setClerkId(clerkId);
}
exsitDTO.setEnterpriseId(enterpriseId); exsitDTO.setEnterpriseId(enterpriseId);
exsitDTO.setClerkId(clerkId);
if(StringUtils.isNotBlank(memberId) && exsitDTO.getStatusFlag() != 1) { if(StringUtils.isNotBlank(memberId) && exsitDTO.getStatusFlag() != 1) {
exsitDTO.setStatusFlag(1); exsitDTO.setStatusFlag(1);
} }
...@@ -1305,9 +1296,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1305,9 +1296,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo); return EntityUtil.changeEntityByJSON(ExternalUserDTO.class, pojo);
} }
@Override private String saveExternalUser(ExternalUserDTO dto) {
public String addExternal(ExternalUserDTO dto) {
String wxUserId = dto.getWxUserId();
String wxEnterpriseId = dto.getWxEnterpriseId(); String wxEnterpriseId = dto.getWxEnterpriseId();
String name = StringUtils.isBlank(dto.getName()) ? "--" : dto.getName(); String name = StringUtils.isBlank(dto.getName()) ? "--" : dto.getName();
String createTime = dto.getAddCreateTime(); String createTime = dto.getAddCreateTime();
...@@ -1318,9 +1307,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1318,9 +1307,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
String storeId = dto.getStoreId(); String storeId = dto.getStoreId();
String clerkId = dto.getClerkId(); String clerkId = dto.getClerkId();
String staffId = dto.getStaffId(); String staffId = dto.getStaffId();
if (StringUtils.isAnyBlank(wxUserId, wxEnterpriseId, name, createTime, externalUserId, storeId, enterpriseId, staffId, clerkId)) { if (StringUtils.isAnyBlank(wxEnterpriseId, name, createTime, externalUserId, storeId, enterpriseId, staffId, clerkId)) {
log.info("【刷新好友】参数有空wxUserId={},wxEnterpriseId={},name={},createTime={},unionId ={},externalUserId ={},memberId ={},storeId ={},enterpriseId ={},staffId={},clerkId={}" log.info("【刷新好友】参数有空wxUserId={},wxEnterpriseId={},name={},createTime={},unionId ={},externalUserId ={},memberId ={},storeId ={},enterpriseId ={},staffId={},clerkId={}"
+ "", wxUserId, wxEnterpriseId, name, createTime, unionId, externalUserId, memberId, storeId, enterpriseId, staffId, clerkId); + "", wxEnterpriseId, name, createTime, unionId, externalUserId, memberId, storeId, enterpriseId, staffId, clerkId);
return "参数不对"; return "参数不对";
} }
String memberUnionidRelatedId = this.saveMemberUnionTable(dto) ; String memberUnionidRelatedId = this.saveMemberUnionTable(dto) ;
...@@ -1656,5 +1645,75 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -1656,5 +1645,75 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
public void saveExternalMemberLog(ExternalMemberLogDTO memberLog) { public void saveExternalMemberLog(ExternalMemberLogDTO memberLog) {
this.externalMemberService.insert(memberLog) ; this.externalMemberService.insert(memberLog) ;
} }
@Override
public String dealMergeForReflsh(ExternalUserDTO externalUserDTO, String wxEnterpriseId , String staffId) {
if (externalUserDTO.getFriendType() == 2) {
return "不是微信好友,是企业微信好友:" + externalUserDTO.getFriendType();
}
ClerkMainStoreRelatedDTO mainStore = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId);
if (mainStore == null) {
return "主门店不存在";
}
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId, mainStore.getStoreId());
if (staffClerkRelationDTO == null) {
return "未绑定导购";
}
String enterpriseId = staffClerkRelationDTO.getEnterpriseId() ;
TabHaobanWxEnterpriseRelated wxEnterpriseRelated = wxEnterpriseRelatedService.getByEnterpriseId(wxEnterpriseId, enterpriseId);
if (wxEnterpriseRelated == null) {
log.info("没有存在企业关联:{},{}", wxEnterpriseId, enterpriseId);
return "没有关联企业";
}
String storeId = mainStore.getStoreId() ;
String clerkId = staffClerkRelationDTO.getClerkId() ;
externalUserDTO.setWxEnterpriseId(wxEnterpriseId);
externalUserDTO.setEnterpriseId(enterpriseId);
externalUserDTO.setStoreId(storeId);
externalUserDTO.setClerkId(clerkId);
externalUserDTO.setStaffId(staffId);
boolean addByWelcome = this.wxEnterpriseRelatedService.getAddByWelcomeFlag(wxEnterpriseRelated,externalUserDTO.getUnionId(),false) ;
if (addByWelcome) {
log.info("好友不同开平:{}", JSONObject.toJSONString(externalUserDTO));
return this.saveExternalUser(externalUserDTO);
}
String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
if (clerk == null) {
return "导购不存在:" + clerkCode;
}
String qrcodeParam = clerk.getQrcodeParam();
if (StringUtils.isBlank(qrcodeParam)) {
log.info("导购码不存在:" + clerkCode);
qrcodeParam = "clerk_clerk_"+clerk.getClerkId() ;
}
String memberId = this.getMeberId(enterpriseId, externalUserDTO.getUnionId(), externalUserDTO.getName(), externalUserDTO.getAvatar(), qrcodeParam, externalUserDTO.getExternalUserId(), wxEnterpriseRelated.getWxEnterpriseType(), 1) ;
if (memberId == null) {
return "会员不存在:unionid:" + externalUserDTO.getUnionId();
}
externalUserDTO.setMemberId(memberId);
return this.saveExternalUser(externalUserDTO);
}
private String getMeberId(String enterpriseId , String unionid , String name , String image ,String qrcodeParam , String externalUserId , int wxEnterpriseType , int sence) {
QywxMemberQDTO qdto = new QywxMemberQDTO() ;
qdto.setEnterpriseId(enterpriseId);
qdto.setNick(name);
qdto.setPhotoUrl(image);
qdto.setQrcodeParam(qrcodeParam);
qdto.setUnionId(unionid);
if(wxEnterpriseType==0) {
qdto.setUserId(externalUserId);
}
qdto.setSence(sence);
String memberId = null;
com.gic.api.base.commons.ServiceResponse<MemberSimpleDetailDTO> resp = this.memberEntranceApiService.enterpriseWechatByFriendEntrance(qdto);
log.info("刷新好友,创建member,resp={},param={}",JSON.toJSON(resp),JSON.toJSONString(qdto));
if(resp.isSuccess()) {
MemberSimpleDetailDTO member = resp.getResult() ;
memberId = member.getMemberId() ;
}
return memberId ;
}
} }
...@@ -56,7 +56,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -56,7 +56,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
@Override @Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) { public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
logger.info("dealParamMqDTO={},dataPre={}", JSON.toJSONString(dealParamMqDTO), JSON.toJSONString(dataPre)); logger.info("刷新好友列表(7-8),dealParamMqDTO={},dataPre={}", JSON.toJSONString(dealParamMqDTO), JSON.toJSONString(dataPre));
String reason = ""; String reason = "";
boolean dealFlag = true; boolean dealFlag = true;
try { try {
...@@ -82,7 +82,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -82,7 +82,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
return; return;
} }
if (CollectionUtils.isEmpty(selfUserIdList)) { if (CollectionUtils.isEmpty(selfUserIdList)) {
logger.info("改用户没有外部联系人:{}", JSONObject.toJSONString(dataPre)); logger.info("该用户无代开外部联系人:{}", JSONObject.toJSONString(dataPre));
dealFlag = false; dealFlag = false;
reason = "该用户没有外部联系人"; reason = "该用户没有外部联系人";
return; return;
...@@ -100,7 +100,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -100,7 +100,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
return; return;
} }
if (CollectionUtils.isEmpty(userIdList)) { if (CollectionUtils.isEmpty(userIdList)) {
logger.info("该用户没有外部联系人2:{}", JSONObject.toJSONString(dataPre)); logger.info("该用户无第三方外部联系人:{}", JSONObject.toJSONString(dataPre));
dealFlag = false; dealFlag = false;
reason = "该用户没有外部联系人"; reason = "该用户没有外部联系人";
return; return;
......
...@@ -3,25 +3,20 @@ package com.gic.haoban.manage.service.task.friend; ...@@ -3,25 +3,20 @@ package com.gic.haoban.manage.service.task.friend;
import cn.hutool.crypto.SecureUtil; import cn.hutool.crypto.SecureUtil;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.clerk.api.dto.ClerkDTO;
import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.*; import com.gic.haoban.manage.api.dto.*;
import com.gic.haoban.manage.api.enums.PreDealStatusEnum; import com.gic.haoban.manage.api.enums.PreDealStatusEnum;
import com.gic.haoban.manage.api.enums.PreDealTypeEnum; import com.gic.haoban.manage.api.enums.PreDealTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskStatusEnum; import com.gic.haoban.manage.api.enums.SyncTaskStatusEnum;
import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService;
import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService; import com.gic.haoban.manage.api.service.MemberUnionidRelatedApiService;
import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog; import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated;
import com.gic.haoban.manage.service.exception.WxApiLimitException; import com.gic.haoban.manage.service.exception.WxApiLimitException;
import com.gic.haoban.manage.service.service.*; import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.task.BaseSyncOperation; import com.gic.haoban.manage.service.task.BaseSyncOperation;
import com.gic.member.api.dto.MemberSimpleDetailDTO;
import com.gic.member.api.dto.QywxMemberQDTO;
import com.gic.member.api.service.MemberEntranceApiService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil; import com.gic.redis.data.util.RedisUtil;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
...@@ -48,69 +43,67 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -48,69 +43,67 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
@Autowired @Autowired
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
@Autowired @Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired
private StaffClerkRelationService staffClerkRelationService;
@Autowired
private ClerkService clerkService;
@Autowired
private FriendClerkSyncNewOperation friendClerkSyncNewOperation; private FriendClerkSyncNewOperation friendClerkSyncNewOperation;
@Autowired
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Autowired
private MemberEntranceApiService memberEntranceApiService;
private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_"; private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_";
@Override @Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) { public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
logger.info("同步好友开始,第三方={}", JSONObject.toJSONString(dataPre)); logger.info("刷新好友,第三方={}", JSONObject.toJSONString(dataPre));
String reason = "成功"; String reason = "成功";
boolean dealFlag = true; boolean dealFlag = true;
String relationKey = "-1"; String relationKey = "-1";
try { try {
if (dataPre.getStatusFlag() != PreDealStatusEnum.pre.getVal()) {
logger.info("已经处理过,无需重复处理:{}", JSONObject.toJSONString(dataPre));
return;
}
String wxEnterpriseId = dataPre.getWxEnterpriseId(); String wxEnterpriseId = dataPre.getWxEnterpriseId();
String wxUserId = dataPre.getDataId().split("###")[1] ; String wxUserId = dataPre.getDataId().split("###")[1] ;
String taskId = dealParamMqDTO.getTaskId(); String taskId = dealParamMqDTO.getTaskId();
String externalUserId = dataPre.getDataContent(); String externalUserId = dataPre.getDataContent();
String staffId = dataPre.getpDataId() ; String staffId = dataPre.getpDataId() ;
if (dataPre.getStatusFlag() != PreDealStatusEnum.pre.getVal()) {
logger.info("已经处理过,无需重复处理:{}", JSONObject.toJSONString(dataPre));
return;
}
ExternalUserDTO externalUserDTO = memberUnionidRelatedApiService.getExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserId); ExternalUserDTO externalUserDTO = memberUnionidRelatedApiService.getExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserId);
if (externalUserDTO == null) { if (externalUserDTO == null) {
logger.info("第三方外部联系人详情查询失败,staffId={},{},{}", staffId,wxUserId,externalUserId);
dealFlag = false; dealFlag = false;
reason = "好友不存在"; reason = "好友不存在";
return; return;
} }
//relationkey String str = staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime() ;
relationKey = SecureUtil.md5(staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime()); relationKey = SecureUtil.md5(str);
logger.info("第三方生成relationKey:{},{},{} 客户={}, 结果={}",staffId,externalUserDTO.getName(),externalUserDTO.getAddCreateTime() , externalUserDTO.getExternalUserId() , relationKey); logger.info("生成第三方relationKey={},staff={},{}",relationKey,staffId,str);
// 根据关联键relationkey查看自建应用 是否有数据 // 根据关联键relationkey查看自建应用 是否有数据
TabHaobanPreDealLog selfPre = preDealService.getByRelationKey(taskId, PreDealTypeEnum.self_friend.getVal(), relationKey); List<TabHaobanPreDealLog> list = this.preDealService.getByRelationKey(taskId, PreDealTypeEnum.self_friend.getVal(), relationKey);
if (null == selfPre) { if(CollectionUtils.isEmpty(list)) {
logger.info("用户的自建应用不存在该数据:{},{}", JSONObject.toJSONString(dataPre), JSONObject.toJSONString(externalUserDTO)); logger.info("用户的代开发不存在关联数据:{},{}", JSONObject.toJSONString(dataPre), JSONObject.toJSONString(externalUserDTO));
dealFlag = false; dealFlag = false;
reason = "用户的自建应用不存在该数据:" + relationKey; reason = "用户的代开发应用不存在该数据:" + relationKey;
return; return;
} }
if(list.size()>1) {
logger.info("用户的代开发应用数据多条:{},{}", JSONObject.toJSONString(dataPre), JSONObject.toJSONString(externalUserDTO));
dealFlag = false;
reason = "用户的代开发应用数据多条:" + relationKey;
return;
}
TabHaobanPreDealLog selfPre = list.get(0) ;
logger.info("代开发的数据={}",selfPre.getDataContent());
ExternalUserDTO selfUserData = JSON.parseObject(selfPre.getDataContent(), ExternalUserDTO.class); ExternalUserDTO selfUserData = JSON.parseObject(selfPre.getDataContent(), ExternalUserDTO.class);
externalUserDTO.setUnionId(selfUserData.getUnionId()); externalUserDTO.setUnionId(selfUserData.getUnionId());
externalUserDTO.setSelfExternalUserId(selfUserData.getExternalUserId()); externalUserDTO.setSelfExternalUserId(selfUserData.getExternalUserId());
externalUserDTO.setAvatar(selfUserData.getAvatar()); externalUserDTO.setAvatar(selfUserData.getAvatar());
externalUserDTO.setName(selfUserData.getName()); externalUserDTO.setName(selfUserData.getName());
//序列化数据 //序列化数据
String ret = dealMerge(externalUserDTO, dataPre); String ret = this.memberUnionidRelatedApiService.dealMergeForReflsh(externalUserDTO, wxEnterpriseId, staffId) ;
if (StringUtils.isNotBlank(ret)) { if (StringUtils.isNotBlank(ret)) {
logger.info("好友创建失败:{},{}", ret, JSONObject.toJSONString(externalUserDTO)); logger.info("好友创建失败:{},{}", ret, JSONObject.toJSONString(externalUserDTO));
dealFlag = false; dealFlag = false;
reason = ret + ":" + relationKey; reason = ret + ":" + relationKey;
return; return;
} }
//更新状态 //更新状态
preDealService.updateFriendStatusByDataId(taskId, dataPre.getDataId(), PreDealStatusEnum.computed.getVal(), reason, externalUserDTO.getMemberId(), relationKey , PreDealTypeEnum.friend.getVal()); preDealService.updateFriendStatusByDataId(taskId, dataPre.getDataId(), PreDealStatusEnum.computed.getVal(), reason, externalUserDTO.getMemberId(), relationKey , PreDealTypeEnum.friend.getVal());
dealSuccess(taskId, dataPre.getDataId(), dataPre.getpDataId(), wxEnterpriseId); dealSuccess(taskId, dataPre.getDataId(), dataPre.getpDataId(), wxEnterpriseId);
...@@ -155,75 +148,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -155,75 +148,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
return true; return true;
} }
private String dealMerge(ExternalUserDTO externalUserDTO, TabHaobanPreDealLog dataPre) {
String wxEnterpriseId = dataPre.getWxEnterpriseId();
String wxUserId = dataPre.getDataId().split("###")[1] ;
if (externalUserDTO.getFriendType() == 2) {
return "不是微信好友,是企业微信好友:" + externalUserDTO.getFriendType();
}
String staffId = dataPre.getpDataId() ;
ClerkMainStoreRelatedDTO mainStore = clerkMainStoreRelatedApiService.getWxEnterpriseIdAndStaffId(wxEnterpriseId, staffId);
if (mainStore == null) {
return "主门店不存在";
}
StaffClerkRelationDTO staffClerkRelationDTO = staffClerkRelationService.getOneBindByStoreId(staffId, mainStore.getStoreId());
if (staffClerkRelationDTO == null) {
return "未绑定导购";
}
String enterpriseId = staffClerkRelationDTO.getEnterpriseId() ;
TabHaobanWxEnterpriseRelated wxEnterpriseRelated = wxEnterpriseRelatedService.getByEnterpriseId(wxEnterpriseId, enterpriseId);
if (wxEnterpriseRelated == null) {
logger.info("没有存在企业关联:{},{}", wxEnterpriseId, enterpriseId);
return "没有关联企业";
}
String storeId = mainStore.getStoreId() ;
String clerkId = staffClerkRelationDTO.getClerkId() ;
externalUserDTO.setWxEnterpriseId(wxEnterpriseId);
externalUserDTO.setEnterpriseId(enterpriseId);
externalUserDTO.setStoreId(storeId);
externalUserDTO.setClerkId(clerkId);
externalUserDTO.setWxUserId(wxUserId);
externalUserDTO.setStaffId(staffId);
boolean addByWelcome = this.wxEnterpriseRelatedService.getAddByWelcomeFlag(wxEnterpriseRelated,externalUserDTO.getUnionId(),false) ;
if (addByWelcome) {
logger.info("好友不同开平:{}", JSONObject.toJSONString(externalUserDTO));
return memberUnionidRelatedApiService.addExternal(externalUserDTO);
}
String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
if (clerk == null) {
return "导购不存在:" + clerkCode;
}
String qrcodeParam = clerk.getQrcodeParam();
if (StringUtils.isBlank(qrcodeParam)) {
logger.info("导购码不存在:" + clerkCode);
qrcodeParam = "clerk_clerk_"+clerk.getClerkId() ;
}
QywxMemberQDTO qdto = new QywxMemberQDTO() ;
qdto.setEnterpriseId(enterpriseId);
qdto.setNick(externalUserDTO.getName());
qdto.setPhotoUrl(externalUserDTO.getAvatar());
qdto.setQrcodeParam(qrcodeParam);
qdto.setUnionId(externalUserDTO.getUnionId());
if(wxEnterpriseRelated.getWxEnterpriseType()==0) {
qdto.setUserId(externalUserDTO.getExternalUserId());
}
qdto.setSence(1);
String memberId = null;
com.gic.api.base.commons.ServiceResponse<MemberSimpleDetailDTO> resp = this.memberEntranceApiService.enterpriseWechatByFriendEntrance(qdto);
logger.info("加好友,创建member,resp={},param={}",JSON.toJSON(resp),JSON.toJSONString(qdto));
if(resp.isSuccess()) {
MemberSimpleDetailDTO member = resp.getResult() ;
memberId = member.getMemberId() ;
}
if (memberId == null) {
return "会员不存在:unionid:" + externalUserDTO.getUnionId();
}
externalUserDTO.setMemberId(memberId);
return memberUnionidRelatedApiService.addExternal(externalUserDTO);
}
public void dealException(String taskId, String dataId, String pDataId, String reason, String relationKey) { public void dealException(String taskId, String dataId, String pDataId, String reason, String relationKey) {
preDealService.updateFriendStatusByDataId(taskId, dataId, PreDealStatusEnum.exception.getVal(), reason, null, relationKey, PreDealTypeEnum.friend.getVal()); preDealService.updateFriendStatusByDataId(taskId, dataId, PreDealStatusEnum.exception.getVal(), reason, null, relationKey, PreDealTypeEnum.friend.getVal());
checkDepartmentTask(taskId, pDataId); checkDepartmentTask(taskId, pDataId);
......
...@@ -51,7 +51,7 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -51,7 +51,7 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
@Override @Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) { public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
logger.info("同步好友开始,自建代开发={}", JSONObject.toJSONString(dataPre)); logger.info("刷新好友列表7,代开发={}", JSONObject.toJSONString(dataPre));
String reason = "成功"; String reason = "成功";
boolean dealFlag = true; boolean dealFlag = true;
try { try {
...@@ -60,10 +60,10 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -60,10 +60,10 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
String staffId = dataPre.getpDataId() ; String staffId = dataPre.getpDataId() ;
String taskId = dealParamMqDTO.getTaskId(); String taskId = dealParamMqDTO.getTaskId();
String externalUserId = dataPre.getDataContent(); String externalUserId = dataPre.getDataContent();
// 查询企微侧外部联系人详情
ExternalUserDTO externalUserDTO = memberUnionidRelatedApiService.getCorpSelfExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserId); ExternalUserDTO externalUserDTO = memberUnionidRelatedApiService.getCorpSelfExternalUseridInfo(wxEnterpriseId, wxUserId, externalUserId);
if (externalUserDTO == null) { if (externalUserDTO == null) {
logger.info("外部联系人好友不存在:{}", JSONObject.toJSONString(dataPre)); logger.info("代开发外部联系人详情查询失败,staffId={},{},{}", staffId,wxUserId,externalUserId);
dealException(taskId, dataPre.getDataId(), null, "好友不存在"); dealException(taskId, dataPre.getDataId(), null, "好友不存在");
return; return;
} }
...@@ -74,13 +74,11 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -74,13 +74,11 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
json.put("avatar", externalUserDTO.getAvatar()); json.put("avatar", externalUserDTO.getAvatar());
json.put("externalUserId", externalUserDTO.getExternalUserId()); json.put("externalUserId", externalUserDTO.getExternalUserId());
json.put("addCreateTime", externalUserDTO.getAddCreateTime()); json.put("addCreateTime", externalUserDTO.getAddCreateTime());
String str = staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime() ;
//relationkey String relationKey = SecureUtil.md5(str);
logger.info("生成relationKey:{},{},{}",staffId,externalUserDTO.getName(),externalUserDTO.getAddCreateTime()); logger.info("生成代开发relationKey={},staff={},{}",relationKey,staffId,str);
String relationKey = SecureUtil.md5(staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime());
logger.info("relationKey:{},{}", relationKey, externalUserDTO.getExternalUserId());
//更新状态 //更新状态
preDealService.updateFriendStatusByDataId(taskId, dataPre.getDataId(), PreDealStatusEnum.computed.getVal(), reason, json.toJSONString(), relationKey , PreDealTypeEnum.self_friend.getVal()); this.preDealService.updateFriendStatusByDataId(taskId, dataPre.getDataId(), PreDealStatusEnum.computed.getVal(), reason, json.toJSONString(), relationKey , PreDealTypeEnum.self_friend.getVal());
dealSuccess(taskId, dataPre.getDataId(), null, wxEnterpriseId); dealSuccess(taskId, dataPre.getDataId(), null, wxEnterpriseId);
} catch (WxApiLimitException e) { } catch (WxApiLimitException e) {
logger.info("接口次数限制:{}", JSONObject.toJSONString(dataPre)); logger.info("接口次数限制:{}", JSONObject.toJSONString(dataPre));
......
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