Browse Source

获取用户权限功能修改

feature/yujt_vim
yujt 6 years ago
parent
commit
6e9ab63e58
  1. 10
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/AppMenuController.java
  2. 42
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java
  3. 12
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/AppMenuV2Controller.java
  4. 72
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java
  5. 38
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/dao/AppRoleMenuDao.java
  6. 69
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java
  7. 99
      epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java
  8. 11
      epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml

10
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<List<AppMenuDTO>> select(UserDetail userDetail) {
List<AppMenuDTO> list = appMenuService.getUserMenuList(userDetail, null);
@ -127,6 +132,7 @@ public class AppMenuController {
public Result<List<EpdcAppIndexPanelResultDTO>> indexPanel(@PathVariable("mobile") String mobile) {
return appMenuService.indexPanel(mobile);
}
/**
* @param userId
* @return com.elink.esua.epdc.commons.tools.utils.Result<java.util.List < com.elink.esua.epdc.dto.epdc.result.EpdcAppChildNavResultDTO>>

42
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/SysRoleController.java

@ -1,8 +1,8 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
*
* <p>
* https://www.renren.io
*
* <p>
* 版权所有侵权必究
*/
@ -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<PageData<SysRoleDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params){
public Result<PageData<SysRoleDTO>> page(@ApiIgnore @RequestParam Map<String, Object> params) {
PageData<SysRoleDTO> page = sysRoleService.page(params);
return new Result<PageData<SysRoleDTO>>().ok(page);
@ -69,15 +69,21 @@ public class SysRoleController {
@GetMapping("list")
@ApiOperation("列表")
public Result<List<SysRoleDTO>> list(){
public Result<List<SysRoleDTO>> list() {
List<SysRoleDTO> data = sysRoleService.list(new HashMap<>(1));
return new Result<List<SysRoleDTO>>().ok(data);
}
/**
* 已过时使用新接口
* {@link com.elink.esua.epdc.controller.v2.SysRoleV2Controller#get(Long)}
* -- modified by yujt on 20200901
*/
@Deprecated
@GetMapping("{id}")
@ApiOperation("信息")
public Result<SysRoleDTO> get(@PathVariable("id") Long id){
public Result<SysRoleDTO> get(@PathVariable("id") Long id) {
SysRoleDTO data = sysRoleService.get(id);
//查询角色对应的菜单
@ -100,7 +106,7 @@ public class SysRoleController {
data.setCategoryIdList(categoryIdList);
//查询角色对应的吹哨部门
List<Long> whistleDeptIdList=sysRoleService.getWhistleDeptIdList(id);
List<Long> whistleDeptIdList = sysRoleService.getWhistleDeptIdList(id);
data.setWhistleDeptIdList(whistleDeptIdList);
return new Result<SysRoleDTO>().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");

12
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菜单管理

72
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/controller/v2/SysRoleV2Controller.java

@ -0,0 +1,72 @@
/**
* Copyright (c) 2018 人人开源 All rights reserved.
* <p>
* https://www.renren.io
* <p>
* 版权所有侵权必究
*/
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<SysRoleDTO> get(@PathVariable("id") Long id) {
SysRoleDTO data = sysRoleService.get(id);
//查询角色对应的菜单
List<Long> menuIdList = sysRoleMenuService.getMenuIdList(id);
data.setMenuIdList(menuIdList);
//查询角色对应的数据权限
List<Long> deptIdList = sysRoleDataScopeService.getDeptIdList(id);
data.setDeptIdList(deptIdList);
//查询角色对应app菜单权限
List<Long> appMenuIdList = appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.WORK.getValue());
data.setAppMenuIdList(appMenuIdList);
//查询角色对应数据端菜单权限
List<Long> analysisMenuIdList = appRoleMenuService.getAppMenuIdListV2(id, AppMenuCategoryEnum.ANALYSIS.getValue());
data.setAnalysisMenuIdList(analysisMenuIdList);
//查询角色对应的项目处理类型权限
List<String> categoryIdList = sysRoleService.getCategoryIdList(id);
data.setCategoryIdList(categoryIdList);
//查询角色对应的吹哨部门
List<Long> whistleDeptIdList = sysRoleService.getWhistleDeptIdList(id);
data.setWhistleDeptIdList(whistleDeptIdList);
return new Result<SysRoleDTO>().ok(data);
}
}

38
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<AppRoleMenuEntity> {
/**
* 根据角色id删除角色数据权限关系
*
* @param roleId 角色id
*/
void deleteByRoleId(Long roleId);
/**
* 根据角色id删除角色数据权限关系
*
* @param roleId 角色id
*/
void deleteByRoleId(Long roleId);
/**
* 根据角色ID获取菜单ID列表
*
* @param id
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID获取菜单ID列表
*
* @param id
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID和APP菜单类别获取菜单ID列表
*
* @param roleId 角色ID
* @param appMenuCategory APP菜单类别区分工作端数据端
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2020/9/1 15:42
*/
List<Long> selectAppMenuIdListV2(@Param("roleId") Long roleId, @Param("appMenuCategory") String appMenuCategory);
}

69
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/AppRoleMenuService.java

@ -83,36 +83,47 @@ public interface AppRoleMenuService extends BaseService<AppRoleMenuEntity> {
*/
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<Long> appMenuIdList);
/**
* 保存或修改
*
* @param roleId 角色ID
* @param appMenuIdList 菜单ID列表
*/
void saveOrUpdate(Long roleId, List<Long> appMenuIdList);
/**
* 根据角色id删除角色数据权限关系
*
* @param roleId 角色id
*/
void deleteByRoleId(Long roleId);
/**
* 根据角色id删除角色数据权限关系
*
* @param roleId 角色id
*/
void deleteByRoleId(Long roleId);
/**
* 根据角色ID获取菜单ID列表
*
* @param id
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID获取菜单ID列表
*
* @param id
* @return
*/
List<Long> getAppMenuIdList(Long id);
/**
* 根据角色ID和APP菜单类别获取菜单ID列表
*
* @param roleId 角色id
* @param value APP菜单类别区分工作端数据端
* @return java.util.List<java.lang.Long>
* @author work@yujt.net.cn
* @date 2020/9/1 15:40
*/
List<Long> getAppMenuIdListV2(Long roleId, String value);
}

99
epdc-cloud-admin/src/main/java/com/elink/esua/epdc/service/impl/AppRoleMenuServiceImpl.java

@ -102,51 +102,56 @@ public class AppRoleMenuServiceImpl extends BaseServiceImpl<AppRoleMenuDao, AppR
baseDao.deleteBatchIds(Arrays.asList(ids));
}
/**
* 保存或修改
*
* @param roleId 角色ID
* @param appMenuIdList 菜单ID列表
*/
@Override
public void saveOrUpdate(Long roleId, List<Long> 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<Long> getAppMenuIdList(Long id) {
return baseDao.getAppMenuIdList(id);
}
/**
* 保存或修改
*
* @param roleId 角色ID
* @param appMenuIdList 菜单ID列表
*/
@Override
public void saveOrUpdate(Long roleId, List<Long> 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<Long> getAppMenuIdList(Long id) {
return baseDao.getAppMenuIdList(id);
}
@Override
public List<Long> getAppMenuIdListV2(Long roleId, String appMenuCategory) {
return baseDao.selectAppMenuIdListV2(roleId, appMenuCategory);
}
}

11
epdc-cloud-admin/src/main/resources/mapper/AppRoleMenuDao.xml

@ -18,4 +18,15 @@
<select id="getAppMenuIdList" resultType="long">
select menu_id from sys_app_role_menu where role_id = #{value}
</select>
<select id="selectAppMenuIdListV2" resultType="java.lang.Long">
SELECT
menu_id
FROM
sys_app_role_menu rm
LEFT JOIN sys_app_menu m ON rm.menu_id = m.id
WHERE
rm.role_id = #{roleId}
AND m.category = #{appMenuCategory}
</select>
</mapper>

Loading…
Cancel
Save