Nie możesz wybrać więcej, niż 25 tematów Tematy muszą się zaczynać od litery lub cyfry, mogą zawierać myślniki ('-') i mogą mieć do 35 znaków.
 
 
 
 
 

122 wiersze
4.3 KiB

  1. package com.simple.controller;
  2. import com.github.pagehelper.PageInfo;
  3. import com.simple.common.Result;
  4. import com.simple.common.ResultData;
  5. import com.simple.domain.po.MallRole;
  6. import com.simple.domain.po.MallRolePermission;
  7. import com.simple.service.MallRolePermissionService;
  8. import com.simple.service.MallRoleService;
  9. import io.swagger.annotations.Api;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.slf4j.Logger;
  12. import org.slf4j.LoggerFactory;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.util.Assert;
  15. import org.springframework.web.bind.annotation.*;
  16. import java.util.ArrayList;
  17. import java.util.List;
  18. @RestController
  19. @RequestMapping("role")
  20. @Api(description = "角色相关接口")
  21. public class MallRoleController extends BaseController {
  22. private final Logger logger = LoggerFactory.getLogger(this.getClass());
  23. @Autowired
  24. private MallRoleService sysRoleService;
  25. @Autowired
  26. private MallRolePermissionService sysRolePermissionService;
  27. @GetMapping("list")
  28. public ResultData list(MallRole sysRole, Integer pageNum, Integer pageSize) {
  29. String tenantId = getTenantId();
  30. sysRole.setTenantId(tenantId);
  31. final PageInfo<MallRole> page = sysRoleService.listAsPage(sysRole, pageNum, pageSize);
  32. for (MallRole r : page.getList()) {
  33. MallRolePermission p = new MallRolePermission();
  34. p.setRoleId(r.getId());
  35. p.setTenantId(tenantId);
  36. PageInfo<MallRolePermission> pers = sysRolePermissionService.listAsPage(p, 1, 1000);
  37. String menus = "";
  38. for (MallRolePermission rp : pers.getList()) {
  39. menus += rp.getPermissionId() + ",";
  40. }
  41. if (menus.length() > 1) {
  42. menus = menus.substring(0, menus.length() - 1);
  43. }
  44. r.setMenus(menus);
  45. }
  46. return new ResultData(page);
  47. }
  48. @PostMapping("saveOrUpdate")
  49. public ResultData saveOrUpdate(@RequestBody MallRole sysRole) {
  50. String tenantId = getTenantId();
  51. int count = sysRoleService.countByName(sysRole.getName(), sysRole.getId());
  52. if (count > 0) {
  53. return new ResultData(ResultData.ERROR, "角色名已存在");
  54. }
  55. sysRole.setTenantId(tenantId);
  56. sysRoleService.saveOrUpdate(sysRole);
  57. // SysRolePermissionService.deleteById(id);
  58. if (StringUtils.isNoneBlank(sysRole.getMenus())) {
  59. List<Long> mIds = new ArrayList<>();
  60. for (String mId : sysRole.getMenus().split(",")) {
  61. mIds.add(Long.valueOf(mId));
  62. }
  63. sysRolePermissionService.savePermissions(tenantId, sysRole.getId(), mIds.toArray(new Long[]{}));
  64. ;
  65. }
  66. return new ResultData();
  67. }
  68. @PostMapping("add")
  69. public ResultData add(MallRole sysRole) {
  70. Assert.notNull(sysRole.getName(), "角色名不能为空");
  71. Assert.isTrue(!checkUnique(sysRole.getName(), null), "重复的角色名");
  72. sysRoleService.saveOrUpdate(sysRole);
  73. return new ResultData();
  74. }
  75. @PostMapping("update")
  76. public ResultData update(MallRole sysRole) {
  77. if (sysRole.getName() != null) {
  78. System.out.println(checkUnique(sysRole.getName(), sysRole.getId()));
  79. Assert.isTrue(!checkUnique(sysRole.getName(), sysRole.getId()), "角色名已存在");
  80. }
  81. sysRoleService.saveOrUpdate(sysRole);
  82. // Assert.notNull(sysRole.getName(), "角色名不能为空");
  83. return new ResultData();
  84. }
  85. @PostMapping("/del")
  86. public ResultData delete(@RequestBody MallRole sysRole) {
  87. sysRoleService.deleteById(sysRole.getId());
  88. sysRolePermissionService.deleteByRoleId(sysRole.getId());
  89. return new ResultData(Result.SUCCESS, "删除成功", null);
  90. }
  91. @GetMapping("setPermission")
  92. public ResultData setPermission(Long roleId, String perId) {
  93. Assert.notNull(perId, "请选择权限");
  94. /*String[] perIds = perId.split(",");
  95. SysRolePermissionService.savePermissions(roleId, perIds);*/
  96. //TODO
  97. return new ResultData(Result.SUCCESS, "设置角色权限成功", null);
  98. }
  99. private boolean checkUnique(String name, Long id) {
  100. return sysRoleService.countByName(name, id) > 0 ? true : false;
  101. }
  102. }