You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

120 lines
3.0 KiB

  1. package com.example.demo.serviceImpl;
  2. import com.example.demo.domain.entity.Role;
  3. import com.example.demo.domain.vo.ConsumeUser;
  4. import com.example.demo.domain.vo.MenuVo;
  5. import com.example.demo.domain.vo.Result;
  6. import com.example.demo.domain.vo.RoleVo;
  7. import com.example.demo.mapper.RefundMapper;
  8. import com.example.demo.mapper.RoleMapper;
  9. import com.example.demo.service.MenuService;
  10. import com.example.demo.service.RoleService;
  11. import com.github.pagehelper.PageHelper;
  12. import com.github.pagehelper.PageInfo;
  13. import org.springframework.beans.factory.annotation.Autowired;
  14. import org.springframework.stereotype.Service;
  15. import org.springframework.transaction.annotation.Transactional;
  16. import java.util.List;
  17. /**
  18. * @program: gold-java
  19. * @ClassName RoleServiceImpl
  20. * @description:
  21. * @author: Double
  22. * @create: 202507-15 11:30
  23. * @Version 1.0
  24. **/
  25. @Service
  26. public class RoleServiceImpl implements RoleService {
  27. @Autowired
  28. private RoleMapper roleMapper;
  29. @Autowired
  30. private MenuService menuService;
  31. //新增角色
  32. @Override
  33. @Transactional
  34. public Result addRole(RoleVo roleVo) {
  35. //校验角色
  36. if (roleVo.getRoleName() == null || roleVo.getRoleName().isEmpty()) {
  37. return Result.error("角色名为空");
  38. }
  39. if (roleMapper.selectByRoleName(roleVo.getRoleName()) != null) {
  40. return Result.error("角色名重复");
  41. }
  42. if (roleVo.getPriority() == null) {
  43. return Result.error("优先级为空");
  44. }
  45. if (roleVo.getMenuIds() == null || roleVo.getMenuIds().isEmpty()) {
  46. return Result.error("权限为空");
  47. }
  48. try {
  49. roleMapper.addRole(roleVo);
  50. Role role = roleMapper.selectByRoleName(roleVo.getRoleName());
  51. if (role == null) {
  52. return Result.error("角色添加失败");
  53. } else {
  54. roleVo.setId(role.getId());
  55. }
  56. menuService.addPermission(roleVo);
  57. } catch (Exception e) {
  58. return Result.error("添加失败");
  59. }
  60. return Result.success("创建成功");
  61. }
  62. //查找全部角色
  63. @Override
  64. public List<RoleVo> selectAllRole() {
  65. return roleMapper.selectAllRole();
  66. }
  67. @Override
  68. public List<RoleVo> selectSubRole(Integer fatherId) {
  69. return roleMapper.selectByFatherId(fatherId);
  70. }
  71. //分页查找角色
  72. @Override
  73. public PageInfo<RoleVo> selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo) {
  74. PageHelper.startPage(pageNum, pageSize);
  75. List<RoleVo> roleVos = roleMapper.selectBy(roleVo);
  76. // 遍历 roleVos 列表
  77. for (RoleVo role : roleVos) {
  78. // 获取每个角色的权限树
  79. List<MenuVo> permissionTree = menuService.getPermissionTree(role.getId());
  80. // 将权限树设置到角色对象中
  81. role.setTree(permissionTree);
  82. }
  83. return new PageInfo<>(roleVos);
  84. }
  85. }