refactor(system): 重构角色管理查询功能
- 移除了不必要的导入和代码 - 使用 LambdaQuery
This commit is contained in:
parent
f3988af15d
commit
e15cf54d6a
|
|
@ -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<RoleDO> {
|
|||
|
||||
|
||||
default PageResult<RoleDO> selectPage(RolePageReqVO reqVO) {
|
||||
Long loginUserId = SecurityFrameworkUtils.getLoginUserId();
|
||||
MPJLambdaWrapper<RoleDO> 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<RoleDO> roleDOPageResult = selectPage(reqVO, new LambdaQueryWrapperX<RoleDO>()
|
||||
.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<RoleDO> {
|
|||
}
|
||||
|
||||
default List<RoleDO> selectListByStatus(@Nullable Collection<Integer> statuses) {
|
||||
return selectList(RoleDO::getStatus, statuses);
|
||||
return selectList(new LambdaQueryWrapperX<RoleDO>()
|
||||
.eq(RoleDO::getStatus, statuses)
|
||||
.ne(RoleDO::getCode, RoleCodeEnum.SUPER_ADMIN.getCode()));
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue