| package doumeemes.core.constants; | 
|   | 
| import lombok.AllArgsConstructor; | 
| import lombok.Getter; | 
|   | 
| import java.util.ArrayList; | 
| import java.util.HashMap; | 
| import java.util.List; | 
| import java.util.Map; | 
|   | 
| /** | 
|  * 数据权限常量 | 
|  * @author Eva.Caesar Liu | 
|  * @date 2022/04/18 18:12 | 
|  */ | 
| public interface DataPermissionConstants { | 
|   | 
|     /** | 
|      * 数据权限模块 | 
|      */ | 
|     @Getter | 
|     @AllArgsConstructor | 
|     enum Module { | 
|         DEPARTMENT("DEPARTMENT", "部门管理"), | 
|         POSITION("POSITION", "岗位管理"), | 
|         ; | 
|         private String businessCode; | 
|   | 
|         private String moduleName; | 
|   | 
|         public static List<Map<String, Object>> valueList () { | 
|             List<Map<String, Object>> list = new ArrayList<>(); | 
|             for (Module module: Module.values()) { | 
|                 list.add(new HashMap<String, Object>(){{ | 
|                     this.put("businessCode", module.getBusinessCode()); | 
|                     this.put("moduleName", module.getModuleName()); | 
|                 }}); | 
|             } | 
|             return list; | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 数据权限类型 | 
|      */ | 
|     @Getter | 
|     @AllArgsConstructor | 
|     enum Type { | 
|         ALL((short)0,"全部", new Module[]{}), | 
|         DEPARTMENT_CUSTOM((short)1, "自定义部门", new Module[]{Module.DEPARTMENT}), | 
|         DEPARTMENT_CHILDREN((short)2, "所属部门及其子孙部门", new Module[]{Module.DEPARTMENT}), | 
|         DEPARTMENT_CHILD((short)3, "所属部门及其子部门", new Module[]{Module.DEPARTMENT}), | 
|         DEPARTMENT((short)4, "仅所属部门", new Module[]{Module.DEPARTMENT}), | 
|         POSITION_CUSTOM((short)5, "自定义岗位", new Module[]{Module.POSITION}), | 
|         POSITION_CHILDREN((short)6, "所属岗位及其子孙岗位", new Module[]{Module.POSITION}), | 
|         POSITION_CHILD((short)7, "所属岗位及其子岗位", new Module[]{Module.POSITION}), | 
|         POSITION((short)8, "仅所属岗位", new Module[]{Module.POSITION}), | 
|         ; | 
|   | 
|         // 类型编码 | 
|         private short code; | 
|   | 
|         // 类型备注 | 
|         private String remark; | 
|   | 
|         // 所属模块,为空时表示所有模块可用 | 
|         private Module[] modules; | 
|   | 
|         public static List<Map<String, Object>> valueList () { | 
|             List<Map<String, Object>> list = new ArrayList<>(); | 
|             for (Type type: Type.values()) { | 
|                 List<String> modules = new ArrayList<>(); | 
|                 for (Module module : type.getModules()) { | 
|                     modules.add(module.getBusinessCode()); | 
|                 } | 
|                 list.add(new HashMap<String, Object>(){{ | 
|                     this.put("code", type.getCode()); | 
|                     this.put("remark", type.getRemark()); | 
|                     this.put("modules", modules); | 
|                 }}); | 
|             } | 
|             return list; | 
|         } | 
|     } | 
| } |