package com.iplatform.base; import com.iplatform.model.po.S_dept; import java.util.List; /** * 组织机构缓存提供者使用规范。

* 因为存在多种实现,如: Redis 或者 内存,因此需要抽象该接口。 * @author 时克英 * @date 2022-12-03 */ public interface DeptCacheProvider { /** * 设置是否允许缓存机构的子机构关系,
* 在机构数量非常庞大的时候,即便 Redis 也不太适合存储该关系,因为通常界面会展示较多数据,
* 此时可能退化成数据库查询,或者通过其他 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 getChildrenDeptIdOneLevel(long deptId); /** * 返回给定机构,下一级子机构对象集合。 * @param deptId 给定当前机构ID * @return * @date 2022-12-03 */ List getChildrenDeptOneLevel(long deptId); }