diff --git a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/ngalain/service/impl/NgAlainServiceImpl.java b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/ngalain/service/impl/NgAlainServiceImpl.java index 9999c614..0ae52c52 100644 --- a/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/ngalain/service/impl/NgAlainServiceImpl.java +++ b/jero-boot/jero-boot-module-system/src/main/java/com/jero/modules/ngalain/service/impl/NgAlainServiceImpl.java @@ -21,6 +21,8 @@ public class NgAlainServiceImpl implements NgAlainService { private ISysPermissionService sysPermissionService; @Autowired private SysDictMapper mapper; + + private static String CHILDREN = "children"; @Override public JSONArray getMenu(String id) throws Exception { return getJeroMenu(id); @@ -34,7 +36,7 @@ public class NgAlainServiceImpl implements NgAlainService { JSONObject menu = new JSONObject(); menu.put("text", "jero菜单"); menu.put("group",true); - menu.put("children", menulist); + menu.put(CHILDREN, menulist); JSONArray jeroMenuList=new JSONArray(); jeroMenuList.add(menu); return jeroMenuList; @@ -54,9 +56,9 @@ public class NgAlainServiceImpl implements NgAlainService { JSONObject menu=new JSONObject(); menu.put("text",meta.get("title")); menu.put("reuse",true); - if (jsonObject.get("children")!=null){ - JSONArray child= parseNgAlain((JSONArray) jsonObject.get("children")); - menu.put("children",child); + if (jsonObject.get(CHILDREN)!=null){ + JSONArray child= parseNgAlain((JSONArray) jsonObject.get(CHILDREN)); + menu.put(CHILDREN,child); JSONObject icon=new JSONObject(); icon.put("type", "icon"); icon.put("value", meta.get("icon")); @@ -76,6 +78,7 @@ public class NgAlainServiceImpl implements NgAlainService { * @param parentJson */ private void getPermissionJsonArray(JSONArray jsonArray,List metaList,JSONObject parentJson) { + String PERMISSIONLIST = "permissionList"; for (SysPermission permission : metaList) { if(permission.getMenuType()==null) { continue; @@ -88,34 +91,38 @@ public class NgAlainServiceImpl implements NgAlainService { getPermissionJsonArray(jsonArray, metaList, json); } }else if(parentJson!=null && oConvertUtils.isNotEmpty(tempPid) && tempPid.equals(parentJson.getString("id"))){ - if(permission.getMenuType()==0) { - JSONObject metaJson = parentJson.getJSONObject("meta"); - if(metaJson.containsKey("permissionList")) { - metaJson.getJSONArray("permissionList").add(json); - }else { - JSONArray permissionList = new JSONArray(); - permissionList.add(json); - metaJson.put("permissionList", permissionList); - } - - }else if(permission.getMenuType()==1) { - if(parentJson.containsKey("children")) { - parentJson.getJSONArray("children").add(json); - }else { - JSONArray children = new JSONArray(); - children.add(json); - parentJson.put("children", children); - } - - if(!permission.isLeaf()) { - getPermissionJsonArray(jsonArray, metaList, json); - } - } + permissionType(jsonArray, metaList, parentJson, PERMISSIONLIST, permission, json); } - } } + + private void permissionType(JSONArray jsonArray, List metaList, JSONObject parentJson, String PERMISSIONLIST, SysPermission permission, JSONObject json) { + if(permission.getMenuType()==0) { + JSONObject metaJson = parentJson.getJSONObject("meta"); + if(metaJson.containsKey(PERMISSIONLIST)) { + metaJson.getJSONArray(PERMISSIONLIST).add(json); + }else { + JSONArray permissionList = new JSONArray(); + permissionList.add(json); + metaJson.put(PERMISSIONLIST, permissionList); + } + + }else if(permission.getMenuType()==1) { + if(parentJson.containsKey(CHILDREN)) { + parentJson.getJSONArray(CHILDREN).add(json); + }else { + JSONArray children = new JSONArray(); + children.add(json); + parentJson.put(CHILDREN, children); + } + + if(!permission.isLeaf()) { + getPermissionJsonArray(jsonArray, metaList, json); + } + } + } + private JSONObject getPermissionJsonObject(SysPermission permission) { JSONObject json = new JSONObject(); //类型(0:一级菜单 1:子菜单 2:按钮) @@ -126,7 +133,7 @@ public class NgAlainServiceImpl implements NgAlainService { json.put("id", permission.getId()); if(permission.getUrl()!=null&&(permission.getUrl().startsWith("http://")||permission.getUrl().startsWith("https://"))) { String url= new String(Base64.getUrlEncoder().encode(permission.getUrl().getBytes())); - json.put("path", "/sys/link/" +url.replaceAll("=","")); + json.put("path", "/sys/link/" +url.replace("=","")); }else { json.put("path", permission.getUrl()); } @@ -135,31 +142,36 @@ public class NgAlainServiceImpl implements NgAlainService { json.put("name", urlToRouteName(permission.getUrl())); //是否隐藏路由,默认都是显示的 - if(permission.isHidden()) { - json.put("hidden",true); - } - //聚合路由 - if(permission.isAlwaysShow()) { - json.put("alwaysShow",true); - } - json.put("component", permission.getComponent()); - JSONObject meta = new JSONObject(); - meta.put("title", permission.getName()); - if(oConvertUtils.isEmpty(permission.getParentId())) { - //一级菜单跳转地址 - json.put("redirect",permission.getRedirect()); - meta.put("icon", oConvertUtils.getString(permission.getIcon(), "")); - }else { - meta.put("icon", oConvertUtils.getString(permission.getIcon(), "")); - } - if(permission.getUrl()!=null&&(permission.getUrl().startsWith("http://")||permission.getUrl().startsWith("https://"))) { - meta.put("url", permission.getUrl()); - } - json.put("meta", meta); + setRouter(permission, json); } return json; } + + private void setRouter(SysPermission permission, JSONObject json) { + if(permission.isHidden()) { + json.put("hidden",true); + } + //聚合路由 + if(permission.isAlwaysShow()) { + json.put("alwaysShow",true); + } + json.put("component", permission.getComponent()); + JSONObject meta = new JSONObject(); + meta.put("title", permission.getName()); + if(oConvertUtils.isEmpty(permission.getParentId())) { + //一级菜单跳转地址 + json.put("redirect", permission.getRedirect()); + meta.put("icon", oConvertUtils.getString(permission.getIcon(), "")); + }else { + meta.put("icon", oConvertUtils.getString(permission.getIcon(), "")); + } + if(permission.getUrl()!=null&&(permission.getUrl().startsWith("http://")|| permission.getUrl().startsWith("https://"))) { + meta.put("url", permission.getUrl()); + } + json.put("meta", meta); + } + /** * 通过URL生成路由name(去掉URL前缀斜杠,替换内容中的斜杠‘/’为-) * 举例: URL = /isystem/role