From 18cffc4678e439cd86e2eba215492df5949ab445 Mon Sep 17 00:00:00 2001
From: 疯狂的狮子li <15040126243@163.com>
Date: 星期五, 04 三月 2022 10:20:06 +0800
Subject: [PATCH] update 简化查询角色功能

---
 ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java          |    5 ++
 ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java |   22 ++++++++++-
 ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml                  |   40 ++------------------
 ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java            |    8 ++-
 4 files changed, 34 insertions(+), 41 deletions(-)

diff --git a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
index 03bb84e..bbdc688 100644
--- a/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
+++ b/ruoyi-common/src/main/java/com/ruoyi/common/constant/UserConstants.java
@@ -28,6 +28,11 @@
     String USER_DISABLE = "1";
 
     /**
+     * 瑙掕壊姝e父鐘舵��
+     */
+    String ROLE_NORMAL = "0";
+
+    /**
      * 瑙掕壊灏佺鐘舵��
      */
     String ROLE_DISABLE = "1";
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
index e37116d..e2b3c01 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysRoleMapper.java
@@ -1,5 +1,7 @@
 package com.ruoyi.system.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.annotation.DataColumn;
 import com.ruoyi.common.annotation.DataPermission;
@@ -19,18 +21,18 @@
     @DataPermission({
         @DataColumn(key = "deptName", value = "d.dept_id")
     })
-    Page<SysRole> selectPageRoleList(@Param("page") Page<SysRole> page, @Param("role") SysRole role);
+    Page<SysRole> selectPageRoleList(@Param("page") Page<SysRole> page, @Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
 
     /**
      * 鏍规嵁鏉′欢鍒嗛〉鏌ヨ瑙掕壊鏁版嵁
      *
-     * @param role 瑙掕壊淇℃伅
+     * @param queryWrapper 鏌ヨ鏉′欢
      * @return 瑙掕壊鏁版嵁闆嗗悎淇℃伅
      */
     @DataPermission({
         @DataColumn(key = "deptName", value = "d.dept_id")
     })
-    List<SysRole> selectRoleList(SysRole role);
+    List<SysRole> selectRoleList(@Param(Constants.WRAPPER) Wrapper<SysRole> queryWrapper);
 
     /**
      * 鏍规嵁鐢ㄦ埛ID鏌ヨ瑙掕壊
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
index 19f3211..e7e5b53 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysRoleServiceImpl.java
@@ -2,7 +2,11 @@
 
 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.toolkit.StringUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.ruoyi.common.constant.UserConstants;
 import com.ruoyi.common.core.domain.PageQuery;
@@ -40,7 +44,7 @@
 
     @Override
     public TableDataInfo<SysRole> selectPageRoleList(SysRole role, PageQuery pageQuery) {
-        Page<SysRole> page = baseMapper.selectPageRoleList(pageQuery.build(), role);
+        Page<SysRole> page = baseMapper.selectPageRoleList(pageQuery.build(), this.buildQueryWrapper(role));
         return TableDataInfo.build(page);
     }
 
@@ -52,7 +56,21 @@
      */
     @Override
     public List<SysRole> selectRoleList(SysRole role) {
-        return baseMapper.selectRoleList(role);
+        return baseMapper.selectRoleList(this.buildQueryWrapper(role));
+    }
+
+    private Wrapper<SysRole> buildQueryWrapper(SysRole role) {
+        Map<String, Object> params = role.getParams();
+        QueryWrapper<SysRole> wrapper = Wrappers.query();
+        wrapper.eq("r.del_flag", UserConstants.ROLE_NORMAL)
+            .eq(ObjectUtil.isNotNull(role.getRoleId()), "r.role_id", role.getRoleId())
+            .like(StringUtils.isNotBlank(role.getRoleName()), "r.role_name", role.getRoleName())
+            .eq(StringUtils.isNotBlank(role.getStatus()), "r.status", role.getStatus())
+            .like(StringUtils.isNotBlank(role.getRoleKey()), "r.role_key", role.getRoleKey())
+            .between(params.get("beginTime") != null && params.get("endTime") != null,
+                "r.create_time", params.get("beginTime"), params.get("endTime"))
+            .orderByAsc("r.role_sort");
+        return wrapper;
     }
 
     /**
diff --git a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
index 718dc3d..dc54c7e 100644
--- a/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
+++ b/ruoyi-system/src/main/resources/mapper/system/SysRoleMapper.xml
@@ -39,46 +39,14 @@
                  left join sys_dept d on u.dept_id = d.dept_id
     </sql>
 
-    <select id="selectPageRoleList" parameterType="SysRole" resultMap="SysRoleResult">
+    <select id="selectPageRoleList" resultMap="SysRoleResult">
         <include refid="selectRoleVo"/>
-        where r.del_flag = '0'
-        <if test="role.roleId != null and role.roleId != 0">
-            AND r.role_id = #{role.roleId}
-        </if>
-        <if test="role.roleName != null and role.roleName != ''">
-            AND r.role_name like concat('%', #{role.roleName}, '%')
-        </if>
-        <if test="role.status != null and role.status != ''">
-            AND r.status = #{role.status}
-        </if>
-        <if test="role.roleKey != null and role.roleKey != ''">
-            AND r.role_key like concat('%', #{role.roleKey}, '%')
-        </if>
-        <if test="role.params.beginTime != null and role.params.endTime != null">
-            AND r.create_time between #{role.params.beginTime} and #{role.params.endTime}
-        </if>
-        order by r.role_sort
+        ${ew.getCustomSqlSegment}
     </select>
 
-    <select id="selectRoleList" parameterType="SysRole" resultMap="SysRoleResult">
+    <select id="selectRoleList" resultMap="SysRoleResult">
         <include refid="selectRoleVo"/>
-        where r.del_flag = '0'
-        <if test="roleId != null and roleId != 0">
-            AND r.role_id = #{roleId}
-        </if>
-        <if test="roleName != null and roleName != ''">
-            AND r.role_name like concat('%', #{roleName}, '%')
-        </if>
-        <if test="status != null and status != ''">
-            AND r.status = #{status}
-        </if>
-        <if test="roleKey != null and roleKey != ''">
-            AND r.role_key like concat('%', #{roleKey}, '%')
-        </if>
-        <if test="params.beginTime != null and params.endTime != null">
-            AND r.create_time between #{params.beginTime} and #{params.endTime}
-        </if>
-        order by r.role_sort
+        ${ew.getCustomSqlSegment}
     </select>
 
     <select id="selectRolePermissionByUserId" parameterType="Long" resultMap="SysRoleResult">

--
Gitblit v1.9.3