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

This commit is contained in:
冷冷 committed 2018-12-24 23:46:49 +08:00
1 parent 4d81964bd0
commit 7d832f295c
1 file changed
+35 -19
@@ -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>