From f67dd8b04c96a0efffc640016655cc1ea9ac6441 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=A3=E5=9C=A3=E5=8D=8E?= <752718920@qq.com> Date: Tue, 12 Apr 2022 22:42:42 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=8E=A5=E5=8F=A3=EF=BC=9A?= =?UTF-8?q?=E6=A0=B9=E6=8D=AE=E7=94=A8=E6=88=B7id=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=8F=9C=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../erp/controller/FunctionController.java | 54 +++++++++++++++++++ .../service/functions/FunctionService.java | 20 +++++++ 2 files changed, 74 insertions(+) diff --git a/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java b/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java index 29515774..b8591684 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/controller/FunctionController.java @@ -244,4 +244,58 @@ public class FunctionController { } return res; } + + /** + * 根据用户id查询菜单 + * @param userId + * @param request + * @return + * @throws Exception + */ + @GetMapping(value = "/getMenuByUserId") + @ApiOperation(value = "根据用户id查询菜单") + public BaseResponseInfo getMenuByUserId(@RequestParam("userId") Long userId, + HttpServletRequest request)throws Exception { + BaseResponseInfo res = new BaseResponseInfo(); + try { + JSONArray dataArray = new JSONArray(); + Long roleId = 0L; + String fc = ""; + List roleList = userBusinessService.getBasicData(userId.toString(), "UserRole"); + if(roleList!=null && roleList.size()>0){ + String value = roleList.get(0).getValue(); + if(StringUtil.isNotEmpty(value)){ + String roleIdStr = value.replace("[", "").replace("]", ""); + roleId = Long.parseLong(roleIdStr); + } + } + //当前用户所拥有的功能列表,格式如:[1][2][5] + List funList = userBusinessService.getBasicData(roleId.toString(), "RoleFunctions"); + if(funList!=null && funList.size()>0){ + fc = funList.get(0).getValue(); + } + List dataList = functionService.getRoleFunctionLeaf(); + if (dataList.size() != 0) { + for (Function function : dataList) { + if (fc.contains("[" + function.getId().toString() + "]")) { + String page = function.getUrl(); + page = page.replace("/system/", "").replace("/bill/", "") + .replace("/financial/", "").replace("/report/", "") + .replace("/material/",""); + JSONObject item = new JSONObject(); + item.put("id", function.getId()); + item.put("page", page); + dataArray.add(item); + } + } + } + res.code = 200; + res.data = dataArray; + } catch (Exception e) { + e.printStackTrace(); + res.code = 500; + res.data = "获取数据失败"; + } + return res; + } } diff --git a/jshERP-boot/src/main/java/com/jsh/erp/service/functions/FunctionService.java b/jshERP-boot/src/main/java/com/jsh/erp/service/functions/FunctionService.java index 7ef747e1..b74a5d0e 100644 --- a/jshERP-boot/src/main/java/com/jsh/erp/service/functions/FunctionService.java +++ b/jshERP-boot/src/main/java/com/jsh/erp/service/functions/FunctionService.java @@ -178,6 +178,26 @@ public class FunctionService { return list; } + /** + * 获取功能列表的叶子节点 + * @return + * @throws Exception + */ + public List getRoleFunctionLeaf()throws Exception { + FunctionExample example = new FunctionExample(); + example.createCriteria().andEnabledEqualTo(true).andParentNumberNotEqualTo("0") + .andComponentNotEqualTo("/layouts/IframePageView") + .andDeleteFlagNotEqualTo(BusinessConstants.DELETE_FLAG_DELETED); + example.setOrderByClause("Sort"); + List list=null; + try{ + list = functionsMapper.selectByExample(example); + }catch(Exception e){ + JshException.readFail(logger, e); + } + return list; + } + public List findRoleFunction(String pnumber)throws Exception{ FunctionExample example = new FunctionExample(); example.createCriteria().andEnabledEqualTo(true).andParentNumberEqualTo(pnumber)