Commit dfd23c86 by 徐高华

通讯录

parent aab35788
......@@ -204,7 +204,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
logger.info("处理开始:类型:{}", syncTaskStatusEnum.getVal());
//处理预处理数据
preDealService.updateExceptionToPre(taskId);
dealDepartmentToMq(taskId, midList, syncTaskStatusEnum);
sendToMq(taskId, midList, syncTaskStatusEnum,null);
}
......@@ -213,7 +213,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
RedisUtil.lock(key, 10L);
String taskLock = getTaskLock(wxEnterpriseId);
if (StringUtils.isNotBlank(taskLock)) {
logger.info("【同步锁】taskLock={}", taskLock);
logger.info("【同步锁】taskLock={},key={}", taskLock,key);
RedisUtil.unlock(key);
return null;
}
......@@ -340,10 +340,10 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
private void dealDepartmentInit(String taskId, String wxEnterpriseId, List<SyncSingleDealDTO> addList) {
Set<String> addListMid = addList.stream().filter(dto -> dto.getStoreFlag().equals(0)).map(dto -> dto.getRelatedId()).collect(Collectors.toSet());
if (CollectionUtils.isNotEmpty(addListMid)) {
dealDepartmentToMq(taskId, addListMid, SyncTaskStatusEnum.group_sync);
sendToMq(taskId, addListMid, SyncTaskStatusEnum.group_sync,null);
} else {
addListMid = addList.stream().filter(dto -> dto.getStoreFlag().equals(1)).map(dto -> dto.getRelatedId()).collect(Collectors.toSet());
dealDepartmentToMq(taskId, addListMid, SyncTaskStatusEnum.store_sync);
sendToMq(taskId, addListMid, SyncTaskStatusEnum.store_sync,null);
}
}
......@@ -351,28 +351,9 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
* 放入mq处理部门数据
*
* @param taskId
* @param dealList
* @param
*/
private void dealDepartmentToMq(String taskId, Set<String> dealList, SyncTaskStatusEnum syncTaskStatusEnum) {
//预处理分组任务
syncTaskService.updateTaskStatus(taskId, syncTaskStatusEnum.getVal());
List<String> listRet = dealList.stream().map(relationId -> {
DealParamMqDTO dealParamMqDTO = new DealParamMqDTO();
dealParamMqDTO.setTaskId(taskId);
dealParamMqDTO.setData(relationId);
dealParamMqDTO.setType(syncTaskStatusEnum.getVal());
return JSONObject.toJSONString(dealParamMqDTO);
}).collect(Collectors.toList());
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
logger.info("放入mq={}",JSON.toJSONString(listRet));
clientInstance.sendBatchMessages("departmentSyncDealMq", listRet, 10);
} catch (Exception e) {
logger.info("发送失败:{},{}", taskId, JSONObject.toJSONString(listRet));
e.printStackTrace();
}
}
public String lockTask(String wxEnterpriseId, String taskId) {
......@@ -555,13 +536,14 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
unlockTask(wxEnterpriseId);
return "没有配置secret";
}
List<com.gic.wechat.api.dto.qywx.DepartmentDTO> list = qywxDepartmentApiService.listSelfDepartment(qwDTO.getDkCorpid(), secretSetting.getSecretVal(), 1,qwDTO.getUrlHost());
List<com.gic.wechat.api.dto.qywx.DepartmentDTO> list = qywxDepartmentApiService.simplelistSelfDepartment(qwDTO.getDkCorpid(), secretSetting.getSecretVal(), 1,qwDTO.getUrlHost());
if (CollectionUtils.isEmpty(list)) {
logger.info("没有数据同步");
logger.info("企微部门数量0,退出同步");
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.exception_close.getVal());
unlockTask(wxEnterpriseId);
return "没有数据同步或权限没设置全部";
}
logger.info("企微部门数={}",list.size());
List<TabHaobanPreDealLog> dealLogList = list.stream().map(dto -> {
TabHaobanPreDealLog dealLog = new TabHaobanPreDealLog();
dealLog.setDataId(dto.getId().toString());
......@@ -573,11 +555,11 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
dealLog.setWxEnterpriseId(wxEnterpriseId);
return dealLog;
}).collect(Collectors.toList());
// 保存部门数据
preDealService.insert(dealLogList);
HashSet<String> hashSet = new HashSet<>();
hashSet.add("1");
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.group_sync);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.group_sync,"departmentSyncDealMq2");
return null;
}
......@@ -647,7 +629,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
preDealService.insert(dealLogList);
HashSet<String> hashSet = (HashSet<String>) dealLogList.stream().map(TabHaobanPreDealLog::getDataId).collect(Collectors.toSet());
dealFriendToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync,"friendSyncDealMq");
}
@Override
......@@ -692,7 +674,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
dealLogList.add(dealLog);
preDealService.insert(dealLogList);
HashSet<String> hashSet = (HashSet<String>) dealLogList.stream().map(TabHaobanPreDealLog::getDataId).collect(Collectors.toSet());
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync,null);
}
@Override
......@@ -715,7 +697,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}).collect(Collectors.toList());
preDealService.insert(dealLogList);
Set<String> hashSet = dealLogList.stream().map(TabHaobanPreDealLog::getDataId).collect(Collectors.toSet());
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.friend_clerk_sync,null);
}
@Override
......@@ -728,14 +710,11 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}
}
/**
* 放入mq处理部门数据
*
* @param taskId
* @param dealList
*/
private void dealFriendToMq(String taskId, Set<String> dealList, SyncTaskStatusEnum syncTaskStatusEnum) {
private void sendToMq(String taskId, Set<String> dealList, SyncTaskStatusEnum syncTaskStatusEnum , String mqName) {
//预处理分组任务
if(StringUtils.isEmpty(mqName)) {
mqName = "departmentSyncDealMq" ;
}
syncTaskService.updateTaskStatus(taskId, syncTaskStatusEnum.getVal());
List<String> listRet = dealList.stream().map(relationId -> {
DealParamMqDTO dealParamMqDTO = new DealParamMqDTO();
......@@ -744,11 +723,14 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
dealParamMqDTO.setType(syncTaskStatusEnum.getVal());
return JSONObject.toJSONString(dealParamMqDTO);
}).collect(Collectors.toList());
GicMQClient clientInstance = GICMQClientUtil.getClientInstance();
try {
clientInstance.sendBatchMessages("friendSyncDealMq", listRet);
logger.info("放入mq={}",JSON.toJSONString(listRet));
clientInstance.sendBatchMessages(mqName, listRet, 10);
} catch (Exception e) {
logger.info("发送失败:{},{}", taskId, JSONObject.toJSONString(listRet), e);
logger.info("发送失败:{},{}", taskId, JSONObject.toJSONString(listRet));
e.printStackTrace();
}
}
......@@ -803,7 +785,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
}).collect(Collectors.toList());
preDealService.insert(dealLogList);
Set<String> hashSet = dealLogList.stream().map(TabHaobanPreDealLog::getDataId).collect(Collectors.toSet());
dealDepartmentToMq(taskId, hashSet, SyncTaskStatusEnum.tag);
sendToMq(taskId, hashSet, SyncTaskStatusEnum.tag,null);
}
/**
......@@ -913,7 +895,7 @@ public class DealSyncOperationApiServiceImpl implements DealSyncOperationApiServ
logger.info("无第三方的数据/自建");
preDealService.updateStatusByDataId(taskId, stffId, PreDealTypeEnum.friend_clerk.getVal(), PreDealStatusEnum.computed.getVal(), "成功");
} else {
dealDepartmentToMq(taskId, new HashSet<>(dataIds), SyncTaskStatusEnum.friend_sync);
sendToMq(taskId, new HashSet<>(dataIds), SyncTaskStatusEnum.friend_sync,null);
}
RedisUtil.unlock(lockKey);
}
......
......@@ -112,18 +112,8 @@ public class QywxStaffSyncOperation implements BaseSyncOperation {
TabHaobanSyncTask syncTask = syncTaskService.getSyncTask(taskId);
String wxEnterpriseId = syncTask.getWxEnterpriseId();
//同步成功 进入门店处理
if (syncTask.getStatusFlag().equals(SyncTaskStatusEnum.clerk_sync.getVal())) {
int errCount = preDealService.countByTaskId(taskId, -1, PreDealStatusEnum.exception.getVal());
if (errCount > 0) {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.exception_compute.getVal());
dealSyncOperationApiService.unlockTask(wxEnterpriseId);
} else {
syncTaskService.updateTaskStatus(taskId, SyncTaskStatusEnum.compute.getVal());
dealSyncOperationApiService.unlockTask(wxEnterpriseId);
dealSyncOperationApiService.cleanDiffrence(wxEnterpriseId, taskId);
logger.info("同步通讯录完成");
}
}
dealSyncOperationApiService.unlockTask(wxEnterpriseId) ;
logger.info("同步通讯录完成");
RedisUtil.unlock(key);
}
......
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