diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/AppMenuController.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/AppMenuController.java index 5bc38d2..d7b0d20 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/AppMenuController.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/AppMenuController.java @@ -89,12 +89,12 @@ public class AppMenuController { } @DeleteMapping("{id}") - public Result delete(@PathVariable("id") Long id){ + public Result delete(@PathVariable("id") Long id) { //效验数据 AssertUtils.isNull(id, "id"); //判断是否有子菜单或按钮 - if(appMenuService.hasChileMenu(id)){ + if (appMenuService.hasChileMenu(id)) { return new Result().error(ErrorCode.SUB_MENU_EXIST); } @@ -109,6 +109,11 @@ public class AppMenuController { ExcelUtils.exportExcelToTarget(response, null, list, AppMenuExcel.class); } + /** + * 已过时,改用新接口: + * {@link com.elink.esua.epdc.controller.v2.AppMenuV2Controller#select(UserDetail)} + * -- modified by yujt on 20200901 + */ @GetMapping("select") public Result> select(UserDetail userDetail) { List list = appMenuService.getUserMenuList(userDetail, null); @@ -127,6 +132,7 @@ public class AppMenuController { public Result> indexPanel(@PathVariable("mobile") String mobile) { return appMenuService.indexPanel(mobile); } + /** * @param userId * @return com.elink.esua.epdc.commons.tools.utils.Result> diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java index 85eb588..8f4f984 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java @@ -1,8 +1,8 @@ /** * Copyright (c) 2018 人人开源 All rights reserved. - * + *

* https://www.renren.io - * + *

* 版权所有,侵权必究! */ @@ -31,7 +31,7 @@ import java.util.HashMap; import java.util.List; import java.util.Map; - /** +/** * 角色管理 * * @author Mark sunlightcs@gmail.com @@ -39,7 +39,7 @@ import java.util.Map; */ @RestController @RequestMapping("role") -@Api(tags="角色管理") +@Api(tags = "角色管理") public class SysRoleController { @Autowired private SysRoleService sysRoleService; @@ -49,19 +49,19 @@ public class SysRoleController { private SysRoleDataScopeService sysRoleDataScopeService; @Autowired private AppRoleMenuService appRoleMenuService; - @Autowired - private SysAnalysisRoleMenuService sysAnalysisRoleMenuService; + @Autowired + private SysAnalysisRoleMenuService sysAnalysisRoleMenuService; @GetMapping("page") @ApiOperation("分页") @ApiImplicitParams({ - @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType="int") , - @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query",required = true, dataType="int") , - @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType="String") , - @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType="String") , - @ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataType="String") + @ApiImplicitParam(name = Constant.PAGE, value = "当前页码,从1开始", paramType = "query", required = true, dataType = "int"), + @ApiImplicitParam(name = Constant.LIMIT, value = "每页显示记录数", paramType = "query", required = true, dataType = "int"), + @ApiImplicitParam(name = Constant.ORDER_FIELD, value = "排序字段", paramType = "query", dataType = "String"), + @ApiImplicitParam(name = Constant.ORDER, value = "排序方式,可选值(asc、desc)", paramType = "query", dataType = "String"), + @ApiImplicitParam(name = "name", value = "角色名", paramType = "query", dataType = "String") }) - public Result> page(@ApiIgnore @RequestParam Map params){ + public Result> page(@ApiIgnore @RequestParam Map params) { PageData page = sysRoleService.page(params); return new Result>().ok(page); @@ -69,15 +69,21 @@ public class SysRoleController { @GetMapping("list") @ApiOperation("列表") - public Result> list(){ + public Result> list() { List data = sysRoleService.list(new HashMap<>(1)); return new Result>().ok(data); } + /** + * 已过时,使用新接口: + * {@link com.elink.esua.epdc.controller.v2.SysRoleV2Controller#get(Long)} + * -- modified by yujt on 20200901 + */ + @Deprecated @GetMapping("{id}") @ApiOperation("信息") - public Result get(@PathVariable("id") Long id){ + public Result get(@PathVariable("id") Long id) { SysRoleDTO data = sysRoleService.get(id); //查询角色对应的菜单 @@ -100,7 +106,7 @@ public class SysRoleController { data.setCategoryIdList(categoryIdList); //查询角色对应的吹哨部门 - List whistleDeptIdList=sysRoleService.getWhistleDeptIdList(id); + List whistleDeptIdList = sysRoleService.getWhistleDeptIdList(id); data.setWhistleDeptIdList(whistleDeptIdList); return new Result().ok(data); @@ -109,7 +115,7 @@ public class SysRoleController { @PostMapping @ApiOperation("保存") @LogOperation("Save Role") - public Result save(@RequestBody SysRoleDTO dto){ + public Result save(@RequestBody SysRoleDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, AddGroup.class, DefaultGroup.class); @@ -121,7 +127,7 @@ public class SysRoleController { @PutMapping @ApiOperation("修改") @LogOperation("Update Role") - public Result update(@RequestBody SysRoleDTO dto){ + public Result update(@RequestBody SysRoleDTO dto) { //效验数据 ValidatorUtils.validateEntity(dto, UpdateGroup.class, DefaultGroup.class); @@ -133,7 +139,7 @@ public class SysRoleController { @DeleteMapping @ApiOperation("删除") @LogOperation("Delete Role") - public Result delete(@RequestBody Long[] ids){ + public Result delete(@RequestBody Long[] ids) { //效验数据 AssertUtils.isArrayEmpty(ids, "id"); diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java index dfd7741..d86d7db 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java @@ -19,28 +19,16 @@ package com.elink.esua.epdc.controller.v2; import com.elink.esua.epdc.commons.api.version.ApiVersion; import com.elink.esua.epdc.commons.tools.constant.Constant; -import com.elink.esua.epdc.commons.tools.exception.ErrorCode; import com.elink.esua.epdc.commons.tools.security.user.UserDetail; -import com.elink.esua.epdc.commons.tools.utils.ExcelUtils; import com.elink.esua.epdc.commons.tools.utils.Result; -import com.elink.esua.epdc.commons.tools.validator.AssertUtils; -import com.elink.esua.epdc.commons.tools.validator.ValidatorUtils; -import com.elink.esua.epdc.commons.tools.validator.group.AddGroup; -import com.elink.esua.epdc.commons.tools.validator.group.DefaultGroup; -import com.elink.esua.epdc.commons.tools.validator.group.UpdateGroup; -import com.elink.esua.epdc.dto.AppMenuDTO; import com.elink.esua.epdc.dto.AppMenuGroupDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO; import com.elink.esua.epdc.dto.epdc.result.EpdcAppIndexPanelResultDTO; -import com.elink.esua.epdc.excel.AppMenuExcel; import com.elink.esua.epdc.service.AppMenuService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import javax.servlet.http.HttpServletResponse; import java.util.List; -import java.util.Map; - /** * APP菜单管理 diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java new file mode 100644 index 0000000..0ef80ae --- /dev/null +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java @@ -0,0 +1,72 @@ +/** + * Copyright (c) 2018 人人开源 All rights reserved. + *

+ * https://www.renren.io + *

+ * 版权所有,侵权必究! + */ + +package com.elink.esua.epdc.controller.v2; + +import com.elink.esua.epdc.commons.api.version.ApiVersion; +import com.elink.esua.epdc.commons.tools.constant.Constant; +import com.elink.esua.epdc.commons.tools.utils.Result; +import com.elink.esua.epdc.dto.SysRoleDTO; +import com.elink.esua.epdc.enums.AppMenuCategoryEnum; +import com.elink.esua.epdc.service.*; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.List; + +/** + * 角色管理 + * + * @author Mark sunlightcs@gmail.com + * @since 1.0.0 + */ +@ApiVersion(2) +@RestController +@RequestMapping("role" + Constant.VERSION_CONTROL) +public class SysRoleV2Controller { + @Autowired + private SysRoleService sysRoleService; + @Autowired + private SysRoleMenuService sysRoleMenuService; + @Autowired + private SysRoleDataScopeService sysRoleDataScopeService; + @Autowired + private AppRoleMenuService appRoleMenuService; + + @GetMapping("{id}") + public Result get(@PathVariable("id") Long id) { + SysRoleDTO data = sysRoleService.get(id); + + //查询角色对应的菜单 + List menuIdList = sysRoleMenuService.getMenuIdList(id); + data.setMenuIdList(menuIdList); + + //查询角色对应的数据权限 + List deptIdList = sysRoleDataScopeService.getDeptIdList(id); + data.setDeptIdList(deptIdList); + + //查询角色对应app菜单权限 + List appMenuIdList = appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.WORK.getValue()); + data.setAppMenuIdList(appMenuIdList); + //查询角色对应数据端菜单权限 + List analysisMenuIdList = appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.ANALYSIS.getValue()); + data.setAnalysisMenuIdList(analysisMenuIdList); + + //查询角色对应的项目处理类型权限 + List categoryIdList = sysRoleService.getCategoryIdList(id); + data.setCategoryIdList(categoryIdList); + + //查询角色对应的吹哨部门 + List whistleDeptIdList = sysRoleService.getWhistleDeptIdList(id); + data.setWhistleDeptIdList(whistleDeptIdList); + + return new Result().ok(data); + } + + +} diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java index 94d7607..57b6e8c 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java @@ -20,6 +20,7 @@ package com.elink.esua.epdc.dao; import com.elink.esua.epdc.commons.mybatis.dao.BaseDao; import com.elink.esua.epdc.entity.AppRoleMenuEntity; import org.apache.ibatis.annotations.Mapper; +import org.apache.ibatis.annotations.Param; import java.util.List; @@ -31,18 +32,29 @@ import java.util.List; */ @Mapper public interface AppRoleMenuDao extends BaseDao { - /** - * 根据角色id,删除角色数据权限关系 - * - * @param roleId 角色id - */ - void deleteByRoleId(Long roleId); + /** + * 根据角色id,删除角色数据权限关系 + * + * @param roleId 角色id + */ + void deleteByRoleId(Long roleId); - /** - * 根据角色ID,获取菜单ID列表 - * - * @param id - * @return - */ - List getAppMenuIdList(Long id); + /** + * 根据角色ID,获取菜单ID列表 + * + * @param id + * @return + */ + List getAppMenuIdList(Long id); + + /** + * 根据角色ID和APP菜单类别,获取菜单ID列表 + * + * @param roleId 角色ID + * @param appMenuCategory APP菜单类别,区分工作端数据端 + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/9/1 15:42 + */ + List selectAppMenuIdListV2(@Param("roleId") Long roleId, @Param("appMenuCategory") String appMenuCategory); } diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java index 2080c9c..0c32baf 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java @@ -83,36 +83,47 @@ public interface AppRoleMenuService extends BaseService { */ void update(AppRoleMenuDTO dto); - /** - * 批量删除 - * - * @param ids - * @return void - * @author generator - * @date 2019-11-19 - */ - void delete(String[] ids); + /** + * 批量删除 + * + * @param ids + * @return void + * @author generator + * @date 2019-11-19 + */ + void delete(String[] ids); + + /** + * 保存或修改 + * + * @param roleId 角色ID + * @param appMenuIdList 菜单ID列表 + */ + void saveOrUpdate(Long roleId, List appMenuIdList); - /** - * 保存或修改 - * - * @param roleId 角色ID - * @param appMenuIdList 菜单ID列表 - */ - void saveOrUpdate(Long roleId, List appMenuIdList); + /** + * 根据角色id,删除角色数据权限关系 + * + * @param roleId 角色id + */ + void deleteByRoleId(Long roleId); - /** - * 根据角色id,删除角色数据权限关系 - * - * @param roleId 角色id - */ - void deleteByRoleId(Long roleId); + /** + * 根据角色ID,获取菜单ID列表 + * + * @param id + * @return + */ + List getAppMenuIdList(Long id); - /** - * 根据角色ID,获取菜单ID列表 - * - * @param id - * @return - */ - List getAppMenuIdList(Long id); + /** + * 根据角色ID和APP菜单类别,获取菜单ID列表 + * + * @param roleId 角色id + * @param value APP菜单类别,区分工作端数据端 + * @return java.util.List + * @author work@yujt.net.cn + * @date 2020/9/1 15:40 + */ + List getAppMenuIdListV2(Long roleId, String value); } diff --git a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java index c3caee4..690fe93 100644 --- a/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java +++ b/epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java @@ -102,51 +102,56 @@ public class AppRoleMenuServiceImpl extends BaseServiceImpl appMenuIdList) { - //先删除角色菜单权限关系 - deleteByRoleId(roleId); - - //角色没有一个菜单权限的情况 - if (CollUtil.isEmpty(appMenuIdList)) { - return; - } - - //保存角色菜单权限关系 - for (Long menuId : appMenuIdList) { - AppRoleMenuEntity appRoleMenuEntity = new AppRoleMenuEntity(); - appRoleMenuEntity.setMenuId(menuId); - appRoleMenuEntity.setRoleId(roleId); - - //保存 - insert(appRoleMenuEntity); - } - } - - /** - * 根据角色id,删除角色数据权限关系 - * - * @param roleId 角色id - */ - @Override - public void deleteByRoleId(Long roleId) { - baseDao.deleteByRoleId(roleId); - } - - /** - * 根据角色ID,获取菜单ID列表 - * - * @param id - * @return - */ - @Override - public List getAppMenuIdList(Long id) { - return baseDao.getAppMenuIdList(id); - } + /** + * 保存或修改 + * + * @param roleId 角色ID + * @param appMenuIdList 菜单ID列表 + */ + @Override + public void saveOrUpdate(Long roleId, List appMenuIdList) { + //先删除角色菜单权限关系 + deleteByRoleId(roleId); + + //角色没有一个菜单权限的情况 + if (CollUtil.isEmpty(appMenuIdList)) { + return; + } + + //保存角色菜单权限关系 + for (Long menuId : appMenuIdList) { + AppRoleMenuEntity appRoleMenuEntity = new AppRoleMenuEntity(); + appRoleMenuEntity.setMenuId(menuId); + appRoleMenuEntity.setRoleId(roleId); + + //保存 + insert(appRoleMenuEntity); + } + } + + /** + * 根据角色id,删除角色数据权限关系 + * + * @param roleId 角色id + */ + @Override + public void deleteByRoleId(Long roleId) { + baseDao.deleteByRoleId(roleId); + } + + /** + * 根据角色ID,获取菜单ID列表 + * + * @param id + * @return + */ + @Override + public List getAppMenuIdList(Long id) { + return baseDao.getAppMenuIdList(id); + } + + @Override + public List getAppMenuIdListV2(Long roleId, String appMenuCategory) { + return baseDao.selectAppMenuIdListV2(roleId, appMenuCategory); + } } diff --git a/epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml b/epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml index 4ca2df3..59901f0 100644 --- a/epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml +++ b/epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml @@ -18,4 +18,15 @@ + +