diff --git a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java index c51d0b3fac..60a7894876 100644 --- a/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java +++ b/yudao-module-system/src/main/java/cn/iocoder/yudao/module/system/dal/mysql/permission/RoleMapper.java @@ -1,21 +1,15 @@ package cn.iocoder.yudao.module.system.dal.mysql.permission; -import cn.hutool.core.util.ObjectUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.mybatis.core.dataobject.BaseDO; import cn.iocoder.yudao.framework.mybatis.core.mapper.BaseMapperX; -import cn.iocoder.yudao.framework.security.core.LoginUser; -import cn.iocoder.yudao.framework.security.core.util.SecurityFrameworkUtils; +import cn.iocoder.yudao.framework.mybatis.core.query.LambdaQueryWrapperX; import cn.iocoder.yudao.module.system.controller.admin.permission.vo.role.RolePageReqVO; -import cn.iocoder.yudao.module.system.dal.dataobject.dept.DeptDO; import cn.iocoder.yudao.module.system.dal.dataobject.permission.RoleDO; -import cn.iocoder.yudao.module.system.dal.dataobject.permission.UserRoleDO; -import cn.iocoder.yudao.module.system.dal.dataobject.user.AdminUserDO; import cn.iocoder.yudao.module.system.enums.permission.RoleCodeEnum; -import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.ibatis.annotations.Mapper; import org.springframework.lang.Nullable; -import java.time.LocalDateTime; import java.util.Collection; import java.util.List; @@ -24,36 +18,15 @@ public interface RoleMapper extends BaseMapperX { default PageResult selectPage(RolePageReqVO reqVO) { - Long loginUserId = SecurityFrameworkUtils.getLoginUserId(); - MPJLambdaWrapper mpjLambdaWrapper = new MPJLambdaWrapper(); - LocalDateTime[] createTimes = reqVO.getCreateTime(); - mpjLambdaWrapper.select( - RoleDO::getId, - RoleDO::getName, - RoleDO::getCode, - RoleDO::getSort, - RoleDO::getDataScope, - RoleDO::getStatus, - RoleDO::getCreateTime, - RoleDO::getRemark, - RoleDO::getDeleted) - .distinct() - .leftJoin(UserRoleDO.class, UserRoleDO::getRoleId, RoleDO::getId) - .leftJoin(AdminUserDO.class, AdminUserDO::getId, UserRoleDO::getUserId) - .leftJoin(DeptDO.class, DeptDO::getId, AdminUserDO::getDeptId) - .likeIfExists(RoleDO::getName, reqVO.getName()) - .likeIfExists(RoleDO::getCode, reqVO.getCode()) - .eqIfExists(RoleDO::getStatus, reqVO.getStatus()); - //判断是否是超级管理员 - RoleDO roleDO = selectById(loginUserId); - if (ObjectUtil.isNull(roleDO) || !RoleCodeEnum.isSuperAdmin(roleDO.getCode())) { - mpjLambdaWrapper.eq(AdminUserDO::getId, loginUserId); - } - // 检查createTimes是否非空且有至少两个元素 - if (createTimes != null && createTimes.length >= 2) { - mpjLambdaWrapper.between(RoleDO::getCreateTime, createTimes[0], createTimes[1]); - } - return selectPage(reqVO, mpjLambdaWrapper); + PageResult roleDOPageResult = selectPage(reqVO, new LambdaQueryWrapperX() + .likeIfPresent(RoleDO::getName, reqVO.getName()) + .likeIfPresent(RoleDO::getCode, reqVO.getCode()) + .eqIfPresent(RoleDO::getStatus, reqVO.getStatus()) + .betweenIfPresent(BaseDO::getCreateTime, reqVO.getCreateTime()) + .ne(RoleDO::getCode, RoleCodeEnum.SUPER_ADMIN.getCode()) + .orderByAsc(RoleDO::getSort)); + //过滤掉super_admin及管理员 + return roleDOPageResult; } default RoleDO selectByName(String name) { @@ -65,7 +38,9 @@ public interface RoleMapper extends BaseMapperX { } default List selectListByStatus(@Nullable Collection statuses) { - return selectList(RoleDO::getStatus, statuses); + return selectList(new LambdaQueryWrapperX() + .eq(RoleDO::getStatus, statuses) + .ne(RoleDO::getCode, RoleCodeEnum.SUPER_ADMIN.getCode())); } }