SysUserInfoDao.xml 9.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176
  1. <?xml version="1.0" encoding="utf-8" ?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
  3. <mapper namespace="com.backendsys.modules.system.dao.SysUserInfoDao">
  4. <sql id="includeUser">
  5. u.id id,
  6. COALESCE(u.username, '') username,
  7. COALESCE(u.phone, '') phone,
  8. COALESCE(u.phone_area_code, '') phone_area_code,
  9. uf.user_id user_id,
  10. COALESCE(uf.nickname, '') nickname,
  11. COALESCE(uf.email, '') email,
  12. COALESCE(uf.gender, '') gender,
  13. COALESCE(uf.avatar, '') AS avatar,
  14. COALESCE(uf.last_login_ip, '') last_login_ip,
  15. COALESCE(uf.last_login_uuid, '') last_login_uuid,
  16. COALESCE(uf.last_login_time, '') last_login_time,
  17. uf.is_super is_super,
  18. uf.point_balance point_balance,
  19. uf.invite_code invite_code,
  20. uf.status status,
  21. uf.audit_status audit_status,
  22. uf.audit_note audit_note,
  23. uf.create_time create_time,
  24. uf.update_time update_time,
  25. uf.del_flag del_flag
  26. </sql>
  27. <resultMap id="resultMapUserList" type="java.util.LinkedHashMap">
  28. <id property="id" column="id" jdbcType="BIGINT" />
  29. <result property="user_id" column="user_id" javaType="java.lang.Long" />
  30. <result property="username" column="username" />
  31. <result property="phone" column="phone" />
  32. <result property="phone_area_code" column="phone_area_code" />
  33. <result property="nickname" column="nickname" />
  34. <result property="email" column="email" />
  35. <result property="gender" column="gender" javaType="java.lang.Integer" />
  36. <result property="avatar" column="avatar" />
  37. <result property="last_login_ip" column="last_login_ip" />
  38. <result property="last_login_uuid" column="last_login_uuid" />
  39. <result property="last_login_time" column="last_login_time" />
  40. <result property="is_super" column="is_super" javaType="java.lang.Integer" />
  41. <result property="integral" column="integral" javaType="java.lang.Integer" />
  42. <result property="point_balance" column="point_balance" javaType="java.lang.Float" />
  43. <result property="invite_code" column="invite_code" />
  44. <result property="status" column="status" javaType="java.lang.Integer"/>
  45. <result property="audit_status" column="audit_status" javaType="java.lang.Integer" />
  46. <result property="audit_note" column="audit_note" />
  47. <result property="create_time" column="create_time" />
  48. <result property="update_time" column="update_time" />
  49. <result property="del_flag" column="del_flag" javaType="java.lang.Integer" />
  50. <collection property="role_ids" javaType="java.util.List" ofType="java.lang.Long" column="role_id">
  51. <id property="role_id" column="role_id" />
  52. </collection>
  53. </resultMap>
  54. <select id="selectUserList" resultMap="resultMapUserList">
  55. SELECT
  56. <include refid="includeUser" />,
  57. urr.role_id role_id,
  58. COALESCE(ui.integral, 0) integral
  59. FROM sys_user_info uf
  60. LEFT JOIN sys_user u ON u.id = uf.user_id
  61. LEFT JOIN sys_user_role_relation urr ON uf.user_id = urr.user_id
  62. LEFT JOIN sys_user_integral ui ON uf.user_id = ui.user_id
  63. <where>
  64. AND u.id != 1
  65. AND uf.del_flag != 1
  66. <if test="username != null and username != ''">AND u.username LIKE CONCAT('%', #{username}, '%')</if>
  67. <if test="phone != null and phone != ''">AND u.phone LIKE CONCAT('%', #{phone}, '%')</if>
  68. <if test="phone_area_code != null and phone_area_code != ''">AND u.phone_area_code = #{phone_area_code}</if>
  69. <if test="nickname != null and nickname != ''">AND uf.nickname LIKE CONCAT('%', #{nickname}, '%')</if>
  70. <if test="email != null and email != ''">AND uf.email LIKE CONCAT('%', #{email}, '%')</if>
  71. <if test="status != null and status != ''">AND uf.status = #{status}</if>
  72. <if test="audit_status != null and audit_status != ''">AND uf.audit_status = #{audit_status}</if>
  73. <if test="role_id != null and role_id != ''">
  74. AND urr.role_id IN
  75. <foreach collection="role_id" item="role" open="(" separator="," close=")">#{role}</foreach>
  76. </if>
  77. <if test="is_super != null and is_super != ''">AND uf.is_super = #{is_super}</if>
  78. </where>
  79. ORDER BY uf.create_time DESC
  80. </select>
  81. <!-- <resultMap id="resultMapUserDetail" type="java.util.LinkedHashMap">-->
  82. <!-- <resultMap id="resultMapUserDetail" type="com.backendsys.modules.system.entity.SysUserDTO">-->
  83. <!-- <id property="id" column="id" jdbcType="BIGINT" />-->
  84. <!-- <result property="user_id" column="user_id" />-->
  85. <!-- <result property="username" column="username" />-->
  86. <!-- <result property="phone" column="phone" />-->
  87. <!-- <result property="phone_area_code" column="phone_area_code" />-->
  88. <!-- <result property="nickname" column="nickname" />-->
  89. <!-- <result property="email" column="email" />-->
  90. <!-- <result property="gender" column="gender" javaType="java.lang.Integer"/>-->
  91. <!-- <result property="avatar" column="avatar" />-->
  92. <!-- <result property="last_login_ip" column="last_login_ip" />-->
  93. <!-- <result property="last_login_uuid" column="last_login_uuid" />-->
  94. <!-- <result property="last_login_time" column="last_login_time" />-->
  95. <!-- <result property="is_super" column="is_super" javaType="java.lang.Integer"/>-->
  96. <!-- <result property="point_balance" column="point_balance" javaType="java.lang.Float"/>-->
  97. <!-- <result property="invite_code" column="invite_code" />-->
  98. <!-- <result property="status" column="status" javaType="java.lang.Integer"/>-->
  99. <!-- <result property="audit_status" column="audit_status" javaType="java.lang.Integer"/>-->
  100. <!-- <result property="audit_note" column="audit_note" />-->
  101. <!-- <result property="create_time" column="create_time" />-->
  102. <!-- <result property="update_time" column="update_time" />-->
  103. <!-- <result property="del_flag" column="del_flag" javaType="java.lang.Integer"/>-->
  104. <!-- <collection property="roles" javaType="java.util.List" ofType="java.util.LinkedHashMap"-->
  105. <!-- select="queryRoleById" column="id">-->
  106. <!-- <id property="id" column="id" />-->
  107. <!-- <result property="role_name" column="role_name" />-->
  108. <!-- <result property="sort" column="sort" />-->
  109. <!-- </collection>-->
  110. <!-- </resultMap>-->
  111. <!-- [多对多,使用子查询] -->
  112. <!-- [嵌套查询] 用户角色 / 角色权限 -->
  113. <!-- <select id="queryRoleById" resultType="java.util.LinkedHashMap">-->
  114. <!-- SELECT ur.id, ur.role_name,-->
  115. <!-- GROUP_CONCAT(m.id) AS module_ids-->
  116. <!-- FROM sys_user_role_relation urr-->
  117. <!-- LEFT JOIN sys_user_role ur ON urr.role_id = ur.id-->
  118. <!-- LEFT JOIN sys_user_role_module_relation mr ON urr.role_id = mr.role_id-->
  119. <!-- LEFT JOIN sys_user_role_module m ON mr.module_id = m.id-->
  120. <!-- WHERE urr.user_id = #{userId}-->
  121. <!-- GROUP BY ur.id-->
  122. <!-- ORDER BY ur.sort ASC-->
  123. <!-- </select>-->
  124. <!-- 查询 用户详情 -->
  125. <!-- <select id="selectUserDetail" resultMap="resultMapUserDetail">-->
  126. <!-- SELECT-->
  127. <!-- <include refid="includeUser" />-->
  128. <!-- FROM sys_user u-->
  129. <!-- LEFT JOIN sys_user_info uf ON u.id = uf.user_id-->
  130. <!-- WHERE u.id = #{user_id}-->
  131. <!-- AND uf.del_flag = -1-->
  132. <!-- </select>-->
  133. <resultMap id="resultMapUserByLastLoginUuids" type="java.util.LinkedHashMap">
  134. <id property="id" column="id" jdbcType="BIGINT" />
  135. <result property="username" column="username" />
  136. <result property="phone" column="phone" />
  137. <result property="phone_area_code" column="phone_area_code" />
  138. <result property="nickname" column="nickname" />
  139. <result property="email" column="email" />
  140. <result property="avatar" column="avatar" />
  141. <result property="is_super" column="is_super" javaType="java.lang.Integer" />
  142. <result property="status" column="status" javaType="java.lang.Integer" />
  143. <result property="audit_status" column="audit_status" javaType="java.lang.Integer" />
  144. </resultMap>
  145. <!-- 查询当前在线用户的信息 -->
  146. <!-- resultType="java.util.LinkedHashMap" -->
  147. <select id="selectUserByLastLoginUuids" resultMap="resultMapUserByLastLoginUuids">
  148. SELECT
  149. u.id id,
  150. COALESCE(u.username, '') username,
  151. COALESCE(u.phone, '') phone,
  152. COALESCE(u.phone_area_code, '') phone_area_code,
  153. COALESCE(uf.nickname, '') nickname,
  154. COALESCE(uf.email, '') email,
  155. COALESCE(uf.avatar, '') avatar,
  156. uf.is_super is_super,
  157. uf.status status,
  158. uf.audit_status audit_status
  159. FROM sys_user u
  160. LEFT JOIN sys_user_info uf ON u.id = uf.user_id
  161. WHERE uf.last_login_uuid IN
  162. <foreach collection="last_login_uuids" item="last_login_uuid" open="(" separator="," close=")">
  163. #{last_login_uuid}
  164. </foreach>
  165. </select>
  166. </mapper>