shikeyin
2024-01-11 65da8373531677b1c37a98f53eaa30c892f35e5a
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
package com.iplatform.base;
 
import com.iplatform.model.po.S_dept;
 
import java.util.List;
 
/**
 * 组织机构缓存提供者使用规范。<p></p>
 * 因为存在多种实现,如: Redis 或者 内存,因此需要抽象该接口。
 * @author 时克英
 * @date 2022-12-03
 */
public interface DeptCacheProvider {
 
    /**
     * 设置是否允许缓存机构的子机构关系,<br>
     * 在机构数量非常庞大的时候,即便 Redis 也不太适合存储该关系,因为通常界面会展示较多数据,<br>
     * 此时可能退化成数据库查询,或者通过其他 NoSQL 数据库实现。
     * @param allow
     * @date 2022-12-03
     */
    void setAllowCacheChildren(boolean allow);
 
    S_dept getDept(long deptId);
 
    void updateDept(S_dept s_dept);
 
    void removeDept(long deptId);
 
    void putDept(S_dept s_dept);
 
    /**
     * 返回给定机构,下一级子机构ID集合。
     * @param deptId 给定当前机构ID
     * @return
     * @date 2022-12-03
     */
    List<String> getChildrenDeptIdOneLevel(long deptId);
 
    /**
     * 返回给定机构,下一级子机构对象集合。
     * @param deptId 给定当前机构ID
     * @return
     * @date 2022-12-03
     */
    List<S_dept> getChildrenDeptOneLevel(long deptId);
}