diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java index e6afa3c07..23a4c648d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/controller/system/SysRoleController.java @@ -144,7 +144,7 @@ public class SysRoleController extends BaseController { @Log(title = "角色管理", businessType = BusinessType.DELETE) @DeleteMapping("/{roleIds}") public R remove(@PathVariable Long[] roleIds) { - return toAjax(roleService.deleteRoleByIds(roleIds)); + return toAjax(roleService.deleteRoleByIds(List.of(roleIds))); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java index 15096f8a8..8cf6d3982 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysDeptMapper.java @@ -3,7 +3,6 @@ package org.dromara.system.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import org.apache.ibatis.annotations.Param; import org.dromara.common.core.utils.StreamUtils; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; @@ -21,6 +20,20 @@ import java.util.List; */ public interface SysDeptMapper extends BaseMapperPlus { + default String buildDeptByRoleSql(Long roleId) { + return """ + select dept_id from sys_role_dept where role_id = %d + """.formatted(roleId); + } + + default String buildParentDeptByRoleSql(Long roleId) { + return """ + select parent_id from sys_dept where dept_id in ( + select dept_id from sys_role_dept where role_id = %d + ) + """.formatted(roleId); + } + /** * 查询部门管理数据 * @@ -93,6 +106,16 @@ public interface SysDeptMapper extends BaseMapperPlus { * @param deptCheckStrictly 部门树选择项是否关联显示 * @return 选中部门列表 */ - List selectDeptListByRoleId(@Param("roleId") Long roleId, @Param("deptCheckStrictly") boolean deptCheckStrictly); + default List selectDeptListByRoleId(Long roleId, boolean deptCheckStrictly) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(SysDept::getDeptId) + .inSql(SysDept::getDeptId, this.buildDeptByRoleSql(roleId)) + .orderByAsc(SysDept::getParentId) + .orderByAsc(SysDept::getOrderNum); + if (deptCheckStrictly) { + wrapper.notInSql(SysDept::getDeptId, this.buildParentDeptByRoleSql(roleId)); + } + return this.selectObjs(wrapper); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java index 205413b3f..d71c2998e 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysMenuMapper.java @@ -1,9 +1,6 @@ package org.dromara.system.mapper; -import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Constants; -import org.apache.ibatis.annotations.Param; import org.dromara.common.core.constant.SystemConstants; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysMenu; @@ -18,13 +15,27 @@ import java.util.List; */ public interface SysMenuMapper extends BaseMapperPlus { - /** - * 根据用户查询系统菜单列表 - * - * @param queryWrapper 查询条件 - * @return 菜单列表 - */ - List selectMenuListByUserId(@Param(Constants.WRAPPER) Wrapper queryWrapper); + default String buildMenuByUserSql(Long userId) { + return """ + select menu_id from sys_role_menu where role_id in ( + select role_id from sys_user_role where user_id = %d + ) + """.formatted(userId); + } + + default String buildMenuByRoleSql(Long roleId) { + return """ + select menu_id from sys_role_menu where role_id = %d + """.formatted(roleId); + } + + default String buildParentMenuByRoleSql(Long roleId) { + return """ + select parent_id from sys_menu where menu_id in ( + select menu_id from sys_role_menu where role_id = %d + ) + """.formatted(roleId); + } /** * 根据用户ID查询权限 @@ -32,7 +43,13 @@ public interface SysMenuMapper extends BaseMapperPlus { * @param userId 用户ID * @return 权限列表 */ - List selectMenuPermsByUserId(Long userId); + default List selectMenuPermsByUserId(Long userId) { + return this.selectObjs( + new LambdaQueryWrapper() + .select(SysMenu::getPerms) + .inSql(SysMenu::getMenuId, this.buildMenuByUserSql(userId)) + ); + } /** * 根据角色ID查询权限 @@ -40,7 +57,13 @@ public interface SysMenuMapper extends BaseMapperPlus { * @param roleId 角色ID * @return 权限列表 */ - List selectMenuPermsByRoleId(Long roleId); + default List selectMenuPermsByRoleId(Long roleId) { + return this.selectObjs( + new LambdaQueryWrapper() + .select(SysMenu::getPerms) + .inSql(SysMenu::getMenuId, this.buildMenuByRoleSql(roleId)) + ); + } /** * 根据用户ID查询菜单 @@ -56,14 +79,6 @@ public interface SysMenuMapper extends BaseMapperPlus { return this.selectList(lqw); } - /** - * 根据用户ID查询菜单 - * - * @param userId 用户ID - * @return 菜单列表 - */ - List selectMenuTreeByUserId(Long userId); - /** * 根据角色ID查询菜单树信息 * @@ -71,6 +86,16 @@ public interface SysMenuMapper extends BaseMapperPlus { * @param menuCheckStrictly 菜单树选择项是否关联显示 * @return 选中菜单列表 */ - List selectMenuListByRoleId(@Param("roleId") Long roleId, @Param("menuCheckStrictly") boolean menuCheckStrictly); + default List selectMenuListByRoleId(Long roleId, boolean menuCheckStrictly) { + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + wrapper.select(SysMenu::getMenuId) + .inSql(SysMenu::getMenuId, buildMenuByRoleSql(roleId)) + .orderByAsc(SysMenu::getParentId) + .orderByAsc(SysMenu::getOrderNum); + if (menuCheckStrictly) { + wrapper.notInSql(SysMenu::getMenuId, this.buildParentMenuByRoleSql(roleId)); + } + return this.selectObjs(wrapper); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java index dfe9f2c2f..876de61b6 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysPostMapper.java @@ -1,6 +1,7 @@ package org.dromara.system.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.dromara.common.mybatis.annotation.DataColumn; import org.dromara.common.mybatis.annotation.DataPermission; @@ -38,6 +39,9 @@ public interface SysPostMapper extends BaseMapperPlus { * @param userId 用户ID * @return 结果 */ - List selectPostsByUserId(Long userId); + default List selectPostsByUserId(Long userId) { + return this.selectVoList(new LambdaQueryWrapper() + .inSql(SysPost::getPostId, "select post_id from sys_user_post where user_id = " + userId)); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java index 9cb1ea509..1d3a0bb77 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysRoleMapper.java @@ -1,6 +1,7 @@ package org.dromara.system.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; @@ -19,6 +20,12 @@ import java.util.List; */ public interface SysRoleMapper extends BaseMapperPlus { + default String buildRoleByUserSql(Long userId) { + return """ + select role_id from sys_user_role where user_id = %d + """.formatted(userId); + } + /** * 分页查询角色列表 * @@ -27,10 +34,12 @@ public interface SysRoleMapper extends BaseMapperPlus { * @return 包含角色信息的分页结果 */ @DataPermission({ - @DataColumn(key = "deptName", value = "d.dept_id"), - @DataColumn(key = "userName", value = "r.create_by") + @DataColumn(key = "deptName", value = "create_dept"), + @DataColumn(key = "userName", value = "create_by") }) - Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); + default Page selectPageRoleList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper) { + return this.selectVoPage(page, queryWrapper); + } /** * 根据条件分页查询角色数据 @@ -39,10 +48,12 @@ public interface SysRoleMapper extends BaseMapperPlus { * @return 角色数据集合信息 */ @DataPermission({ - @DataColumn(key = "deptName", value = "d.dept_id"), - @DataColumn(key = "userName", value = "r.create_by") + @DataColumn(key = "deptName", value = "create_dept"), + @DataColumn(key = "userName", value = "create_by") }) - List selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper); + default List selectRoleList(@Param(Constants.WRAPPER) Wrapper queryWrapper) { + return this.selectVoList(queryWrapper); + } /** * 根据角色ID查询角色信息 @@ -51,10 +62,12 @@ public interface SysRoleMapper extends BaseMapperPlus { * @return 对应的角色信息 */ @DataPermission({ - @DataColumn(key = "deptName", value = "d.dept_id"), + @DataColumn(key = "deptName", value = "r.create_dept"), @DataColumn(key = "userName", value = "r.create_by") }) - SysRoleVo selectRoleById(Long roleId); + default SysRoleVo selectRoleById(Long roleId) { + return this.selectVoById(roleId); + } /** * 根据用户ID查询角色 @@ -62,14 +75,11 @@ public interface SysRoleMapper extends BaseMapperPlus { * @param userId 用户ID * @return 角色列表 */ - List selectRolePermissionByUserId(Long userId); - - /** - * 根据用户ID查询角色 - * - * @param userId 用户ID - * @return 角色列表 - */ - List selectRolesByUserId(Long userId); + default List selectRolesByUserId(Long userId) { + return this.selectVoList(new LambdaQueryWrapper() + .select(SysRole::getRoleId, SysRole::getRoleName, SysRole::getRoleKey, + SysRole::getRoleSort, SysRole::getDataScope, SysRole::getStatus) + .inSql(SysRole::getRoleId, this.buildRoleByUserSql(userId))); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java index ddea2e2ac..2cfd3db98 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserMapper.java @@ -30,7 +30,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "userName", value = "create_by") }) default Page selectPageUserList(Page page, Wrapper queryWrapper) { return this.selectVoPage(page, queryWrapper); @@ -44,7 +44,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "userName", value = "create_by") }) default List selectUserList(Wrapper queryWrapper) { return this.selectVoList(queryWrapper); @@ -58,7 +58,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "d.dept_id"), - @DataColumn(key = "userName", value = "u.user_id") + @DataColumn(key = "userName", value = "u.create_by") }) List selectUserExportList(@Param(Constants.WRAPPER) Wrapper queryWrapper); @@ -71,7 +71,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "d.dept_id"), - @DataColumn(key = "userName", value = "u.user_id") + @DataColumn(key = "userName", value = "u.create_by") }) Page selectAllocatedList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); @@ -83,7 +83,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "d.dept_id"), - @DataColumn(key = "userName", value = "u.user_id") + @DataColumn(key = "userName", value = "u.create_by") }) Page selectUnallocatedList(@Param("page") Page page, @Param(Constants.WRAPPER) Wrapper queryWrapper); @@ -95,7 +95,7 @@ public interface SysUserMapper extends BaseMapperPlus { */ @DataPermission({ @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "userName", value = "create_by") }) default long countUserById(Long userId) { return this.selectCount(new LambdaQueryWrapper().eq(SysUser::getUserId, userId)); @@ -111,7 +111,7 @@ public interface SysUserMapper extends BaseMapperPlus { @Override @DataPermission({ @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "userName", value = "create_by") }) int update(@Param(Constants.ENTITY) SysUser user, @Param(Constants.WRAPPER) Wrapper updateWrapper); @@ -124,7 +124,7 @@ public interface SysUserMapper extends BaseMapperPlus { @Override @DataPermission({ @DataColumn(key = "deptName", value = "dept_id"), - @DataColumn(key = "userName", value = "user_id") + @DataColumn(key = "userName", value = "create_by") }) int updateById(@Param(Constants.ENTITY) SysUser user); diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java index 83403480e..e7c6ae38a 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/mapper/SysUserRoleMapper.java @@ -1,5 +1,6 @@ package org.dromara.system.mapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import org.dromara.common.mybatis.core.mapper.BaseMapperPlus; import org.dromara.system.domain.SysUserRole; @@ -18,6 +19,11 @@ public interface SysUserRoleMapper extends BaseMapperPlus selectUserIdsByRoleId(Long roleId); + default List selectUserIdsByRoleId(Long roleId) { + return this.selectObjs(new LambdaQueryWrapper() + .select(SysUserRole::getUserId).inSql(SysUserRole::getRoleId, + "select role_id from sys_role where role_id = " + roleId) + ); + } } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java index cec4bf775..5b320c0d3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/ISysRoleService.java @@ -167,7 +167,7 @@ public interface ISysRoleService { * @param roleIds 需要删除的角色ID * @return 结果 */ - int deleteRoleByIds(Long[] roleIds); + int deleteRoleByIds(List roleIds); /** * 取消授权用户角色 diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java index 10c3a9aeb..43bf505bf 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysMenuServiceImpl.java @@ -5,8 +5,6 @@ import cn.hutool.core.convert.Convert; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.toolkit.Wrappers; import lombok.RequiredArgsConstructor; import org.dromara.common.core.constant.Constants; import org.dromara.common.core.constant.SystemConstants; @@ -67,29 +65,20 @@ public class SysMenuServiceImpl implements ISysMenuService { @Override public List selectMenuList(SysMenuBo menu, Long userId) { List menuList; - // 管理员显示所有菜单信息 - if (LoginHelper.isSuperAdmin(userId)) { - menuList = baseMapper.selectVoList(new LambdaQueryWrapper() - .like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + // 管理员显示所有菜单信息 不是管理员 按用户id过滤菜单 + if (!LoginHelper.isSuperAdmin(userId)) { + // 通过用户id获取角色id 通过角色id获取菜单id 然后in菜单 + wrapper.inSql(SysMenu::getMenuId, baseMapper.buildMenuByUserSql(userId)); + } + menuList = baseMapper.selectVoList( + wrapper.like(StringUtils.isNotBlank(menu.getMenuName()), SysMenu::getMenuName, menu.getMenuName()) .eq(StringUtils.isNotBlank(menu.getVisible()), SysMenu::getVisible, menu.getVisible()) .eq(StringUtils.isNotBlank(menu.getStatus()), SysMenu::getStatus, menu.getStatus()) .eq(StringUtils.isNotBlank(menu.getMenuType()), SysMenu::getMenuType, menu.getMenuType()) .eq(ObjectUtil.isNotNull(menu.getParentId()), SysMenu::getParentId, menu.getParentId()) .orderByAsc(SysMenu::getParentId) .orderByAsc(SysMenu::getOrderNum)); - } else { - QueryWrapper wrapper = Wrappers.query(); - wrapper.inSql("r.role_id", "select role_id from sys_user_role where user_id = " + userId) - .like(StringUtils.isNotBlank(menu.getMenuName()), "m.menu_name", menu.getMenuName()) - .eq(StringUtils.isNotBlank(menu.getVisible()), "m.visible", menu.getVisible()) - .eq(StringUtils.isNotBlank(menu.getStatus()), "m.status", menu.getStatus()) - .eq(StringUtils.isNotBlank(menu.getMenuType()), "m.menu_type", menu.getMenuType()) - .eq(ObjectUtil.isNotNull(menu.getParentId()), "m.parent_id", menu.getParentId()) - .orderByAsc("m.parent_id") - .orderByAsc("m.order_num"); - List list = baseMapper.selectMenuListByUserId(wrapper); - menuList = MapstructUtils.convert(list, SysMenuVo.class); - } return menuList; } @@ -141,7 +130,13 @@ public class SysMenuServiceImpl implements ISysMenuService { if (LoginHelper.isSuperAdmin(userId)) { menus = baseMapper.selectMenuTreeAll(); } else { - menus = baseMapper.selectMenuTreeByUserId(userId); + LambdaQueryWrapper wrapper = new LambdaQueryWrapper<>(); + menus = baseMapper.selectList( + wrapper.in(SysMenu::getMenuType, SystemConstants.TYPE_DIR, SystemConstants.TYPE_MENU) + .eq(SysMenu::getStatus, SystemConstants.NORMAL) + .inSql(SysMenu::getMenuId, baseMapper.buildMenuByUserSql(userId)) + .orderByAsc(SysMenu::getParentId) + .orderByAsc(SysMenu::getOrderNum)); } return getChildPerms(menus, Constants.TOP_PARENT_ID); } diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java index f6d106854..0851be90d 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysRoleServiceImpl.java @@ -7,7 +7,6 @@ import cn.hutool.core.collection.CollUtil; import cn.hutool.core.util.ObjectUtil; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; @@ -74,15 +73,14 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { private Wrapper buildQueryWrapper(SysRoleBo bo) { Map params = bo.getParams(); - QueryWrapper wrapper = Wrappers.query(); - wrapper.eq("r.del_flag", SystemConstants.NORMAL) - .eq(ObjectUtil.isNotNull(bo.getRoleId()), "r.role_id", bo.getRoleId()) - .like(StringUtils.isNotBlank(bo.getRoleName()), "r.role_name", bo.getRoleName()) - .eq(StringUtils.isNotBlank(bo.getStatus()), "r.status", bo.getStatus()) - .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", bo.getRoleKey()) + LambdaQueryWrapper wrapper = Wrappers.lambdaQuery(); + wrapper.eq(ObjectUtil.isNotNull(bo.getRoleId()), SysRole::getRoleId, bo.getRoleId()) + .like(StringUtils.isNotBlank(bo.getRoleName()), SysRole::getRoleName, bo.getRoleName()) + .eq(StringUtils.isNotBlank(bo.getStatus()), SysRole::getStatus, bo.getStatus()) + .like(StringUtils.isNotBlank(bo.getRoleKey()), SysRole::getRoleKey, bo.getRoleKey()) .between(params.get("beginTime") != null && params.get("endTime") != null, - "r.create_time", params.get("beginTime"), params.get("endTime")) - .orderByAsc("r.role_sort").orderByAsc("r.create_time"); + SysRole::getCreateTime, params.get("beginTime"), params.get("endTime")) + .orderByAsc(SysRole::getRoleSort).orderByAsc(SysRole::getCreateTime); return wrapper; } @@ -176,9 +174,9 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { */ @Override public List selectRoleByIds(List roleIds) { - return baseMapper.selectRoleList(new QueryWrapper() - .eq("r.status", SystemConstants.NORMAL) - .in(CollUtil.isNotEmpty(roleIds), "r.role_id", roleIds)); + return baseMapper.selectRoleList(new LambdaQueryWrapper() + .eq(SysRole::getStatus, SystemConstants.NORMAL) + .in(CollUtil.isNotEmpty(roleIds), SysRole::getRoleId, roleIds)); } /** @@ -359,7 +357,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { rm.setMenuId(menuId); list.add(rm); } - if (list.size() > 0) { + if (CollUtil.isEmpty(list)) { rows = roleMenuMapper.insertBatch(list) ? list.size() : 0; } return rows; @@ -380,7 +378,7 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { rd.setDeptId(deptId); list.add(rd); } - if (list.size() > 0) { + if (CollUtil.isEmpty(list)) { rows = roleDeptMapper.insertBatch(list) ? list.size() : 0; } return rows; @@ -412,21 +410,20 @@ public class SysRoleServiceImpl implements ISysRoleService, RoleService { @CacheEvict(cacheNames = CacheNames.SYS_ROLE_CUSTOM, allEntries = true) @Override @Transactional(rollbackFor = Exception.class) - public int deleteRoleByIds(Long[] roleIds) { - for (Long roleId : roleIds) { - SysRole role = baseMapper.selectById(roleId); + public int deleteRoleByIds(List roleIds) { + List roles = baseMapper.selectByIds(roleIds); + for (SysRole role : roles) { checkRoleAllowed(BeanUtil.toBean(role, SysRoleBo.class)); - checkRoleDataScope(roleId); - if (countUserRoleByRoleId(roleId) > 0) { + checkRoleDataScope(role.getRoleId()); + if (countUserRoleByRoleId(role.getRoleId()) > 0) { throw new ServiceException(String.format("%1$s已分配,不能删除!", role.getRoleName())); } } - List ids = Arrays.asList(roleIds); // 删除角色与菜单关联 - roleMenuMapper.delete(new LambdaQueryWrapper().in(SysRoleMenu::getRoleId, ids)); + roleMenuMapper.delete(new LambdaQueryWrapper().in(SysRoleMenu::getRoleId, roleIds)); // 删除角色与部门关联 - roleDeptMapper.delete(new LambdaQueryWrapper().in(SysRoleDept::getRoleId, ids)); - return baseMapper.deleteByIds(ids); + roleDeptMapper.delete(new LambdaQueryWrapper().in(SysRoleDept::getRoleId, roleIds)); + return baseMapper.deleteByIds(roleIds); } /** diff --git a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java index 70197a36c..697d9f2c1 100644 --- a/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java +++ b/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/system/service/impl/SysUserServiceImpl.java @@ -484,8 +484,8 @@ public class SysUserServiceImpl implements ISysUserService, UserService { } // 判断是否具有此角色的操作权限 List roles = roleMapper.selectRoleList( - new QueryWrapper().in("r.role_id", roleList)); - if (CollUtil.isEmpty(roles)) { + new LambdaQueryWrapper().in(SysRole::getRoleId, roleList)); + if (CollUtil.isEmpty(roles) || roles.size() != roleList.size()) { throw new ServiceException("没有权限访问角色的数据"); } if (clear) { diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml index 6c5d89d92..928ad2738 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysDeptMapper.xml @@ -4,18 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml index 9dd3f2e1d..9e78302f3 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysMenuMapper.xml @@ -4,67 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - - - - - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml index 3c79918d8..a75350072 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysPostMapper.xml @@ -4,15 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml index 4ef7b1e22..7f69e0101 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml @@ -4,56 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - - - - - select distinct r.role_id, - r.role_name, - r.role_key, - r.role_sort, - r.data_scope, - r.menu_check_strictly, - r.dept_check_strictly, - r.status, - r.del_flag, - r.create_time, - r.remark - from sys_role r - left join sys_user_role sur on sur.role_id = r.role_id - left join sys_user u on u.user_id = sur.user_id - left join sys_dept d on u.dept_id = d.dept_id - - - - - - - - - - - - diff --git a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml index bc52d1a6d..6f7cedfee 100644 --- a/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml +++ b/ruoyi-modules/ruoyi-system/src/main/resources/mapper/system/SysUserRoleMapper.xml @@ -4,10 +4,4 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - -