SysUserJzgInfoMapper.xml 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454
  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. <!-- 对业务员进行逻辑删除 lipf 2026年4月24日15:33:17 -->
  28. <delete id="updateUserByUserId">
  29. update sys_user_jzg_info a set a.is_delete = 1 where a.user_id = #{userId,jdbcType=DECIMAL}
  30. </delete>
  31. <update id="partnerReview">
  32. UPDATE sys_user_jzg_info_salesman SET partner_status = #{reviewStatus},partner_review_time = NOW(),partner_reviewer = #{userId} WHERE
  33. sys_user_jzg_info_id in
  34. <foreach item="item" index="index" collection="userInfoId" open="(" separator="," close=")">
  35. #{item}
  36. </foreach>
  37. </update>
  38. <select id="getUserInfoByIdentity" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  39. SELECT
  40. *
  41. FROM
  42. sys_user_jzg_info suji
  43. left join sys_user su on su.id = suji.user_id
  44. WHERE
  45. suji.is_delete = 0
  46. <if test="identity != null and identity != ''">
  47. AND su.identity = #{identity}
  48. </if>
  49. <if test="userId != null and userId != ''">
  50. AND suji.user_id = #{userId}
  51. </if>
  52. </select>
  53. <!-- 查询业务员 lipf 2026年4月24日11:22:18 -->
  54. <select id="queryYwy" resultMap="BaseResultMap">
  55. select
  56. suji.id,
  57. suji.user_id,
  58. suji.work_number,
  59. su.username,
  60. su.mobile,
  61. suji.name,
  62. suji.dept_id,
  63. sd.name as dept_name,
  64. suji.status,
  65. suji.is_enable,
  66. lsu.user_id as leader_id,
  67. lsu.name AS leader_name,
  68. suji.referrer_id,
  69. su.username as referrer_name,
  70. -- soul.organization_id as organization_id,
  71. suji.create_time as createTime,
  72. suji.create_by as createBy
  73. from
  74. sys_user_jzg_info suji
  75. left join sys_user su on su.id = suji.user_id
  76. LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
  77. left join sys_dept sd on sd.id = suji.dept_id
  78. -- left join sys_user_role sur on sur.user_id = su.id
  79. -- left join sys_organization_user_link soul on soul.user_id = suji.user_id
  80. -- join sys_organization so on so.id = soul.organization_id
  81. LEFT JOIN sys_dept d ON suji.dept_id = d.id
  82. where 1=1
  83. and suji.is_delete = 0
  84. and suji.id in (
  85. select sujis.sys_user_jzg_info_id from sys_user_jzg_info_salesman sujis where sujis.type_attr != 2 AND sujis.type_attr != 3
  86. )
  87. <if test="leaderId != null and leaderId != ''">
  88. and suji.leader_id = #{leaderId}
  89. </if>
  90. <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
  91. and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
  92. </if>
  93. <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
  94. and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
  95. </if>
  96. <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
  97. and suji.type_attr = #{sysUserInfoListVo.typeAttr}
  98. </if>
  99. <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
  100. and suji.status = #{sysUserInfoListVo.status}
  101. </if>
  102. <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
  103. AND suji.status IN
  104. <foreach item="status" collection="sysUserInfoListVo.typeStatus"
  105. open="(" separator="," close=")">
  106. #{status}
  107. </foreach>
  108. </if>
  109. <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
  110. and suji.is_enable = #{sysUserInfoListVo.isEnable}
  111. </if>
  112. <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
  113. and so.id = #{sysUserInfoListVo.sysOrganizationId}
  114. </if>
  115. <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
  116. and (suji.leader_id = #{sysUserInfoListVo.leaderId}
  117. or lsu.name = #{sysUserInfoListVo.leaderId})
  118. </if>
  119. <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
  120. and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
  121. or su.mobile = #{sysUserInfoListVo.salesman}
  122. or suji.work_number = #{sysUserInfoListVo.salesman}
  123. or su.id = #{sysUserInfoListVo.salesman})
  124. </if>
  125. order by suji.create_time desc
  126. </select>
  127. <!-- 查询成员 lipf 2026年4月24日11:10:15 -->
  128. <select id="queryMember" resultMap="BaseResultMap">
  129. select
  130. suji.id,
  131. suji.user_id,
  132. suji.work_number,
  133. su.username,
  134. su.mobile,
  135. suji.name,
  136. suji.dept_id,
  137. sd.name as dept_name,
  138. suji.status,
  139. suji.is_enable,
  140. lsu.user_id as leader_id,
  141. lsu.name AS leader_name,
  142. suji.referrer_id,
  143. su.username as referrer_name,
  144. soul.organization_id as organization_id,
  145. suji.create_time as createTime,
  146. suji.create_by as createBy
  147. from
  148. sys_user_jzg_info suji
  149. left join sys_user su on su.id = suji.user_id
  150. LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
  151. left join sys_dept sd on sd.id = suji.dept_id
  152. -- left join sys_user_role sur on sur.user_id = su.id
  153. left join sys_organization_user_link soul on soul.user_id = suji.user_id
  154. LEFT JOIN sys_dept d ON suji.dept_id = d.id
  155. where
  156. 1=1
  157. and suji.is_delete = 0
  158. and suji.id in (
  159. select sujis.sys_user_jzg_info_id from sys_user_jzg_info_salesman sujis where sujis.type_attr =2
  160. )
  161. <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
  162. and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
  163. </if>
  164. <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
  165. and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
  166. </if>
  167. <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
  168. and suji.type_attr = #{sysUserInfoListVo.typeAttr}
  169. </if>
  170. <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
  171. and suji.status = #{sysUserInfoListVo.status}
  172. </if>
  173. <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
  174. AND suji.status IN
  175. <foreach item="status" collection="sysUserInfoListVo.typeStatus"
  176. open="(" separator="," close=")">
  177. #{status}
  178. </foreach>
  179. </if>
  180. <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
  181. and suji.is_enable = #{sysUserInfoListVo.isEnable}
  182. </if>
  183. <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
  184. and so.id = #{sysUserInfoListVo.sysOrganizationId}
  185. </if>
  186. <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
  187. and (suji.leader_id = #{sysUserInfoListVo.leaderId}
  188. or lsu.name = #{sysUserInfoListVo.leaderId})
  189. </if>
  190. <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
  191. and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
  192. or su.mobile = #{sysUserInfoListVo.salesman}
  193. or suji.work_number = #{sysUserInfoListVo.salesman}
  194. or su.id = #{sysUserInfoListVo.salesman})
  195. </if>
  196. order by suji.create_time desc
  197. </select>
  198. <!-- modify by lipf , 2026年4月14日15:33:13 解决 业务管理-成员管理 页面,管理人和管理人工号不对的问题 -->
  199. <select id="getUserInfoList" resultMap="BaseResultMap">
  200. select
  201. suji.id,
  202. suji.user_id,
  203. suji.work_number,
  204. su.username,
  205. su.mobile,
  206. suji.name,
  207. suji.dept_id,
  208. sd.name as dept_name,
  209. (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,
  210. suji.status,
  211. suji.is_enable,
  212. lsu.user_id as leader_id,
  213. lsu.name AS leader_name,
  214. suji.referrer_id,
  215. su.username as referrer_name,
  216. GROUP_CONCAT(DISTINCT sr.name) as role_name,
  217. soul.organization_id as organization_id,
  218. so.name as organization_name,
  219. suji.create_time as createTime,
  220. suji.create_by as createBy
  221. from
  222. sys_user_jzg_info suji
  223. left join sys_user su on su.id = suji.user_id
  224. LEFT JOIN sys_user_jzg_info lsu on lsu.id = suji.leader_id
  225. left join sys_dept sd on sd.id = suji.dept_id
  226. left join sys_user_role sur on sur.user_id = su.id
  227. left join sys_role sr on sr.id = sur.role_id
  228. left join sys_organization_user_link soul on soul.user_id = suji.user_id
  229. inner join sys_organization so on so.id = soul.organization_id
  230. LEFT JOIN sys_dept d ON suji.dept_id = d.id
  231. left join sys_user_jzg_info_salesman sujis on sujis.sys_user_jzg_info_id = suji.id
  232. where
  233. 1=1
  234. and suji.is_delete = 0
  235. <if test="sysUserInfoListVo.deptId != null and sysUserInfoListVo.deptId != ''">
  236. and d.route LIKE CONCAT('%', #{sysUserInfoListVo.deptId}, '%')
  237. </if>
  238. <if test="sysUserInfoListVo.deptName != null and sysUserInfoListVo.deptName != ''">
  239. and so.name like concat('%',#{sysUserInfoListVo.deptName},'%')
  240. </if>
  241. <if test="sysUserInfoListVo.typeAttr != null and sysUserInfoListVo.typeAttr != ''">
  242. and suji.type_attr = #{sysUserInfoListVo.typeAttr}
  243. </if>
  244. <if test="sysUserInfoListVo.status != null and sysUserInfoListVo.status != '-1'">
  245. and suji.status = #{sysUserInfoListVo.status}
  246. </if>
  247. <if test="sysUserInfoListVo.typeStatus != null and sysUserInfoListVo.typeStatus.size() > 0">
  248. AND suji.status IN
  249. <foreach item="status" collection="sysUserInfoListVo.typeStatus"
  250. open="(" separator="," close=")">
  251. #{status}
  252. </foreach>
  253. </if>
  254. <if test="sysUserInfoListVo.isEnable != null and sysUserInfoListVo.isEnable != ''">
  255. and suji.is_enable = #{sysUserInfoListVo.isEnable}
  256. </if>
  257. <if test="sysUserInfoListVo.sysOrganizationId != null and sysUserInfoListVo.sysOrganizationId != ''">
  258. and so.id = #{sysUserInfoListVo.sysOrganizationId}
  259. </if>
  260. <if test="sysUserInfoListVo.leaderId != null and sysUserInfoListVo.leaderId != ''">
  261. and (suji.leader_id = #{sysUserInfoListVo.leaderId}
  262. or lsu.name = #{sysUserInfoListVo.leaderId})
  263. </if>
  264. <if test="sysUserInfoListVo.salesman != null and sysUserInfoListVo.salesman != ''">
  265. and (suji.name like concat('%',#{sysUserInfoListVo.salesman},'%')
  266. or su.mobile = #{sysUserInfoListVo.salesman}
  267. or suji.work_number = #{sysUserInfoListVo.salesman}
  268. or su.id = #{sysUserInfoListVo.salesman})
  269. </if>
  270. <if test="sysUserInfoListVo.isMember!= null and sysUserInfoListVo.isMember!= ''">
  271. <if test="sysUserInfoListVo.isMember == 1">
  272. and sujis.type_attr = 2
  273. </if>
  274. <if test="sysUserInfoListVo.isMember == 2">
  275. and sujis.type_attr != 2 AND sujis.type_attr != 3
  276. </if>
  277. </if>
  278. group by suji.id, soul.organization_id, so.name
  279. order by suji.create_time desc
  280. </select>
  281. <select id="getUserByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  282. SELECT
  283. *
  284. FROM
  285. sys_user_jzg_info suji
  286. LEFT JOIN sys_user su ON suji.user_id = su.id
  287. where su.mobile = #{mobile} and suji.is_delete = 0 and su.is_delete = 0
  288. </select>
  289. <select id="getTenantList" resultType="com.jzg.commons.entity.user.vo.SysTennatVo">
  290. SELECT
  291. ss.sys_code as system_code,
  292. ss.sys_name,
  293. sd.name as dept_name,
  294. suf.file_name as sys_icon
  295. FROM
  296. sys_user su
  297. LEFT JOIN sys_user_jzg_info suji ON su.id = suji.user_id and suji.is_delete = 0
  298. LEFT JOIN sys_system ss ON suji.system_code = ss.sys_code
  299. LEFT JOIN sys_dept sd ON sd.id = suji.dept_id
  300. LEFT JOIN sys_upload_files suf on suf.id = ss.sys_icon
  301. WHERE
  302. ( mobile = #{userId} OR username = #{userId})
  303. AND suji.system_code != 'APP'
  304. AND suji.is_enable = 0
  305. </select>
  306. <select id="getUserJzgInfoByUserId" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  307. SELECT
  308. *,
  309. su.identity,
  310. su.identity_time_start,
  311. su.identity_time_end,
  312. (select GROUP_CONCAT(type_attr SEPARATOR ',' ) from sys_user_jzg_info_salesman where sys_user_jzg_info_id = suji.id) as partnerTypeAttr,
  313. IF(EXISTS ( SELECT id FROM sys_user_jzg_info_salesman WHERE type_attr = 3 AND sys_user_jzg_info_id = suji.id),
  314. (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user WHERE user_id = suji.user_id), NULL ) AS gradeList
  315. FROM
  316. sys_user_jzg_info suji
  317. LEFT JOIN sys_user su ON suji.user_id = su.id
  318. WHERE
  319. user_id = #{userId}
  320. </select>
  321. <select id="getUserInfoBySystemCodeAndUserId" resultType="com.jzg.commons.entity.vo.SalesmanVo">
  322. SELECT
  323. suji.name,
  324. suji.dept_Id as deptId,
  325. sd.name as deptName,
  326. suji.type_attr as typeAttr,
  327. su.mobile as mobile ,
  328. suji.dept_id as deptId,
  329. so.name as organizationName,
  330. so.id as organizationId,
  331. suji.system_code as systemCode,
  332. ss.sys_name as systemName,
  333. ss.short_name as systemShortName
  334. FROM
  335. sys_user_jzg_info suji
  336. LEFT JOIN sys_user su ON suji.user_id = su.id
  337. left join sys_dept sd on sd.id = suji.dept_id
  338. left join sys_organization_user_link soul on soul.user_id = su.id
  339. left join sys_organization so on so.id = soul.organization_id
  340. left join sys_system ss on ss.sys_code = suji.system_code
  341. WHERE
  342. suji.user_id = #{userId}
  343. </select>
  344. <select id="selectByUserNameAndMobile" resultType="com.jzg.commons.entity.vo.PartnerRecommenderVo">
  345. SELECT
  346. p.grade,
  347. info.id user_id,
  348. info.dept_id,
  349. info.`name`,
  350. u.mobile,
  351. ( 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
  352. FROM
  353. partner_user p
  354. LEFT JOIN sys_user_jzg_info info ON info.id = p.user_id
  355. LEFT JOIN sys_user u ON u.id = info.user_id
  356. WHERE
  357. p.grade = #{grade}
  358. GROUP BY
  359. p.grade,
  360. info.`name`,
  361. u.mobile,
  362. info.dept_id,
  363. p.user_id
  364. </select>
  365. <select id="selectPartnerReviewVo" resultType="com.jzg.commons.entity.vo.PartnerReviewVo">
  366. SELECT
  367. info.id userInfoId,
  368. info.`name`,
  369. info.dept_id,
  370. info.create_time,
  371. info.leader_id,
  372. info.referrer_id,
  373. u.mobile,
  374. d.`name` deptName,
  375. referrer.`name` AS referrerName,
  376. leader.`name` AS leaderIdName,
  377. sa.partner_review_time,
  378. pa.`name` partner_reviewer,
  379. (SELECT GROUP_CONCAT(grade SEPARATOR ',' ) FROM partner_user p WHERE p.user_id = info.id) gradeList
  380. FROM
  381. sys_user_jzg_info info
  382. LEFT JOIN sys_user u ON u.id = info.user_id
  383. LEFT JOIN sys_dept d ON d.id = info.dept_id
  384. LEFT JOIN sys_user_jzg_info referrer ON referrer.id = info.referrer_id
  385. LEFT JOIN sys_user_jzg_info leader ON leader.id = info.leader_id
  386. LEFT JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
  387. LEFT JOIN sys_user_jzg_info pa ON pa.user_id = sa.partner_reviewer
  388. WHERE
  389. sa.type_attr = 3
  390. AND sa.partner_status = #{partnerReviewParam.partnerStatus}
  391. </select>
  392. <select id="isPartnerPresent" resultType="java.lang.Boolean">
  393. SELECT
  394. IF(COUNT(*) > 0, 1, 0)
  395. FROM sys_user_jzg_info_salesman
  396. WHERE type_attr = 3
  397. AND sys_user_jzg_info_id = #{id};
  398. </select>
  399. <select id="isGeneration" resultType="java.lang.Boolean">
  400. SELECT
  401. IF(COUNT(*) > 0, 1, 0)
  402. FROM sys_user_jzg_info_salesman
  403. WHERE type_attr = 6
  404. AND sys_user_jzg_info_id = #{id};
  405. </select>
  406. <select id="selectByUserIdInfo" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  407. SELECT info.*
  408. FROM sys_user_jzg_info info
  409. INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
  410. WHERE sa.type_attr = 3 AND info.user_id = #{userId}
  411. </select>
  412. <select id="selectTypeAttrs" resultType="java.lang.String">
  413. SELECT
  414. sjis.type_attr
  415. FROM
  416. sys_user_jzg_info_salesman sjis
  417. INNER JOIN sys_user_jzg_info suji ON sjis.sys_user_jzg_info_id = suji.id
  418. WHERE
  419. suji.user_id = #{userId}
  420. AND suji.is_delete = 0
  421. AND suji.is_enable = 0
  422. AND sjis.sys_user_jzg_info_id IS NOT NULL
  423. </select>
  424. <select id="getPartUserInfoByMobile" resultType="com.jzg.commons.entity.po.SysUserJzgInfo">
  425. SELECT DISTINCT info.id
  426. FROM sys_user_jzg_info info
  427. INNER JOIN partner_user p ON p.user_id = info.id
  428. INNER JOIN sys_user u ON u.id = info.user_id
  429. INNER JOIN sys_user_jzg_info_salesman sa ON sa.sys_user_jzg_info_id = info.id
  430. WHERE
  431. p.grade > 4
  432. AND u.mobile = #{mobile}
  433. AND sa.type_attr = 3
  434. </select>
  435. </mapper>