add interface

This commit is contained in:
zhangchenbiao
2023-06-19 19:54:46 +08:00
parent 59b7102a65
commit 3c8b298706
32 changed files with 291 additions and 662 deletions

View File

@@ -1,11 +1,9 @@
package com.cool.store.service;
import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.entity.EnterpriseUserDO;
import com.cool.store.request.EnterpriseUserRequest;
import com.cool.store.vo.EnterpriseUserSingleInfoVO;
import com.cool.store.vo.buser.EnterpriseUserPageVO;
import java.util.List;
import java.util.Map;
/**
* @author zhangchenbiao
@@ -25,4 +23,16 @@ public interface EnterpriseUserService {
*/
List<EnterpriseUserSingleInfoVO> getInvestmentManagerList(String type,String userId,String keyword);
/**
* 获取用户角色已用户管辖的员工范围
* @param userId
* @return
*/
UserPositionAndUserScopeDTO getUserIdsByScope(String userId);
List<EnterpriseUserSingleInfoVO> getDevelopmentDirectorList(String wantShopArea);
}

View File

@@ -243,9 +243,20 @@ public class EnterpriseSyncServiceImpl implements EnterpriseSyncService {
break;
case DEPARTMENT_DELETED:
boolean leafNode = regionDAO.isLeafNode(departmentDetail.getId());
if(leafNode){
boolean isExistUser = enterpriseUserDAO.isExistDeptUser(departmentDetail.getId());
if(leafNode && !isExistUser){
//叶子节点的时候会删除部门
regionDAO.deleteRegionByRegionId(departmentDetail.getId());
//清除负责人信息
List<EnterpriseUserDO> leaderUserList = enterpriseUserDAO.getUserListByDeptLeader(departmentDetail.getId());
for (EnterpriseUserDO enterpriseUser : leaderUserList) {
List<String> existDeptIds = JSONObject.parseArray(enterpriseUser.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(existDeptIds)){
existDeptIds.remove(departmentDetail.getId());
}
enterpriseUser.setLeaderDeptIds(JSONObject.toJSONString(existDeptIds));
}
enterpriseUserDAO.batchInsertOrUpdate(leaderUserList);
}else{
syncAll();
}

View File

@@ -1,8 +1,13 @@
package com.cool.store.service.impl;
import com.alibaba.fastjson.JSONObject;
import com.cool.store.constants.CommonConstants;
import com.cool.store.dao.*;
import com.cool.store.dto.buser.UserPositionAndUserScopeDTO;
import com.cool.store.entity.*;
import com.cool.store.enums.ErrorCodeEnum;
import com.cool.store.enums.UserPositionEnum;
import com.cool.store.exception.ServiceException;
import com.cool.store.service.EnterpriseUserService;
import com.cool.store.service.ZoneService;
import com.cool.store.vo.EnterpriseUserSingleInfoVO;
@@ -10,10 +15,8 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections4.CollectionUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashSet;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author zhangchenbiao
@@ -31,11 +34,13 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
@Resource
private EnterpriseUserRoleDAO enterpriseUserRoleDAO;
@Resource
ZoneService zoneService;
private ZoneService zoneService;
@Resource
RegionDAO regionDAO;
private RegionDAO regionDAO;
@Resource
UserRegionMappingDAO userRegionMappingDAO;
private UserRegionMappingDAO userRegionMappingDAO;
@Resource
private HyIntendDevZoneInfoDAO hyIntendDevZoneInfoDAO;
@@ -87,4 +92,52 @@ public class EnterpriseUserServiceImpl implements EnterpriseUserService {
});
return enterpriseUserSingleInfoVOS;
}
@Override
public UserPositionAndUserScopeDTO getUserIdsByScope(String userId) {
EnterpriseUserDO userInfo = enterpriseUserDAO.getUserInfoById(userId);
if(Objects.isNull(userInfo)){
throw new ServiceException(ErrorCodeEnum.USER_NOT_EXIST);
}
UserPositionAndUserScopeDTO result = new UserPositionAndUserScopeDTO();
if(!userInfo.getIsLeader()){
result.setDevelopmentUserIds(Arrays.asList(userId));
result.setInvestmentUserIds(Arrays.asList(userId));
return result;
}
List<String> leadDeptIds = JSONObject.parseArray(userInfo.getLeaderDeptIds()).stream().map(String::valueOf).collect(Collectors.toList());
//获取这些区域的子节点
List<String> subRegionIds = regionDAO.getSubRegionIds(leadDeptIds);
//这些部门是否关联了意向区域
List<HyIntendDevZoneInfoDO> zoneInfoList = hyIntendDevZoneInfoDAO.getZoneInfoByRegionIds(subRegionIds);
if(CollectionUtils.isEmpty(zoneInfoList)){
result.setDevelopmentUserIds(Arrays.asList(userId));
result.setInvestmentUserIds(Arrays.asList(userId));
return result;
}
//意向区域
List<String> intendList = zoneInfoList.stream().filter(o -> "intent".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(intendList)){
//获取负责的区域
intendList.retainAll(subRegionIds);
List<String> userList = userRegionMappingDAO.getUserListByRegionIds(intendList);
userList.add(userId);
result.setInvestmentUserIds(userList);
}
//开发区域
List<String> developementList = zoneInfoList.stream().filter(o -> "developement".equals(o.getType())).flatMap(o->JSONObject.parseArray(o.getAssociatedRegionId(), String.class).stream()).collect(Collectors.toList());
if(CollectionUtils.isNotEmpty(developementList)){
//获取负责的区域
developementList.retainAll(subRegionIds);
List<String> userList = userRegionMappingDAO.getUserListByRegionIds(developementList);
userList.add(userId);
result.setDevelopmentUserIds(userList);
}
return result;
}
@Override
public List<EnterpriseUserSingleInfoVO> getDevelopmentDirectorList(String wantShopArea) {
return null;
}
}