houzhongjian
2024-09-14 818a0170d8f2950d52cc7300a302356bbc523236
提交 | 用户 | 时间
e7c126 1 package com.iailab.module.system.service.dept;
H 2
3 import com.iailab.framework.common.util.collection.CollectionUtils;
4 import com.iailab.module.system.controller.admin.dept.vo.dept.DeptListReqVO;
5 import com.iailab.module.system.controller.admin.dept.vo.dept.DeptSaveReqVO;
6 import com.iailab.module.system.dal.dataobject.dept.DeptDO;
7
8 import java.util.Collection;
9 import java.util.List;
10 import java.util.Map;
11 import java.util.Set;
12
13 /**
14  * 部门 Service 接口
15  *
16  * @author iailab
17  */
18 public interface DeptService {
19
20     /**
21      * 创建部门
22      *
23      * @param createReqVO 部门信息
24      * @return 部门编号
25      */
26     Long createDept(DeptSaveReqVO createReqVO);
27
28     /**
29      * 更新部门
30      *
31      * @param updateReqVO 部门信息
32      */
33     void updateDept(DeptSaveReqVO updateReqVO);
34
35     /**
36      * 删除部门
37      *
38      * @param id 部门编号
39      */
40     void deleteDept(Long id);
41
42     /**
43      * 获得部门信息
44      *
45      * @param id 部门编号
46      * @return 部门信息
47      */
48     DeptDO getDept(Long id);
49
50     /**
51      * 获得部门信息数组
52      *
53      * @param ids 部门编号数组
54      * @return 部门信息数组
55      */
56     List<DeptDO> getDeptList(Collection<Long> ids);
57
58     /**
59      * 筛选部门列表
60      *
61      * @param reqVO 筛选条件请求 VO
62      * @return 部门列表
63      */
64     List<DeptDO> getDeptList(DeptListReqVO reqVO);
65
66     /**
67      * 获得指定编号的部门 Map
68      *
69      * @param ids 部门编号数组
70      * @return 部门 Map
71      */
72     default Map<Long, DeptDO> getDeptMap(Collection<Long> ids) {
73         List<DeptDO> list = getDeptList(ids);
74         return CollectionUtils.convertMap(list, DeptDO::getId);
75     }
76
77     /**
78      * 获得指定部门的所有子部门
79      *
80      * @param id 部门编号
81      * @return 子部门列表
82      */
83     List<DeptDO> getChildDeptList(Long id);
84
85     /**
86      * 获得所有子部门,从缓存中
87      *
88      * @param id 父部门编号
89      * @return 子部门列表
90      */
91     Set<Long> getChildDeptIdListFromCache(Long id);
92
93     /**
94      * 校验部门们是否有效。如下情况,视为无效:
95      * 1. 部门编号不存在
96      * 2. 部门被禁用
97      *
98      * @param ids 角色编号数组
99      */
100     void validateDeptList(Collection<Long> ids);
101
102 }