Commit 4c0f3a70 by 墨竹

feat:合并代码

parent 7e853a28
package com.gic.haoban.manage.service.service.impl; package com.gic.haoban.manage.service.service.impl;
import static org.slf4j.LoggerFactory.getLogger;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
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.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.api.base.dto.SubscribeMessageDTO; import com.gic.api.base.dto.SubscribeMessageDTO;
...@@ -40,17 +21,8 @@ import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO; ...@@ -40,17 +21,8 @@ import com.gic.haoban.manage.api.dto.WxEnterpriseQwDTO;
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.service.config.Config; import com.gic.haoban.manage.service.config.Config;
import com.gic.haoban.manage.service.dao.mapper.MemberUnionidRelatedMapper; import com.gic.haoban.manage.service.dao.mapper.*;
import com.gic.haoban.manage.service.config.Config; import com.gic.haoban.manage.service.entity.*;
import com.gic.haoban.manage.service.dao.mapper.StaffMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanExternalClerkRelatedMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanRepairExternalUserMapper;
import com.gic.haoban.manage.service.dao.mapper.TabHaobanStaffClerkRelationMapper;
import com.gic.haoban.manage.service.entity.MemberUnionidRelated;
import com.gic.haoban.manage.service.entity.TabHaobanExternalClerkRelated;
import com.gic.haoban.manage.service.entity.TabHaobanRepairExternalUser;
import com.gic.haoban.manage.service.entity.TabHaobanStaff;
import com.gic.haoban.manage.service.entity.TabHaobanStaffClerkRelation;
import com.gic.haoban.manage.service.service.ExternalClerkRelatedService; import com.gic.haoban.manage.service.service.ExternalClerkRelatedService;
import com.gic.haoban.manage.service.service.SecretSettingService; import com.gic.haoban.manage.service.service.SecretSettingService;
import com.gic.haoban.manage.service.service.WxEnterpriseService; import com.gic.haoban.manage.service.service.WxEnterpriseService;
...@@ -68,6 +40,16 @@ import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO; ...@@ -68,6 +40,16 @@ import com.gic.search.engine.api.dto.dynamic.DynamicSearchDTO;
import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService; import com.gic.search.engine.api.service.dynamic.ESDataDynamicOperationApiService;
import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO; import com.gic.wechat.api.dto.qywx.QywxNewExternalUseridDTO;
import com.gic.wechat.api.service.qywx.QywxUserApiService; import com.gic.wechat.api.service.qywx.QywxUserApiService;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.*;
import java.util.stream.Collectors;
import static org.slf4j.LoggerFactory.getLogger;
@Service @Service
public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedService { public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedService {
...@@ -96,18 +78,16 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -96,18 +78,16 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
private MemberEntranceApiService memberEntranceApiService; private MemberEntranceApiService memberEntranceApiService;
@Autowired @Autowired
private Config config; private Config config;
private WxEnterpriseService wxEnterpriseService ;
@Autowired @Autowired
private MemberUnionidRelatedMapper memberUnionidRelatedMapper ; private WxEnterpriseService wxEnterpriseService;
@Autowired @Autowired
private QywxUserApiService qywxUserApiService ; private MemberUnionidRelatedMapper memberUnionidRelatedMapper;
@Autowired @Autowired
private Config config; private QywxUserApiService qywxUserApiService;
@Autowired @Autowired
private TabHaobanRepairExternalUserMapper tabHaobanRepairExternalUserMapper ; private TabHaobanRepairExternalUserMapper tabHaobanRepairExternalUserMapper;
@Autowired @Autowired
private SecretSettingService secretSettingService ; private SecretSettingService secretSettingService;
@Override @Override
public void insert(TabHaobanExternalClerkRelated related) { public void insert(TabHaobanExternalClerkRelated related) {
...@@ -187,7 +167,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -187,7 +167,7 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
wxUserAddLogService.save(wxUserAddLogQDTO); wxUserAddLogService.save(wxUserAddLogQDTO);
//定制 //定制
addDelFriendEvent(related.getUnionid(), related.getClerkId(), enterpriseId, related.getMemberId(), related.getStoreId(),0); addDelFriendEvent(related.getUnionid(), related.getClerkId(), enterpriseId, related.getMemberId(), related.getStoreId(), 0);
} }
/** /**
...@@ -355,140 +335,140 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ ...@@ -355,140 +335,140 @@ public class ExternalClerkRelatedServiceImpl implements ExternalClerkRelatedServ
@Override @Override
public void repairExternalUserId(String wxEnterpriseIds) { public void repairExternalUserId(String wxEnterpriseIds) {
logger.info("外部联系人检查,wxEnterpriseIds={}",wxEnterpriseIds); logger.info("外部联系人检查,wxEnterpriseIds={}",wxEnterpriseIds);
DingUtils.send("外部联系人修复消息,企业="+wxEnterpriseIds+",tranceid="+ProviderLocalTag.tag.get(), false); DingUtils.send("外部联系人修复消息,企业=" + wxEnterpriseIds + ",tranceid=" + ProviderLocalTag.tag.get(), false);
if(StringUtils.isEmpty(wxEnterpriseIds)) { if (StringUtils.isEmpty(wxEnterpriseIds)) {
return ; return;
} }
Object cache = RedisUtil.getCache("repairExternalUserId") ; Object cache = RedisUtil.getCache("repairExternalUserId");
String[] arr = wxEnterpriseIds.split(",") ; String[] arr = wxEnterpriseIds.split(",");
for(int i=0;i<arr.length;i++) { for (int i = 0; i < arr.length; i++) {
String wxEnterpriseId = arr[i] ; String wxEnterpriseId = arr[i];
if(StringUtils.isEmpty(wxEnterpriseId)) { if (StringUtils.isEmpty(wxEnterpriseId)) {
continue ; continue;
} }
WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId) ; WxEnterpriseQwDTO qwDTO = this.wxEnterpriseService.getQwInfo(wxEnterpriseId);
if(null == qwDTO) { if (null == qwDTO) {
logger.info("外部联系人检查,企业不存在,wxEnterpriseId={}",wxEnterpriseId); logger.info("外部联系人检查,企业不存在,wxEnterpriseId={}", wxEnterpriseId);
continue ; continue;
} }
SecretSettingDTO secret = this.secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CUSTOMIZED_APP.getVal()) ; SecretSettingDTO secret = this.secretSettingService.getSecretSetting(wxEnterpriseId, SecretTypeEnum.CUSTOMIZED_APP.getVal());
int pageSize = 800 ; int pageSize = 800;
int pageNum = 0 ; int pageNum = 0;
while(true) { while (true) {
List<TabHaobanExternalClerkRelated> list = this.mapper.listPageByWxenterpriseId(wxEnterpriseId, pageNum*pageSize, pageSize) ; List<TabHaobanExternalClerkRelated> list = this.mapper.listPageByWxenterpriseId(wxEnterpriseId, pageNum * pageSize, pageSize);
if(CollectionUtils.isEmpty(list)) { if (CollectionUtils.isEmpty(list)) {
break ; break;
} }
pageNum++; pageNum++;
Set<String> externalUserIdSet = list.stream().map(dto->dto.getExternalUserId()).collect(Collectors.toSet()) ; Set<String> externalUserIdSet = list.stream().map(dto -> dto.getExternalUserId()).collect(Collectors.toSet());
List<String> externalUserIdList = new ArrayList<>(); List<String> externalUserIdList = new ArrayList<>();
externalUserIdList.addAll(externalUserIdSet) ; externalUserIdList.addAll(externalUserIdSet);
List<MemberUnionidRelated> unionidlist = this.memberUnionidRelatedMapper.listByWxEnterpriseIdAndExternalUserId(wxEnterpriseId, externalUserIdList) ; List<MemberUnionidRelated> unionidlist = this.memberUnionidRelatedMapper.listByWxEnterpriseIdAndExternalUserId(wxEnterpriseId, externalUserIdList);
Map<String,String> map = unionidlist.stream().collect(Collectors.toMap(MemberUnionidRelated::getExternalUserid, MemberUnionidRelated::getSelfExternalUserid,(k1,k2)->k1)) ; Map<String, String> map = unionidlist.stream().collect(Collectors.toMap(MemberUnionidRelated::getExternalUserid, MemberUnionidRelated::getSelfExternalUserid, (k1, k2) -> k1));
logger.info("外部联系人检查,第{}次,好友数={},unionid表数={}",pageNum,externalUserIdList.size(),unionidlist.size()); logger.info("外部联系人检查,第{}次,好友数={},unionid表数={}", pageNum, externalUserIdList.size(), unionidlist.size());
List<String> delList = new ArrayList<>() ; List<String> delList = new ArrayList<>();
Set<String> checkSet = unionidlist.stream().map(dto->dto.getExternalUserid()).collect(Collectors.toSet()) ; Set<String> checkSet = unionidlist.stream().map(dto -> dto.getExternalUserid()).collect(Collectors.toSet());
List<String> checkList = new ArrayList<>(); List<String> checkList = new ArrayList<>();
checkList.addAll(checkSet) ; checkList.addAll(checkSet);
for(String item : externalUserIdList) { for (String item : externalUserIdList) {
if(!checkList.contains(item)) { if (!checkList.contains(item)) {
delList.add(item) ; delList.add(item);
} }
} }
logger.info("外部联系人检查,unionid表不存在记录的数量={},待检查数={}",delList.size(),checkList.size()); logger.info("外部联系人检查,unionid表不存在记录的数量={},待检查数={}", delList.size(), checkList.size());
List<String> notExistQwList = new ArrayList<>(); List<String> notExistQwList = new ArrayList<>();
List<TabHaobanRepairExternalUser> errorList = new ArrayList<>() ; List<TabHaobanRepairExternalUser> errorList = new ArrayList<>();
if(CollectionUtils.isNotEmpty(checkList)) { if (CollectionUtils.isNotEmpty(checkList)) {
List<String> qwList = new ArrayList<>(); List<String> qwList = new ArrayList<>();
List<QywxNewExternalUseridDTO> newExternalUseridList = null ; List<QywxNewExternalUseridDTO> newExternalUseridList = null;
if(null != cache) { if (null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), checkList) ; newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), checkList);
}else { } else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), checkList) ; newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), checkList);
} }
if (null != newExternalUseridList) { if (null != newExternalUseridList) {
logger.info("外部联系人检查,查询企微数={},返回数={}",checkList.size(),newExternalUseridList.size()); logger.info("外部联系人检查,查询企微数={},返回数={}", checkList.size(), newExternalUseridList.size());
for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) { for (QywxNewExternalUseridDTO qywxNewExternalUseridDTO : newExternalUseridList) {
String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid(); String new_external_userid = qywxNewExternalUseridDTO.getNew_external_userid();
String external_userid = qywxNewExternalUseridDTO.getExternal_userid(); String external_userid = qywxNewExternalUseridDTO.getExternal_userid();
qwList.add(external_userid) ; qwList.add(external_userid);
if(new_external_userid.equals(external_userid)) { if (new_external_userid.equals(external_userid)) {
continue ; continue;
}else { } else {
logger.info("外部联系人检查,数据异常={}",new_external_userid,external_userid); logger.info("外部联系人检查,数据异常={}", new_external_userid, external_userid);
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser(); TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong()); user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(external_userid); user.setUserId(external_userid);
user.setWxEnterpriseId(wxEnterpriseId); user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(111); user.setStatusFlag(111);
user.setRemark(new_external_userid); user.setRemark(new_external_userid);
errorList.add(user) ; errorList.add(user);
} }
} }
if(checkList.size()!=newExternalUseridList.size()) { if (checkList.size() != newExternalUseridList.size()) {
for(String item : checkList) { for (String item : checkList) {
if(!qwList.contains(item)) { if (!qwList.contains(item)) {
notExistQwList.add(item) ; notExistQwList.add(item);
} }
} }
} }
}else { } else {
logger.info("外部联系人检查,调用企业异常"); logger.info("外部联系人检查,调用企业异常");
} }
// 通过外部联系人查询不到 // 通过外部联系人查询不到
if(CollectionUtils.isNotEmpty(notExistQwList)) { if (CollectionUtils.isNotEmpty(notExistQwList)) {
// 需要用自建的查询的 // 需要用自建的查询的
List<String> selfList = new ArrayList<>(); List<String> selfList = new ArrayList<>();
List<TabHaobanRepairExternalUser> addList = new ArrayList<>(); List<TabHaobanRepairExternalUser> addList = new ArrayList<>();
for(String item : notExistQwList) { for (String item : notExistQwList) {
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser(); TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong()); user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(item); user.setUserId(item);
if(StringUtils.isNotBlank(map.get(item)) && !map.get(item).equals(item)) { if (StringUtils.isNotBlank(map.get(item)) && !map.get(item).equals(item)) {
selfList.add(map.get(item)) ; selfList.add(map.get(item));
} }
user.setSelfUserId(map.get(item)); user.setSelfUserId(map.get(item));
user.setWxEnterpriseId(wxEnterpriseId); user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(11); user.setStatusFlag(11);
user.setRemark("企微查询不到"); user.setRemark("企微查询不到");
addList.add(user) ; addList.add(user);
} }
if(CollectionUtils.isNotEmpty(selfList)) { if (CollectionUtils.isNotEmpty(selfList)) {
newExternalUseridList = null ; newExternalUseridList = null;
if(null != cache) { if (null != cache) {
newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), selfList) ; newExternalUseridList = this.qywxUserApiService.getNewExternalUseridByList(qwDTO.getThirdCorpid(), config.getWxSuiteid(), selfList);
}else { } else {
newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), selfList) ; newExternalUseridList = this.qywxUserApiService.getSelfNewExternalUseridByList(qwDTO.getDkCorpid(), secret.getSecretVal(), selfList);
} }
Map<String,String> selfMap = new HashMap<>() ; Map<String, String> selfMap = new HashMap<>();
if(null != newExternalUseridList) { if (null != newExternalUseridList) {
selfMap = newExternalUseridList.stream().collect(Collectors.toMap(QywxNewExternalUseridDTO::getExternal_userid, QywxNewExternalUseridDTO::getNew_external_userid,(k1,k2)->k1)) ; selfMap = newExternalUseridList.stream().collect(Collectors.toMap(QywxNewExternalUseridDTO::getExternal_userid, QywxNewExternalUseridDTO::getNew_external_userid, (k1, k2) -> k1));
} }
for(TabHaobanRepairExternalUser item : addList) { for (TabHaobanRepairExternalUser item : addList) {
item.setNewUserId(selfMap.get(item.getSelfUserId())); item.setNewUserId(selfMap.get(item.getSelfUserId()));
} }
} }
this.tabHaobanRepairExternalUserMapper.batchInsert(addList) ; this.tabHaobanRepairExternalUserMapper.batchInsert(addList);
} }
// unionid表不存在的记录 // unionid表不存在的记录
if(CollectionUtils.isNotEmpty(delList)) { if (CollectionUtils.isNotEmpty(delList)) {
List<TabHaobanRepairExternalUser> addList = new ArrayList<>(); List<TabHaobanRepairExternalUser> addList = new ArrayList<>();
for(String item : delList) { for (String item : delList) {
TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser(); TabHaobanRepairExternalUser user = new TabHaobanRepairExternalUser();
user.setId(UniqueIdUtils.uniqueLong()); user.setId(UniqueIdUtils.uniqueLong());
user.setUserId(item); user.setUserId(item);
user.setWxEnterpriseId(wxEnterpriseId); user.setWxEnterpriseId(wxEnterpriseId);
user.setStatusFlag(1); user.setStatusFlag(1);
user.setRemark("unionid不存在记录"); user.setRemark("unionid不存在记录");
addList.add(user) ; addList.add(user);
} }
this.tabHaobanRepairExternalUserMapper.batchInsert(addList) ; this.tabHaobanRepairExternalUserMapper.batchInsert(addList);
} }
// 错误的ID // 错误的ID
if(CollectionUtils.isNotEmpty(errorList)) { if (CollectionUtils.isNotEmpty(errorList)) {
this.tabHaobanRepairExternalUserMapper.batchInsert(errorList) ; this.tabHaobanRepairExternalUserMapper.batchInsert(errorList);
} }
} }
} }
......
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