fix(UserManagementRelationxxx.java): 优化了一些细节,主要是汇报关系 -> 管理链路。
This commit is contained in:
@@ -18,23 +18,23 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
@FeignClient(name = ApiConstants.NAME)
|
||||
@Tag(name = "RPC 服务 - 用户汇报关系")
|
||||
@Tag(name = "RPC 服务 - 用户管理链路")
|
||||
public interface UserManagementRelationApi {
|
||||
|
||||
String PREFIX = ApiConstants.PREFIX + "/user-management-relation";
|
||||
|
||||
@GetMapping(PREFIX + "/list-by-manager")
|
||||
@Operation(summary = "根据管理者用户ID获得汇报关系列表")
|
||||
@Operation(summary = "根据管理者用户ID获得管理链路列表")
|
||||
@Parameter(name = "managerUserId", description = "管理者用户ID", example = "1", required = true)
|
||||
CommonResult<List<UserManagementRelationRespDTO>> getRelationListByManagerUserId(@RequestParam("managerUserId") Long managerUserId);
|
||||
|
||||
@GetMapping(PREFIX + "/list-by-subordinate")
|
||||
@Operation(summary = "根据被管理者用户ID获得汇报关系列表")
|
||||
@Operation(summary = "根据被管理者用户ID获得管理链路列表")
|
||||
@Parameter(name = "subordinateUserId", description = "被管理者用户ID", example = "2", required = true)
|
||||
CommonResult<List<UserManagementRelationRespDTO>> getRelationListBySubordinateUserId(@RequestParam("subordinateUserId") Long subordinateUserId);
|
||||
|
||||
@GetMapping(PREFIX + "/list")
|
||||
@Operation(summary = "获得汇报关系列表")
|
||||
@Operation(summary = "获得管理链路列表")
|
||||
@Parameter(name = "ids", description = "关系编号数组", example = "1,2", required = true)
|
||||
CommonResult<List<UserManagementRelationRespDTO>> getRelationList(@RequestParam("ids") Collection<Long> ids);
|
||||
|
||||
|
||||
@@ -6,11 +6,11 @@ import lombok.Data;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户汇报关系 Response DTO
|
||||
* 用户管理链路 Response DTO
|
||||
*
|
||||
* @author dklive
|
||||
*/
|
||||
@Schema(description = "RPC 服务 - 用户汇报关系 Response DTO")
|
||||
@Schema(description = "RPC 服务 - 用户管理链路 Response DTO")
|
||||
@Data
|
||||
public class UserManagementRelationRespDTO {
|
||||
|
||||
|
||||
@@ -54,10 +54,10 @@ public interface ErrorCodeConstants {
|
||||
ErrorCode USER_REGISTER_DISABLED = new ErrorCode(1_002_003_011, "注册功能已关闭");
|
||||
ErrorCode USER_IS_RESIGNED = new ErrorCode(1_002_003_012, "名字为【{}】的用户已离职");
|
||||
|
||||
// ========== 用户汇报关系模块 1-002-003-100 ==========
|
||||
ErrorCode USER_MANAGEMENT_RELATION_NOT_FOUND = new ErrorCode(1_002_003_100, "用户汇报关系不存在");
|
||||
// ========== 用户管理链路模块 1-002-003-100 ==========
|
||||
ErrorCode USER_MANAGEMENT_RELATION_NOT_FOUND = new ErrorCode(1_002_003_100, "用户管理链路不存在");
|
||||
ErrorCode USER_MANAGEMENT_RELATION_MANAGER_EXISTS = new ErrorCode(1_002_003_101, "该用户已有直属上级,不能重复添加");
|
||||
ErrorCode USER_MANAGEMENT_RELATION_EXISTS = new ErrorCode(1_002_003_102, "该用户在汇报关系中还在使用,不可删除!");
|
||||
ErrorCode USER_MANAGEMENT_RELATION_EXISTS = new ErrorCode(1_002_003_102, "该用户在管理链路中还在使用,不可删除!");
|
||||
|
||||
// ========== 部门模块 1-002-004-000 ==========
|
||||
ErrorCode DEPT_NAME_DUPLICATE = new ErrorCode(1_002_004_000, "已经存在该名字的部门");
|
||||
|
||||
@@ -27,17 +27,17 @@ import static com.njcn.rdms.framework.apilog.core.enums.OperateTypeEnum.EXPORT;
|
||||
import static com.njcn.rdms.framework.common.pojo.CommonResult.success;
|
||||
|
||||
/**
|
||||
* 用户汇报关系 Controller
|
||||
* 用户管理链路 Controller
|
||||
*
|
||||
* 提供用户汇报关系的管理接口,包括:
|
||||
* - 创建、更新、删除用户汇报关系
|
||||
* - 查询用户汇报关系列表和详情
|
||||
* - 获取用户汇报关系树形结构
|
||||
* - 导出用户汇报关系数据
|
||||
* 提供用户管理链路的管理接口,包括:
|
||||
* - 创建、更新、删除用户管理链路
|
||||
* - 查询用户管理链路列表和详情
|
||||
* - 获取用户管理链路树形结构
|
||||
* - 导出用户管理链路数据
|
||||
*
|
||||
* @author dklive
|
||||
*/
|
||||
@Tag(name = "管理后台 - 用户汇报关系")
|
||||
@Tag(name = "管理后台 - 用户管理链路")
|
||||
@RestController
|
||||
@RequestMapping("/system/user-management-relation")
|
||||
@Validated
|
||||
@@ -47,7 +47,7 @@ public class UserManagementRelationController {
|
||||
private UserManagementRelationService userManagementRelationService;
|
||||
|
||||
/**
|
||||
* 创建用户汇报关系
|
||||
* 创建用户管理链路
|
||||
*
|
||||
* 权限要求:system:user-management-relation:create
|
||||
*
|
||||
@@ -55,7 +55,7 @@ public class UserManagementRelationController {
|
||||
* @return 关系记录主键ID
|
||||
*/
|
||||
@PostMapping("/create")
|
||||
@Operation(summary = "创建用户汇报关系")
|
||||
@Operation(summary = "创建用户管理链路")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:create')")
|
||||
public CommonResult<Long> createUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO createReqVO) {
|
||||
Long id = userManagementRelationService.createRelation(createReqVO);
|
||||
@@ -63,7 +63,7 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 修改用户汇报关系
|
||||
* 修改用户管理链路
|
||||
*
|
||||
* 权限要求:system:user-management-relation:update
|
||||
*
|
||||
@@ -71,7 +71,7 @@ public class UserManagementRelationController {
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/update")
|
||||
@Operation(summary = "修改用户汇报关系")
|
||||
@Operation(summary = "修改用户管理链路")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:update')")
|
||||
public CommonResult<Boolean> updateUserManagementRelation(@Valid @RequestBody UserManagementRelationSaveReqVO updateReqVO) {
|
||||
userManagementRelationService.updateRelation(updateReqVO);
|
||||
@@ -79,16 +79,16 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户汇报关系
|
||||
* 删除用户管理链路
|
||||
*
|
||||
* 根据主键ID删除单条用户汇报关系记录
|
||||
* 根据主键ID删除单条用户管理链路记录
|
||||
* 权限要求:system:user-management-relation:delete
|
||||
*
|
||||
* @param id 关系记录主键ID
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete")
|
||||
@Operation(summary = "删除用户汇报关系")
|
||||
@Operation(summary = "删除用户管理链路")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')")
|
||||
public CommonResult<Boolean> deleteUserManagementRelation(@RequestParam("id") Long id) {
|
||||
userManagementRelationService.deleteRelation(id);
|
||||
@@ -96,16 +96,16 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户汇报关系
|
||||
* 批量删除用户管理链路
|
||||
*
|
||||
* 根据主键ID列表批量删除用户汇报关系记录
|
||||
* 根据主键ID列表批量删除用户管理链路记录
|
||||
* 权限要求:system:user-management-relation:delete
|
||||
*
|
||||
* @param ids 关系记录主键ID列表
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-list")
|
||||
@Operation(summary = "批量删除用户汇报关系")
|
||||
@Operation(summary = "批量删除用户管理链路")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:delete')")
|
||||
public CommonResult<Boolean> deleteUserManagementRelationList(@RequestParam("ids") List<Long> ids) {
|
||||
userManagementRelationService.deleteRelationList(ids);
|
||||
@@ -113,16 +113,16 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系信息
|
||||
* 获得用户管理链路信息
|
||||
*
|
||||
* 根据主键ID查询单条用户汇报关系记录
|
||||
* 根据主键ID查询单条用户管理链路记录
|
||||
* 权限要求:system:user-management-relation:query
|
||||
*
|
||||
* @param id 关系记录主键ID
|
||||
* @return 用户汇报关系详情
|
||||
* @return 用户管理链路详情
|
||||
*/
|
||||
@GetMapping(value = "/get")
|
||||
@Operation(summary = "获得用户汇报关系信息")
|
||||
@Operation(summary = "获得用户管理链路信息")
|
||||
@Parameter(name = "id", description = "关系编号", required = true, example = "1024")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
|
||||
public CommonResult<UserManagementRelationRespVO> getUserManagementRelation(@RequestParam("id") Long id) {
|
||||
@@ -131,16 +131,16 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户汇报关系列表
|
||||
* 获取用户管理链路列表
|
||||
*
|
||||
* 根据查询条件查询用户汇报关系记录列表
|
||||
* 根据查询条件查询用户管理链路记录列表
|
||||
* 权限要求:system:user-management-relation:query
|
||||
*
|
||||
* @param reqVO 查询条件VO
|
||||
* @return 用户汇报关系列表
|
||||
* @return 用户管理链路列表
|
||||
*/
|
||||
@GetMapping("/query")
|
||||
@Operation(summary = "获取用户汇报关系列表")
|
||||
@Operation(summary = "获取用户管理链路列表")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
|
||||
public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationQuery(@Validated UserManagementRelationQueryReqVO reqVO) {
|
||||
List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO);
|
||||
@@ -148,7 +148,7 @@ public class UserManagementRelationController {
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户汇报关系树形结构
|
||||
* 获取用户管理链路树形结构
|
||||
*
|
||||
* 构建用户上下级关系的树形结构,用于前端树形控件展示
|
||||
* 树形结构特点:
|
||||
@@ -158,10 +158,10 @@ public class UserManagementRelationController {
|
||||
*
|
||||
* 权限要求:system:user-management-relation:query
|
||||
*
|
||||
* @return 用户汇报关系树形列表
|
||||
* @return 用户管理链路树形列表
|
||||
*/
|
||||
@GetMapping("/tree")
|
||||
@Operation(summary = "获取用户汇报关系树形结构", description = "用于前端树形控件展示,包含用户的上下级层级关系")
|
||||
@Operation(summary = "获取用户管理链路树形结构", description = "用于前端树形控件展示,包含用户的上下级层级关系")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:query')")
|
||||
public CommonResult<List<UserManagementRelationTreeRespVO>> getUserManagementRelationTree(@Validated UserManagementRelationQueryReqVO reqVO) {
|
||||
return success(userManagementRelationService.getRelationTree(reqVO));
|
||||
@@ -169,9 +169,9 @@ public class UserManagementRelationController {
|
||||
|
||||
|
||||
/**
|
||||
* 导出用户汇报关系 Excel
|
||||
* 导出用户管理链路 Excel
|
||||
*
|
||||
* 根据查询条件导出用户汇报关系数据到Excel文件
|
||||
* 根据查询条件导出用户管理链路数据到Excel文件
|
||||
* 权限要求:system:user-management-relation:export
|
||||
*
|
||||
* @param response HTTP响应对象
|
||||
@@ -179,12 +179,12 @@ public class UserManagementRelationController {
|
||||
* @throws IOException IO异常
|
||||
*/
|
||||
@GetMapping("/export-excel")
|
||||
@Operation(summary = "导出用户汇报关系 Excel")
|
||||
@Operation(summary = "导出用户管理链路 Excel")
|
||||
@PreAuthorize("@ss.hasPermission('system:user-management-relation:export')")
|
||||
@ApiAccessLog(operateType = EXPORT)
|
||||
public void export(HttpServletResponse response, @Validated UserManagementRelationQueryReqVO reqVO) throws IOException {
|
||||
List<UserManagementRelationTreeRespVO> list = userManagementRelationService.getRelationQuery(reqVO);
|
||||
ExcelUtils.write(response, "用户汇报关系数据.xls", "用户汇报关系列表", UserManagementRelationRespVO.class,
|
||||
ExcelUtils.write(response, "用户管理链路数据.xls", "用户管理链路列表", UserManagementRelationRespVO.class,
|
||||
BeanUtils.toBean(list, UserManagementRelationRespVO.class));
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.njcn.rdms.module.system.controller.admin.user.vo.userManagementRelat
|
||||
import io.swagger.v3.oas.annotations.media.Schema;
|
||||
import lombok.Data;
|
||||
|
||||
@Schema(description = "管理后台 - 用户汇报关系列表 Request VO")
|
||||
@Schema(description = "管理后台 - 用户管理链路列表 Request VO")
|
||||
@Data
|
||||
public class UserManagementRelationQueryReqVO {
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@ import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 用户汇报关系信息 Response VO")
|
||||
@Schema(description = "管理后台 - 用户管理链路信息 Response VO")
|
||||
@Data
|
||||
@ExcelIgnoreUnannotated
|
||||
public class UserManagementRelationRespVO {
|
||||
|
||||
@@ -6,7 +6,7 @@ import lombok.Data;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Schema(description = "管理后台 - 用户汇报关系创建/修改 Request VO")
|
||||
@Schema(description = "管理后台 - 用户管理链路创建/修改 Request VO")
|
||||
@Data
|
||||
public class UserManagementRelationSaveReqVO {
|
||||
|
||||
|
||||
@@ -6,14 +6,14 @@ import lombok.Data;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户汇报关系树形 Response VO
|
||||
* 用户管理链路树形 Response VO
|
||||
*
|
||||
* 用于前端树形控件展示用户的上下级层级关系
|
||||
* 包含关系记录的主键ID,便于前端执行删除和更新操作
|
||||
*
|
||||
* @author hongawen
|
||||
*/
|
||||
@Schema(description = "管理后台 - 用户汇报关系树形 Response VO")
|
||||
@Schema(description = "管理后台 - 用户管理链路树形 Response VO")
|
||||
@Data
|
||||
public class UserManagementRelationTreeRespVO {
|
||||
|
||||
|
||||
@@ -9,7 +9,7 @@ import lombok.EqualsAndHashCode;
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
/**
|
||||
* 用户汇报关系表 DO
|
||||
* 用户管理链路表 DO
|
||||
*
|
||||
* 用于存储用户之间的直属上下级管理关系
|
||||
* 每条记录代表一个管理者与被管理者之间的关系
|
||||
|
||||
@@ -10,9 +10,9 @@ import java.time.LocalDateTime;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 用户汇报关系 Mapper 接口
|
||||
* 用户管理链路 Mapper 接口
|
||||
*
|
||||
* 提供用户汇报关系表的数据访问操作
|
||||
* 提供用户管理链路表的数据访问操作
|
||||
* 继承 BaseMapperX 获得基础的 CRUD 功能
|
||||
*
|
||||
* @author hongawen
|
||||
@@ -21,7 +21,7 @@ import java.util.List;
|
||||
public interface UserManagementRelationMapper extends BaseMapperX<UserManagementRelationDO> {
|
||||
|
||||
/**
|
||||
* 根据查询条件查询用户汇报关系列表
|
||||
* 根据查询条件查询用户管理链路列表
|
||||
*
|
||||
* 支持的查询条件:
|
||||
* - managerUserId:管理者用户ID,精确匹配
|
||||
@@ -30,7 +30,7 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
|
||||
* 排序规则:按主键ID降序排列
|
||||
*
|
||||
* @param reqVO 查询条件VO
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
default List<UserManagementRelationDO> selectList(UserManagementRelationQueryReqVO reqVO) {
|
||||
LocalDateTime now = LocalDateTime.now();
|
||||
@@ -50,11 +50,11 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
|
||||
/**
|
||||
* 根据管理者用户ID查询其下属关系列表
|
||||
*
|
||||
* 查询指定用户作为管理者时的所有汇报关系记录
|
||||
* 查询指定用户作为管理者时的所有管理链路记录
|
||||
* 用于获取某个用户的所有直接下属
|
||||
*
|
||||
* @param managerUserId 管理者用户ID
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
default List<UserManagementRelationDO> selectListByManagerUserId(Long managerUserId) {
|
||||
return selectList(UserManagementRelationDO::getManagerUserId, managerUserId);
|
||||
@@ -63,11 +63,11 @@ public interface UserManagementRelationMapper extends BaseMapperX<UserManagement
|
||||
/**
|
||||
* 根据被管理者用户ID查询其上级关系列表
|
||||
*
|
||||
* 查询指定用户作为被管理者时的所有汇报关系记录
|
||||
* 查询指定用户作为被管理者时的所有管理链路记录
|
||||
* 用于获取某个用户的所有直接上级
|
||||
*
|
||||
* @param subordinateUserId 被管理者用户ID
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
default List<UserManagementRelationDO> selectListBySubordinateUserId(Long subordinateUserId) {
|
||||
return selectList(UserManagementRelationDO::getSubordinateUserId, subordinateUserId);
|
||||
|
||||
@@ -197,7 +197,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
// 1. 校验用户存在
|
||||
AdminUserDO user = validateUserExists(id);
|
||||
// 2. 删除用户及其关联数据
|
||||
// 2.1 删除前判断汇报关系表是否还在用该用户
|
||||
// 2.1 删除前判断管理链路表是否还在用该用户
|
||||
Boolean res = userManagementRelationService.hasRelation(id);
|
||||
if (res) {
|
||||
throw exception(USER_MANAGEMENT_RELATION_EXISTS);
|
||||
@@ -213,7 +213,7 @@ public class AdminUserServiceImpl implements AdminUserService {
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void deleteUserList(List<Long> ids) {
|
||||
//批量删除前查看是否汇报关系表还在使用该用户
|
||||
//批量删除前查看是否管理链路表还在使用该用户
|
||||
for (Long id : ids){
|
||||
Boolean res = userManagementRelationService.hasRelation(id);
|
||||
if (res) {
|
||||
|
||||
@@ -13,14 +13,14 @@ import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* 用户汇报关系 Service 接口
|
||||
* 用户管理链路 Service 接口
|
||||
*
|
||||
* @author dklive
|
||||
*/
|
||||
public interface UserManagementRelationService {
|
||||
|
||||
/**
|
||||
* 创建用户汇报关系
|
||||
* 创建用户管理链路
|
||||
*
|
||||
* @param createReqVO 关系信息
|
||||
* @return 关系编号
|
||||
@@ -28,82 +28,82 @@ public interface UserManagementRelationService {
|
||||
Long createRelation(UserManagementRelationSaveReqVO createReqVO);
|
||||
|
||||
/**
|
||||
* 更新用户汇报关系
|
||||
* 更新用户管理链路
|
||||
*
|
||||
* @param updateReqVO 关系信息
|
||||
*/
|
||||
void updateRelation(UserManagementRelationSaveReqVO updateReqVO);
|
||||
|
||||
/**
|
||||
* 删除用户汇报关系
|
||||
* 删除用户管理链路
|
||||
*
|
||||
* @param id 关系编号
|
||||
*/
|
||||
void deleteRelation(Long id);
|
||||
|
||||
/**
|
||||
* 批量删除用户汇报关系
|
||||
* 批量删除用户管理链路
|
||||
*
|
||||
* @param ids 关系编号数组
|
||||
*/
|
||||
void deleteRelationList(List<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系
|
||||
* 获得用户管理链路
|
||||
*
|
||||
* @param id 关系编号
|
||||
* @return 用户汇报关系
|
||||
* @return 用户管理链路
|
||||
*/
|
||||
UserManagementRelationDO getRelation(Long id);
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系列表
|
||||
* 获得用户管理链路列表
|
||||
*
|
||||
* @param ids 关系编号数组
|
||||
* @return 用户汇报关系列表
|
||||
* @return 用户管理链路列表
|
||||
*/
|
||||
List<UserManagementRelationDO> getRelationList(Collection<Long> ids);
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系列表
|
||||
* 获得用户管理链路列表
|
||||
*
|
||||
* @param reqVO 查询条件
|
||||
* @return 用户汇报关系列表
|
||||
* @return 用户管理链路列表
|
||||
*/
|
||||
List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 根据管理者用户ID获得汇报关系列表
|
||||
* 根据管理者用户ID获得管理链路列表
|
||||
*
|
||||
* @param managerUserId 管理者用户ID
|
||||
* @return 汇报关系列表
|
||||
* @return 管理链路列表
|
||||
*/
|
||||
List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId);
|
||||
|
||||
/**
|
||||
* 根据被管理者用户ID获得汇报关系列表
|
||||
* 根据被管理者用户ID获得管理链路列表
|
||||
*
|
||||
* @param subordinateUserId 被管理者用户ID
|
||||
* @return 汇报关系列表
|
||||
* @return 管理链路列表
|
||||
*/
|
||||
List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId);
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系树形结构
|
||||
* 获得用户管理链路树形结构
|
||||
*
|
||||
* 构建用户上下级关系的树形结构,用于前端树形控件展示
|
||||
* - 最高领导:没有上级,作为树的根节点
|
||||
* - 基层员工:没有下级,children为空列表
|
||||
*
|
||||
* @return 用户汇报关系树形列表
|
||||
* @return 用户管理链路树形列表
|
||||
*/
|
||||
List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO);
|
||||
|
||||
/**
|
||||
* 获得用户汇报关系 Map
|
||||
* 获得用户管理链路 Map
|
||||
*
|
||||
* @param ids 关系编号数组
|
||||
* @return 用户汇报关系 Map
|
||||
* @return 用户管理链路 Map
|
||||
*/
|
||||
default Map<Long, UserManagementRelationDO> getRelationMap(Collection<Long> ids) {
|
||||
if (CollUtil.isEmpty(ids)) {
|
||||
@@ -113,10 +113,10 @@ public interface UserManagementRelationService {
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过某个用户的id,判断汇报关系表中是否有该用户的记录
|
||||
* 通过某个用户的id,判断管理链路表中是否有该用户的记录
|
||||
* 判断原则:
|
||||
* --管理者ID或被管理者ID有一个字段的值等于用户id,且该记录没有被逻辑删除
|
||||
* --则认为汇报关系表中还在使用该用户
|
||||
* --则认为管理链路表中还在使用该用户
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return true:有该用户的记录,false:没有该用户的记录
|
||||
|
||||
@@ -27,8 +27,8 @@ import static com.njcn.rdms.module.system.enums.ErrorCodeConstants.USER_MANAGEME
|
||||
import static com.njcn.rdms.module.system.enums.ErrorCodeConstants.USER_MANAGEMENT_RELATION_NOT_FOUND;
|
||||
|
||||
/**
|
||||
* 用户汇报关系 Service 实现类
|
||||
* 提供用户汇报关系的增删改查功能,以及树形结构构建功能
|
||||
* 用户管理链路 Service 实现类
|
||||
* 提供用户管理链路的增删改查功能,以及树形结构构建功能
|
||||
* 树形结构用于前端展示用户的上下级层级关系
|
||||
* 业务规则:
|
||||
* 1. 一个用户只能有一个直属上级
|
||||
@@ -64,7 +64,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建用户汇报关系
|
||||
* 创建用户管理链路
|
||||
* 业务逻辑:
|
||||
* 1. 校验被管理者是否已有直属上级(一个用户只能有一个直属上级)
|
||||
* 2. 插入关系记录
|
||||
@@ -81,7 +81,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 更新用户汇报关系
|
||||
* 更新用户管理链路
|
||||
* 业务逻辑:
|
||||
* 1. 校验关系记录是否存在
|
||||
* 2. 校验被管理者是否已有其他直属上级(一个用户只能有一个直属上级)
|
||||
@@ -97,7 +97,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除用户汇报关系
|
||||
* 删除用户管理链路
|
||||
* 业务逻辑:
|
||||
* 1. 校验关系记录是否存在
|
||||
* 2. 根据主键ID删除关系记录
|
||||
@@ -111,7 +111,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 批量删除用户汇报关系
|
||||
* 批量删除用户管理链路
|
||||
* 业务逻辑:
|
||||
* 根据主键ID列表批量删除关系记录
|
||||
*
|
||||
@@ -186,10 +186,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键ID获取用户汇报关系
|
||||
* 根据主键ID获取用户管理链路
|
||||
*
|
||||
* @param id 关系记录主键ID
|
||||
* @return 用户汇报关系DO
|
||||
* @return 用户管理链路DO
|
||||
*/
|
||||
@Override
|
||||
public UserManagementRelationDO getRelation(Long id) {
|
||||
@@ -199,10 +199,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据主键ID列表获取用户汇报关系列表
|
||||
* 根据主键ID列表获取用户管理链路列表
|
||||
*
|
||||
* @param ids 关系记录主键ID列表
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserManagementRelationDO> getRelationList(Collection<Long> ids) {
|
||||
@@ -215,7 +215,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据查询条件获取用户汇报关系树形结构
|
||||
* 根据查询条件获取用户管理链路树形结构
|
||||
* 业务逻辑:
|
||||
* 1. 构建树形结构上下文(包含所有基础数据)
|
||||
* 2. 根据查询条件确定目标用户ID(subordinateUserId优先于managerUserId)
|
||||
@@ -232,7 +232,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
* - managerUserId不为null:构建以该用户为根节点的完整下级树
|
||||
*
|
||||
* @param reqVO 查询条件VO,包含subordinateUserId或managerUserId
|
||||
* @return 用户汇报关系树形结构列表
|
||||
* @return 用户管理链路树形结构列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserManagementRelationTreeRespVO> getRelationQuery(UserManagementRelationQueryReqVO reqVO) {
|
||||
@@ -253,7 +253,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
* 根据管理者用户ID获取其下属关系列表
|
||||
*
|
||||
* @param managerUserId 管理者用户ID
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserManagementRelationDO> getRelationListByManagerUserId(Long managerUserId) {
|
||||
@@ -265,7 +265,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
* 注意:由于一个用户只能有一个直属上级,此方法最多返回一条记录
|
||||
*
|
||||
* @param subordinateUserId 被管理者用户ID
|
||||
* @return 用户汇报关系DO列表
|
||||
* @return 用户管理链路DO列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserManagementRelationDO> getRelationListBySubordinateUserId(Long subordinateUserId) {
|
||||
@@ -273,7 +273,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取用户汇报关系树形结构
|
||||
* 获取用户管理链路树形结构
|
||||
* 业务逻辑:
|
||||
* 1. 构建树形结构上下文(包含所有基础数据)
|
||||
* 2. 找出所有根节点(没有上级的用户,即最高领导;也包括自己管理自己的用户)
|
||||
@@ -285,7 +285,7 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
* - 基层员工:没有下级,children为空列表
|
||||
* - 空数据:返回空列表
|
||||
*
|
||||
* @return 用户汇报关系树形结构列表
|
||||
* @return 用户管理链路树形结构列表
|
||||
*/
|
||||
@Override
|
||||
public List<UserManagementRelationTreeRespVO> getRelationTree(UserManagementRelationQueryReqVO reqVO) {
|
||||
@@ -297,10 +297,10 @@ public class UserManagementRelationServiceImpl implements UserManagementRelation
|
||||
}
|
||||
|
||||
/**
|
||||
* 通过某个用户的id,判断汇报关系表中是否有该用户的记录
|
||||
* 通过某个用户的id,判断管理链路表中是否有该用户的记录
|
||||
* 判断原则:
|
||||
* --管理者ID或被管理者ID有一个字段的值等于用户id,且该记录没有被逻辑删除
|
||||
* --则认为汇报关系表中还在使用该用户
|
||||
* --则认为管理链路表中还在使用该用户
|
||||
*
|
||||
* @param userId 用户id
|
||||
* @return true:有该用户的记录,false:没有该用户的记录
|
||||
|
||||
Reference in New Issue
Block a user