package com.youlai.system.pojo.service.impl; import cn.hutool.core.collection.CollectionUtil; import cn.hutool.core.lang.Assert; import cn.hutool.core.util.StrUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.youlai.common.constant.SystemConstants; import com.youlai.common.web.model.Option; import com.youlai.common.security.util.SecurityUtils; import com.youlai.system.converter.RoleConverter; import com.youlai.system.mapper.SysRoleMapper; import com.youlai.system.pojo.entity.SysRole; import com.youlai.system.pojo.entity.SysRoleMenu; import com.youlai.system.pojo.entity.SysUserRole; import com.youlai.system.pojo.form.RoleForm; import com.youlai.system.pojo.query.RolePageQuery; import com.youlai.system.pojo.vo.role.RolePageVO; import com.youlai.system.pojo.service.SysRoleMenuService; import com.youlai.system.pojo.service.SysRoleService; import com.youlai.system.pojo.service.SysUserRoleService; import lombok.RequiredArgsConstructor; import org.springframework.cache.annotation.CacheEvict; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.*; import java.util.stream.Collectors; /** * 角色业务实现类 * * @author haoxr * @date 2022/6/3 */ @Service @RequiredArgsConstructor public class SysRoleServiceImpl extends ServiceImpl implements SysRoleService { private final SysRoleMenuService sysRoleMenuService; private final SysUserRoleService sysUserRoleService; private final RoleConverter roleConverter; /** * 角色分页列表 * * @param queryParams * @return */ @Override public Page listRolePages(RolePageQuery queryParams) { // 查询参数 int pageNum = queryParams.getPageNum(); int pageSize = queryParams.getPageSize(); String keywords = queryParams.getKeywords(); // 查询数据 Page rolePage = this.page(new Page<>(pageNum, pageSize), new LambdaQueryWrapper() .and(StrUtil.isNotBlank(keywords), wrapper -> wrapper.like(StrUtil.isNotBlank(keywords), SysRole::getName, keywords) .or() .like(StrUtil.isNotBlank(keywords), SysRole::getCode, keywords) ) .ne(!SecurityUtils.isRoot(), SysRole::getCode, SystemConstants.ROOT_ROLE_CODE) // 非超级管理员不显示超级管理员角色 ); // Page rolePage = this.baseMapper.listRolePages( new Page<>(pageNum, pageSize), queryParams,UserUtils.isRoot(),GlobalConstants.ROOT_ROLE_CODE); // 实体转换 Page pageResult = roleConverter.entity2Page(rolePage); return pageResult; } /** * 角色下拉列表 * * @return */ @Override public List