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;
......
...@@ -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