diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeign.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeign.java index 1076ea9108..ef50b88215 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeign.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeign.java @@ -61,10 +61,10 @@ public interface SysFunctionFeign { @ApiOperation("新增保存") @PostMapping("/save") public ResultBean save(@RequestBody SysFunctionDto dto); - + @ApiOperation("修改保存") @PostMapping("/update/{sid}") - public ResultBean update(@RequestBody SysFunctionDto dto,@PathVariable("sid") String sid); + public ResultBean update(@RequestBody SysFunctionDto dto, @PathVariable("sid") String sid); @ApiOperation("修改功能的是否可用的状态") @PostMapping("/updateIsEnable/{sid}/{isEnable}") @@ -73,6 +73,7 @@ public interface SysFunctionFeign { @ApiOperation("删除记录") @GetMapping("/del/{ids}") public ResultBean del(@PathVariable("ids") String ids); + @ApiOperation("删除记录") @GetMapping("/delBySids/{sids}") public ResultBean delBySids(@PathVariable("sids") String sids); @@ -80,12 +81,19 @@ public interface SysFunctionFeign { @ApiOperation("获取一条记录") @GetMapping("/fetch/{id}") public ResultBean fetch(@PathVariable("id") String id); + @ApiOperation("获取一条记录") @GetMapping("/fetchBySid/{sid}") public ResultBean fetchBySid(@PathVariable("sid") String sid); - @ApiOperation("角色授权时查询功能列表") + + @ApiOperation("角色授权时查询功能列表(Pc)") @GetMapping("/getFunctionAuthorization/{roleSid}") - public ResultBean>> getFunctionAuthorization(@PathVariable("roleSid") String roleSid); + public ResultBean>> getFunctionAuthorization(@PathVariable("roleSid") String roleSid); + + @ApiOperation("角色授权时查询功能列表(App)") + @GetMapping("/getFunctionAuthorizationApp/{roleSid}") + public ResultBean>> getFunctionAuthorizationApp(@PathVariable("roleSid") String roleSid); + @ApiOperation("查询按钮的权限") @PostMapping("/getButtonPermissions") public ResultBean> getButtonPermissions(@RequestBody ButtonPermissionQuery query); diff --git a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeignFallback.java b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeignFallback.java index f8b7ea5e87..962484f09c 100644 --- a/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeignFallback.java +++ b/anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/sysfunction/SysFunctionFeignFallback.java @@ -96,6 +96,11 @@ public class SysFunctionFeignFallback implements SysFunctionFeign { return null; } + @Override + public ResultBean>> getFunctionAuthorizationApp(String roleSid) { + return null; + } + @Override public ResultBean> getButtonPermissions(ButtonPermissionQuery query) { return null; diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.java index d245df656f..a446825f7d 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.java @@ -57,15 +57,20 @@ public interface SysFunctionMapper extends BaseMapper { */ int selectBySourceSid(@Param("isEnable") int isEnable, @Param("sourceSid") String sourceSid); - List getButtonPermissions(@Param("query")ButtonPermissionQuery query); - @Select("SELECT ss.sourceName,ss.sid FROM sys_source ss LEFT JOIN sys_source_role ssr ON ss.sid=ssr.sorceSid where ssr.rolesid=#{roleSid}") - List> getSourceAuthorization(@Param("roleSid")String roleSid); + List getButtonPermissions(@Param("query") ButtonPermissionQuery query); + + List> getSourceAuthorization(@Param("roleSid") String roleSid); + @Select("SELECT sm.name,sm.sid,sm.pageUrl FROM sys_menu sm LEFT JOIN sys_source_menu ssm ON sm.sid=ssm.menuSid where ssm.sourceSid=#{sourceSid}") List> getMenuAuthorization(@Param("sourceSid") String sourceSid); + @Select("SELECT sf.name,sf.sid FROM sys_function sf WHERE sf.actionUrl= #{pageUrl}") List> getFunctionAuthorization(@Param("pageUrl") String pageUrl); + @Select("SELECT sf.name,sf.sid,IF(IFNULL(srf.id,0)<=0,1,0) checked FROM sys_function sf " + " LEFT JOIN sys_role_function srf ON srf.functionSid=sf.sid " + " WHERE sf.actionUrl= #{pageUrl} AND srf.roleSid = #{roleSid} ") - List> getFunctionByRoleSid(@Param("pageUrl") String pageUrl,@Param("roleSid") String roleSid); + List> getFunctionByRoleSid(@Param("pageUrl") String pageUrl, @Param("roleSid") String roleSid); + + List> getSourceAuthorizationApp(@Param("roleSid") String roleSid); } \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.xml b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.xml index f9fd16a4c8..06b28ccaf6 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.xml +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionMapper.xml @@ -72,4 +72,32 @@ ON sur.roleSid = srf.rolesid WHERE sur.userSid = #{query.userSid}) + + + + \ No newline at end of file diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionRest.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionRest.java index 5a3d005338..69d42c5c5c 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionRest.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionRest.java @@ -201,6 +201,13 @@ public class SysFunctionRest implements SysFunctionFeign { return rb.success().setData(list); } + @Override + public ResultBean>> getFunctionAuthorizationApp(String roleSid) { + ResultBean rb = ResultBean.fireFail(); + List> list=sysFunctionService.getFunctionAuthorizationApp(roleSid); + return rb.success().setData(list); + } + @Override public ResultBean> getButtonPermissions(ButtonPermissionQuery query) { ResultBean> rb = ResultBean.fireFail(); diff --git a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionService.java b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionService.java index 44e41ea656..c2c784e32f 100644 --- a/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionService.java +++ b/anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysfunction/SysFunctionService.java @@ -299,4 +299,49 @@ public class SysFunctionService extends MybatisBaseService> getFunctionAuthorizationApp(String roleSid) { + List> list = new ArrayList<>(); + List> lsources = baseMapper.getSourceAuthorizationApp(roleSid); + lsources.forEach(f -> { + Map map = new HashMap<>(); + map.put("name", f.get("sourceName").toString()); + map.put("sid", f.get("sid").toString()); + map.put("checked", "1"); + list.add(map); + }); + + list.forEach(f -> { + List> list2 = new ArrayList<>(); + String sid = f.get("sid").toString(); + List> lmenus = baseMapper.getMenuAuthorization(sid); + lmenus.forEach(ff -> { + Map map = new HashMap<>(); + if (ff.get("pageUrl") != null && com.yxt.common.base.utils.StringUtils.isNotBlank(ff.get("pageUrl").toString())) { + String pageUrl = ff.get("pageUrl").toString(); + List> lfuncs = baseMapper.getFunctionAuthorization(pageUrl); + List> functionByRoleSid = baseMapper.getFunctionByRoleSid(pageUrl, roleSid); + if (lfuncs.size() > 0){ + map.put("name", ff.get("name")); + String sids = ff.get("sid").toString(); + map.put("sid", sids); + map.put("checked", "1"); + map.put("children", new ArrayList<>()); + for (Map lfunc : lfuncs) { + for (Map funByRole : functionByRoleSid) { + if (lfunc.get("sid").equals(funByRole.get("sid"))) { + lfunc.put("checked", "0"); + } + } + lfunc.put("children", new ArrayList<>()); + } + map.put("children", lfuncs); + list2.add(map); + } + } + }); + f.put("children", list2); + }); + return list; + } } \ No newline at end of file