大调整
This commit is contained in:
@@ -3,7 +3,6 @@ package com.cool.store.context;
|
||||
import com.cool.store.entity.SysRoleDO;
|
||||
import lombok.Data;
|
||||
|
||||
|
||||
@Data
|
||||
public class CurrentUser {
|
||||
|
||||
|
||||
@@ -14,21 +14,6 @@ import java.util.Map;
|
||||
*/
|
||||
public interface EnterpriseUserService {
|
||||
|
||||
void updateUserRegionPathList(List<String> userIds);
|
||||
|
||||
List<EnterpriseUserPageVO> listUser(String userName, String deptId,
|
||||
String orderBy, String orderRule,
|
||||
Long roleId, Integer userStatus, Integer pageNum, Integer pageSize, String jobNumber, String regionId, Boolean hasPage);
|
||||
|
||||
List<String> initUserRole(List<EnterpriseUserPageVO> enterpriseUserList);
|
||||
|
||||
/**
|
||||
* 更新用户的部门全路径
|
||||
* @param user
|
||||
* @param deptIdMap
|
||||
*/
|
||||
void updateUserDeptPath(EnterpriseUserRequest user, Map<String, String> deptIdMap);
|
||||
|
||||
EnterpriseUserDO getUserInfoByUserId(String userId);
|
||||
|
||||
}
|
||||
|
||||
@@ -5,5 +5,5 @@ public interface LoginService {
|
||||
|
||||
|
||||
|
||||
Object feiShuLogin(String userId, String corpId, Boolean needRefreshToken , String appType, String avatar);
|
||||
Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar);
|
||||
}
|
||||
|
||||
@@ -1,9 +1,5 @@
|
||||
package com.cool.store.service;
|
||||
|
||||
import com.cool.store.entity.RegionDO;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
* @FileName: RegionService
|
||||
@@ -12,8 +8,4 @@ import java.util.List;
|
||||
*/
|
||||
public interface RegionService {
|
||||
|
||||
void saveRegionAndStore(RegionDO regionDO, String userId);
|
||||
|
||||
void removeRegions(List<Long> regionIds);
|
||||
|
||||
}
|
||||
|
||||
@@ -1,14 +1,23 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.enterprise.*;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.enums.DataSourceEnum;
|
||||
import com.cool.store.http.ISVHttpRequest;
|
||||
import com.cool.store.service.EnterpriseSyncService;
|
||||
import com.google.common.collect.ArrayListMultimap;
|
||||
import com.google.common.collect.Multimap;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -20,12 +29,107 @@ import java.util.*;
|
||||
@Slf4j
|
||||
@Service
|
||||
public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
|
||||
|
||||
@Resource
|
||||
private ISVHttpRequest isvHttpRequest;
|
||||
@Resource
|
||||
private RegionDAO regionDAO;
|
||||
@Resource
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
|
||||
@Resource
|
||||
private SysRoleDAO sysRoleDAO;
|
||||
@Resource
|
||||
private UserRegionMappingDAO userRegionMappingDAO;
|
||||
|
||||
@Override
|
||||
public void syncAll() {
|
||||
//同步部门
|
||||
List<SysDepartmentDTO> departments = isvHttpRequest.getSubDepartments(CommonConstants.ROOT_DEPT_ID_STR, true);
|
||||
//获取企业信息
|
||||
AuthInfoDTO authInfo = isvHttpRequest.getAuthInfo();
|
||||
Multimap<String, String> leaderDeptMap = ArrayListMultimap.create();
|
||||
//组织架构中增加根节点,处理部门上下级关系
|
||||
List<RegionDO> regionList = SysDepartmentDTO.convertRegionDO(departments, leaderDeptMap);
|
||||
List<String> regionIds = regionList.stream().map(RegionDO::getRegionId).distinct().collect(Collectors.toList());
|
||||
//添加根节点
|
||||
regionList.add(getRootRegion(authInfo));
|
||||
//批量插入
|
||||
regionDAO.batchInsertOrUpdate(regionList);
|
||||
//删除不存在的区域
|
||||
regionDAO.deleteNotExistRegion(regionIds);
|
||||
Multimap<String, String> roleUserMap = ArrayListMultimap.create();
|
||||
//同步用户及部门
|
||||
syncUserAndUserRegion(regionList, roleUserMap, leaderDeptMap);
|
||||
//处理用户角色 删除多余的角色
|
||||
if(!roleUserMap.isEmpty()){
|
||||
List<SysRoleDO> insertOrUpdateList = new ArrayList<>();
|
||||
List<EnterpriseUserRoleDO> userRoleInsertOrUpdateList = new ArrayList<>();
|
||||
List<String> roleIds = new ArrayList<>();
|
||||
for (String roleName : roleUserMap.keys()) {
|
||||
SysRoleDO sysRole = SysRoleDO.convertSyncDO(roleName);
|
||||
roleIds.add(sysRole.getRoleId());
|
||||
Collection<String> userIds = roleUserMap.get(roleName);
|
||||
insertOrUpdateList.add(sysRole);
|
||||
userRoleInsertOrUpdateList.addAll(EnterpriseUserRoleDO.convertDO(sysRole.getRoleId(), new ArrayList<>(userIds)));
|
||||
//删除角色下不存在的用户
|
||||
enterpriseUserRoleDAO.deleteUserRole(sysRole.getRoleId(), DataSourceEnum.SYNC, new ArrayList<>(userIds));
|
||||
}
|
||||
sysRoleDAO.batchInsertSelective(insertOrUpdateList);
|
||||
enterpriseUserRoleDAO.batchInsertOrUpdate(userRoleInsertOrUpdateList);
|
||||
//删除不存在的角色?
|
||||
sysRoleDAO.deleteRole(DataSourceEnum.SYNC, roleIds);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void syncUserAndUserRegion(List<RegionDO> regionList, Multimap<String, String> roleUserMap, Multimap<String, String> leaderDeptMap){
|
||||
Map<String, String> regionPathMap = regionList.stream().collect(Collectors.toMap(RegionDO::getRegionId, RegionDO::getRegionPath));
|
||||
List<EnterpriseUserDO> userList = new ArrayList<>();
|
||||
List<UserRegionMappingDO> userRegionList = new ArrayList<>();
|
||||
List<String> userIds = new ArrayList<>();
|
||||
//按部门获取用户
|
||||
for (RegionDO region : regionList) {
|
||||
List<EnterpriseUserDTO> departmentUsers = isvHttpRequest.getDepartmentUsers(region.getRegionId());
|
||||
List<String> deptUserIds = ListUtils.emptyIfNull(departmentUsers).stream().map(EnterpriseUserDTO::getUserId).collect(Collectors.toList());
|
||||
userRegionMappingDAO.deleteUserRegion(region.getRegionId(), DataSourceEnum.SYNC, deptUserIds);
|
||||
if(CollectionUtils.isEmpty(departmentUsers)){
|
||||
continue;
|
||||
}
|
||||
userIds.addAll(deptUserIds);
|
||||
userRegionList.addAll(UserRegionMappingDO.convertSyncDO(region.getRegionId(), departmentUsers));
|
||||
//系统内的角色 获取飞书的职务 一个人只能一个职务
|
||||
List<EnterpriseUserDO> deptUserList = EnterpriseUserDTO.transUserDtoToDo(departmentUsers, regionPathMap, leaderDeptMap, roleUserMap);
|
||||
userList.addAll(deptUserList);
|
||||
if(userList.size() > CommonConstants.DEAL_RECORD_MAX_SIZE){
|
||||
enterpriseUserDAO.batchInsertOrUpdate(userList);
|
||||
userList.clear();
|
||||
}
|
||||
if(userRegionList.size() > CommonConstants.DEAL_RECORD_MAX_SIZE){
|
||||
userRegionMappingDAO.batchInsertOrUpdateUserRegion(userRegionList);
|
||||
userRegionList.clear();
|
||||
}
|
||||
}
|
||||
enterpriseUserDAO.batchInsertOrUpdate(userList);
|
||||
userRegionMappingDAO.batchInsertOrUpdateUserRegion(userRegionList);
|
||||
//删除不存在的用户
|
||||
enterpriseUserDAO.deleteUser(userIds);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取跟部门
|
||||
* @param authInfo
|
||||
* @return
|
||||
*/
|
||||
private RegionDO getRootRegion(AuthInfoDTO authInfo){
|
||||
RegionDO rootRegion = new RegionDO();
|
||||
rootRegion.setName(authInfo.getAuthCorpInfo().getCorpName());
|
||||
rootRegion.setRegionId(CommonConstants.ROOT_DEPT_ID_STR);
|
||||
rootRegion.setParentId(CommonConstants.ZERO_STR);
|
||||
rootRegion.setThirdDeptId(CommonConstants.ROOT_DEPT_ID_STR);
|
||||
rootRegion.setOrderNum(CommonConstants.ZERO);
|
||||
rootRegion.setRegionPath(CommonConstants.PATH_SPILT + rootRegion.getRegionId() + CommonConstants.PATH_SPILT);
|
||||
return rootRegion;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,23 +1,11 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.constants.CommonConstants;
|
||||
import com.cool.store.context.CurrentUser;
|
||||
import com.cool.store.dao.*;
|
||||
import com.cool.store.dto.buser.UserRoleDTO;
|
||||
import com.cool.store.entity.*;
|
||||
import com.cool.store.request.EnterpriseUserRequest;
|
||||
import com.cool.store.service.EnterpriseUserService;
|
||||
import com.cool.store.vo.buser.EnterpriseUserPageVO;
|
||||
import com.google.common.collect.Lists;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.apache.commons.collections4.CollectionUtils;
|
||||
import org.apache.commons.collections4.ListUtils;
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -29,153 +17,12 @@ import java.util.stream.Collectors;
|
||||
@Service
|
||||
public class EnterpriseUserServiceImpl implements EnterpriseUserService {
|
||||
|
||||
@Resource
|
||||
private UserRegionMappingDAO userRegionMappingDAO;
|
||||
@Resource
|
||||
private RegionDAO regionDAO;
|
||||
|
||||
@Resource
|
||||
private EnterpriseUserDAO enterpriseUserDAO;
|
||||
@Resource
|
||||
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
|
||||
|
||||
@Override
|
||||
public void updateUserRegionPathList(List<String> userIds) {
|
||||
if (CollectionUtils.isEmpty(userIds)) {
|
||||
return;
|
||||
}
|
||||
//查询该人员的最新部门情况 同步到enterpriseUser 表usereginIds表中
|
||||
List<UserRegionMappingDO> userRegionMappingDOS = userRegionMappingDAO.listUserRegionMappingByUserId(userIds);
|
||||
Map<String, List<UserRegionMappingDO>> userRegionMappingMap = ListUtils.emptyIfNull(userRegionMappingDOS)
|
||||
.stream()
|
||||
.collect(Collectors.groupingBy(UserRegionMappingDO::getUserId));
|
||||
List<String> regionIds = userRegionMappingDOS.stream()
|
||||
.map(UserRegionMappingDO::getRegionId).distinct().collect(Collectors.toList());
|
||||
List<RegionDO> regionDOS = regionDAO.getRegionByRegionIds(regionIds);
|
||||
Map<String, RegionDO> regionMap = regionDOS.stream()
|
||||
.collect(Collectors.toMap(RegionDO::getRegionId, data -> data));
|
||||
|
||||
List<EnterpriseUserDO> enterpriseUserList= new ArrayList<>();
|
||||
for (String userId:userIds) {
|
||||
EnterpriseUserDO enterpriseUserDO = new EnterpriseUserDO();
|
||||
enterpriseUserDO.setUserId(userId);
|
||||
String regionPathString = "";
|
||||
List<RegionDO> regionDOList = new ArrayList<>();
|
||||
//如果没有对应部门 默认未null 正常情况下不会出现userRegionId不为null的情况
|
||||
enterpriseUserDO.setUserRegionIds(null);
|
||||
List<UserRegionMappingDO> userRegionMappingList = userRegionMappingMap.get(userId);
|
||||
|
||||
//异常情况下处理
|
||||
if (CollectionUtils.isEmpty(userRegionMappingList)){
|
||||
log.info("getUserRegionPathListStr exception 该人员没有任何部门");
|
||||
//查询未分组
|
||||
RegionDO unclassifiedRegionDO = regionDAO.getUnclassifiedRegionDO();
|
||||
//将人添加到未分组中
|
||||
addUserRegionMappingDO(userId,unclassifiedRegionDO.getRegionId(),new CurrentUser());
|
||||
regionDOList.add(unclassifiedRegionDO);
|
||||
}
|
||||
|
||||
ListUtils.emptyIfNull(userRegionMappingList)
|
||||
.stream()
|
||||
.forEach(userRegionMappingDO -> {
|
||||
RegionDO regionDO = regionMap.get(userRegionMappingDO.getRegionId());
|
||||
if (Objects.nonNull(regionDO)){
|
||||
regionDOList.add(regionDO);
|
||||
}
|
||||
});
|
||||
|
||||
regionPathString = regionDOList.stream()
|
||||
.map(e -> e.getFullRegionPath()).collect(Collectors.joining(CommonConstants.COMMA));
|
||||
if (StringUtils.isNotBlank(regionPathString)){
|
||||
enterpriseUserDO.setUserRegionIds(CommonConstants.SQUAREBRACKETSLEFT+ regionPathString+ CommonConstants.SQUAREBRACKETSRIGHT);
|
||||
}
|
||||
enterpriseUserList.add(enterpriseUserDO);
|
||||
}
|
||||
//enterpriseUserDAO.batchUpdateDiffUserDiffRegionIds(enterpriseUserList);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<EnterpriseUserPageVO> listUser(String userName, String deptId,
|
||||
String orderBy, String orderRule,
|
||||
Long roleId, Integer userStatus, Integer pageNum, Integer pageSize, String jobNumber, String regionId, Boolean hasPage) {
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
private void addUserRegionMappingDO(String userId,String regionId,CurrentUser currentUser){
|
||||
UserRegionMappingDO userRegionMappingDO = new UserRegionMappingDO();
|
||||
userRegionMappingDO.setUserId(userId);
|
||||
userRegionMappingDO.setRegionId(regionId);
|
||||
userRegionMappingDO.setCreateId(currentUser.getUserId());
|
||||
userRegionMappingDO.setUpdateId(currentUser.getUserId());
|
||||
userRegionMappingDO.setCreateTime(System.currentTimeMillis());
|
||||
userRegionMappingDO.setUpdateTime(System.currentTimeMillis());
|
||||
//将用户添加到未分组
|
||||
userRegionMappingDAO.batchInsertRegionMapping(Arrays.asList(userRegionMappingDO));
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> initUserRole(List<EnterpriseUserPageVO> enterpriseUserList) {
|
||||
List<String> userIdList = ListUtils.emptyIfNull(enterpriseUserList)
|
||||
.stream()
|
||||
.map(EnterpriseUserPageVO::getUserId)
|
||||
.collect(Collectors.toList());
|
||||
|
||||
if(CollectionUtils.isNotEmpty(userIdList)){
|
||||
List<UserRoleDTO> userRoleDTOS = enterpriseUserRoleDAO.getUserAndRolesByUserId(userIdList);
|
||||
//封装 userId-userRole map,以表示一个用户对应几个角色
|
||||
Map<String, List<Long>> userRoleDtoMap = new HashMap<>();
|
||||
userRoleDTOS.forEach(roleDto -> {
|
||||
List<Long> check = userRoleDtoMap.get(roleDto.getUserId());
|
||||
if (check == null) {
|
||||
List<Long> roleDtoList = new ArrayList<>();
|
||||
roleDtoList.add(roleDto.getRoleId());
|
||||
userRoleDtoMap.put(roleDto.getUserId(), roleDtoList);
|
||||
} else {
|
||||
check.add(roleDto.getRoleId());
|
||||
userRoleDtoMap.put(roleDto.getUserId(), check);
|
||||
}
|
||||
});
|
||||
//获得角色id -角色名称的map
|
||||
Map<Long, String> roleNameMap = ListUtils.emptyIfNull(userRoleDTOS)
|
||||
.stream()
|
||||
.filter(data -> StringUtils.isNotBlank(data.getRoleName()))
|
||||
.collect(Collectors.toMap(UserRoleDTO::getRoleId, UserRoleDTO::getRoleName, (a, b) -> a));
|
||||
enterpriseUserList.forEach(user -> {
|
||||
List<Long> roleIdList = userRoleDtoMap.get(user.getUserId());
|
||||
if (roleIdList != null && roleIdList.size() != 0) {
|
||||
String roleName = roleIdList.stream()
|
||||
.filter(data -> roleNameMap.get(data) != null)
|
||||
.map(role -> roleNameMap.get(role))
|
||||
.collect(Collectors.joining(","));
|
||||
user.setRoleName(roleName);
|
||||
}
|
||||
});
|
||||
}
|
||||
return userIdList;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateUserDeptPath(EnterpriseUserRequest user, Map<String, String> deptIdMap) {
|
||||
List<String> departmentLists = user.getDepartmentLists();
|
||||
//logger.info("设置用户部门全路径 start department:{},user:{},id:{}",department,user.getUnionid(),user.getId());
|
||||
if (CollectionUtils.isNotEmpty(departmentLists)) {
|
||||
//logger.info("into if else department ");
|
||||
List<String> deptList = Lists.newArrayList();
|
||||
departmentLists.forEach(deptId -> {
|
||||
List<String> tmpList = Lists.newArrayList(deptId);
|
||||
String parentId;
|
||||
while ((parentId = deptIdMap.get(deptId)) != null && (!parentId.equals(deptId))) {
|
||||
tmpList.add(parentId);
|
||||
deptId = parentId;
|
||||
}
|
||||
String collect = Lists.reverse(tmpList).stream().map(String::valueOf).collect(Collectors.joining("/"));
|
||||
String data = collect.startsWith("/") ? collect : "/" + collect;
|
||||
data = data.endsWith("/") ? data : data + "/";
|
||||
deptList.add(data);
|
||||
});
|
||||
user.setDepartments("[" + String.join(",", deptList) + "]");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public EnterpriseUserDO getUserInfoByUserId(String userId) {
|
||||
|
||||
@@ -37,20 +37,17 @@ public class LoginServiceImpl implements LoginService {
|
||||
@Resource
|
||||
private SysRoleDAO sysRoleDAO;
|
||||
@Resource
|
||||
private LoginRecordDAO loginRecordDAO;
|
||||
@Resource
|
||||
private RedisUtilPool redisUtilPool;
|
||||
@Resource
|
||||
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
|
||||
|
||||
@Override
|
||||
public Object feiShuLogin(String userId, String corpId, Boolean needRefreshToken, String appType, String avatar) {
|
||||
log.info("isvLogin, corpId={}, userId={}, appType={}", corpId, userId, appType);
|
||||
public Object feiShuLogin(String userId, Boolean needRefreshToken, String avatar) {
|
||||
log.info("isvLogin, corpId={}, userId={}", userId);
|
||||
DataSourceContext.clearDataSourceType();
|
||||
if (StringUtils.isEmpty(userId)) {
|
||||
throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST);
|
||||
}
|
||||
if (StringUtils.isEmpty(corpId)) {
|
||||
throw new ServiceException(ErrorCodeEnum.ENTERPRISE_NOT_EXIST);
|
||||
}
|
||||
CurrentUser currentUser = new CurrentUser();
|
||||
RefreshUser refreshUser = new RefreshUser();
|
||||
// 查企业用户
|
||||
@@ -58,7 +55,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
if(enterpriseUser == null){
|
||||
throw new ServiceException(ErrorCodeEnum.NOT_AUTH);
|
||||
}
|
||||
SysRoleDO sysRole = sysRoleDAO.getHighestPrioritySysRoleDoByUserId(userId);
|
||||
SysRoleDO sysRole = sysRoleDAO.getHighestPriorityRoleByUserId(userId);
|
||||
if(Objects.isNull(sysRole)){
|
||||
log.info("当前用户没角色:{}", userId);
|
||||
throw new ServiceException(ErrorCodeEnum.NOT_AUTH);
|
||||
@@ -77,7 +74,7 @@ public class LoginServiceImpl implements LoginService {
|
||||
currentUser.setUserId(enterpriseUser.getUserId());
|
||||
currentUser.setIsAdmin(enterpriseUser.getIsAdmin());
|
||||
//设置当前登录人使用的企业相关信息
|
||||
currentUser.setRoleAuth(sysRole.getRoleAuth());
|
||||
//currentUser.setRoleAuth(sysRole.getRoleAuth());
|
||||
currentUser.setSysRoleDO(sysRole);
|
||||
//生成令牌
|
||||
RandomNumberGenerator randomNumberGenerator = new SecureRandomNumberGenerator();
|
||||
@@ -85,7 +82,6 @@ public class LoginServiceImpl implements LoginService {
|
||||
String refreshToken = randomNumberGenerator.nextBytes().toHex();
|
||||
currentUser.setName(enterpriseUser.getName());
|
||||
currentUser.setAccessToken(token);
|
||||
currentUser.setAppType(appType);
|
||||
JSONObject jsonObject = new JSONObject();
|
||||
jsonObject.put("action_token", token);
|
||||
jsonObject.put("user", currentUser);
|
||||
@@ -94,7 +90,6 @@ public class LoginServiceImpl implements LoginService {
|
||||
redisUtilPool.setString(currentUser.getUserId(), token);
|
||||
redisUtilPool.setString(CommonConstants.REFRESH_TOKEN_KEY+":"+refreshToken,JSON.toJSONString(refreshUser), CommonConstants.REFRESH_TOKEN_EXPIRE);
|
||||
jsonObject.put("refresh_token",refreshToken);
|
||||
loginRecordDAO.addLoginRecord(currentUser.getUserId());
|
||||
log.info("[" + enterpriseUser.getName() + "; action_token:"+ token + "; userId:" + currentUser.getUserId() +"]登入系统成功");
|
||||
return jsonObject;
|
||||
}
|
||||
|
||||
@@ -1,18 +1,12 @@
|
||||
package com.cool.store.service.impl;
|
||||
|
||||
import com.cool.store.dao.RegionDAO;
|
||||
import com.cool.store.entity.RegionDO;
|
||||
import com.cool.store.enums.RegionTypeEnum;
|
||||
import com.cool.store.mq.producer.SimpleMessageService;
|
||||
import com.cool.store.service.RegionService;
|
||||
import com.cool.store.utils.RedisConstantUtil;
|
||||
import com.cool.store.utils.RedisUtil;
|
||||
import com.cool.store.utils.UUIDUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* @author zhangchenbiao
|
||||
@@ -28,38 +22,7 @@ public class RegionServiceImpl implements RegionService {
|
||||
@Resource
|
||||
private RedisConstantUtil redisConstantUtil;
|
||||
@Resource
|
||||
private RegionDAO regionDAO;
|
||||
@Resource
|
||||
private SimpleMessageService simpleMessageService;
|
||||
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
@Override
|
||||
public void saveRegionAndStore(RegionDO regionDO, String userId) {
|
||||
String storeId = null;
|
||||
if(regionDO.getStoreRange()){
|
||||
storeId = UUIDUtils.get32UUID();
|
||||
}
|
||||
regionDO.setStoreId(storeId);
|
||||
regionDO.setRegionType(RegionTypeEnum.PATH.getType());
|
||||
RegionDO oldRegion = regionDAO.getBySynDingDeptId(regionDO.getSynDingDeptId());
|
||||
boolean isAdd = oldRegion == null;
|
||||
if (isAdd) {
|
||||
if(regionDO.getStoreRange()){
|
||||
regionDO.setStoreId(storeId);
|
||||
regionDO.setRegionType(RegionTypeEnum.STORE.getType());
|
||||
}
|
||||
regionDAO.ignoreInsert(regionDO);
|
||||
} else {
|
||||
if(regionDO.getStoreRange()){
|
||||
regionDO.setRegionType(RegionTypeEnum.STORE.getType());
|
||||
}
|
||||
regionDAO.updateSyncRegion(regionDO);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void removeRegions(List<Long> regionIds) {
|
||||
regionDAO.removeRegion(regionIds);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user