From 866c5588d497cbf28a940775a47869bd2508a69f Mon Sep 17 00:00:00 2001
From: zhoushihao <zsh19950802@163.com>
Date: 星期日, 28 四月 2024 14:15:19 +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