From 9a49aa0b254e3872124e2ff998cbb2ddfc461ec6 Mon Sep 17 00:00:00 2001 From: zhoushihao <zsh19950802@163.com> Date: 星期三, 24 四月 2024 15:35:07 +0800 Subject: [PATCH] 用户功能完成 --- hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java | 113 +++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 111 insertions(+), 2 deletions(-) diff --git a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java index 943ff7d..18ee6a6 100644 --- a/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java +++ b/hangzhoumesParent/common/springsecurity/src/main/java/com/mes/role/controller/SysRoleController.java @@ -1,8 +1,23 @@ package com.mes.role.controller; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.mes.role.entity.SysRole; +import com.mes.role.entity.SysRoleMenu; +import com.mes.userinfo.entity.SysUserRole; +import com.mes.utils.Result; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import java.time.LocalDateTime; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.stream.Collectors; /** * <p> @@ -15,6 +30,100 @@ @RestController @RequestMapping("/role/sys-role") public class SysRoleController { + @PreAuthorize("hasAuthority('sys:role:list')") + @GetMapping("/info/{id}") + public Result info(@PathVariable("id") Long id) { + SysRole sysRole = sysRoleService.getById(id); + + // 鑾峰彇瑙掕壊鐩稿叧鑱旂殑鑿滃崟id + List<SysRoleMenu> roleMenus = sysRoleMenuService.list(new QueryWrapper<SysRoleMenu>().eq("role_id", id)); + List<Long> menuIds = roleMenus.stream().map(p -> p.getMenuId()).collect(Collectors.toList()); + + sysRole.setMenuIds(menuIds); + return Result.success(sysRole); + } + + @PreAuthorize("hasAuthority('sys:role:list')") + @GetMapping("/list") + public Result list(String name) { + + Page<SysRole> pageData = sysRoleService.page(getPage(), + new QueryWrapper<SysRole>() + .like(StrUtil.isNotBlank(name), "name", name) + ); + + return Result.success(pageData); + } + + @PostMapping("/save") + @PreAuthorize("hasAuthority('sys:role:save')") + public Result save(@Validated @RequestBody SysRole sysRole) { + + sysRole.setCreated(LocalDateTime.now()); + sysRole.setStatu(Const.STATUS_ON); + + sysRoleService.save(sysRole); + return Result.success(sysRole); + } + + @PostMapping("/update") + @PreAuthorize("hasAuthority('sys:role:update')") + public Result update(@Validated @RequestBody SysRole sysRole) { + + sysRole.setUpdated(LocalDateTime.now()); + + sysRoleService.updateById(sysRole); + + // 鏇存柊缂撳瓨 + sysUserService.clearUserAuthorityInfoByRoleId(sysRole.getId()); + + return Result.success(sysRole); + } + + @PostMapping("/delete") + @PreAuthorize("hasAuthority('sys:role:delete')") + @Transactional + public Result info(@RequestBody Long[] ids) { + + sysRoleService.removeByIds(Arrays.asList(ids)); + + // 鍒犻櫎涓棿琛� + sysUserRoleService.remove(new QueryWrapper<SysUserRole>().in("role_id", ids)); + sysRoleMenuService.remove(new QueryWrapper<SysRoleMenu>().in("role_id", ids)); + + // 缂撳瓨鍚屾鍒犻櫎 + Arrays.stream(ids).forEach(id -> { + // 鏇存柊缂撳瓨 + sysUserService.clearUserAuthorityInfoByRoleId(id); + }); + + return Result.success(""); + } + + @Transactional + @PostMapping("/perm/{roleId}") + @PreAuthorize("hasAuthority('sys:role:perm')") + public Result info(@PathVariable("roleId") Long roleId, @RequestBody Long[] menuIds) { + + List<SysRoleMenu> sysRoleMenus = new ArrayList<>(); + + Arrays.stream(menuIds).forEach(menuId -> { + SysRoleMenu roleMenu = new SysRoleMenu(); + roleMenu.setMenuId(menuId); + roleMenu.setRoleId(roleId); + + sysRoleMenus.add(roleMenu); + }); + + // 鍏堝垹闄ゅ師鏉ョ殑璁板綍锛屽啀淇濆瓨鏂扮殑 + sysRoleMenuService.remove(new QueryWrapper<SysRoleMenu>().eq("role_id", roleId)); + sysRoleMenuService.saveBatch(sysRoleMenus); + + // 鍒犻櫎缂撳瓨 + sysUserService.clearUserAuthorityInfoByRoleId(roleId); + + return Result.success(menuIds); + } } -- Gitblit v1.8.0