haogh 10 ماه پیش
والد
کامیت
67e6bd14ea

+ 2 - 0
paper-library-common/src/main/java/com/qmth/paper/library/common/mapper/SysRoleMapper.java

@@ -23,4 +23,6 @@ public interface SysRoleMapper extends BaseMapper<SysRole> {
     IPage<SysRole> listPage(Page<SysRole> page, @Param("schoolId") Long schoolId, @Param("name") String name, @Param("enable") Boolean enable);
 
     List<SysRole> listRolesBySchoolId(@Param("schoolId") Long schoolId);
+
+    int countUserByRole(@Param("schoolId") Long schoolId, @Param("roleId") Long roleId);
 }

+ 1 - 3
paper-library-common/src/main/java/com/qmth/paper/library/common/service/impl/SysRoleServiceImpl.java

@@ -64,9 +64,7 @@ public class SysRoleServiceImpl extends ServiceImpl<SysRoleMapper, SysRole> impl
         Long schoolId = Long.valueOf(ServletUtil.getRequestHeaderSchoolId().toString());
         IPage<SysRole> sysRoleIPage = this.baseMapper.listPage(new Page<>(pageNumber, pageSize), schoolId, SystemConstant.translateSpecificSign(name), enable);
         for (SysRole record : sysRoleIPage.getRecords()) {
-            QueryWrapper<SysUserRole> queryWrapper = new QueryWrapper<>();
-            queryWrapper.lambda().eq(SysUserRole::getRoleId, record.getId());
-            int count = sysUserRoleService.count(queryWrapper);
+            int count = baseMapper.countUserByRole(schoolId, record.getId());
             record.setUserCount(count);
         }
         return sysRoleIPage;

+ 12 - 0
paper-library-common/src/main/resources/mapper/SysRoleMapper.xml

@@ -83,4 +83,16 @@
         <include refid="Base_Column_List"/>
         where school_id is null and default_role = 1 and (type <![CDATA[ <> ]]> 'ADMIN' or type is null)
     </select>
+
+    <select id="countUserByRole" resultType="java.lang.Integer">
+        SELECT
+            count( DISTINCT ur.user_id ) num
+        FROM
+            sys_user_role ur,
+            sys_user u
+        WHERE
+            ur.user_id = u.id
+          AND ur.role_id = #{roleId}
+          AND u.school_id =#{schoolId}
+    </select>
 </mapper>