SysUserMapper.xml 22 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571
  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.ydtech.modules.admin.dao.SysUserMapper">
  4. <resultMap id="sysUserMap" type="com.ydtech.modules.admin.model.SysUser">
  5. <id column="id" jdbcType="VARCHAR" property="id"/>
  6. <result column="name" jdbcType="VARCHAR" property="name"/>
  7. <result column="mobile" jdbcType="VARCHAR" property="mobile"/>
  8. <result column="status" jdbcType="VARCHAR" property="status"/>
  9. <result column="identity" jdbcType="VARCHAR" property="identity"/>
  10. <result column="dept_id" jdbcType="VARCHAR" property="deptId"/>
  11. <result column="openid" jdbcType="VARCHAR" property="openid"/>
  12. <result column="role_id" jdbcType="VARCHAR" property="roleId"/>
  13. <result column="role_name" jdbcType="VARCHAR" property="roleName"/>
  14. <result column="dept_name" jdbcType="VARCHAR" property="deptName"/>
  15. <result column="create_time" jdbcType="TIMESTAMP" property="createTime"/>
  16. <result column="create_by" jdbcType="VARCHAR" property="createBy"/>
  17. <result column="update_time" jdbcType="TIMESTAMP" property="updateTime"/>
  18. <result column="update_by" jdbcType="TIMESTAMP" property="updateBy"/>
  19. </resultMap>
  20. <sql id="Sys_User_Column_List">
  21. su.id,
  22. su.name,
  23. su.mobile,
  24. su.status,
  25. su.openid,
  26. su.identity,
  27. su.dept_id,
  28. su.create_by,
  29. su.create_time,
  30. su.update_by,
  31. su.update_time,
  32. sur.role_id,
  33. sr.name as role_name,
  34. sd.name as dept_name,
  35. su.create_time,
  36. su.create_by,
  37. su.update_time,
  38. su.update_by
  39. from sys_user su
  40. left join sys_user_role sur on su.id = sur.user_id
  41. left join sys_role sr on sur.role_id = sr.id
  42. left join sys_dept sd on su.dept_id = sd.id
  43. </sql>
  44. <sql id="Sys_User_Where_Clause">
  45. <where>
  46. <if test="sysUser.name != null &amp;&amp; sysUser.name != ''">
  47. and su.name = #{sysUser.name}
  48. </if>
  49. <if test="sysUser.mobile != null &amp;&amp; sysUser.mobile != ''">
  50. and su.mobile = #{sysUser.mobile}
  51. </if>
  52. <if test="sysUser.status != null">
  53. and su.status = #{sysUser.status}
  54. </if>
  55. <if test="containsSubDept != null &amp;&amp; containsSubDept == 0">
  56. and su.dept_id = #{sysUser.deptId}
  57. </if>
  58. <if test="containsSubDept != null &amp;&amp; containsSubDept == 1">
  59. <!-- 查询子部门 -->
  60. and su.dept_id like concat('%',#{sysUser.deptId},'%')
  61. </if>
  62. </where>
  63. </sql>
  64. <select id="selectUserPage" resultMap="sysUserMap">
  65. select
  66. <include refid="Sys_User_Column_List"/>
  67. <include refid="Sys_User_Where_Clause"></include>
  68. </select>
  69. <select id="gainUserBaseInfo" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  70. select
  71. su.id as userId,
  72. su.name,
  73. info.sex,
  74. su.mobile,
  75. su.status,
  76. sd.id as deptId,
  77. sd.name as deptName,
  78. psd.id as pDeptId,
  79. psd.name as pDeptName,
  80. t4.id as roleId,
  81. t4.name as roleName
  82. from sys_user su
  83. left join sys_dept sd on su.dept_id=sd.id
  84. left join sys_dept psd on sd.parent_id=psd.id
  85. left join sys_user_info info on info.id=su.id
  86. left join sys_user_role t3 on su.id=t3.user_id
  87. left join sys_role t4 on t3.role_id=t4.id
  88. where 1=1
  89. AND sd.id &lt;&gt; ''
  90. <if test='user !=null '>
  91. <if test='user.status !=null and user.status!="" '>
  92. and su.status = #{user.status}
  93. </if>
  94. <if test='user.name !=null and user.name!="" '>
  95. and su.name like concat('%',#{user.name},'%')
  96. </if>
  97. <if test='user.userId !=null and user.userId!="" '>
  98. and su.id = #{user.userId}
  99. </if>
  100. <if test='user.mobile !=null and user.mobile!="" '>
  101. and su.mobile = #{user.mobile}
  102. </if>
  103. <if test='user.deptId !=null and user.deptId!="" '>
  104. and su.dept_id like concat('%',#{user.deptId},'%')
  105. </if>
  106. <if test='user.roleId !=null and user.roleId!="" '>
  107. and t3.role_id in (${user.roleId})
  108. </if>
  109. </if>
  110. </select>
  111. <select id="findUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  112. SELECT
  113. su.id as userId,
  114. su.name,
  115. info.sex,
  116. su.mobile,
  117. su.status,
  118. sd.id as deptId,
  119. sd.name as deptName,
  120. t4.id as roleId,
  121. t4.name as roleName,
  122. sd.management_source,
  123. psd.id as pDeptId,
  124. psd.name as pDeptName
  125. FROM
  126. sys_user su
  127. LEFT JOIN sys_user_info info ON info.id = su.id
  128. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  129. left join sys_dept psd on psd.id = sd.parent_id
  130. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  131. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  132. AND sd.del_flag = '0'
  133. WHERE
  134. 1=1
  135. <if test='user !=null '>
  136. <if test='user.status !=null and user.status!="" '>
  137. and su.status = #{user.status}
  138. </if>
  139. <if test='user.name !=null and user.name!="" '>
  140. and su.name like concat('%',#{user.name},'%')
  141. </if>
  142. <if test='user.userId !=null and user.userId!="" '>
  143. and su.id = #{user.userId}
  144. </if>
  145. <if test='user.mobile !=null and user.mobile!="" '>
  146. and su.mobile = #{user.mobile}
  147. </if>
  148. <if test='user.deptId !=null and user.deptId!="" '>
  149. and su.dept_id like concat('%',#{user.deptId},'%')
  150. </if>
  151. <if test='user.roleId !=null and user.roleId!="" '>
  152. and t3.role_id in (${user.roleId})
  153. </if>
  154. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  155. and sd.management_source = #{user.agentFlag}
  156. </if>
  157. <if test="user.agentFlag != null and user.agentFlag == 0">
  158. and sd.management_source is null
  159. </if>
  160. </if>
  161. </select>
  162. <select id="findBackUserList" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  163. SELECT
  164. su.id as userId,
  165. su.name,
  166. info.sex,
  167. su.mobile,
  168. su.status,
  169. sd.id as deptId,
  170. sd.name as deptName,
  171. t4.id as roleId,
  172. t4.name as roleName,
  173. sd.management_source,
  174. psd.id as pDeptId,
  175. psd.name as pDeptName
  176. FROM
  177. sys_user su
  178. LEFT JOIN sys_user_info info ON info.id = su.id
  179. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  180. left join sys_dept psd on psd.id = sd.parent_id
  181. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  182. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  183. AND sd.del_flag = '0'
  184. WHERE
  185. 1=1
  186. <if test='user !=null '>
  187. <if test='user.status !=null and user.status!="" '>
  188. and su.status = #{user.status}
  189. </if>
  190. <if test='user.name !=null and user.name!="" '>
  191. and su.name like concat('%',#{user.name},'%')
  192. </if>
  193. <if test='user.userId !=null and user.userId!="" '>
  194. and su.id = #{user.userId}
  195. </if>
  196. <if test='user.mobile !=null and user.mobile!="" '>
  197. and su.mobile = #{user.mobile}
  198. </if>
  199. <if test='user.deptId !=null and user.deptId!="" '>
  200. and su.dept_id like concat('%',#{user.deptId},'%')
  201. </if>
  202. <if test="user.agentFlag !=null and user.agentFlag != 0 ">
  203. and sd.management_source = #{user.agentFlag}
  204. </if>
  205. <if test="user.agentFlag != null and user.agentFlag == 0">
  206. and sd.management_source is null
  207. </if>
  208. and su.id NOT LIKE '%M%'
  209. </if>
  210. </select>
  211. <resultMap id="QuTeamNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  212. <id column="id" javaType="String" jdbcType="VARCHAR" property="deptId"/>
  213. <result column="name" javaType="String" jdbcType="VARCHAR" property="deptName"/>
  214. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  215. <result column="companyId" javaType="String" jdbcType="VARCHAR" property="companyId"/>
  216. <result column="insCompany" javaType="String" jdbcType="VARCHAR" property="insCompany"/>
  217. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  218. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  219. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  220. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  221. </resultMap>
  222. <select id="getDept" resultMap="QuTeamNumMap">
  223. SELECT
  224. sd.id,
  225. sd.name,
  226. i.orderstatus,
  227. i.count,
  228. i.jqpremium,
  229. i.sypremium,
  230. i.taxamount
  231. FROM
  232. sys_dept sd
  233. LEFT JOIN (
  234. SELECT
  235. io.deptid AS deptid,
  236. iac.orderstatus AS orderstatus,
  237. count(*) AS count,
  238. sum( iac.jqpremium ) AS jqpremium,
  239. sum( iac.sypremium ) AS sypremium,
  240. sum( iac.taxamount ) AS taxamount
  241. FROM
  242. ins_orders io
  243. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  244. WHERE
  245. iac.orderstatus in (1,2,3)
  246. <if test="quTeamNumDto.createTimeStart != null">
  247. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  248. </if>
  249. <if test="quTeamNumDto.createTimeEnd != null">
  250. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  251. </if>
  252. GROUP BY
  253. iac.orderstatus,
  254. io.userid,
  255. io.deptid
  256. ) AS i ON i.deptid = sd.id
  257. WHERE
  258. sd.del_flag = 0
  259. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  260. and sd.id like concat(#{quTeamNumDto.deptId},'%')
  261. </if>
  262. <if test="quTeamNumDto.deptName != null and quTeamNumDto.deptName != ''">
  263. and sd.name like concat(#{quTeamNumDto.deptName},'%')
  264. </if>
  265. </select>
  266. <select id="getDeptByCompany" resultMap="QuTeamNumMap">
  267. SELECT
  268. iac.company_id as companyId,
  269. iac.inscompany as insCompany,
  270. COUNT(*) AS quoteNum,
  271. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  272. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  273. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremium,
  274. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremium,
  275. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamount,
  276. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  277. FROM
  278. ins_orders io
  279. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  280. WHERE
  281. iac.orderstatus IN ( 1, 2, 3 )
  282. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  283. and io.deptid = #{quTeamNumDto.deptId}
  284. </if>
  285. GROUP BY
  286. iac.company_id,
  287. iac.inscompany
  288. </select>
  289. <resultMap id="QuUserNumMap" type="com.ydtech.modules.admin.model.QuTeamNum">
  290. <id column="id" javaType="String" jdbcType="VARCHAR" property="userId"/>
  291. <result column="name" javaType="String" jdbcType="VARCHAR" property="userName"/>
  292. <result column="orderstatus" javaType="String" jdbcType="VARCHAR" property="orderStatus"/>
  293. <result column="count" javaType="String" jdbcType="VARCHAR" property="count"/>
  294. <result column="jqpremium" javaType="String" jdbcType="VARCHAR" property="jqPremiumSum"/>
  295. <result column="sypremium" javaType="String" jdbcType="VARCHAR" property="syPremiumSum"/>
  296. <result column="taxamount" javaType="String" jdbcType="VARCHAR" property="taxaMountSum"/>
  297. </resultMap>
  298. <select id="getUser" resultMap="QuUserNumMap">
  299. SELECT
  300. su.id,
  301. su.name,
  302. i.orderstatus,
  303. i.count,
  304. i.jqpremium,
  305. i.sypremium,
  306. i.taxamount
  307. FROM
  308. sys_user su
  309. LEFT JOIN (
  310. SELECT
  311. io.userid AS userid,
  312. iac.orderstatus AS orderstatus,
  313. count(*) AS count,
  314. sum( iac.jqpremium ) AS jqpremium,
  315. sum( iac.sypremium ) AS sypremium,
  316. sum( iac.taxamount ) AS taxamount
  317. FROM
  318. ins_orders io
  319. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  320. WHERE
  321. iac.orderstatus in (1,2,3)
  322. <if test="quTeamNumDto.createTimeStart != null">
  323. and io.createtime &gt;= #{quTeamNumDto.createTimeStart}
  324. </if>
  325. <if test="quTeamNumDto.createTimeEnd != null">
  326. and io.createtime &lt;= #{quTeamNumDto.createTimeEnd}
  327. </if>
  328. GROUP BY
  329. iac.orderstatus,
  330. io.userid
  331. ) AS i ON i.userid = su.id
  332. WHERE
  333. su.status = 1
  334. <if test="quTeamNumDto.deptId != null and quTeamNumDto.deptId != ''">
  335. and su.dept_id like concat(#{quTeamNumDto.deptId},'%')
  336. </if>
  337. <if test="quTeamNumDto.userName != null and quTeamNumDto.userName != ''">
  338. and su.name like concat(#{quTeamNumDto.userName},'%')
  339. </if>
  340. </select>
  341. <select id="findListByDeptId" resultType="com.ydtech.modules.admin.model.vo.SysUserVO">
  342. SELECT
  343. su.id,
  344. su.name
  345. FROM
  346. sys_user su
  347. WHERE
  348. su.status = 1
  349. <if test="sysUser.deptId != null and sysUser.deptId != ''">
  350. and su.dept_id = #{sysUser.deptId}
  351. </if>
  352. <if test="sysUser.id != null and sysUser.id != ''">
  353. and su.id != #{sysUser.id}
  354. </if>
  355. </select>
  356. <select id="getUserNum" resultType="com.ydtech.modules.admin.model.QuUserNum">
  357. SELECT
  358. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping}) AS areacode,
  359. COUNT(*) AS quoteNum,
  360. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  361. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  362. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  363. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  364. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  365. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  366. FROM
  367. ins_orders io
  368. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  369. WHERE
  370. iac.orderstatus IN ( 1, 2, 3 )
  371. <if test="quUserNumDto.createTimeStart != null">
  372. and io.createtime &gt;= #{quUserNumDto.createTimeStart}
  373. </if>
  374. <if test="quUserNumDto.createTimeEnd != null">
  375. and io.createtime &lt;= #{quUserNumDto.createTimeEnd}
  376. </if>
  377. <if test="quUserNumDto.userIds != null">
  378. and io.userid IN
  379. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  380. #{id}
  381. </foreach>
  382. </if>
  383. GROUP BY
  384. SUBSTRING(io.userid, 3, #{quUserNumDto.grouping})
  385. </select>
  386. <select id="getUserByCompany" resultType="com.ydtech.modules.admin.model.QuUserNum">
  387. SELECT
  388. iac.company_id as companyId,
  389. iac.inscompany as insCompany,
  390. COUNT(*) AS quoteNum,
  391. SUM(CASE WHEN iac.orderstatus = 2 THEN 1 ELSE 0 END + CASE WHEN iac.orderstatus = 1 THEN 1 ELSE 0 END) AS submitNum,
  392. SUM(CASE WHEN iac.orderstatus = 3 THEN 1 ELSE 0 END) AS hasInsuredNum,
  393. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END) AS jqpremiumsum,
  394. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS sypremiumsum,
  395. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.taxamount ELSE 0 END) AS taxamountsum,
  396. SUM(CASE WHEN iac.orderstatus = 3 THEN iac.jqpremium ELSE 0 END + CASE WHEN iac.orderstatus = 3 THEN iac.sypremium ELSE 0 END) AS totalSumpremium
  397. FROM
  398. ins_orders io
  399. RIGHT JOIN ins_area_company iac ON iac.orderno = io.orderno
  400. WHERE
  401. iac.orderstatus IN ( 1, 2, 3 )
  402. <if test="quUserNumDto.userIds != null">
  403. and io.userid IN
  404. <foreach collection="quUserNumDto.userIds" item="id" index="index" open="(" close=")" separator=",">
  405. #{id}
  406. </foreach>
  407. </if>
  408. GROUP BY
  409. iac.company_id,
  410. iac.inscompany
  411. </select>
  412. <select id="getAllUsersByHospitality" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  413. SELECT
  414. su.id as userId,
  415. su.name,
  416. info.sex,
  417. su.mobile,
  418. su.status,
  419. sd.id as deptId,
  420. sd.name as deptName,
  421. t4.id as roleId,
  422. t4.name as roleName,
  423. sd.management_source as managementSource,
  424. psd.id as pDeptId,
  425. psd.name as pDeptName,
  426. "" as noType
  427. FROM
  428. sys_user su
  429. LEFT JOIN sys_user_info info ON info.id = su.id
  430. LEFT JOIN sys_dept sd ON su.dept_id = sd.id
  431. left join sys_dept psd on psd.id = sd.parent_id
  432. LEFT JOIN sys_user_role t3 ON su.id = t3.user_id
  433. LEFT JOIN sys_role t4 ON t3.role_id = t4.id
  434. AND sd.del_flag = '0'
  435. WHERE
  436. su.status =1 AND su.id LIKE '%M%'
  437. <if test='user !=null '>
  438. <if test='user.name !=null and user.name!="" '>
  439. and su.name = #{user.name}
  440. </if>
  441. <if test='user.userId !=null and user.userId!="" '>
  442. and su.id = #{user.userId}
  443. </if>
  444. <if test='user.mobile !=null and user.mobile!="" '>
  445. and su.mobile = #{user.mobile}
  446. </if>
  447. <if test='user.identity !=null and user.identity!="" '>
  448. and su.identity = #{user.identity}
  449. </if>
  450. </if>
  451. </select>
  452. <select id="getCustomerUsers" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  453. SELECT
  454. t1.id AS userId,
  455. t1.NAME AS NAME,
  456. t1.mobile AS mobile,
  457. t1.`status` AS `status`,
  458. t2.id AS deptId,
  459. t2.`name` AS deptName,
  460. sd2.id AS pDeptId,
  461. sd2.`name` AS pDeptName
  462. FROM
  463. sys_user t1
  464. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  465. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  466. WHERE
  467. t1.`status` = 1
  468. AND t1.id NOT LIKE '%M%'
  469. <if test='user !=null '>
  470. <if test='user.name !=null and user.name!="" '>
  471. and t1.name = #{user.name}
  472. </if>
  473. <if test='user.userId !=null and user.userId!="" '>
  474. and t1.id = #{user.userId}
  475. </if>
  476. <if test='user.mobile !=null and user.mobile!="" '>
  477. and t1.mobile = #{user.mobile}
  478. </if>
  479. <if test='user.identity !=null and user.identity!="" '>
  480. and t1.identity = #{user.identity}
  481. </if>
  482. </if>
  483. </select>
  484. <select id="getDeptIdsByRoleIdsAndUserIds" resultType="String">
  485. SELECT
  486. sd2.id
  487. FROM
  488. sys_user t1
  489. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  490. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  491. LEFT JOIN sys_user_role sur ON sur.user_id = t1.id
  492. WHERE
  493. t1.`status` = 1
  494. <if test="userIds != null and userIds.size>0" >
  495. AND
  496. t1.id IN
  497. <foreach collection="userIds" item="item" open="(" separator="," close=")">
  498. #{item}
  499. </foreach>
  500. </if>
  501. <if test="roleIds != null and roleIds.size>0" >
  502. AND
  503. sur.role_id IN
  504. <foreach collection="roleIds" item="item" open="(" separator="," close=")">
  505. #{item}
  506. </foreach>
  507. </if>
  508. GROUP BY sd2.id
  509. </select>
  510. <select id="findUserListByPage" resultType="com.ydtech.modules.admin.model.vo.SysUserBaseVO">
  511. SELECT
  512. t1.id AS userId,
  513. t1.NAME AS NAME,
  514. t1.mobile AS mobile,
  515. t1.`status` AS `status`,
  516. t2.id AS deptId,
  517. t2.`name` AS deptName,
  518. sd2.id AS pDeptId,
  519. sd2.`name` AS pDeptName
  520. FROM
  521. sys_user t1
  522. LEFT JOIN sys_dept t2 ON t1.dept_id = t2.id
  523. LEFT JOIN sys_dept sd2 ON sd2.id = t2.parent_id
  524. WHERE
  525. t1.`status` = 1
  526. AND t1.id NOT LIKE '%M%'
  527. <if test='user !=null '>
  528. <if test='user.name !=null and user.name!="" '>
  529. and t1.name like CONCAT('%', #{user.name}, '%')
  530. </if>
  531. <if test='user.userId !=null and user.userId!="" '>
  532. and t1.id = #{user.userId}
  533. </if>
  534. <if test='user.mobile !=null and user.mobile!="" '>
  535. and t1.mobile = #{user.mobile}
  536. </if>
  537. <if test='user.deptId !=null and user.deptId!="" '>
  538. and t2.id = #{user.deptId}
  539. </if>
  540. </if>
  541. </select>
  542. </mapper>