CsoSysUserMapper.xml 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. <?xml version="1.0" encoding="UTF-8" ?>
  2. <!DOCTYPE mapper
  3. PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
  4. "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  5. <mapper namespace="com.retdata.yaoyibi.mapper.CsoSysUserMapper">
  6. <select id="selectPageByParams" resultType="com.retdata.yaoyibi.domain.CsoSysUserSearchDto">
  7. select
  8. u1.user_id,u1.realname,u1.phone,u1.del_flag,u1.lock_flag,u1.create_time,
  9. d1.name as dept_name,
  10. ur2.roles,
  11. qr1.quiz_result,
  12. scs1.sub_cert_status
  13. from sys_user u1
  14. left join sys_dept d1 on d1.dept_id=u1.dept_id
  15. and u1.db_source_id=d1.db_source_id
  16. left join (
  17. select ur1.user_id,GROUP_CONCAT(DISTINCT r1.role_name ORDER BY r1.role_id ASC SEPARATOR ',') roles
  18. , ur1.db_source_id
  19. from sys_user_role ur1
  20. left join sys_role r1 on r1.role_id=ur1.role_id
  21. and r1.db_source_id=ur1.db_source_id
  22. group by ur1.user_id, ur1.db_source_id
  23. ) ur2 on ur2.user_id=u1.user_id
  24. and ur2.db_source_id=u1.db_source_id
  25. left join (
  26. select user_id,GROUP_CONCAT(JSON_EXTRACT(quiz_res,"$.finalMark") SEPARATOR '/') as quiz_result
  27. , db_source_id
  28. from wm_user_plat_quiz_res
  29. group by user_id, db_source_id
  30. ) qr1 on qr1.user_id=u1.user_id
  31. and qr1.db_source_id=u1.db_source_id
  32. left join (
  33. select us1.user_id,GROUP_CONCAT(DISTINCT CONCAT(di1.label,':',us1.gig_type,'_',us1.cert_status) ORDER BY di1.sort ASC SEPARATOR ',') as sub_cert_status
  34. , us1.db_source_id
  35. from sys_user_sub us1
  36. inner join sys_dict_item di1 on di1.value=us1.subject_location and di1.type='subject_location'
  37. and us1.db_source_id=di1.db_source_id
  38. group by us1.user_id, us1.db_source_id
  39. ) scs1 on scs1.user_id=u1.user_id
  40. and scs1.db_source_id=u1.db_source_id
  41. <where>
  42. <if test="searchParams.realname!=null and searchParams.realname!=''">
  43. and u1.realname like concat('%',#{searchParams.realname},'%')
  44. </if>
  45. <if test="searchParams.phone!=null and searchParams.phone!=''">
  46. and u1.phone like concat('%',#{searchParams.phone},'%')
  47. </if>
  48. <if test="searchParams.drugEntId!=null and searchParams.drugEntId!=''">
  49. and u1.drug_ent_id=#{searchParams.drugEntId}
  50. </if>
  51. <if test="searchParams.deptId!=null and searchParams.deptId.length>0">
  52. and u1.dept_id in <foreach collection="searchParams.deptId" item="item" open="(" separator="," close=")">#{item}</foreach>
  53. </if>
  54. <if test="searchParams.roleId!=null">
  55. and u1.user_id in (select user_id from sys_user_role where role_id=#{searchParams.roleId})
  56. </if>
  57. <if test="searchParams.gigType!=null">
  58. and u1.user_id in (select user_id from sys_user_sub where gig_type=#{searchParams.gigType})
  59. </if>
  60. <if test="searchParams.delFlag!=null">
  61. and u1.del_flag=#{searchParams.delFlag}
  62. </if>
  63. <if test="searchParams.lockFlag!=null">
  64. and u1.lock_flag=#{searchParams.lockFlag}
  65. </if>
  66. <if test="searchParams.subjectLocation!=null">
  67. and u1.user_id in (select user_id from sys_user_sub where subject_location=#{searchParams.subjectLocation})
  68. </if>
  69. </where>
  70. </select>
  71. <select id="selectDetailById" resultType="com.retdata.yaoyibi.domain.CsoSysUserDetailDto">
  72. select
  73. u1.user_id,u1.realname,u1.phone,u1.del_flag,u1.lock_flag,u1.create_time,u1.id_card_number,u1.gender,u1.degree,u1.province,u1.city,u1.area,u1.qualification_record_number,u1.qualifications_url,
  74. ur2.roles,
  75. qr1.quiz_result,
  76. scs1.sub_cert_status,
  77. d1.name as dept_name,
  78. de1.entname as drug_ent_name,
  79. ut1.completed_tasks,ut1.verified_tasks,
  80. scs2.gig_types
  81. from sys_user u1
  82. left join (
  83. select ur1.user_id,GROUP_CONCAT(DISTINCT r1.role_name ORDER BY r1.role_id ASC SEPARATOR ',') roles
  84. , ur1.db_source_id
  85. from sys_user_role ur1
  86. left join sys_role r1 on r1.role_id=ur1.role_id
  87. and ur1.db_source_id=r1.db_source_id
  88. group by ur1.user_id, ur1.db_source_id
  89. ) ur2 on ur2.user_id=u1.user_id
  90. and ur2.db_source_id=u1.db_source_id
  91. left join (
  92. select user_id,GROUP_CONCAT(JSON_EXTRACT(quiz_res,"$.finalMark") SEPARATOR '/') as quiz_result
  93. ,db_source_id
  94. from wm_user_plat_quiz_res
  95. group by user_id, db_source_id
  96. ) qr1 on qr1.user_id=u1.user_id
  97. and qr1.db_source_id=u1.db_source_id
  98. left join (
  99. select us1.user_id,GROUP_CONCAT(DISTINCT CONCAT(di1.label,':',us1.gig_type,'_',us1.cert_status) ORDER BY di1.sort ASC SEPARATOR ',') as sub_cert_status
  100. , us1.db_source_id
  101. from sys_user_sub us1
  102. inner join sys_dict_item di1 on di1.value=us1.subject_location and di1.type='subject_location'
  103. and di1.db_source_id=us1.db_source_id
  104. group by us1.user_id, us1.db_source_id
  105. ) scs1 on scs1.user_id=u1.user_id
  106. and scs1.db_source_id=u1.db_source_id
  107. left join sys_dept d1 on d1.dept_id=u1.dept_id
  108. and d1.db_source_id=u1.db_source_id
  109. left join wm_da_drug_ent de1 on de1.id=u1.drug_ent_id
  110. and de1.db_source_id=u1.db_source_id
  111. left join (
  112. select task_user_id,count(1) as completed_tasks,sum(case when task_status=3 then 1 else 0 end) as verified_tasks
  113. , db_source_id
  114. from wm_task
  115. where task_status!=4 and task_user_id=CAST(#{userId} AS NCHAR)
  116. group by task_user_id, db_source_id
  117. ) ut1 on ut1.task_user_id=u1.user_id
  118. and ut1.db_source_id=u1.db_source_id
  119. left join (
  120. select us1.user_id,GROUP_CONCAT(DISTINCT di1.label ORDER BY di1.sort ASC SEPARATOR ',') as gig_types
  121. , us1.db_source_id
  122. from sys_user_sub us1
  123. inner join sys_dict_item di1 on di1.value=us1.gig_type and di1.type='sub_type'
  124. and us1.db_source_id=di1.db_source_id
  125. group by us1.user_id, us1.db_source_id
  126. ) scs2 on scs2.user_id=u1.user_id
  127. and scs2.db_source_id=u1.db_source_id
  128. where u1.user_id=#{userId}
  129. </select>
  130. </mapper>