diff --git a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
index 565f341e2..c5329cd09 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/constants/CommonConstants.java
@@ -68,6 +68,7 @@ public class CommonConstants {
public static final String SQUAREBRACKETSRIGHT = "]";
public static final String PATH_SPILT = "/";
+ public static final String ROOT_REGION_PATH = "/1/";
/**
* rocketmq 消息最大重试次数
diff --git a/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java
index b66102b4f..6685e0a14 100644
--- a/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java
+++ b/coolstore-partner-common/src/main/java/com/cool/store/exception/ServiceException.java
@@ -56,7 +56,6 @@ public class ServiceException extends RuntimeException{
* 构造函数
* @param errorMessage
*/
- @Deprecated
public ServiceException(String errorMessage) {
super(errorMessage);
this.errorMessage = errorMessage;
diff --git a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml
index 4556e00e9..bf8536c1c 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/HyPartnerUserInfoMapper.xml
@@ -52,16 +52,16 @@
diff --git a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
index 6ca1f1eb0..194a9ccf8 100644
--- a/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
+++ b/coolstore-partner-dao/src/main/resources/mapper/RegionMapper.xml
@@ -165,7 +165,7 @@
from
region
where
- region_id in #{regionId}
+ deleted ='0' and region_id in #{regionId}
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java
index 2db6627f7..e83ad0c47 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/dto/enterprise/EnterpriseUserDTO.java
@@ -1,6 +1,7 @@
package com.cool.store.dto.enterprise;
import com.alibaba.fastjson.JSONObject;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.enums.FSEventTypeEnum;
import com.cool.store.enums.UserStatusEnum;
@@ -126,6 +127,10 @@ public class EnterpriseUserDTO implements Serializable {
regionPaths.add(regionPathMap.get(departmentId));
}
}
+ //挂跟节点
+ if(CollectionUtils.isEmpty(regionPaths)){
+ regionPaths.add(CommonConstants.ROOT_REGION_PATH);
+ }
Collection deptIds = leaderDeptMap.get(user.getUserId());
if(CollectionUtils.isNotEmpty(deptIds)){
enterpriseUserDO.setIsLeader(Boolean.TRUE);
@@ -162,9 +167,15 @@ public class EnterpriseUserDTO implements Serializable {
List regionPaths = new ArrayList<>();
if(CollectionUtils.isNotEmpty(departmentLists)){
for (String departmentId : departmentLists) {
- regionPaths.add(regionPathMap.get(departmentId));
+ String regionPath = regionPathMap.get(departmentId);
+ if(StringUtils.isNotBlank(regionPath)){
+ regionPaths.add(regionPath);
+ }
}
}
+ if(CollectionUtils.isEmpty(regionPaths)){
+ regionPaths.add(CommonConstants.ROOT_REGION_PATH);
+ }
//创建的时候给个默认值
if(FSEventTypeEnum.USER_CREATED.equals(eventType)){
enterpriseUserDO.setIsLeader(Boolean.FALSE);
diff --git a/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java
index 3478dac98..447c77fcf 100644
--- a/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java
+++ b/coolstore-partner-model/src/main/java/com/cool/store/entity/UserRegionMappingDO.java
@@ -1,5 +1,6 @@
package com.cool.store.entity;
+import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dto.enterprise.EnterpriseUserDTO;
import com.cool.store.enums.DataSourceEnum;
@@ -8,6 +9,7 @@ import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
+import java.util.stream.Collectors;
import lombok.AllArgsConstructor;
import lombok.Builder;
@@ -88,4 +90,30 @@ public class UserRegionMappingDO implements Serializable {
}
return resultList;
}
+
+
+ public static List convertSyncDO(List userList){
+ if(CollectionUtils.isEmpty(userList)){
+ return Lists.newArrayList();
+ }
+ List resultList = new ArrayList<>();
+ for (EnterpriseUserDO user : userList) {
+ List userRegionIds = JSONObject.parseArray(user.getUserRegionIds(), String.class).stream().distinct().collect(Collectors.toList());
+ for (String userRegionId : userRegionIds) {
+ String[] split = userRegionId.split(CommonConstants.PATH_SPILT);
+ if(split.length == 0){
+ continue;
+ }
+ UserRegionMappingDO userRegion = new UserRegionMappingDO();
+ userRegion.setRegionId(split[split.length-1]);
+ userRegion.setUserId(user.getUserId());
+ userRegion.setType(DataSourceEnum.SYNC.getCode());
+ userRegion.setCreateTime(System.currentTimeMillis());
+ userRegion.setUpdateTime(System.currentTimeMillis());
+ userRegion.setDeleted(Boolean.FALSE);
+ resultList.add(userRegion);
+ }
+ }
+ return resultList;
+ }
}
\ No newline at end of file
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
index b2c9876de..0e26c0073 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/http/ISVHttpRequest.java
@@ -1,6 +1,7 @@
package com.cool.store.http;
import com.alibaba.fastjson.JSONObject;
+import com.cool.store.constants.CommonConstants;
import com.cool.store.dto.calendar.*;
import com.cool.store.dto.enterprise.AuthInfoDTO;
import com.cool.store.dto.enterprise.AuthScopeDTO;
@@ -12,6 +13,7 @@ import com.cool.store.dto.response.ResultDTO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.exception.ApiException;
+import com.cool.store.exception.ServiceException;
import com.cool.store.mq.util.HttpRestTemplateService;
import com.cool.store.request.EnterpriseUserRequest;
import com.cool.store.utils.RestTemplateUtil;
@@ -56,6 +58,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -73,6 +76,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -89,6 +93,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -105,6 +110,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -122,6 +128,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -144,6 +151,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -160,6 +168,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -177,14 +186,15 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
public List getUserDetailByUserIds(List userIdList) {
- String url = isvDomain + "/corp/getDepartmentUsers";
+ String url = isvDomain + "/corp/getUserDetailByUserIds";
HashMap requestMap = new HashMap();
- requestMap.put("userIds", userIdList);
+ requestMap.put("userIds", String.join(CommonConstants.COMMA, userIdList));
ResultDTO responseEntity = null;
try {
responseEntity = httpRestTemplateService.getForObject(url, ResultDTO.class, requestMap);
@@ -194,6 +204,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
@@ -212,6 +223,7 @@ public class ISVHttpRequest {
}
} catch (Exception e) {
log.info("调用isv出错{}", e);
+ throw new ServiceException(e.getMessage());
}
return null;
}
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java
index dfaf30931..0345e5d11 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EcSyncServiceImpl.java
@@ -70,7 +70,6 @@ public class EcSyncServiceImpl implements EcSyncService {
public boolean ecToApplet(List queryListData) {
for (CustomerInfoRequest customerInfoItem : queryListData) {
try {
- Thread.sleep(500L);
insertSelectiveSync(customerInfoItem);
} catch (Exception e) {
e.printStackTrace();
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
index 7fdfde394..53b08eca8 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/EnterpriseSyncServiceImpl.java
@@ -54,13 +54,15 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
@Override
public void syncAll() {
+ AuthScopeDTO authScope = isvHttpRequest.getAuthScope();
+ List authUserIdList = authScope.getUserIdList();
//同步部门
Pair, Multimap> listMultimapPair = syncRegion();
List regionList = listMultimapPair.getKey();
Multimap leaderDeptMap = listMultimapPair.getValue();
Multimap roleUserMap = ArrayListMultimap.create();
//同步用户及部门
- syncUserAndUserRegion(regionList, roleUserMap, leaderDeptMap);
+ syncUserAndUserRegion(regionList, authUserIdList, roleUserMap, leaderDeptMap);
//处理用户角色 删除多余的角色
if(!roleUserMap.isEmpty()){
List insertOrUpdateList = new ArrayList<>();
@@ -114,7 +116,7 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
* @param roleUserMap
* @param leaderDeptMap
*/
- private void syncUserAndUserRegion(List regionList, Multimap roleUserMap, Multimap leaderDeptMap){
+ private void syncUserAndUserRegion(List regionList, List authUserIdList, Multimap roleUserMap, Multimap leaderDeptMap){
Map regionPathMap = regionList.stream().collect(Collectors.toMap(RegionDO::getRegionId, RegionDO::getRegionPath));
List userList = new ArrayList<>();
List userRegionList = new ArrayList<>();
@@ -141,6 +143,14 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
userRegionList.clear();
}
}
+ if(CollectionUtils.isNotEmpty(authUserIdList)){
+ userIds.addAll(authUserIdList);
+ List userDetailList = isvHttpRequest.getUserDetailByUserIds(authUserIdList);
+ List enterpriseUserList = EnterpriseUserDTO.transUserDtoToDo(userDetailList, regionPathMap, leaderDeptMap, roleUserMap);
+ List userRegionMapping = UserRegionMappingDO.convertSyncDO(enterpriseUserList);
+ userRegionList.addAll(userRegionMapping);
+ userList.addAll(enterpriseUserList);
+ }
enterpriseUserDAO.batchInsertOrUpdate(userList);
userRegionMappingDAO.batchInsertOrUpdateUserRegion(userRegionList);
//删除不存在的用户
@@ -185,9 +195,7 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
leaderDeptMap = regionPair.getValue();
}
regionPathMap = regionList.stream().collect(Collectors.toMap(k->k.getRegionId(), v->v.getRegionPath()));
- userRegionMappingDAO.batchInsertOrUpdateUserRegion(UserRegionMappingDO.convertSyncDO(departmentLists, userDetail.getUserId()));
}
- userRegionMappingDAO.deleteUserRegionByUserId(userDetail.getUserId(), DataSourceEnum.SYNC, departmentLists);
String jobTitle = userDetail.getJobTitle();
if(StringUtils.isNotBlank(jobTitle)){
SysRoleDO role = sysRoleDAO.getRoleByName(jobTitle, DataSourceEnum.SYNC);
@@ -204,6 +212,8 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
}
EnterpriseUserDO enterpriseUser = EnterpriseUserDTO.transUserDtoToDo(userDetail, regionPathMap, leaderDeptMap, eventType);
enterpriseUserDAO.batchInsertOrUpdate(new ArrayList<>(Arrays.asList(enterpriseUser)));
+ userRegionMappingDAO.batchInsertOrUpdateUserRegion(UserRegionMappingDO.convertSyncDO(Arrays.asList(enterpriseUser)));
+ userRegionMappingDAO.deleteUserRegionByUserId(userDetail.getUserId(), DataSourceEnum.SYNC, departmentLists);
break;
case USER_DELETED:
//人员职位删除状态,角色职位删除状态,人员从部门去除
diff --git a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java
index 8f7c5aa53..ca44812f5 100644
--- a/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java
+++ b/coolstore-partner-service/src/main/java/com/cool/store/service/impl/HyPartnerBaseInfoServiceImpl.java
@@ -206,6 +206,7 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
// 把旧线索的身份证号置空,状态改为待提交
HyPartnerBaseInfoDO oldBaseInfo = hyPartnerBaseInfoDAO.getByIdCard(idCard);
HyPartnerLineInfoDO oldLineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(oldBaseInfo.getPartnerLineId());
+ HyPartnerUserInfoDO oldPartnerUser = hyPartnerUserInfoDAO.selectByPartnerId(oldBaseInfo.getPartnerId());
// 该身份证当前申请状态同步至该账号下,原账号变为【加盟意向申请 待提交状态】
HyPartnerLineInfoDO newLineInfo = hyPartnerLineInfoDAO.selectByPrimaryKeySelective(lineId);
Long newLindId = newLineInfo.getId();
@@ -230,8 +231,15 @@ public class HyPartnerBaseInfoServiceImpl implements HyPartnerBaseInfoService {
hyPartnerUserInfoDO.setUsername(oldBaseInfo.getUsername());
hyPartnerUserInfoDO.setWantShopArea(oldIntentInfo.getWantShopArea());
hyPartnerUserInfoDO.setAcceptAdjustType(oldIntentInfo.getAcceptAdjustType());
- hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
+
}
+ hyPartnerUserInfoDO.setRecommendPartnerId(oldPartnerUser.getRecommendPartnerId());
+ hyPartnerUserInfoDO.setRecommendPartnerName(oldPartnerUser.getRecommendPartnerName());
+ hyPartnerUserInfoDO.setRecommendPartnerMobile(oldPartnerUser.getRecommendPartnerMobile());
+ hyPartnerUserInfoDO.setShopCode(oldPartnerUser.getShopCode());
+ hyPartnerUserInfoDO.setShopName(oldPartnerUser.getShopName());
+ hyPartnerUserInfoDO.setShopId(oldPartnerUser.getShopId());
+ hyPartnerUserInfoDAO.updateByPrimaryKeySelective(hyPartnerUserInfoDO);
// 老的身份证信息置空
fillBaseInfoIdCard(oldBaseInfo, null, null, null, null, null, null, null, null, null);
oldBaseInfo.setStatus(Integer.valueOf(WorkflowStatusEnum.INTENT_0.getCode()));