SysUserJzgInfoMapper.xml 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300
  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.jzg.organization.mapper.SysUserJzgInfoMapper">
  4. <resultMap id="BaseResultMap" type="com.jzg.commons.entity.dto.SysUserJzgInfoDto">
  5. <id column="id" jdbcType="VARCHAR" property="id"/>
  6. <result column="user_id" jdbcType="VARCHAR" property="userId"/>
  7. <result column="username" jdbcType="VARCHAR" property="username"/>
  8. <result column="name" jdbcType="VARCHAR" property="name"/>
  9. <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
  10. <result column="work_number" jdbcType="VARCHAR" property="workNumber"/>
  11. <result column="dept_id" jdbcType="VARCHAR" property="deptId"/>
  12. <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
  13. <result column="type_attr" jdbcType="VARCHAR" property="typeAttr"/>
  14. <result column="status" jdbcType="INTEGER" property="status"/>
  15. <result column="is_enable" jdbcType="INTEGER" property="isEnable"/>
  16. <result column="leader_id" jdbcType="VARCHAR" property="leaderId"/>
  17. <result column="leader_name" jdbcType="VARCHAR" property="leaderName"/>
  18. <result column="referrer_id" jdbcType="VARCHAR" property="referrerId"/>
  19. <result column="referrer_name" jdbcType="VARCHAR" property="referrerName"/>
  20. <result column="role_name" jdbcType="VARCHAR" property="roleName"/>
  21. <result column="organization_id" jdbcType="VARCHAR" property="organizationId"/>
  22. <result column="organization_name" jdbcType="VARCHAR" property="organizationName"/>
  23. </resultMap>
  24. <update id="updatePartnerByUserId">
  25. UPDATE partner_user SET name = #{sysUserJzgInfo.name} WHERE user_id = #{sysUserJzgInfo.userId}
  26. </update>
  27. <update id="partnerReview">
  28. UPDATE sys_user_jzg_info_salesman SET partner_status = #{reviewStatus},partner_review_time = NOW(),partner_reviewer = #{userId} WHERE
  29. sys_user_jzg_info_id in
  30. <foreach item="item" index="index" collection="userInfoId" open="(" separator="," close=")">
  31. #{item}
  32. </foreach>
  33. </update>
  34. <select id="getUserInfoByIdentity" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  35. SELECT
  36. *
  37. FROM
  38. sys_user_jzg_info suji
  39. left join sys_user su on su.id = suji.user_id
  40. WHERE
  41. 1=1
  42. <if test="identity != null and identity != ''">
  43. AND su.identity = #{identity}
  44. </if>
  45. <if test="userId != null and userId != ''">
  46. AND suji.user_id = #{userId}
  47. </if>
  48. </select>
  49. <select id="getUserInfoList" resultMap="BaseResultMap">
  50. select
  51. suji.id,
  52. suji.user_id,
  53. suji.work_number,
  54. su.username,
  55. su.mobile,
  56. suji.name,
  57. suji.dept_id,
  58. sd.name as dept_name,
  59. (SELECT GROUP_CONCAT( s.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman s WHERE s.sys_user_jzg_info_id = suji.id ) AS type_attr,
  60. suji.status,
  61. suji.is_enable,
  62. suji.leader_id,
  63. su.username as leader_name,
  64. suji.referrer_id,
  65. su.username as referrer_name,
  66. GROUP_CONCAT(DISTINCT sr.name) as role_name,
  67. soul.organization_id as organization_id,
  68. so.name as organization_name,
  69. suji.create_time as createTime,
  70. suji.create_by as createBy
  71. from
  72. sys_user_jzg_info suji
  73. left join sys_user su on su.id = suji.user_id
  74. LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
  75. left join sys_dept sd on sd.id = suji.dept_id
  76. left join sys_user_role sur on sur.user_id = su.id
  77. left join sys_role sr on sr.id = sur.role_id
  78. left join sys_organization_user_link soul on soul.user_id = suji.user_id
  79. left join sys_organization so on so.id = soul.organization_id
  80. LEFT JOIN sys_dept d ON suji.dept_id = d.id
  81. left join sys_user_jzg_info_salesman sujis on sujis.sys_user_jzg_info_id = suji.id
  82. where
  83. 1=1
  84. and suji.is_delete = 0
  85. <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
  86. and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
  87. </if>
  88. <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
  89. and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
  90. </if>
  91. <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
  92. and suji.type_attr = #{sysUserInfoListVo.typeAttr}
  93. </if>
  94. <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
  95. and suji.status = #{sysUserInfoListVo.status}
  96. </if>
  97. <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
  98. AND suji.status IN
  99. <foreach item="status" collection="sysUserInfoListVo.typeStatus"
  100. open="(" separator="," close=")">
  101. #{status}
  102. </foreach>
  103. </if>
  104. <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
  105. and suji.is_enable = #{sysUserInfoListVo.isEnable}
  106. </if>
  107. <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
  108. and so.id = #{sysUserInfoListVo.sysOrganizationId}
  109. </if>
  110. <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
  111. and (suji.leader_id = #{sysUserInfoListVo.leaderId}
  112. or lsu.name = #{sysUserInfoListVo.leaderId})
  113. </if>
  114. <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
  115. and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
  116. or su.mobile = #{sysUserInfoListVo.salesman}
  117. or suji.work_number = #{sysUserInfoListVo.salesman}
  118. or su.id = #{sysUserInfoListVo.salesman})
  119. </if>
  120. <if test="sysUserInfoListVo.isMember!= null and sysUserInfoListVo.isMember!= ''">
  121. <if test="sysUserInfoListVo.isMember == 1">
  122. and sujis.type_attr = 2
  123. </if>
  124. <if test="sysUserInfoListVo.isMember == 2">
  125. and sujis.type_attr != 2 AND sujis.type_attr != 3
  126. </if>
  127. </if>
  128. group by suji.id, soul.organization_id, so.name
  129. order by suji.create_time desc
  130. </select>
  131. <select id="getUserByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  132. SELECT
  133. *
  134. FROM
  135. sys_user_jzg_info suji
  136. LEFT JOIN sys_user su ON suji.user_id = su.id
  137. where su.mobile = #{mobile}
  138. </select>
  139. <select id="getTenantList" resultType="com.jzg.commons.entity.user.vo.SysTennatVo">
  140. SELECT
  141. ss.sys_code as system_code,
  142. ss.sys_name,
  143. sd.name as dept_name,
  144. suf.file_name as sys_icon
  145. FROM
  146. sys_user su
  147. LEFT JOIN sys_user_jzg_info suji ON su.id = suji.user_id
  148. LEFT JOIN sys_system ss ON suji.system_code = ss.sys_code
  149. LEFT JOIN sys_dept sd ON sd.id = suji.dept_id
  150. LEFT JOIN sys_upload_files suf on suf.id = ss.sys_icon
  151. WHERE
  152. (
  153. mobile = #{userId}
  154. OR username = #{userId})
  155. AND suji.system_code != 'APP'
  156. AND suji.is_enable = 0
  157. </select>
  158. <select id="getUserJzgInfoByUserId" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  159. SELECT
  160. *,
  161. su.identity,
  162. su.identity_time_start,
  163. su.identity_time_end,
  164. (select GROUP_CONCAT(type_attr SEPARATOR ',' ) from sys_user_jzg_info_salesman where sys_user_jzg_info_id = suji.id) as partnerTypeAttr,
  165. IF(EXISTS ( SELECT id FROM sys_user_jzg_info_salesman WHERE type_attr = 3 AND sys_user_jzg_info_id = suji.id),
  166. (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user WHERE user_id = suji.user_id), NULL ) AS gradeList
  167. FROM
  168. sys_user_jzg_info suji
  169. LEFT JOIN sys_user su ON suji.user_id = su.id
  170. WHERE
  171. user_id = #{userId}
  172. </select>
  173. <select id="getUserInfoBySystemCodeAndUserId" resultType="com.jzg.commons.entity.vo.SalesmanVo">
  174. SELECT
  175. suji.name,
  176. suji.dept_Id as deptId,
  177. sd.name as deptName,
  178. suji.type_attr as typeAttr,
  179. su.mobile as mobile ,
  180. suji.dept_id as deptId,
  181. so.name as organizationName,
  182. so.id as organizationId,
  183. suji.system_code as systemCode,
  184. ss.sys_name as systemName,
  185. ss.short_name as systemShortName
  186. FROM
  187. sys_user_jzg_info suji
  188. LEFT JOIN sys_user su ON suji.user_id = su.id
  189. left join sys_dept sd on sd.id = suji.dept_id
  190. left join sys_organization_user_link soul on soul.user_id = su.id
  191. left join sys_organization so on so.id = soul.organization_id
  192. left join sys_system ss on ss.sys_code = suji.system_code
  193. WHERE
  194. suji.user_id = #{userId}
  195. </select>
  196. <select id="selectByUserNameAndMobile" resultType="com.jzg.commons.entity.vo.PartnerRecommenderVo">
  197. SELECT
  198. p.grade,
  199. info.id user_id,
  200. info.dept_id,
  201. info.`name`,
  202. u.mobile,
  203. ( SELECT GROUP_CONCAT( sa.type_attr SEPARATOR ',' ) FROM sys_user_jzg_info_salesman sa WHERE sa.sys_user_jzg_info_id = p.user_id ) AS typeAttr
  204. FROM
  205. partner_user p
  206. LEFT JOIN sys_user_jzg_info info ON info.id = p.user_id
  207. LEFT JOIN sys_user u ON u.id = info.user_id
  208. WHERE
  209. p.grade = #{grade}
  210. GROUP BY
  211. p.grade,
  212. info.`name`,
  213. u.mobile,
  214. info.dept_id,
  215. p.user_id
  216. </select>
  217. <select id="selectPartnerReviewVo" resultType="com.jzg.commons.entity.vo.PartnerReviewVo">
  218. SELECT
  219. info.id userInfoId,
  220. info.`name`,
  221. info.dept_id,
  222. info.create_time,
  223. info.leader_id,
  224. info.referrer_id,
  225. u.mobile,
  226. d.`name` deptName,
  227. referrer.`name` AS referrerName,
  228. leader.`name` AS leaderIdName,
  229. sa.partner_review_time,
  230. pa.`name` partner_reviewer,
  231. (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user p WHERE p.user_id = info.id) gradeList
  232. FROM
  233. sys_user_jzg_info info
  234. LEFT JOIN sys_user u ON u.id = info.user_id
  235. LEFT JOIN sys_dept d ON d.id = info.dept_id
  236. LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id
  237. LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id
  238. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
  239. LEFT JOIN sys_user_jzg_info pa ON pa.user_id = sa.partner_reviewer
  240. WHERE
  241. sa.type_attr = 3
  242. AND sa.partner_status = #{partnerReviewParam.partnerStatus}
  243. </select>
  244. <select id="isPartnerPresent" resultType="java.lang.Boolean">
  245. SELECT
  246. IF(COUNT(*) > 0, 1, 0)
  247. FROM sys_user_jzg_info_salesman
  248. WHERE type_attr = 3
  249. AND sys_user_jzg_info_id = #{id};
  250. </select>
  251. <select id="isGeneration" resultType="java.lang.Boolean">
  252. SELECT
  253. IF(COUNT(*) > 0, 1, 0)
  254. FROM sys_user_jzg_info_salesman
  255. WHERE type_attr = 6
  256. AND sys_user_jzg_info_id = #{id};
  257. </select>
  258. <select id="selectByUserIdInfo" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  259. SELECT info.*
  260. FROM sys_user_jzg_info info
  261. INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
  262. WHERE sa.type_attr = 3 AND info.user_id = #{userId}
  263. </select>
  264. <select id="selectTypeAttrs" resultType="java.lang.String">
  265. SELECT
  266. sjis.type_attr
  267. FROM
  268. sys_user_jzg_info_salesman sjis
  269. INNER JOIN sys_user_jzg_info suji ON sjis.sys_user_jzg_info_id = suji.id
  270. WHERE
  271. suji.user_id = #{userId}
  272. AND suji.is_delete = 0
  273. AND suji.is_enable = 0
  274. AND sjis.sys_user_jzg_info_id IS NOT NULL
  275. </select>
  276. </mapper>