Jelajahi Sumber

:bug: Fixing a bug. mybatis 嵌套分页不准确问题,子查询

冷冷 6 tahun lalu
induk
melakukan
7d832f295c

+ 35 - 19
pigx-upms/pigx-upms-biz/src/main/resources/mapper/SysUserMapper.xml

@@ -21,21 +21,25 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.pig4cloud.pigx.admin.mapper.SysUserMapper">
 	<!-- 通用查询映射结果 -->
-	<resultMap id="baseResultMap" type="com.pig4cloud.pigx.admin.api.entity.SysUser">
+	<resultMap id="baseResultMap" type="com.pig4cloud.pigx.admin.api.vo.UserVO">
 		<id column="user_id" property="userId"/>
 		<result column="username" property="username"/>
 		<result column="password" property="password"/>
+		<result column="salt" property="salt"/>
 		<result column="phone" property="phone"/>
 		<result column="avatar" property="avatar"/>
-		<result column="salt" property="salt"/>
-		<result column="dept_id" property="deptId"/>
-		<result column="tenant_id" property="tenantId"/>
 		<result column="wx_openid" property="wxOpenid"/>
 		<result column="qq_openid" property="qqOpenid"/>
-		<result column="create_time" property="createTime"/>
-		<result column="update_time" property="updateTime"/>
-		<result column="del_flag" property="delFlag"/>
+		<result column="ucreate_time" property="createTime"/>
+		<result column="uupdate_time" property="updateTime"/>
 		<result column="lock_flag" property="lockFlag"/>
+		<result column="udel_flag" property="delFlag"/>
+		<result column="deptId" property="deptId"/>
+		<result column="tenantId" property="tenantId"/>
+		<result column="deptName" property="deptName"/>
+		<collection property="roleList" ofType="com.pig4cloud.pigx.admin.api.entity.SysRole"
+					select="com.pig4cloud.pigx.admin.mapper.SysRoleMapper.listRolesByUserId" column="user_id">
+		</collection>
 	</resultMap>
 
 	<!-- userVo结果集 -->
@@ -135,22 +139,34 @@
            `user`.user_id = #{id}
     </select>
 
-	<select id="getUserVosPage" resultMap="userVoResultMap">
+	<select id="getUserVosPage" resultMap="baseResultMap">
 		SELECT
-		<include refid="userRoleSql"/>
+		`user`.user_id,
+		`user`.username,
+		`user`.`password`,
+		`user`.salt,
+		`user`.phone,
+		`user`.avatar,
+		`user`.wx_openid,
+		`user`.qq_openid,
+		`user`.dept_id,
+		`user`.create_time AS ucreate_time,
+		`user`.update_time AS uupdate_time,
+		`user`.del_flag AS udel_flag,
+		`user`.lock_flag AS lock_flag,
+		`user`.dept_id AS deptId,
+		`user`.tenant_id AS tenantId
 		FROM
 		sys_user AS `user`
-		LEFT JOIN sys_user_role AS ur ON ur.user_id = `user`.user_id
-		LEFT JOIN sys_role AS r ON r.role_id = ur.role_id
 		LEFT JOIN sys_dept AS d ON d.dept_id = `user`.dept_id
-		WHERE
-		r.del_flag = 0
-		<if test="query.username != null and query.username != ''">
-			and `user`.username LIKE CONCAT('%',#{query.username},'%')
-		</if>
-		<if test="query.deptId != null and query.deptId != ''">
-			and `user`.dept_id = #{query.deptId}
-		</if>
+		<where>
+			<if test="query.username != null and query.username != ''">
+				and `user`.username LIKE CONCAT('%',#{query.username},'%')
+			</if>
+			<if test="query.deptId != null and query.deptId != ''">
+				and `user`.dept_id = #{query.deptId}
+			</if>
+		</where>
 		ORDER BY `user`.create_time DESC
 	</select>
 </mapper>