package com.example.demo.serviceImpl; import com.example.demo.domain.entity.Role; import com.example.demo.domain.vo.ConsumeUser; import com.example.demo.domain.vo.MenuVo; import com.example.demo.domain.vo.Result; import com.example.demo.domain.vo.RoleVo; import com.example.demo.mapper.RefundMapper; import com.example.demo.mapper.RoleMapper; import com.example.demo.service.MenuService; import com.example.demo.service.RoleService; import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.List; /** * @program: gold-java * @ClassName RoleServiceImpl * @description: * @author: Double * @create: 2025−07-15 11:30 * @Version 1.0 **/ @Service public class RoleServiceImpl implements RoleService { @Autowired private RoleMapper roleMapper; @Autowired private MenuService menuService; //新增角色 @Override @Transactional public Result addRole(RoleVo roleVo) { //校验角色 if (roleVo.getRoleName() == null || roleVo.getRoleName().isEmpty()) { return Result.error("角色名为空"); } if (roleMapper.selectByRoleName(roleVo.getRoleName()) != null) { return Result.error("角色名重复"); } if (roleVo.getPriority() == null) { return Result.error("优先级为空"); } if (roleVo.getMenuIds() == null || roleVo.getMenuIds().isEmpty()) { return Result.error("权限为空"); } try { roleMapper.addRole(roleVo); Role role = roleMapper.selectByRoleName(roleVo.getRoleName()); if (role == null) { return Result.error("角色添加失败"); } else { roleVo.setId(role.getId()); } menuService.addPermission(roleVo); } catch (Exception e) { return Result.error("添加失败"); } return Result.success("创建成功"); } //查找全部角色 @Override public List selectAllRole() { return roleMapper.selectAllRole(); } @Override public List selectSubRole(Integer fatherId) { return roleMapper.selectByFatherId(fatherId); } //分页查找角色 @Override public PageInfo selectBy(Integer pageNum, Integer pageSize, RoleVo roleVo) { PageHelper.startPage(pageNum, pageSize); List roleVos = roleMapper.selectBy(roleVo); // 遍历 roleVos 列表 for (RoleVo role : roleVos) { // 获取每个角色的权限树 List permissionTree = menuService.getPermissionTree(role.getId()); // 将权限树设置到角色对象中 role.setTree(permissionTree); } return new PageInfo<>(roleVos); } }