From b0e312e3d52abbdf6f6350c7d20cb8cb44878e42 Mon Sep 17 00:00:00 2001 From: xyli Date: Fri, 17 Feb 2023 15:27:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9BaseDynamicService.java?= =?UTF-8?q?=E6=96=87=E4=BB=B6=EF=BC=8C=E6=B7=BB=E5=8A=A0listDynamic?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mpms/permission/BaseDynamicService.java | 50 +++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/src/main/java/mpms/permission/BaseDynamicService.java b/src/main/java/mpms/permission/BaseDynamicService.java index 5291f64..4638aab 100644 --- a/src/main/java/mpms/permission/BaseDynamicService.java +++ b/src/main/java/mpms/permission/BaseDynamicService.java @@ -110,4 +110,54 @@ public interface BaseDynamicService { * @return array */ JSONArray listToArray(String dataId); + + /** + * 查询功能下面的所有动态数据 + * + * @param classFeature 功能 + * @param roleId 角色id + * @param dataId 上级数据id + * @return tree array + */ + default JSONArray listDynamic(ClassFeature classFeature, String roleId, String dataId) { + JSONArray listToArray; + try { + listToArray = listToArray(dataId); + if (listToArray == null || listToArray.isEmpty()) { + return null; + } + } catch (Exception e) { + DefaultSystemLog.getLog().error("拉取动态信息错误, roleId: [{}], dataId: [{}]", roleId, dataId, e); + return null; + } + JSONArray jsonArray = new JSONArray(); + listToArray.forEach(obj -> { + JSONObject jsonObject = new JSONObject(); + JSONObject data = (JSONObject) obj; + String name = data.getString("name"); + String id = data.getString("id"); + String group = StrUtil.emptyToDefault(data.getString("group"), StrUtil.EMPTY); + jsonObject.put("group", group); + // + if (StrUtil.isNotEmpty(group)) { + group = "【" + group + "】 -> "; + } + jsonObject.put("title", group + name); + jsonObject.put("id", StrUtil.emptyToDefault(dataId, "") + StrUtil.COLON + classFeature.name() + StrUtil.COLON + id); + boolean doChildren = this.doChildren(classFeature, roleId, id, jsonObject); + if (!doChildren) { + // 没有子级 + RoleService bean = SpringUtil.getBean(RoleService.class); + List checkList = bean.listDynamicData(roleId, classFeature, dataId); + if (checkList != null && checkList.contains(id)) { + jsonObject.put("checked", true); + } + } + jsonArray.add(jsonObject); + }); + // 分组排序 + jsonArray.sort(new PropertyComparator<>("group")); + return jsonArray; + } + } -- Gitee