From 2e92773b8ce9e70615e61c84136bbedd702aad8c Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 31 三月 2023 10:19:28 +0800
Subject: [PATCH] update 优化 角色 sort 值一样的排序问题

---
 ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java |   49 ++++++++++++++++++++++++++++---------------------
 1 files changed, 28 insertions(+), 21 deletions(-)

diff --git a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 2140a77..162653a 100644
--- a/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-modules/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -5,17 +5,18 @@
 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;
 import com.ruoyi.common.core.constant.UserConstants;
+import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.core.utils.MapstructUtils;
 import com.ruoyi.common.core.utils.StreamUtils;
 import com.ruoyi.common.core.utils.StringUtils;
 import com.ruoyi.common.mybatis.core.page.PageQuery;
-import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.common.mybatis.core.page.TableDataInfo;
-import com.ruoyi.common.core.exception.ServiceException;
 import com.ruoyi.common.satoken.utils.LoginHelper;
+import com.ruoyi.system.domain.SysRole;
 import com.ruoyi.system.domain.SysRoleDept;
 import com.ruoyi.system.domain.SysRoleMenu;
 import com.ruoyi.system.domain.SysUserRole;
@@ -73,7 +74,7 @@
             .like(StringUtils.isNotBlank(bo.getRoleKey()), "r.role_key", 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.role_sort").orderByAsc("r.crete_time");;
         return wrapper;
     }
 
@@ -145,7 +146,7 @@
      */
     @Override
     public SysRoleVo selectRoleById(Long roleId) {
-        return baseMapper.selectVoById(roleId);
+        return baseMapper.selectRoleById(roleId);
     }
 
     /**
@@ -179,11 +180,11 @@
     /**
      * 鏍¢獙瑙掕壊鏄惁鍏佽鎿嶄綔
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param roleId 瑙掕壊ID
      */
     @Override
-    public void checkRoleAllowed(SysRoleBo role) {
-        if (ObjectUtil.isNotNull(role.getRoleId()) && role.isSuperAdmin()) {
+    public void checkRoleAllowed(Long roleId) {
+        if (ObjectUtil.isNotNull(roleId) && LoginHelper.isSuperAdmin(roleId)) {
             throw new ServiceException("涓嶅厑璁告搷浣滆秴绾х鐞嗗憳瑙掕壊");
         }
     }
@@ -195,14 +196,17 @@
      */
     @Override
     public void checkRoleDataScope(Long roleId) {
-        if (!LoginHelper.isSuperAdmin()) {
-            SysRoleBo role = new SysRoleBo();
-            role.setRoleId(roleId);
-            List<SysRoleVo> roles = this.selectRoleList(role);
-            if (CollUtil.isEmpty(roles)) {
-                throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�");
-            }
+        if (ObjectUtil.isNull(roleId)) {
+            return;
         }
+        if (LoginHelper.isSuperAdmin()) {
+            return;
+        }
+        List<SysRoleVo> roles = this.selectRoleList(new SysRoleBo(roleId));
+        if (CollUtil.isEmpty(roles)) {
+            throw new ServiceException("娌℃湁鏉冮檺璁块棶瑙掕壊鏁版嵁锛�");
+        }
+
     }
 
     /**
@@ -252,13 +256,16 @@
     /**
      * 淇敼瑙掕壊鐘舵��
      *
-     * @param bo 瑙掕壊淇℃伅
+     * @param roleId 瑙掕壊ID
+     * @param status 瑙掕壊鐘舵��
      * @return 缁撴灉
      */
     @Override
-    public int updateRoleStatus(SysRoleBo bo) {
-        SysRole role = MapstructUtils.convert(bo, SysRole.class);
-        return baseMapper.updateById(role);
+    public int updateRoleStatus(Long roleId, String status) {
+        return baseMapper.update(null,
+            new LambdaUpdateWrapper<SysRole>()
+                .set(SysRole::getStatus, status)
+                .eq(SysRole::getRoleId, roleId));
     }
 
     /**
@@ -284,7 +291,7 @@
      *
      * @param role 瑙掕壊瀵硅薄
      */
-    public int insertRoleMenu(SysRoleBo role) {
+    private int insertRoleMenu(SysRoleBo role) {
         int rows = 1;
         // 鏂板鐢ㄦ埛涓庤鑹茬鐞�
         List<SysRoleMenu> list = new ArrayList<SysRoleMenu>();
@@ -305,7 +312,7 @@
      *
      * @param role 瑙掕壊瀵硅薄
      */
-    public int insertRoleDept(SysRoleBo role) {
+    private int insertRoleDept(SysRoleBo role) {
         int rows = 1;
         // 鏂板瑙掕壊涓庨儴闂紙鏁版嵁鏉冮檺锛夌鐞�
         List<SysRoleDept> list = new ArrayList<SysRoleDept>();
@@ -347,7 +354,7 @@
     @Transactional(rollbackFor = Exception.class)
     public int deleteRoleByIds(Long[] roleIds) {
         for (Long roleId : roleIds) {
-            checkRoleAllowed(new SysRoleBo(roleId));
+            checkRoleAllowed(roleId);
             checkRoleDataScope(roleId);
             SysRole role = baseMapper.selectById(roleId);
             if (countUserRoleByRoleId(roleId) > 0) {

--
Gitblit v1.9.3