Commit b013e348 by 墨竹

feat:加好友和同步通讯录链路修改

parent fa5a137f
......@@ -151,7 +151,7 @@ public interface ExternalClerkRelatedApiService {
void delByMemberIdAndEnterpriseId(String memberId, String enterpriseId, String mergeMemberId);
/**
* 导购和会员是否好友关系,true是好友
* 导购和会员是否好友关系,true是好友
*
* @param memberId 会员id
* @param clerkId 导购id
......
......@@ -111,9 +111,8 @@ public class ExternalClerkRelatedApiServiceImpl implements ExternalClerkRelatedA
}
@Override
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList,
String wxEnterpriseId) {
if (userIdList == null || userIdList.isEmpty()) {
public List<ExternalClerkRelatedDTO> listByWxEnterpriseIdAndWxUserIds(List<String> userIdList, String wxEnterpriseId) {
if (CollectionUtils.isEmpty(userIdList)) {
return Collections.EMPTY_LIST;
}
return EntityUtil.changeEntityListByJSON(ExternalClerkRelatedDTO.class, tabHaobanExternalClerkRelatedMapper.listByWxEnterpriseIdAndWxUserIds(userIdList, wxEnterpriseId));
......
......@@ -85,10 +85,8 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
private WxEnterpriseRelatedService wxEnterpriseRelatedService;
@Autowired
private WxEnterpriseService wxEnterpriseService;
@Autowired
private MemberOpenCardBusinessService memberOpenCardBusinessService;
@Autowired
private ClerkService clerkService;
@Autowired
......@@ -181,7 +179,6 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
params.setEnterpriseId(tab.getEnterpriseId());
params.setStoreManagerFlag(isManager(tab.getClerkId()));
MemberInfoListParamsDTO memberInfoListParamsDTO = new MemberInfoListParamsDTO();
memberInfoListParamsDTO.setMemberId(tab.getMemberId());
......@@ -381,6 +378,7 @@ public class MemberUnionidRelatedApiServiceImpl implements MemberUnionidRelatedA
return;
}
String staffId = staff.getStaffId();
dto.setWxUserId(staff.getWxUserId());
TabHaobanClerkMainStoreRelated mainStoreRelated = clerkMainStoreRelatedService.getMainStoreByStaffId(staffId, wxEnterpriseId);
if (mainStoreRelated == null) {
log.info("【新增外部联系人】主门店为空:{}", staffId);
......
......@@ -14,7 +14,7 @@ public interface BaseSyncOperation {
*
* @param dealParamMqDTO
*/
public abstract void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre);
void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre);
/**
* 单条处理异常
......@@ -24,7 +24,7 @@ public interface BaseSyncOperation {
* @param enterpriseId
* @param reason
*/
public abstract void dealException(String taskId, String dataId, String enterpriseId, String reason);
void dealException(String taskId, String dataId, String enterpriseId, String reason);
/**
* 单条处理成功
......@@ -33,8 +33,15 @@ public interface BaseSyncOperation {
* @param dataId
* @param wxEnterpriseId
*/
public abstract void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId);
void dealSuccess(String taskId, String dataId, String enterpriseId, String wxEnterpriseId);
public void checkDepartmentTask(String taskId);
/**
* 检查是否成功
*
* @param taskId 任务id
* @author mozhu
* @date 2021-12-22 11:28:47
*/
void checkDepartmentTask(String taskId);
}
......@@ -3,22 +3,31 @@ package com.gic.haoban.manage.service.task;
import com.alibaba.fastjson.JSONObject;
import com.gic.haoban.base.api.common.ServiceResponse;
import com.gic.haoban.manage.api.dto.DealParamMqDTO;
import com.gic.haoban.manage.api.dto.StaffDTO;
import com.gic.haoban.manage.api.enums.PreDealStatusEnum;
import com.gic.haoban.manage.api.enums.PreDealTypeEnum;
import com.gic.haoban.manage.api.enums.SyncTaskStatusEnum;
import com.gic.haoban.manage.api.service.DealSyncOperationApiService;
import com.gic.haoban.manage.api.service.StaffApiService;
import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.entity.TabHaobanPreDealLog;
import com.gic.haoban.manage.service.entity.TabHaobanSyncTask;
import com.gic.haoban.manage.service.service.PreDealService;
import com.gic.haoban.manage.service.service.SyncTaskService;
import com.gic.redis.data.util.RedisUtil;
import com.gic.wechat.api.dto.qywx.QywxNewUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService;
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.List;
import java.util.stream.Collectors;
/**
* 通讯录同步
* Created 2020/4/13.
*
* @author hua
......@@ -35,9 +44,12 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
@Autowired
private StaffApiService staffApiService;
@Autowired
private DealSyncOperationApiService dealSyncOperationApiService;
@Autowired
private QywxUserApiService qywxUserApiService;
@Autowired
private Config config;
@Override
public void dealSingleByMq(DealParamMqDTO dealParamMqDTO, TabHaobanPreDealLog dataPre) {
......@@ -111,6 +123,19 @@ public class QywxClerkSyncOperation implements BaseSyncOperation {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.compute.getVal());
dealSyncOperationApiService.unlockTask(wxEnterpriseId);
dealSyncOperationApiService.cleanDiffrence(wxEnterpriseId, taskId);
String corpid = config.getCorpid();
logger.info("同步通讯录完成,corpid:{}", corpid);
if (corpid.length() > 20) {
//批量处理wx_user_id to wx_open_user_id
List<StaffDTO> staffDTOS = staffApiService.listUserIdByWxEnterpriseId(wxEnterpriseId);
logger.info("useridToOpenuserid请求:corpid:{}", corpid);
List<QywxNewUseridDTO> qywxNewUseridDTOS = qywxUserApiService.useridToOpenuserid(corpid, config.getWxSuiteid(), staffDTOS.stream().map(StaffDTO::getWxUserId).collect(Collectors.toList()));
if (CollectionUtils.isNotEmpty(qywxNewUseridDTOS)) {
for (QywxNewUseridDTO qywxNewUseridDTO : qywxNewUseridDTOS) {
staffApiService.updateOpenUserIdsByUserId(wxEnterpriseId, qywxNewUseridDTO.getUserid(), qywxNewUseridDTO.getOpen_userid());
}
}
}
}
}
RedisUtil.unlock(key);
......
......@@ -27,6 +27,9 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 微信好友
*/
@Service
public class FriendClerkSyncNewOperation implements BaseSyncOperation {
......@@ -160,7 +163,6 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
logger.info("{}:处理的数据:{}", dataId, JSONObject.toJSONString(dataIds));
dealDepartmentToMq(taskId, new HashSet<>(dataIds), SyncTaskStatusEnum.self_friend_sync);
checkDepartmentTask(taskId);
}
@Override
......@@ -187,7 +189,6 @@ public class FriendClerkSyncNewOperation implements BaseSyncOperation {
String staffLockKey = FRIEND_LOCK + syncTask.getAddUser();
RedisUtil.delCache(staffLockKey);
RedisUtil.unlock(key);
}
......
......@@ -38,6 +38,9 @@ import java.util.Set;
import java.util.concurrent.TimeUnit;
import java.util.stream.Collectors;
/**
* 导购和客户好友关系
*/
@Service
public class FriendSyncNewOperation implements BaseSyncOperation {
private static final Logger logger = LoggerFactory.getLogger(FriendSyncNewOperation.class);
......
......@@ -239,7 +239,14 @@ public class TestController extends WebBaseController {
return resultResponse(HaoBanErrCode.ERR_1);
}
/**
* 后台预留批量处理wx_user_id to wx_open_user_id
*
* @param corpid
* @param suiteId
* @param wxEnterpriseId
* @return
*/
@RequestMapping("/useridToOpenuserid")
public HaobanResponse useridToOpenuserid(String corpid, String suiteId, String wxEnterpriseId) {
//批量处理wx_user_id to wx_open_user_id
......
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