Commit e6106d87 by 墨竹

fix:刷新企微好友兼容

parent da6481ba
...@@ -28,7 +28,7 @@ public interface StaffApiService { ...@@ -28,7 +28,7 @@ public interface StaffApiService {
void del(String staffDepartmentStaffRelatedId); void del(String staffDepartmentStaffRelatedId);
/** /**
* 获取微信成员 * 保存微信成员
* *
* @param userId * @param userId
* @param wxEnterpriseId * @param wxEnterpriseId
......
...@@ -147,7 +147,6 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ ...@@ -147,7 +147,6 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
} else if (dataPre.getDataType().equals(PreDealTypeEnum.self_friend.getVal())) { } else if (dataPre.getDataType().equals(PreDealTypeEnum.self_friend.getVal())) {
operationMap.get("selfFriendSyncNewOperation").dealSingleByMq(dealParamMqDTO, dataPre); operationMap.get("selfFriendSyncNewOperation").dealSingleByMq(dealParamMqDTO, dataPre);
logger.info("好友处理:{}", params); logger.info("好友处理:{}", params);
} else if (dataPre.getDataType().equals(PreDealTypeEnum.friend_merge.getVal())) { } else if (dataPre.getDataType().equals(PreDealTypeEnum.friend_merge.getVal())) {
operationMap.get("friendMergeSyncOperation").dealSingleByMq(dealParamMqDTO, dataPre); operationMap.get("friendMergeSyncOperation").dealSingleByMq(dealParamMqDTO, dataPre);
logger.info("好友合并处理:{}", params); logger.info("好友合并处理:{}", params);
......
...@@ -999,11 +999,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA ...@@ -999,11 +999,9 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return; return;
} }
for (Object object : jsonArr) { for (Object object : jsonArr) {
this.add(wxEnterpriseId, object.toString(), wxUserId, storeId); this.add(wxEnterpriseId, object.toString(), wxUserId, storeId);
} }
} }
@Override @Override
......
package com.gic.haoban.manage.service.task; package com.gic.haoban.manage.service.task;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
...@@ -18,7 +7,6 @@ import com.gic.haoban.manage.api.dto.DealParamMqDTO; ...@@ -18,7 +7,6 @@ import com.gic.haoban.manage.api.dto.DealParamMqDTO;
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.DealSyncOperationApiService;
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.TabHaobanSyncTask; import com.gic.haoban.manage.service.entity.TabHaobanSyncTask;
...@@ -26,6 +14,16 @@ import com.gic.haoban.manage.service.service.PreDealService; ...@@ -26,6 +14,16 @@ 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.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.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
@Service @Service
@Deprecated @Deprecated
......
package com.gic.haoban.manage.service.task; package com.gic.haoban.manage.service.task;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.haoban.manage.api.dto.ClerkMainStoreRelatedDTO;
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.StaffClerkRelationDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
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.api.service.StaffApiService;
import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog; import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.pojo.ExternalUserPojo;
import com.gic.haoban.manage.service.service.PreDealService; import com.gic.haoban.manage.service.service.PreDealService;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.SyncTaskService; import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.mq.sdk.GicMQClient; import com.gic.mq.sdk.GicMQClient;
import com.gic.redis.data.util.RedisUtil; import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
@Service @Service
@Deprecated @Deprecated
...@@ -47,12 +33,7 @@ public class FriendSyncOperation implements BaseSyncOperation { ...@@ -47,12 +33,7 @@ public class FriendSyncOperation implements BaseSyncOperation {
private MemberUnionidRelatedApiService memberUnionidRelatedApiService; private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
@Autowired @Autowired
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
@Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired
private StaffApiService staffApiService;
@Autowired
private StaffClerkRelationService staffClerkRelationService;
@Override @Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) { public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
String reason = ""; String reason = "";
......
...@@ -30,7 +30,7 @@ import java.util.List; ...@@ -30,7 +30,7 @@ import java.util.List;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
* 通讯录同步 * 企微通讯录同步
* Created 2020/4/13. * Created 2020/4/13.
* *
* @author hua * @author hua
...@@ -56,7 +56,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -56,7 +56,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
@Override @Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) { public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
logger.info("微信成员处理:{}", JSONObject.toJSONString(dealParamMqDTO)); logger.info("企微通讯录成员同步处理:{}", JSONObject.toJSONString(dealParamMqDTO));
boolean dealFlag = true; boolean dealFlag = true;
String reason = ""; String reason = "";
//处理clerk //处理clerk
...@@ -67,8 +67,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -67,8 +67,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
reason = response.getMessage(); reason = response.getMessage();
} }
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); logger.info("企微通讯录成员同步失败:{}", e.getMessage(), e);
logger.info("微信成员同步失败:{}", e);
reason = "同步异常:"; reason = "同步异常:";
dealFlag = false; dealFlag = false;
} finally { } finally {
...@@ -82,10 +81,10 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -82,10 +81,10 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
@Override @Override
public void dealException(String taskId, String dataId, String enterpriseId, String reason) { public void dealException(String taskId, String dataId, String enterpriseId, String reason) {
logger.info("微信成员处理失败:t:{},d:{}", taskId, dataId); logger.info("企微通讯录成员处理失败:t:{},d:{}", taskId, dataId);
boolean b = preDealService.updateStatusByDataId(taskId, dataId,PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.exception.getVal(), reason); boolean b = preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.exception.getVal(), reason);
if (!b) { if (!b) {
logger.info("微信成员处理异常:t:{}, d:{}", taskId, dataId); logger.info("企微通讯录成员处理异常:t:{}, d:{}", taskId, dataId);
return; return;
} }
checkDepartmentTask(taskId); checkDepartmentTask(taskId);
...@@ -94,10 +93,10 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -94,10 +93,10 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
@Override @Override
public void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId) { public void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId) {
logger.info("微信成员处理成功:t:{},d:{}", taskId, dataId); logger.info("企微通讯录成员处理成功:t:{},d:{}", taskId, dataId);
boolean b = preDealService.updateStatusByDataId(taskId, dataId,PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.computed.getVal(), "成功"); boolean b = preDealService.updateStatusByDataId(taskId, dataId, PreDealTypeEnum.clerk.getVal(), PreDealStatusEnum.computed.getVal(), "成功");
if (!b) { if (!b) {
logger.info("微信成功修改错误!{}", dataId); logger.info("企微通讯录成员成功修改错误!{}", dataId);
return; return;
} }
checkDepartmentTask(taskId); checkDepartmentTask(taskId);
...@@ -109,7 +108,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -109,7 +108,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
if (!b) { if (!b) {
return; return;
} }
logger.info("微信同步成功:{}", taskId); logger.info("企微通讯录成员成功:{}", taskId);
String key = "haoban_sync_clerk_task_" + taskId; String key = "haoban_sync_clerk_task_" + taskId;
RedisUtil.lock(key, 3L); RedisUtil.lock(key, 3L);
TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId); TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId);
...@@ -126,7 +125,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation { ...@@ -126,7 +125,7 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
dealSyncOperationApiService.cleanDiffrence(wxEnterpriseId, taskId); dealSyncOperationApiService.cleanDiffrence(wxEnterpriseId, taskId);
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId); WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseApiService.getOne(wxEnterpriseId);
String corpid = wxEnterpriseDTO.getCorpid(); String corpid = wxEnterpriseDTO.getCorpid();
TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpid,null); TabHaobanWxApplication tabHaobanWxApplication = wxApplicationMapper.selectByCorpId(corpid, null);
logger.info("同步通讯录完成,批量处理wx_user_id,corpid:{}", corpid); logger.info("同步通讯录完成,批量处理wx_user_id,corpid:{}", corpid);
if (corpid.length() > 20) { if (corpid.length() > 20) {
//批量处理wx_user_id to wx_open_user_id //批量处理wx_user_id to wx_open_user_id
......
...@@ -5,8 +5,6 @@ import com.gic.clerk.api.dto.ClerkListDTO; ...@@ -5,8 +5,6 @@ import com.gic.clerk.api.dto.ClerkListDTO;
import com.gic.clerk.api.service.ClerkService; import com.gic.clerk.api.service.ClerkService;
import com.gic.commons.util.GICMQClientUtil; import com.gic.commons.util.GICMQClientUtil;
import com.gic.enterprise.api.dto.StoreDTO; import com.gic.enterprise.api.dto.StoreDTO;
import com.gic.enterprise.api.dto.StoreGroupDTO;
import com.gic.enterprise.api.service.StoreGroupService;
import com.gic.enterprise.api.service.StoreService; import com.gic.enterprise.api.service.StoreService;
import com.gic.haoban.base.api.common.Constant; import com.gic.haoban.base.api.common.Constant;
import com.gic.haoban.base.api.common.ServiceResponse; import com.gic.haoban.base.api.common.ServiceResponse;
...@@ -15,7 +13,6 @@ import com.gic.haoban.manage.api.dto.DepartmentDTO; ...@@ -15,7 +13,6 @@ import com.gic.haoban.manage.api.dto.DepartmentDTO;
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.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.DepartmentApiService; import com.gic.haoban.manage.api.service.DepartmentApiService;
import com.gic.haoban.manage.service.entity.TabHaobanDepartment; import com.gic.haoban.manage.service.entity.TabHaobanDepartment;
import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog; import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
...@@ -51,9 +48,6 @@ public class StoreSyncOperation implements BaseSyncOperation { ...@@ -51,9 +48,6 @@ public class StoreSyncOperation implements BaseSyncOperation {
private DepartmentService departmentService; private DepartmentService departmentService;
@Autowired @Autowired
private StoreGroupService storeGroupService;
@Autowired
private PreDealService preDealService; private PreDealService preDealService;
@Autowired @Autowired
...@@ -69,9 +63,6 @@ public class StoreSyncOperation implements BaseSyncOperation { ...@@ -69,9 +63,6 @@ public class StoreSyncOperation implements BaseSyncOperation {
private ClerkService clerkService; private ClerkService clerkService;
@Autowired @Autowired
private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired
private ClerkSyncOperation clerkSyncOperation; private ClerkSyncOperation clerkSyncOperation;
@Override @Override
...@@ -159,10 +150,7 @@ public class StoreSyncOperation implements BaseSyncOperation { ...@@ -159,10 +150,7 @@ public class StoreSyncOperation implements BaseSyncOperation {
if (finalHasDatas.contains(mid.getClerkId())) { if (finalHasDatas.contains(mid.getClerkId())) {
return false; return false;
} }
if (StringUtils.isBlank(mid.getPhoneNumber())) { return !StringUtils.isBlank(mid.getPhoneNumber());
return false;
}
return true;
}).map(clerkMid -> { }).map(clerkMid -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog(); TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(clerkMid.getClerkId()); dealLog.setDataId(clerkMid.getClerkId());
......
...@@ -40,6 +40,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -40,6 +40,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
private MemberUnionidRelatedApiService memberUnionidRelatedApiService; private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
@Autowired @Autowired
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
private static final String FRIEND_LOCK = "haoban_fresh_wx_friend_lock_"; private static final String FRIEND_LOCK = "haoban_fresh_wx_friend_lock_";
private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_"; private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_";
...@@ -52,6 +53,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -52,6 +53,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
try { try {
String wxEnterpriseId = dataPre.getWxEnterpriseId(); String wxEnterpriseId = dataPre.getWxEnterpriseId();
String wxUserId = dataPre.getDataId(); String wxUserId = dataPre.getDataId();
//获取所有外部联系人的外部联系人ids //获取所有外部联系人的外部联系人ids
List<String> selfUserIdList = memberUnionidRelatedApiService.listSelfExterialList(wxEnterpriseId, wxUserId); List<String> selfUserIdList = memberUnionidRelatedApiService.listSelfExterialList(wxEnterpriseId, wxUserId);
logger.info("selfUserIdList={}", JSONObject.toJSONString(selfUserIdList)); logger.info("selfUserIdList={}", JSONObject.toJSONString(selfUserIdList));
...@@ -76,7 +78,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -76,7 +78,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
return; return;
} }
if (CollectionUtils.isEmpty(userIdList)) { if (CollectionUtils.isEmpty(userIdList)) {
logger.info("用户没有外部联系人2:{}", JSONObject.toJSONString(dataPre)); logger.info("用户没有外部联系人2:{}", JSONObject.toJSONString(dataPre));
dealFlag = false; dealFlag = false;
reason = "该用户没有外部联系人"; reason = "该用户没有外部联系人";
return; return;
...@@ -137,7 +139,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation { ...@@ -137,7 +139,7 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
if (null == cache) { if (null == cache) {
RedisUtil.setCache(key, 1, 2L, TimeUnit.HOURS); RedisUtil.setCache(key, 1, 2L, TimeUnit.HOURS);
} else { } else {
Integer count = Integer.valueOf(cache.toString()); int count = Integer.parseInt(cache.toString());
RedisUtil.setCache(key, count + 1); RedisUtil.setCache(key, count + 1);
if (count > 4) { if (count > 4) {
return false; return false;
......
...@@ -15,12 +15,10 @@ import com.gic.haoban.manage.api.service.ClerkMainStoreRelatedApiService; ...@@ -15,12 +15,10 @@ 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.api.service.StaffApiService; import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog; import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanWxEnterpriseRelated; 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.PreDealService; import com.gic.haoban.manage.service.service.*;
import com.gic.haoban.manage.service.service.StaffClerkRelationService;
import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.haoban.manage.service.service.WxEnterpriseRelatedService;
import com.gic.haoban.manage.service.task.BaseSyncOperation; import com.gic.haoban.manage.service.task.BaseSyncOperation;
import com.gic.member.api.dto.MemberDTO; import com.gic.member.api.dto.MemberDTO;
import com.gic.member.api.service.MemberOpenCardBusinessService; import com.gic.member.api.service.MemberOpenCardBusinessService;
...@@ -43,6 +41,7 @@ import java.util.stream.Collectors; ...@@ -43,6 +41,7 @@ import java.util.stream.Collectors;
*/ */
@Service @Service
public class FriendSyncNewOperation implements BaseSyncOperation { public class FriendSyncNewOperation implements BaseSyncOperation {
private static final Logger logger = LoggerFactory.getLogger(FriendSyncNewOperation.class); private static final Logger logger = LoggerFactory.getLogger(FriendSyncNewOperation.class);
@Autowired @Autowired
private PreDealService preDealService; private PreDealService preDealService;
...@@ -50,7 +49,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -50,7 +49,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
private MemberUnionidRelatedApiService memberUnionidRelatedApiService; private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
@Autowired @Autowired
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
@Autowired @Autowired
private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService; private ClerkMainStoreRelatedApiService clerkMainStoreRelatedApiService;
@Autowired @Autowired
...@@ -59,17 +57,18 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -59,17 +57,18 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
private StaffClerkRelationService staffClerkRelationService; private StaffClerkRelationService staffClerkRelationService;
@Autowired @Autowired
private ClerkService clerkService; private ClerkService clerkService;
@Autowired @Autowired
private PowerService powerService; private PowerService powerService;
@Autowired @Autowired
private MemberOpenCardBusinessService memberOpenCardBusinessService; private MemberOpenCardBusinessService memberOpenCardBusinessService;
@Autowired @Autowired
private FriendClerkSyncNewOperation friendClerkSyncNewOperation; private FriendClerkSyncNewOperation friendClerkSyncNewOperation;
@Autowired @Autowired
private WxEnterpriseRelatedService wxEnterpriseRelatedService; private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Autowired
private WxEnterpriseService wxEnterpriseService;
@Autowired
private StaffService staffService;
private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_"; private static final String TRY_AGAIN = "haoban_fresh_wx_friend_again_";
...@@ -96,6 +95,26 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -96,6 +95,26 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
reason = "好友不存在"; reason = "好友不存在";
return; return;
} }
TabHaobanStaff tabHaobanStaff = staffService.selectByUserIdAndEnterpriseId(wxUserId, wxEnterpriseId);
if (tabHaobanStaff == null) {
dealFlag = false;
reason = "员工不存在";
return;
}
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (wxEnterpriseDTO == null) {
logger.info("没有存在企业关联:wxEnterpriseId:{}", wxEnterpriseId);
dealFlag = false;
reason = "没有关联企业";
return;
}
String corpid = wxEnterpriseDTO.getCorpid();
//wxUserId 兼容
if (corpid.length() > 20) {
wxUserId = tabHaobanStaff.getWxOpenUseId();
} else {
wxUserId = tabHaobanStaff.getWxUserId();
}
//relationkey //relationkey
relationKey = SecureUtil.md5(wxUserId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime()); relationKey = SecureUtil.md5(wxUserId + "_" + externalUserDTO.getName() + "_" + externalUserDTO.getAddCreateTime());
logger.info("relationKey:{},{}", relationKey, externalUserDTO.getExternalUserId()); logger.info("relationKey:{},{}", relationKey, externalUserDTO.getExternalUserId());
...@@ -128,7 +147,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -128,7 +147,6 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
dealFlag = tryAgainToMq(dataPre); dealFlag = tryAgainToMq(dataPre);
reason = "接口重试超出限制"; reason = "接口重试超出限制";
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace();
logger.info("同步失败:{},{}", JSONObject.toJSONString(dataPre), e); logger.info("同步失败:{},{}", JSONObject.toJSONString(dataPre), e);
reason = "第三方好友处理异常"; reason = "第三方好友处理异常";
dealFlag = false; dealFlag = false;
...@@ -198,12 +216,26 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -198,12 +216,26 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
logger.info("没有存在企业关联:{},{}", staffClerkRelationDTO.getWxEnterpriseId(), staffClerkRelationDTO.getEnterpriseId()); logger.info("没有存在企业关联:{},{}", staffClerkRelationDTO.getWxEnterpriseId(), staffClerkRelationDTO.getEnterpriseId());
return "没有关联企业"; return "没有关联企业";
} }
Integer memberOpenCardFlag = wxEnterpriseRelated.getMemberOpenCardFlag();
//好友不同开平 //好友不同开平
if (wxEnterpriseRelated.getMemberOpenCardFlag() == 1) { if (memberOpenCardFlag == 1) {
logger.info("好友不同开平,:{}", JSONObject.toJSONString(externalUserDTO)); logger.info("好友不同开平,:{}", JSONObject.toJSONString(externalUserDTO));
return memberUnionidRelatedApiService.addFriendExternal(externalUserDTO); return memberUnionidRelatedApiService.addFriendExternal(externalUserDTO);
} }
WxEnterpriseDTO wxEnterpriseDTO = wxEnterpriseService.selectById(wxEnterpriseId);
if (wxEnterpriseDTO == null) {
logger.info("没有存在企业关联:wxEnterpriseId:{}", wxEnterpriseId);
return "没有关联企业";
}
Integer agreeExternalUseridFlag = wxEnterpriseDTO.getAgreeExternalUseridFlag();
//同一开平,但是走新规则
if (memberOpenCardFlag == 0
&& agreeExternalUseridFlag != null
&& agreeExternalUseridFlag == 1) {
logger.info("好友同一开平,但是走新规则,:{}", JSONObject.toJSONString(externalUserDTO));
return memberUnionidRelatedApiService.addFriendExternal(externalUserDTO);
}
String clerkCode = staffClerkRelationDTO.getClerkCode(); String clerkCode = staffClerkRelationDTO.getClerkCode();
ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode); ClerkDTO clerk = clerkService.getClerkByClerkCode(staffClerkRelationDTO.getEnterpriseId(), clerkCode);
...@@ -304,7 +336,7 @@ public class FriendSyncNewOperation implements BaseSyncOperation { ...@@ -304,7 +336,7 @@ public class FriendSyncNewOperation implements BaseSyncOperation {
try { try {
clientInstance.sendBatchMessages("departmentSyncDealMq", ret); clientInstance.sendBatchMessages("departmentSyncDealMq", ret);
} catch (Exception e) { } catch (Exception e) {
logger.info("发送失败:{},{}", taskId); logger.info("发送失败:{}", taskId,e);
e.printStackTrace(); e.printStackTrace();
} }
} }
......
...@@ -29,6 +29,9 @@ import java.util.Set; ...@@ -29,6 +29,9 @@ import java.util.Set;
import java.util.concurrent.TimeUnit; import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/**
* 自建好友处理
*/
@Service @Service
public class SelfFriendSyncNewOperation implements BaseSyncOperation { public class SelfFriendSyncNewOperation implements BaseSyncOperation {
...@@ -39,7 +42,6 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -39,7 +42,6 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
private MemberUnionidRelatedApiService memberUnionidRelatedApiService; private MemberUnionidRelatedApiService memberUnionidRelatedApiService;
@Autowired @Autowired
private SyncTaskService syncTaskService; private SyncTaskService syncTaskService;
@Autowired @Autowired
private FriendClerkSyncNewOperation friendClerkSyncNewOperation; private FriendClerkSyncNewOperation friendClerkSyncNewOperation;
...@@ -196,9 +198,4 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation { ...@@ -196,9 +198,4 @@ public class SelfFriendSyncNewOperation implements BaseSyncOperation {
} }
} }
public static void main(String[] args) {
String res = "{'clerkId':'b160eb9a3daf4b3da936b678f1b06744','enterpriseId':'ff8080815dacd3a2015dacd3ef5c0000','externalUserId':'wm59NLDQAAY5Q4pABXAfaTJ6mORvpw','name':'hzw','storeId':'ff8080815695df44015697ada25b0102','wxEnterpriseId':'ca66a01b79474c40b3e7c7f93";
System.err.println(JSON.parseObject(res, ExternalUserDTO.class));
}
} }
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