SysUserMapper.xml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  3. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  4. <mapper namespace="com.diagbot.mapper.SysUserMapper">
  5. <!-- 通用查询映射结果 -->
  6. <resultMap id="BaseResultMap" type="com.diagbot.entity.SysUser">
  7. <id column="id" property="id"/>
  8. <result column="is_deleted" property="isDeleted"/>
  9. <result column="gmt_create" property="gmtCreate"/>
  10. <result column="gmt_modified" property="gmtModified"/>
  11. <result column="creator" property="creator"/>
  12. <result column="modifier" property="modifier"/>
  13. <result column="username" property="username"/>
  14. <result column="password" property="password"/>
  15. <result column="linkman" property="linkman"/>
  16. <result column="type" property="type"/>
  17. <result column="remark" property="remark"/>
  18. </resultMap>
  19. <select id="userPage" resultType="com.diagbot.dto.SysUserQueryDTO"
  20. parameterType="com.diagbot.vo.SysUserQueryVO">
  21. SELECT
  22. t3.userId,
  23. t3.username AS userName,
  24. t3.linkman AS linkman,
  25. t6.deptName AS deptName,
  26. t10.roleName AS roleName,
  27. t3.`status` AS `status`
  28. FROM
  29. (
  30. SELECT
  31. t1.id AS userId,
  32. t1.username AS userName,
  33. t1.linkman AS linkman,
  34. t1.`status` AS `status`,
  35. t2.hospital_id AS hospitalId
  36. FROM
  37. sys_user t1,
  38. sys_user_hospital t2
  39. WHERE
  40. t1.is_deleted = 'N'
  41. AND t2.is_deleted = 'N'
  42. AND t2.user_id = t1.id
  43. AND t2.hospital_id = #{hospitalId}
  44. ) t3
  45. <choose>
  46. <when test="deptId !=null and deptId != ''">
  47. INNER JOIN (
  48. SELECT DISTINCT
  49. t4.user_id AS userId,
  50. t4.hospital_id AS hospitalId,
  51. group_concat(t5.dept_name order by t5.dept_name ASC) AS deptName
  52. FROM
  53. sys_user_dept t4,
  54. bas_dept_info t5
  55. WHERE
  56. t4.is_deleted = 'N'
  57. AND t4.dept_id = t5.dept_id
  58. AND t4.hospital_id = t5.hospital_id
  59. AND t4.hospital_id = #{hospitalId}
  60. AND t4.dept_id = #{deptId}
  61. GROUP BY
  62. t4.user_id
  63. ) t6 ON t3.userId = t6.userId
  64. </when>
  65. <otherwise>
  66. LEFT JOIN (
  67. SELECT DISTINCT
  68. t4.user_id AS userId,
  69. t4.hospital_id AS hospitalId,
  70. group_concat(t5.dept_name order by t5.dept_name ASC) AS deptName
  71. FROM
  72. sys_user_dept t4,
  73. bas_dept_info t5
  74. WHERE
  75. t4.is_deleted = 'N'
  76. AND t4.dept_id = t5.dept_id
  77. AND t4.hospital_id = t5.hospital_id
  78. AND t4.hospital_id = #{hospitalId}
  79. GROUP BY
  80. t4.user_id
  81. ) t6 ON t3.userId = t6.userId
  82. </otherwise>
  83. </choose>
  84. <choose>
  85. <when test="roleId !=null">
  86. INNER JOIN (
  87. SELECT
  88. t8.user_id AS userId,
  89. group_concat(t9.`name` order by t9.id ASC) AS roleName,
  90. min(t9.id) as roleId
  91. FROM
  92. sys_user_role t8,
  93. sys_role t9
  94. WHERE
  95. t8.is_deleted = 'N'
  96. AND t9.is_deleted = 'N'
  97. AND t8.role_id = t9.id
  98. AND t8.role_id = #{roleId}
  99. GROUP BY
  100. t8.user_id
  101. ) t10 ON t10.userId = t3.userId
  102. </when>
  103. <otherwise>
  104. LEFT JOIN (
  105. SELECT
  106. t8.user_id AS userId,
  107. group_concat(t9.`name` order by t9.id ASC) AS roleName,
  108. min(t9.id) as roleId
  109. FROM
  110. sys_user_role t8,
  111. sys_role t9
  112. WHERE
  113. t8.is_deleted = 'N'
  114. AND t9.is_deleted = 'N'
  115. AND t8.role_id = t9.id
  116. GROUP BY
  117. t8.user_id
  118. ) t10 ON t10.userId = t3.userId
  119. </otherwise>
  120. </choose>
  121. WHERE
  122. IFNULL(t10.roleId,0) != -1
  123. <if test="linkman != null and linkman != ''">
  124. and t3.linkman like CONCAT('%',#{linkman},'%')
  125. </if>
  126. </select>
  127. </mapper>