| | |
| | | |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.metadata.IPage; |
| | | import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; |
| | | import com.baomidou.mybatisplus.extension.plugins.pagination.Page; |
| | | import com.ruoyi.admin.entity.Menu; |
| | | import com.ruoyi.admin.entity.Role; |
| | | import com.ruoyi.admin.entity.RoleMenu; |
| | | import com.ruoyi.admin.entity.*; |
| | | import com.ruoyi.admin.request.RoleRequest; |
| | | import com.ruoyi.admin.service.MenuService; |
| | | import com.ruoyi.admin.service.RoleMenuService; |
| | | import com.ruoyi.admin.service.RoleService; |
| | | import com.ruoyi.admin.service.*; |
| | | import com.ruoyi.admin.vo.RoleDetailVO; |
| | | import com.ruoyi.common.core.domain.R; |
| | | import com.ruoyi.common.security.annotation.RequiresPermissions; |
| | |
| | | private RoleMenuService roleMenuService; |
| | | @Resource |
| | | private MenuService menuService; |
| | | @Resource |
| | | private SysUserService userService; |
| | | |
| | | |
| | | /** |
| | |
| | | public R<IPage<Role>> queryPageList(@RequestParam(name = "pageNum", defaultValue = "1") Integer pageNum, |
| | | @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize) { |
| | | return R.ok(roleService.lambdaQuery().eq(Role::getDelFlag, 0) |
| | | .ne(Role::getRoleName,"加盟商") |
| | | .orderByDesc(Role::getCreateTime).page(Page.of(pageNum, pageSize))); |
| | | } |
| | | |
| | | /** |
| | | * 角色列表 |
| | | */ |
| | | @RequiresPermissions("power_role") |
| | | @RequiresPermissions("power_account") |
| | | @ApiOperation(value = "角色列表", tags = {"后台-权限管理-账号管理"}) |
| | | @GetMapping(value = "/list") |
| | | public R<List<Role>> list() { |
| | |
| | | * |
| | | * @param id 角色id |
| | | */ |
| | | @RequiresPermissions("power_role") |
| | | @ApiOperation(value = "角色详情", tags = {"后台-权限管理-角色管理"}) |
| | | @GetMapping(value = "/detail") |
| | | @ApiImplicitParams({ |
| | |
| | | * |
| | | * @param roleRequest 角色信息 |
| | | */ |
| | | @RequiresPermissions("power_role") |
| | | @RequiresPermissions("role_update") |
| | | @ApiOperation(value = "编辑角色", tags = {"后台-权限管理-角色管理"}) |
| | | @PostMapping(value = "/update") |
| | | public R<RoleDetailVO> update(@RequestBody RoleRequest roleRequest) { |
| | |
| | | * |
| | | * @param roleRequest 角色信息 |
| | | */ |
| | | @RequiresPermissions("power_role") |
| | | @RequiresPermissions("role_save") |
| | | @ApiOperation(value = "新增角色", tags = {"后台-权限管理-角色管理"}) |
| | | @PostMapping(value = "/save") |
| | | public R<String> save(@RequestBody RoleRequest roleRequest) { |
| | |
| | | return roleService.saveRoleAndMenu(roleRequest, loginUser) ? R.ok() : R.fail(); |
| | | } |
| | | |
| | | @Resource |
| | | private UserRoleService userRoleService; |
| | | /** |
| | | * 根据id批量删除角色 |
| | | * |
| | | * @param ids 角色id拼接 |
| | | */ |
| | | @RequiresPermissions("power_role") |
| | | @RequiresPermissions("role_delete") |
| | | @ApiOperation(value = "批量删除角色", tags = {"后台-权限管理-角色管理"}) |
| | | @GetMapping(value = "/batchDelete") |
| | | @ApiImplicitParams({ |
| | |
| | | }) |
| | | public R<String> batchDelete(@RequestParam String ids) { |
| | | List<String> idList = Arrays.stream(ids.split(",")).collect(Collectors.toList()); |
| | | // 判断角色是否已存在关联账号 |
| | | List<Role> list = roleService.lambdaQuery().in(Role::getRoleId, idList).list(); |
| | | list.forEach(data -> data.setDelFlag("2")); |
| | | // 删除角色需要删除角色所关联的菜单信息 |
| | | for (String id : idList) { |
| | | roleMenuService.remove(new QueryWrapper<RoleMenu>().eq("role_id", id)); |
| | | for (Role role : list) { |
| | | Long roleId = role.getRoleId(); |
| | | List<Long> collect = userRoleService.lambdaQuery().eq(UserRole::getRoleId, roleId).list().stream().map(UserRole::getUserId).collect(Collectors.toList()); |
| | | if (!collect.isEmpty()){ |
| | | List<SysUser> sysUserList = userService.lambdaQuery() |
| | | .in(SysUser::getUserId,collect) |
| | | .eq(SysUser::getIsDelete, 0).list(); |
| | | if (sysUserList.isEmpty()) { |
| | | role.setDelFlag("2"); |
| | | }else { |
| | | return R.repeatedSubmission("角色已关联账号,请先解除关联!"); |
| | | } |
| | | }else { |
| | | role.setDelFlag("2"); |
| | | |
| | | } |
| | | // 删除菜单关联信息 |
| | | roleMenuService.remove(new QueryWrapper<RoleMenu>().eq("role_id", roleId)); |
| | | } |
| | | return roleService.updateBatchById(list) ? R.ok() : R.fail(); |
| | | } |