add interface
This commit is contained in:
@@ -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);
|
||||
|
||||
}
|
||||
|
||||
@@ -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();
|
||||
}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user