SysRoleController.java 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  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. record.setSysType("1");
  49. return HttpResult.ok(sysRoleService.saveOrUpdate(record));
  50. }
  51. // @PreAuthorize("hasAuthority('sys:role:delete')")
  52. @PostMapping(value = "/delete")
  53. @Transactional
  54. public HttpResult delete(@RequestBody List<SysRole> records) {
  55. List<Long> sysRoleIds = records.stream().map(SysRole::getId).collect(Collectors.toList());
  56. //TODO 应该做级联删除,暂时未做
  57. return HttpResult.ok(sysRoleService.removeBatchByIds(sysRoleIds));
  58. // return HttpResult.ok(sysRoleService.delete(records));
  59. }
  60. // @PreAuthorize("hasAuthority('sys:role:view')")
  61. @PostMapping(value = "/findPage")
  62. public HttpResult findPage(@RequestBody PageRequest pageRequest) {
  63. return HttpResult.ok(sysRoleService.findPage(pageRequest));
  64. }
  65. // @PreAuthorize("hasAuthority('sys:role:view')")
  66. @GetMapping(value = "/findAll")
  67. public HttpResult findAll() {
  68. LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<>();
  69. lqw.eq(SysRole::getDelFlag, "0");
  70. lqw.eq(SysRole::getSysType, "1");
  71. List<SysRole> list = sysRoleService.list(lqw);
  72. return HttpResult.ok(list);
  73. }
  74. @GetMapping(value = "/findRoleByUserId")
  75. public HttpResult findRoleByUserId() {
  76. //获取登录人员该有的角色信息
  77. SysUser user = getUser();
  78. LambdaQueryWrapper<SysRole> lqw = new LambdaQueryWrapper<>();
  79. //获取角色的配置信息
  80. RoleConstants roleConstants = RoleConstants.getRoleConstants(user.getRoleId());
  81. if (!user.getId().equals("admin")) {
  82. if(ObjectUtils.isEmpty(roleConstants)){
  83. lqw.eq(SysRole::getId, RoleConstants.R22.getCode());
  84. }else if (!"".equals(roleConstants.getRoleIds())) {
  85. String[] split = roleConstants.getRoleIds().split(",");
  86. lqw.in(SysRole::getId, Arrays.asList(split));
  87. }
  88. }
  89. lqw.eq(SysRole::getDelFlag, "0");
  90. lqw.eq(SysRole::getSysType, "1");
  91. List<SysRole> list = sysRoleService.list(lqw);
  92. return HttpResult.ok(list);
  93. }
  94. // @PreAuthorize("hasAuthority('sys:role:view')")
  95. @GetMapping(value = "/findRoleMenus")
  96. public HttpResult findRoleMenus(@RequestParam Long roleId) {
  97. return HttpResult.ok(sysRoleService.findRoleMenus(roleId));
  98. }
  99. // @PreAuthorize("hasAuthority('sys:role:view')")
  100. @PostMapping(value = "/saveRoleMenus")
  101. public HttpResult saveRoleMenus(@RequestBody List<SysRoleMenu> records) {
  102. if (null == records || records.isEmpty()) {
  103. return HttpResult.error("参数空");
  104. }
  105. SysRole sysRole = sysRoleService.getById(records.get(0).getRoleId());
  106. if (SysConstants.ADMIN.equalsIgnoreCase(sysRole.getName())) {
  107. // 如果是超级管理员,不允许修改
  108. return HttpResult.error("超级管理员拥有所有菜单权限,不允许修改!");
  109. }
  110. // for (SysRoleMenu record : records) {
  111. // SysRole sysRole = sysRoleService.getById(record.getRoleId());
  112. //// SysRole sysRole = sysRoleService.selectByPk(record.getRoleId());
  113. // if (SysConstants.ADMIN.equalsIgnoreCase(sysRole.getName())) {
  114. // // 如果是超级管理员,不允许修改
  115. // return HttpResult.error("超级管理员拥有所有菜单权限,不允许修改!");
  116. // }
  117. // }
  118. return HttpResult.ok(sysRoleMenuService.saveRoleMenus(records));
  119. }
  120. }