Commit 7029dfd2 by 徐高华

自建刷新好友列表

parent ac90fc04
...@@ -74,6 +74,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -74,6 +74,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
dkWxUserId = staff.getWxOpenUseId(); dkWxUserId = staff.getWxOpenUseId();
} }
List<String> selfUserIdList = memberUnionidRelatedApiService.listSelfExterialList(wxEnterpriseId, dkWxUserId); List<String> selfUserIdList = memberUnionidRelatedApiService.listSelfExterialList(wxEnterpriseId, dkWxUserId);
List<String> delUserIdList = selfUserIdList ;
logger.info("selfUserIdList={}", JSONObject.toJSONString(selfUserIdList)); logger.info("selfUserIdList={}", JSONObject.toJSONString(selfUserIdList));
if (CollectionUtils.isEmpty(selfUserIdList)) { if (CollectionUtils.isEmpty(selfUserIdList)) {
logger.info("自建应用调用第三方接口进入重试"); logger.info("自建应用调用第三方接口进入重试");
...@@ -87,12 +88,15 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -87,12 +88,15 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
reason = "该用户没有外部联系人"; reason = "该用户没有外部联系人";
return; return;
} }
//第三方服务商的外部联系人
String wxUserId3th = staff.getWxUserId() ; String wxUserId3th = staff.getWxUserId() ;
if(qwDTO.needOpenUserId3th()) { if(qwDTO.needOpenUserId3th()) {
wxUserId3th = staff.getWxOpenUseId() ; wxUserId3th = staff.getWxOpenUseId() ;
} }
List<String> userIdList = memberUnionidRelatedApiService.listExterialList(wxEnterpriseId, wxUserId3th); List<String> userIdList = null ;
if(!qwDTO.isSelf()) {
//第三方服务商的外部联系人
userIdList = memberUnionidRelatedApiService.listExterialList(wxEnterpriseId, wxUserId3th);
delUserIdList = userIdList ;
if (CollectionUtils.isEmpty(selfUserIdList)) { if (CollectionUtils.isEmpty(selfUserIdList)) {
dealFlag = tryAgainToMq(dataPre); dealFlag = tryAgainToMq(dataPre);
reason = "重试次数过多"; reason = "重试次数过多";
...@@ -105,8 +109,9 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -105,8 +109,9 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
reason = "该用户没有外部联系人"; reason = "该用户没有外部联系人";
return; return;
} }
}
//清理外部联系人 //清理外部联系人
memberUnionidRelatedApiService.cleanNoExsitFriendNew(wxEnterpriseId, staffId, userIdList); memberUnionidRelatedApiService.cleanNoExsitFriendNew(wxEnterpriseId, staffId, delUserIdList);
//写入外部联系人的处理队列 //写入外部联系人的处理队列
List<TabHaobanPreDealLog> dealLogList = new ArrayList<>(); List<TabHaobanPreDealLog> dealLogList = new ArrayList<>();
for (String externalUserId : selfUserIdList) { for (String externalUserId : selfUserIdList) {
...@@ -123,6 +128,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -123,6 +128,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
preDealService.insert(dealLogList); preDealService.insert(dealLogList);
if(!qwDTO.isSelf()) {
//写入外部联系人的处理队列 //写入外部联系人的处理队列
List<TabHaobanPreDealLog> thirddealLogList = new ArrayList<>(); List<TabHaobanPreDealLog> thirddealLogList = new ArrayList<>();
for (String externalUserId : userIdList) { for (String externalUserId : userIdList) {
...@@ -137,6 +143,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -137,6 +143,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
thirddealLogList.add(dealLog); thirddealLogList.add(dealLog);
} }
preDealService.insert(thirddealLogList); preDealService.insert(thirddealLogList);
}
//成功更新状态 //成功更新状态
dealSuccess(dealParamMqDTO.getTaskId(), dealParamMqDTO.getData(), dataPre.getEnterpriseId(), dataPre.getWxEnterpriseId()); dealSuccess(dealParamMqDTO.getTaskId(), dealParamMqDTO.getData(), dataPre.getEnterpriseId(), dataPre.getWxEnterpriseId());
} catch (Exception e) { } catch (Exception e) {
......
...@@ -8,6 +8,7 @@ import com.esotericsoftware.minlog.Log; ...@@ -8,6 +8,7 @@ import com.esotericsoftware.minlog.Log;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.DealParamMqDTO; import com.gic.haoban.manage.api.dto.DealParamMqDTO;
import com.gic.haoban.manage.api.dto.ExternalUserDTO; import com.gic.haoban.manage.api.dto.ExternalUserDTO;
import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
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;
...@@ -16,10 +17,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog; ...@@ -16,10 +17,12 @@ import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.exception.WxApiLimitException; import com.gic.haoban.manage.service.exception.WxApiLimitException;
import com.gic.haoban.manage.service.service.PreDealService; import com.gic.haoban.manage.service.service.PreDealService;
import com.gic.haoban.manage.service.service.SyncTaskService; import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.haoban.manage.service.service.WxEnterpriseService;
import com.gic.haoban.manage.service.task.BaseSyncOperation; import com.gic.haoban.manage.service.task.BaseSyncOperation;
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.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger; import org.slf4j.Logger;
import org.slf4j.LoggerFactory; import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
...@@ -46,6 +49,8 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -46,6 +49,8 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
@Autowired @Autowired
private FriendClerkSyncNewOperation friendClerkSyncNewOperation; private FriendClerkSyncNewOperation friendClerkSyncNewOperation;
@Autowired
private WxEnterpriseService wxEnterpriseService ;
private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_"; private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_";
...@@ -77,6 +82,17 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -77,6 +82,17 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
String str = staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime() ; String str = staffId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime() ;
String relationKey = SecureUtil.md5(str); String relationKey = SecureUtil.md5(str);
logger.info("生成代开发relationKey={},staff={},{}",relationKey,staffId,str); logger.info("生成代开发relationKey={},staff={},{}",relationKey,staffId,str);
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ;
if(qwDTO.isSelf()) {
externalUserDTO.setSelfExternalUserId(externalUserDTO.getExternalUserId());
String ret = this.memberUnionidRelatedApiService.dealMergeForReflsh(externalUserDTO, wxEnterpriseId, staffId) ;
if (StringUtils.isNotBlank(ret)) {
logger.info("好友创建失败:{},{}", ret, JSONObject.toJSONString(externalUserDTO));
dealFlag = false;
reason = ret + ":" + relationKey;
return;
}
}
//更新状态 //更新状态
this.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);
......
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