SysRoleController.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. package com.ydtech.modules.admin.controller;
  2. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  3. import com.ydtech.constants.SysConstants;
  4. import com.ydtech.core.page.HttpResult;
  5. import com.ydtech.core.page.PageRequest;
  6. import com.ydtech.modules.admin.constants.RoleConstants;
  7. import com.ydtech.modules.admin.model.SysRole;
  8. import com.ydtech.modules.admin.model.SysRoleMenu;
  9. import com.ydtech.modules.admin.model.SysUser;
  10. import com.ydtech.modules.admin.service.SysRoleMenuService;
  11. import com.ydtech.modules.admin.service.SysRoleService;
  12. import com.ydtech.modules.base.controller.BaseController;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.transaction.annotation.Transactional;
  15. import org.springframework.util.ObjectUtils;
  16. import org.springframework.web.bind.annotation.*;
  17. import java.lang.reflect.Array;
  18. import java.util.Arrays;
  19. import java.util.List;
  20. import java.util.stream.Collectors;
  21. /**
  22. * 角色控制器
  23. *
  24. * @author Yasepix
  25. * @date Oct 29, 2018
  26. */
  27. @RestController
  28. @RequestMapping("role")
  29. public class SysRoleController extends BaseController {
  30. @Autowired
  31. private SysRoleService sysRoleService;
  32. @Autowired
  33. private SysRoleMenuService sysRoleMenuService;
  34. // @PreAuthorize("hasAuthority('sys:role:add') AND hasAuthority('sys:role:edit')")
  35. @PostMapping(value = "/save")
  36. public HttpResult save(@RequestBody SysRole record) {
  37. SysRole role = sysRoleService.getById(record.getId());
  38. // SysRole role = sysRoleService.selectByPk(record.getId());
  39. if (role != null) {
  40. if (SysConstants.ADMIN.equalsIgnoreCase(role.getName())) {
  41. return HttpResult.error("超级管理员不允许修改!");
  42. }
  43. }
  44. // 新增角色
  45. if ((record.getId() == null || record.getId() == 0) && sysRoleService.findByName(record.getName()) != null) {
  46. return HttpResult.error("角色名已存在!");
  47. }
  48. return HttpResult.ok(sysRoleService.saveOrUpdate(record));
  49. }
  50. // @PreAuthorize("hasAuthority('sys:role:delete')")
  51. @PostMapping(value = "/delete")
  52. @Transactional
  53. public HttpResult delete(@RequestBody List<SysRole> records) {
  54. List<Long> sysRoleIds = records.stream().map(SysRole::getId).collect(Collectors.toList());
  55. //TODO 应该做级联删除,暂时未做
  56. return HttpResult.ok(sysRoleService.removeBatchByIds(sysRoleIds));
  57. // return HttpResult.ok(sysRoleService.delete(records));
  58. }
  59. // @PreAuthorize("hasAuthority('sys:role:view')")
  60. @PostMapping(value = "/findPage")
  61. public HttpResult findPage(@RequestBody PageRequest pageRequest) {
  62. return HttpResult.ok(sysRoleService.findPage(pageRequest));
  63. }
  64. // @PreAuthorize("hasAuthority('sys:role:view')")
  65. @GetMapping(value = "/findAll")
  66. public HttpResult findAll() {
  67. LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<>();
  68. lqw.eq(SysRole::getDelFlag, "0");
  69. List<SysRole> list = sysRoleService.list(lqw);
  70. return HttpResult.ok(list);
  71. }
  72. @GetMapping(value = "/findRoleByUserId")
  73. public HttpResult findRoleByUserId() {
  74. //获取登录人员该有的角色信息
  75. SysUser user = getUser();
  76. LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<>();
  77. //获取角色的配置信息
  78. RoleConstants roleConstants = RoleConstants.getRoleConstants(user.getRoleId());
  79. if (!user.getId().equals("admin")) {
  80. if(ObjectUtils.isEmpty(roleConstants)){
  81. lqw.eq(SysRole::getId, RoleConstants.R22.getCode());
  82. }else if (!"".equals(roleConstants.getRoleIds())) {
  83. String[] split = roleConstants.getRoleIds().split(",");
  84. lqw.in(SysRole::getId, Arrays.asList(split));
  85. }
  86. }
  87. lqw.eq(SysRole::getDelFlag, "0");
  88. List<SysRole> list = sysRoleService.list(lqw);
  89. return HttpResult.ok(list);
  90. }
  91. // @PreAuthorize("hasAuthority('sys:role:view')")
  92. @GetMapping(value = "/findRoleMenus")
  93. public HttpResult findRoleMenus(@RequestParam Long roleId) {
  94. return HttpResult.ok(sysRoleService.findRoleMenus(roleId));
  95. }
  96. // @PreAuthorize("hasAuthority('sys:role:view')")
  97. @PostMapping(value = "/saveRoleMenus")
  98. public HttpResult saveRoleMenus(@RequestBody List<SysRoleMenu> records) {
  99. if (null == records || records.isEmpty()) {
  100. return HttpResult.error("参数空");
  101. }
  102. SysRole sysRole = sysRoleService.getById(records.get(0).getRoleId());
  103. if (SysConstants.ADMIN.equalsIgnoreCase(sysRole.getName())) {
  104. // 如果是超级管理员,不允许修改
  105. return HttpResult.error("超级管理员拥有所有菜单权限,不允许修改!");
  106. }
  107. // for (SysRoleMenu record : records) {
  108. // SysRole sysRole = sysRoleService.getById(record.getRoleId());
  109. //// SysRole sysRole = sysRoleService.selectByPk(record.getRoleId());
  110. // if (SysConstants.ADMIN.equalsIgnoreCase(sysRole.getName())) {
  111. // // 如果是超级管理员,不允许修改
  112. // return HttpResult.error("超级管理员拥有所有菜单权限,不允许修改!");
  113. // }
  114. // }
  115. return HttpResult.ok(sysRoleMenuService.saveRoleMenus(records));
  116. }
  117. }