refactor: 角色资源获取和保存重构

This commit is contained in:
horizons
2022-10-27 01:32:34 +08:00
parent 2e9e9e0c93
commit 44e3fff279
3 changed files with 24 additions and 28 deletions

View File

@@ -25,19 +25,19 @@ import java.util.List;
@RequiredArgsConstructor @RequiredArgsConstructor
public class SysRoleController { public class SysRoleController {
private final SysRoleService sysRoleService; private final SysRoleService roleService;
@ApiOperation(value = "角色分页列表") @ApiOperation(value = "角色分页列表")
@GetMapping("/pages") @GetMapping("/pages")
public PageResult<RolePageVO> listRolePages(RolePageQuery queryParams) { public PageResult<RolePageVO> listRolePages(RolePageQuery queryParams) {
Page<RolePageVO> result = sysRoleService.listRolePages(queryParams); Page<RolePageVO> result = roleService.listRolePages(queryParams);
return PageResult.success(result); return PageResult.success(result);
} }
@ApiOperation(value = "角色下拉列表") @ApiOperation(value = "角色下拉列表")
@GetMapping("/options") @GetMapping("/options")
public Result<List<Option>> listRoleOptions() { public Result<List<Option>> listRoleOptions() {
List<Option> list = sysRoleService.listRoleOptions(); List<Option> list = roleService.listRoleOptions();
return Result.success(list); return Result.success(list);
} }
@@ -46,21 +46,21 @@ public class SysRoleController {
public Result getRoleDetail( public Result getRoleDetail(
@ApiParam("角色ID") @PathVariable Long roleId @ApiParam("角色ID") @PathVariable Long roleId
) { ) {
SysRole role = sysRoleService.getById(roleId); SysRole role = roleService.getById(roleId);
return Result.success(role); return Result.success(role);
} }
@ApiOperation(value = "新增角色") @ApiOperation(value = "新增角色")
@PostMapping @PostMapping
public Result addRole(@Valid @RequestBody RoleForm roleForm) { public Result addRole(@Valid @RequestBody RoleForm roleForm) {
boolean result = sysRoleService.saveRole(roleForm); boolean result = roleService.saveRole(roleForm);
return Result.judge(result); return Result.judge(result);
} }
@ApiOperation(value = "修改角色") @ApiOperation(value = "修改角色")
@PutMapping(value = "/{id}") @PutMapping(value = "/{id}")
public Result updateRole(@Valid @RequestBody RoleForm roleForm) { public Result updateRole(@Valid @RequestBody RoleForm roleForm) {
boolean result = sysRoleService.saveRole(roleForm); boolean result = roleService.saveRole(roleForm);
return Result.judge(result); return Result.judge(result);
} }
@@ -69,7 +69,7 @@ public class SysRoleController {
public Result deleteRoles( public Result deleteRoles(
@ApiParam("删除角色,多个以英文逗号(,)分割") @PathVariable String ids @ApiParam("删除角色,多个以英文逗号(,)分割") @PathVariable String ids
) { ) {
boolean result = sysRoleService.deleteRoles(ids); boolean result = roleService.deleteRoles(ids);
return Result.judge(result); return Result.judge(result);
} }
@@ -77,28 +77,28 @@ public class SysRoleController {
@PutMapping(value = "/{roleId}/status") @PutMapping(value = "/{roleId}/status")
public Result updateRoleStatus( public Result updateRoleStatus(
@ApiParam("角色ID") @PathVariable Long roleId, @ApiParam("角色ID") @PathVariable Long roleId,
@ApiParam("角色状态:1-正常0-禁用") @RequestParam Integer status @ApiParam("角色状态:1-启用0-禁用") @RequestParam Integer status
) { ) {
boolean result = sysRoleService.updateRoleStatus(roleId, status); boolean result = roleService.updateRoleStatus(roleId, status);
return Result.judge(result); return Result.judge(result);
} }
@ApiOperation(value = "获取角色的资源ID集合") @ApiOperation(value = "获取角色的菜单ID集合")
@GetMapping("/{roleId}/resourceIds") @GetMapping("/{roleId}/menuIds")
public Result<RoleResourceForm> getRoleResources( public Result<List<Long>> getRoleMenuIds(
@ApiParam("角色ID") @PathVariable Long roleId @ApiParam("角色ID") @PathVariable Long roleId
) { ) {
RoleResourceForm resourceIds = sysRoleService.getRoleResources(roleId); List<Long> resourceIds = roleService.getRoleMenuIds(roleId);
return Result.success(resourceIds); return Result.success(resourceIds);
} }
@ApiOperation(value = "分配角色的资源权限") @ApiOperation(value = "分配角色的资源权限")
@PutMapping("/{roleId}/resources") @PutMapping("/{roleId}/menus")
public Result updateRoleResource( public Result updateRoleMenus(
@PathVariable Long roleId, @PathVariable Long roleId,
@RequestBody List<> roleResourceForm @RequestBody List<Long> menuIds
) { ) {
boolean result = sysRoleService.updateRoleResource(roleId,roleResourceForm); boolean result = roleService.updateRoleMenus(roleId,menuIds);
return Result.judge(result); return Result.judge(result);
} }
} }

View File

@@ -67,15 +67,15 @@ public interface SysRoleService extends IService<SysRole> {
* @param roleId * @param roleId
* @return * @return
*/ */
RoleResourceForm getRoleResources(Long roleId); List<Long> getRoleMenuIds(Long roleId);
/** /**
* 修改角色的资源权限 * 修改角色的资源权限
* *
* @param roleId * @param roleId
* @param roleResourceForm * @param menuIds
* @return * @return
*/ */
boolean updateRoleResource(Long roleId, RoleResourceForm roleResourceForm); boolean updateRoleMenus(Long roleId, List<Long> menuIds);
} }

View File

@@ -164,30 +164,26 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
* @return * @return
*/ */
@Override @Override
public RoleResourceForm getRoleResources(Long roleId) { public List<Long> getRoleMenuIds(Long roleId) {
RoleResourceForm roleResources = new RoleResourceForm();
// 获取角色拥有的菜单ID集合 // 获取角色拥有的菜单ID集合
List<Long> menuIds = sysRoleMenuService.listMenuIdsByRoleId(roleId); List<Long> menuIds = sysRoleMenuService.listMenuIdsByRoleId(roleId);
roleResources.setMenuIds(menuIds); return menuIds;
return roleResources;
} }
/** /**
* 修改角色的资源权限 * 修改角色的资源权限
* *
* @param roleId * @param roleId
* @param roleResourceForm * @param menuIds
* @return * @return
*/ */
@Override @Override
@Transactional @Transactional
@CacheEvict(cacheNames = "system", key = "'routes'") @CacheEvict(cacheNames = "system", key = "'routes'")
public boolean updateRoleResource(Long roleId, RoleResourceForm roleResourceForm) { public boolean updateRoleMenus(Long roleId, List<Long> menuIds) {
// 删除角色菜单 // 删除角色菜单
sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId)); sysRoleMenuService.remove(new LambdaQueryWrapper<SysRoleMenu>().eq(SysRoleMenu::getRoleId, roleId));
// 新增角色菜单 // 新增角色菜单
List<Long> menuIds = roleResourceForm.getMenuIds();
if (CollectionUtil.isNotEmpty(menuIds)) { if (CollectionUtil.isNotEmpty(menuIds)) {
List<SysRoleMenu> roleMenus = menuIds.stream() List<SysRoleMenu> roleMenus = menuIds.stream()
.map(menuId -> new SysRoleMenu(roleId, menuId)) .map(menuId -> new SysRoleMenu(roleId, menuId))