From 942bdeee0b6fcc92b35e788c851d39c5182a8e40 Mon Sep 17 00:00:00 2001 From: heheng <475597332@qq.com> Date: 星期二, 10 六月 2025 13:01:20 +0800 Subject: [PATCH] add --- multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java | 260 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 260 insertions(+), 0 deletions(-) diff --git a/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java new file mode 100644 index 0000000..61a8061 --- /dev/null +++ b/multi-admin/src/main/java/com/gkhy/exam/admin/controller/system/SysRoleController.java @@ -0,0 +1,260 @@ +package com.gkhy.exam.admin.controller.system; + + +import cn.hutool.core.util.ObjectUtil; +import cn.hutool.poi.excel.ExcelUtil; +import com.gkhy.exam.common.annotation.Log; +import com.gkhy.exam.common.api.CommonResult; +import com.gkhy.exam.common.domain.entity.SysRole; +import com.gkhy.exam.common.domain.entity.SysUser; +import com.gkhy.exam.common.domain.model.LoginUser; +import com.gkhy.exam.common.domain.model.LoginUserDetails; +import com.gkhy.exam.common.enums.BusinessType; +import com.gkhy.exam.framework.web.service.SysPermissionService; +import com.gkhy.exam.framework.web.service.TokenService; +import com.gkhy.exam.system.domain.SysUserRole; +import com.gkhy.exam.system.service.ISysRoleService; +import com.gkhy.exam.system.service.SysUserService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; +import org.springframework.validation.annotation.Validated; +import org.springframework.web.bind.annotation.*; + +import javax.servlet.http.HttpServletResponse; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import static com.gkhy.exam.common.utils.PageUtils.startPage; +import static com.gkhy.exam.common.utils.SecurityUtils.getLoginUser; +import static com.gkhy.exam.common.utils.SecurityUtils.getUsername; + +/** + * 角色信息 + * + * @author expert + */ +@RestController +@RequestMapping("/system/role") +public class SysRoleController +{ + @Autowired + private ISysRoleService roleService; + + @Autowired + private TokenService tokenService; + + @Autowired + private SysPermissionService permissionService; + + @Autowired + private SysUserService userService; + +// @Autowired +// private ISysDeptService deptService; + + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/list") + public CommonResult list(SysRole role) + { + + return CommonResult.success(roleService.selectRoleList(role)); + } + +// @Log(title = "角色管理", businessType = BusinessType.EXPORT) +// @PreAuthorize("@ss.hasPermi('system:role:export')") +// @PostMapping("/export") +// public void export(HttpServletResponse response, SysRole role) +// { +// List<SysRole> list = roleService.selectRoleList(role); +// ExcelUtil<SysRole> util = new ExcelUtil<SysRole>(SysRole.class); +// util.exportExcel(response, list, "角色数据"); +// } + + /** + * 根据角色编号获取详细信息 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/{roleId}") + public CommonResult getInfo(@PathVariable Long roleId) + { + roleService.checkRoleDataScope(roleId); + return CommonResult.success(roleService.selectRoleById(roleId)); + } + + /** + * 新增角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:add')") + @Log(title = "角色管理", businessType = BusinessType.INSERT) + @PostMapping + public CommonResult add(@Validated @RequestBody SysRole role) + { + if (!roleService.checkRoleNameUnique(role)) + { + return CommonResult.failed("新增角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (!roleService.checkRoleKeyUnique(role)) + { + return CommonResult.failed("新增角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setCreateBy(getUsername()); + return CommonResult.success(roleService.insertRole(role)); + + } + + /** + * 修改保存角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping + public CommonResult edit(@Validated @RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + if (!roleService.checkRoleNameUnique(role)) + { + return CommonResult.failed("修改角色'" + role.getRoleName() + "'失败,角色名称已存在"); + } + else if (!roleService.checkRoleKeyUnique(role)) + { + return CommonResult.failed("修改角色'" + role.getRoleName() + "'失败,角色权限已存在"); + } + role.setUpdateBy(getUsername()); + + if (roleService.updateRole(role) > 0) + { + // 更新缓存用户权限 + LoginUserDetails loginUser = getLoginUser(); + + if (ObjectUtil.isNotNull(loginUser.getUser()) && !loginUser.getUser().isAdmin()) + { + loginUser.setUser(userService.selectUserByUsername(loginUser.getUser().getName())); + loginUser.setPermissions(permissionService.getMenuPermission(loginUser.getUser())); + tokenService.setLoginUser(loginUser); + } + return CommonResult.success(); + } + return CommonResult.failed("修改角色'" + role.getRoleName() + "'失败,请联系管理员"); + } + + /** + * 修改保存数据权限 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/dataScope") + public CommonResult dataScope(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + return CommonResult.success(roleService.authDataScope(role)); + } + + /** + * 状态修改 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.UPDATE) + @PutMapping("/changeStatus") + public CommonResult changeStatus(@RequestBody SysRole role) + { + roleService.checkRoleAllowed(role); + roleService.checkRoleDataScope(role.getRoleId()); + role.setUpdateBy(getUsername()); + return CommonResult.success(roleService.updateRoleStatus(role)); + } + + /** + * 删除角色 + */ + @PreAuthorize("@ss.hasPermi('system:role:remove')") + @Log(title = "角色管理", businessType = BusinessType.DELETE) + @DeleteMapping("/{roleIds}") + public CommonResult remove(@PathVariable Long[] roleIds) + { + return CommonResult.success(roleService.deleteRoleByIds(roleIds)); + } + + /** + * 获取角色选择框列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping("/optionselect") + public CommonResult optionselect() + { + return CommonResult.success(roleService.selectRoleAll()); + } + + /** + * 查询已分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/allocatedList") + public CommonResult allocatedList(SysUser user) + { + startPage(); + List<SysUser> list = userService.selectAllocatedList(user); + return CommonResult.success(list); + } + + /** + * 查询未分配用户角色列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:list')") + @GetMapping("/authUser/unallocatedList") + public CommonResult unallocatedList(SysUser user) + { + startPage(); + List<SysUser> list = userService.selectUnallocatedList(user); + return CommonResult.success(list); + } + + /** + * 取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancel") + public CommonResult cancelAuthUser(@RequestBody SysUserRole userRole) + { + return CommonResult.success(roleService.deleteAuthUser(userRole)); + } + + /** + * 批量取消授权用户 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/cancelAll") + public CommonResult cancelAuthUserAll(Long roleId, Long[] userIds) + { + return CommonResult.success(roleService.deleteAuthUsers(roleId, userIds)); + } + + /** + * 批量选择用户授权 + */ + @PreAuthorize("@ss.hasPermi('system:role:edit')") + @Log(title = "角色管理", businessType = BusinessType.GRANT) + @PutMapping("/authUser/selectAll") + public CommonResult selectAuthUserAll(Long roleId, Long[] userIds) + { + roleService.checkRoleDataScope(roleId); + return CommonResult.success(roleService.insertAuthUsers(roleId, userIds)); + } + + /** + * 获取对应角色部门树列表 + */ + @PreAuthorize("@ss.hasPermi('system:role:query')") + @GetMapping(value = "/deptTree/{roleId}") + public CommonResult deptTree(@PathVariable("roleId") Long roleId) + { + Map<String,Object> ajax = new HashMap<>(); +// ajax.put("checkedKeys", deptService.selectDeptListByRoleId(roleId)); +// ajax.put("depts", deptService.selectDeptTreeList(new SysDept())); + return CommonResult.success(ajax); + } +} -- Gitblit v1.9.2