SysUserMapper.xml 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132
  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="locked" property="locked"/>
  18. <result column="remark" property="remark"/>
  19. </resultMap>
  20. <select id="userPage" resultType="com.diagbot.dto.SysUserQueryDTO"
  21. parameterType="com.diagbot.vo.SysUserQueryVO">
  22. SELECT
  23. t3.userId,
  24. t3.username AS userName,
  25. t3.linkman AS linkman,
  26. t6.deptName AS deptName,
  27. t10.roleName AS roleName,
  28. t3.`status` AS `status`,
  29. t3.locked
  30. FROM
  31. (
  32. SELECT
  33. t1.id AS userId,
  34. t1.username AS userName,
  35. t1.linkman AS linkman,
  36. t1.`status` AS `status`,
  37. t2.hospital_id AS hospitalId,
  38. t1.locked
  39. FROM
  40. sys_user t1,
  41. sys_user_hospital t2
  42. WHERE
  43. t1.is_deleted = 'N'
  44. AND t2.is_deleted = 'N'
  45. AND t2.user_id = t1.id
  46. AND t2.hospital_id = #{hospitalId}
  47. ) t3
  48. <choose>
  49. <when test="deptId !=null and deptId != ''">
  50. INNER JOIN (
  51. SELECT DISTINCT
  52. t4.user_id AS userId,
  53. t4.hospital_id AS hospitalId,
  54. group_concat(t5.dept_name order by t5.dept_name ASC) AS deptName
  55. FROM
  56. sys_user_dept t4,
  57. bas_dept_info t5
  58. WHERE
  59. t4.is_deleted = 'N'
  60. AND t4.dept_id = t5.dept_id
  61. AND t4.hospital_id = t5.hospital_id
  62. AND t4.hospital_id = #{hospitalId}
  63. AND t4.dept_id = #{deptId}
  64. GROUP BY
  65. t4.user_id
  66. ) t6 ON t3.userId = t6.userId
  67. </when>
  68. <otherwise>
  69. LEFT JOIN (
  70. SELECT DISTINCT
  71. t4.user_id AS userId,
  72. t4.hospital_id AS hospitalId,
  73. group_concat(t5.dept_name order by t5.dept_name ASC) AS deptName
  74. FROM
  75. sys_user_dept t4,
  76. bas_dept_info t5
  77. WHERE
  78. t4.is_deleted = 'N'
  79. AND t4.dept_id = t5.dept_id
  80. AND t4.hospital_id = t5.hospital_id
  81. AND t4.hospital_id = #{hospitalId}
  82. GROUP BY
  83. t4.user_id
  84. ) t6 ON t3.userId = t6.userId
  85. </otherwise>
  86. </choose>
  87. <choose>
  88. <when test="roleId !=null">
  89. INNER JOIN (
  90. SELECT
  91. t8.user_id AS userId,
  92. group_concat(t9.`name` order by t9.id ASC) AS roleName,
  93. min(t9.id) as roleId
  94. FROM
  95. sys_user_role t8,
  96. sys_role t9
  97. WHERE
  98. t8.is_deleted = 'N'
  99. AND t9.is_deleted = 'N'
  100. AND t8.role_id = t9.id
  101. AND t8.role_id = #{roleId}
  102. GROUP BY
  103. t8.user_id
  104. ) t10 ON t10.userId = t3.userId
  105. </when>
  106. <otherwise>
  107. LEFT JOIN (
  108. SELECT
  109. t8.user_id AS userId,
  110. group_concat(t9.`name` order by t9.id ASC) AS roleName,
  111. min(t9.id) as roleId
  112. FROM
  113. sys_user_role t8,
  114. sys_role t9
  115. WHERE
  116. t8.is_deleted = 'N'
  117. AND t9.is_deleted = 'N'
  118. AND t8.role_id = t9.id
  119. GROUP BY
  120. t8.user_id
  121. ) t10 ON t10.userId = t3.userId
  122. </otherwise>
  123. </choose>
  124. WHERE
  125. IFNULL(t10.roleId,0) != -1
  126. <if test="linkman != null and linkman != ''">
  127. and t3.linkman like CONCAT('%',#{linkman},'%')
  128. </if>
  129. </select>
  130. </mapper>