SysUserMapper.xml 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856
  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.xunmei.system.mapper.SysUserMapper">
  6. <resultMap type="com.xunmei.system.api.domain.SysUser" id="SysUserResult">
  7. <result property="id" column="id"/>
  8. <result property="deptId" column="dept_id"/>
  9. <result property="isManager" column="is_manager"/>
  10. <result property="isLock" column="is_lock"/>
  11. <result property="jobId" column="job_id"/>
  12. <result property="name" column="name"/>
  13. <result property="username" column="username"/>
  14. <result property="orgId" column="org_id"/>
  15. <result property="phone" column="phone"/>
  16. <result property="createTime" column="create_time"/>
  17. <result property="modifiedName" column="modified_name"/>
  18. <result property="updateTime" column="update_time"/>
  19. <result property="modifiedId" column="modified_id"/>
  20. <result property="password" column="password"/>
  21. <result property="salt" column="salt"/>
  22. <result property="deleted" column="deleted"/>
  23. <result property="lastIp" column="last_ip"/>
  24. <result property="lastTime" column="last_time"/>
  25. <result property="orgName" column="org_name"/>
  26. <result property="orgPath" column="org_path"/>
  27. <result property="image" column="image"/>
  28. <result property="card" column="card"/>
  29. <result property="gender" column="gender"/>
  30. <result property="jobNumber" column="job_number"/>
  31. <result property="note" column="note"/>
  32. <result property="isSign" column="is_sign"/>
  33. <result property="signTime" column="sign_time"/>
  34. <result property="agreementId" column="agreement_id"/>
  35. <result property="signVersion" column="sign_version"/>
  36. <result property="approveStatus" column="approve_status"/>
  37. <result property="locked" column="locked"/>
  38. <result property="createBy" column="create_by"/>
  39. <result property="updateBy" column="update_by"/>
  40. <result property="code" column="code"/>
  41. <result property="source" column="source"/>
  42. <result property="originalOrgId" column="original_org_id"/>
  43. <collection property="roles" ofType="com.xunmei.system.api.domain.SysRole">
  44. <result column="role_name" property="roleName"/>
  45. </collection>
  46. </resultMap>
  47. <!-- <resultMap type="com.xunmei.system.api.domain.SysUser" id="SyncSysUserResult">-->
  48. <!-- <id property="id" column="id" />-->
  49. <!-- <result property="username" column="user_name" />-->
  50. <!-- <result property="name" column="name" />-->
  51. <!-- <result property="email" column="email" />-->
  52. <!-- <result property="phonenumber" column="phonenumber" />-->
  53. <!-- <result property="sex" column="sex" />-->
  54. <!-- <result property="avatar" column="avatar" />-->
  55. <!-- <result property="password" column="password" />-->
  56. <!-- <result property="status" column="status" />-->
  57. <!-- <result property="delFlag" column="del_flag" />-->
  58. <!-- <result property="loginIp" column="login_ip" />-->
  59. <!-- <result property="loginDate" column="login_date" />-->
  60. <!-- <result property="createBy" column="create_by" />-->
  61. <!-- <result property="createTime" column="create_time" />-->
  62. <!-- <result property="updateBy" column="update_by" />-->
  63. <!-- <result property="updateTime" column="update_time" />-->
  64. <!-- <association property="dept" column="dept_id" javaType="com.xunmei.system.api.domain.SysDept" resultMap="deptResult" />-->
  65. <!-- <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />-->
  66. <!-- </resultMap>-->
  67. <resultMap id="deptResult" type="com.xunmei.system.api.domain.SysDept">
  68. <id property="deptId" column="dept_id"/>
  69. <result property="parentId" column="parent_id"/>
  70. <result property="deptName" column="dept_name"/>
  71. <result property="ancestors" column="ancestors"/>
  72. <result property="orderNum" column="order_num"/>
  73. <result property="leader" column="leader"/>
  74. <result property="status" column="dept_status"/>
  75. </resultMap>
  76. <resultMap id="RoleResult" type="com.xunmei.system.api.domain.SysRole">
  77. <id property="roleId" column="role_id"/>
  78. <result property="roleName" column="role_name"/>
  79. <result property="roleKey" column="role_key"/>
  80. <result property="roleSort" column="role_sort"/>
  81. <result property="dataScope" column="data_scope"/>
  82. <result property="status" column="role_status"/>
  83. </resultMap>
  84. <sql id="selectUserVo">
  85. select u.id,
  86. u.dept_id,
  87. u.username,
  88. u.nick_name,
  89. u.avatar,
  90. u.phonenumber,
  91. u.password,
  92. u.sex,
  93. u.is_lock,
  94. u.deleted,
  95. u.login_ip,
  96. u.login_date,
  97. u.create_by,
  98. u.create_time,
  99. u.remark,
  100. u.original_org_id,
  101. d.dept_id,
  102. d.parent_id,
  103. d.ancestors,
  104. d.dept_name,
  105. d.order_num,
  106. d.leader,
  107. d.status as dept_status,
  108. r.id,
  109. r.role_name,
  110. r.role_key,
  111. r.role_sort,
  112. r.data_scope,
  113. r.status as role_status
  114. from sys_user u
  115. left join sys_dept d on u.dept_id = d.dept_id
  116. left join sys_user_role ur on u.id = ur.user_id
  117. left join sys_role r on r.id = ur.role_id
  118. </sql>
  119. <select id="selectUserList" parameterType="com.xunmei.system.api.domain.SysUser" resultMap="SysUserResult">
  120. select u.id, u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phonenumber, u.sex, u.is_lock, u.deleted,
  121. u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
  122. left join sys_dept d on u.dept_id = d.dept_id
  123. where u.deleted = '0'
  124. <if test="userId != null and userId != 0">
  125. AND u.id = #{userId}
  126. </if>
  127. <if test="userName != null and userName != ''">
  128. AND u.user_name like concat('%', #{userName}, '%')
  129. </if>
  130. <if test="status != null and status != ''">
  131. AND u.is_lock = #{isLock}
  132. </if>
  133. <if test="phonenumber != null and phonenumber != ''">
  134. AND u.phonenumber like concat('%', #{phonenumber}, '%')
  135. </if>
  136. <if test="params.beginTime != null and params.beginTime != ''">
  137. <!-- 开始时间检索 -->
  138. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
  139. </if>
  140. <if test="params.endTime != null and params.endTime != ''">
  141. <!-- 结束时间检索 -->
  142. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
  143. </if>
  144. <if test="deptId != null and deptId != 0">
  145. AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
  146. ancestors) ))
  147. </if>
  148. <!-- 数据范围过滤 -->
  149. ${params.dataScope}
  150. </select>
  151. <select id="selectAllocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
  152. resultType="com.xunmei.system.api.domain.SysUser">
  153. select distinct u.name as name,u.is_lock as isLock, u.id as id, u.dept_id as deptId, u.username as username,
  154. u.phone as phone, u.create_time as createTime
  155. from sys_user u
  156. left join sys_dept d on u.dept_id = d.dept_id
  157. left join sys_user_role ur on u.id = ur.user_id
  158. left join sys_role r on r.id = ur.role_id
  159. where u.deleted = '0' and r.id = #{roleId}
  160. <if test="username != null and username != ''">
  161. AND u.username like concat('%', #{username}, '%')
  162. </if>
  163. <if test="phone != null and phone != ''">
  164. AND u.phone like concat('%', #{phone}, '%')
  165. </if>
  166. <!-- 数据范围过滤 -->
  167. ${params.dataScope}
  168. </select>
  169. <select id="selectUnallocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
  170. resultType="com.xunmei.system.api.domain.SysUser">
  171. select distinct u.id, u.dept_id, u.username, u.name, u.phone, u.is_lock, u.create_time
  172. from sys_user u
  173. left join sys_dept d on u.dept_id = d.dept_id
  174. left join sys_user_role ur on u.id = ur.user_id
  175. left join sys_role r on r.id = ur.role_id
  176. where u.deleted = 0 and (r.id != #{roleId} or r.id IS NULL)
  177. and u.id not in (select u.id from sys_user u inner join sys_user_role ur on u.id = ur.user_id and ur.role_id =
  178. #{roleId})
  179. <if test="username != null and username != ''">
  180. AND u.username like concat('%', #{username}, '%')
  181. </if>
  182. <if test="phone != null and phone != ''">
  183. AND u.phone like concat('%', #{phone}, '%')
  184. </if>
  185. <!-- 数据范围过滤 -->
  186. ${params.dataScope}
  187. </select>
  188. <select id="selectSyncUserList" parameterType="com.xunmei.system.api.domain.SysUser"
  189. resultType="com.xunmei.system.api.domain.SysUser">
  190. select *
  191. from sys_user u where deleted !=1
  192. <if test="source != null">
  193. AND u.source =#{source}
  194. </if>
  195. <if test="orgId != null">
  196. AND u.org_id =#{orgId}
  197. </if>
  198. </select>
  199. <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
  200. select * from sys_user
  201. where username = #{userName} and deleted = 0
  202. </select>
  203. <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
  204. <include refid="selectUserVo"/>
  205. where u.id = #{userId}
  206. </select>
  207. <select id="checkUserNameUnique" parameterType="String" resultType="com.xunmei.system.api.domain.SysUser">
  208. select id, username
  209. from sys_user
  210. where username = #{userName}
  211. and deleted = '0'
  212. limit 1
  213. </select>
  214. <select id="checkPhoneUnique" parameterType="String" resultType="com.xunmei.system.api.domain.SysUser">
  215. select id, phone
  216. from sys_user
  217. where phone = #{phonenumber}
  218. and deleted = '0'
  219. limit 1
  220. </select>
  221. <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
  222. select user_id, email
  223. from sys_user
  224. where email = #{email}
  225. and deleted = '0'
  226. limit 1
  227. </select>
  228. <insert id="insertUser" parameterType="com.xunmei.system.api.domain.SysUser" useGeneratedKeys="true"
  229. keyProperty="userId">
  230. insert into sys_user(
  231. <if test="userId != null and userId != 0">
  232. user_id,
  233. </if>
  234. <if test="deptId != null and deptId != 0">
  235. dept_id,
  236. </if>
  237. <if test="userName != null and userName != ''">
  238. user_name,
  239. </if>
  240. <if test="nickName != null and nickName != ''">
  241. nick_name,
  242. </if>
  243. <if test="email != null and email != ''">
  244. email,
  245. </if>
  246. <if test="avatar != null and avatar != ''">
  247. avatar,
  248. </if>
  249. <if test="phonenumber != null and phonenumber != ''">
  250. phonenumber,
  251. </if>
  252. <if test="sex != null and sex != ''">
  253. sex,
  254. </if>
  255. <if test="password != null and password != ''">
  256. password,
  257. </if>
  258. <if test="status != null and status != ''">
  259. status,
  260. </if>
  261. <if test="createBy != null and createBy != ''">
  262. create_by,
  263. </if>
  264. <if test="remark != null and remark != ''">
  265. remark,
  266. </if>
  267. create_time
  268. )values(
  269. <if test="userId != null and userId != ''">
  270. #{userId},
  271. </if>
  272. <if test="deptId != null and deptId != ''">
  273. #{deptId},
  274. </if>
  275. <if test="userName != null and userName != ''">
  276. #{userName},
  277. </if>
  278. <if test="nickName != null and nickName != ''">
  279. #{nickName},
  280. </if>
  281. <if test="email != null and email != ''">
  282. #{email},
  283. </if>
  284. <if test="avatar != null and avatar != ''">
  285. #{avatar},
  286. </if>
  287. <if test="phonenumber != null and phonenumber != ''">
  288. #{phonenumber},
  289. </if>
  290. <if test="sex != null and sex != ''">
  291. #{sex},
  292. </if>
  293. <if test="password != null and password != ''">
  294. #{password},
  295. </if>
  296. <if test="status != null and status != ''">
  297. #{status},
  298. </if>
  299. <if test="createBy != null and createBy != ''">
  300. #{createBy},
  301. </if>
  302. <if test="remark != null and remark != ''">
  303. #{remark},
  304. </if>
  305. sysdate()
  306. )
  307. </insert>
  308. <update id="updateUser" parameterType="com.xunmei.system.api.domain.SysUser">
  309. update sys_user
  310. <set>
  311. <if test="deptId != null and deptId != 0">
  312. dept_id = #{deptId},
  313. </if>
  314. <if test="username != null and username != ''">
  315. user_name = #{username},
  316. </if>
  317. <!-- <if test="nickname != null and nickname != ''">-->
  318. <!-- nick_name = #{nickname},-->
  319. <!-- </if>-->
  320. <!-- <if test="email != null ">-->
  321. <!-- email = #{email},-->
  322. <!-- </if>-->
  323. <if test="phone != null ">
  324. phone = #{phone},
  325. </if>
  326. <if test="gender != null and gender != ''">
  327. gender = #{gender},
  328. </if>
  329. <!-- <if test="avatar != null and avatar != ''">-->
  330. <!-- avatar = #{avatar},-->
  331. <!-- </if>-->
  332. <if test="password != null and password != ''">
  333. password = #{password},
  334. </if>
  335. <!-- <if test="status != null and status != ''">-->
  336. <!-- status = #{status},-->
  337. <!-- </if>-->
  338. <!-- <if test="loginIp != null and loginIp != ''">-->
  339. <!-- login_ip = #{loginIp},-->
  340. <!-- </if>-->
  341. <!-- <if test="loginDate != null">-->
  342. <!-- login_date = #{loginDate},-->
  343. <!-- </if>-->
  344. <if test="updateBy != null and updateBy != ''">
  345. update_by = #{updateBy},
  346. </if>
  347. <!-- <if test="remark != null">-->
  348. <!-- remark = #{remark},-->
  349. <!-- </if>-->
  350. update_time = sysdate()
  351. </set>
  352. where id = #{id}
  353. </update>
  354. <update id="updateUserStatus" parameterType="com.xunmei.system.api.domain.SysUser">
  355. update sys_user
  356. set status = #{status}
  357. where user_id = #{userId}
  358. </update>
  359. <update id="updateUserAvatar" parameterType="com.xunmei.system.api.domain.SysUser">
  360. update sys_user
  361. set avatar = #{avatar}
  362. where user_name = #{userName}
  363. </update>
  364. <update id="resetUserPwd" parameterType="com.xunmei.system.api.domain.SysUser">
  365. update sys_user
  366. set password = #{password}
  367. where username = #{userName}
  368. </update>
  369. <delete id="deleteUserById" parameterType="Long">
  370. update sys_user
  371. set deleted = '2'
  372. where user_id = #{userId}
  373. </delete>
  374. <delete id="deleteUserByIds" parameterType="Long">
  375. update sys_user set deleted= '1' where id in
  376. <foreach collection="array" item="userId" open="(" separator="," close=")">
  377. #{userId}
  378. </foreach>
  379. </delete>
  380. <select id="selectSysByUserId" resultType="com.xunmei.system.api.domain.SysOrg">
  381. select *
  382. from sys_org o
  383. inner join sys_user u on o.id = u.org_id
  384. where u.id = #{userId}
  385. </select>
  386. <select id="getPage" resultType="com.xunmei.system.api.domain.SysUser">
  387. select t.* from
  388. (
  389. SELECT c.*,
  390. GROUP_CONCAT(c.role_name) role_names,
  391. CONCAT(",",GROUP_CONCAT( c.roleId ),",") as roleIds from (
  392. SELECT
  393. DISTINCT
  394. h.user_id AS is_manager,
  395. <!-- ur. role_names,-->
  396. <!-- ur. roleIds,-->
  397. u.id,
  398. u.dept_id,
  399. u.is_lock,
  400. u.job_id,
  401. u.NAME,
  402. u.username,
  403. u.org_id,
  404. u.phone,
  405. u.create_time,
  406. u.modified_name,
  407. u.update_time,
  408. u.modified_id,
  409. u.PASSWORD,
  410. u.salt,
  411. u.deleted,
  412. u.last_ip,
  413. u.last_time,
  414. o.short_NAME AS org_name,
  415. o.path AS org_path,
  416. o.affiliated_area,
  417. o.affiliated_bank,
  418. o.type as orgType,
  419. u.image,
  420. u.card,
  421. u.gender,
  422. u.job_number,
  423. u.note,
  424. u.is_sign,
  425. u.sign_time,
  426. u.agreement_id,
  427. u.sign_version,
  428. u.approve_status,
  429. u.locked,
  430. u.create_by,
  431. u.update_by,
  432. u.CODE,
  433. u.source,
  434. u.original_org_id,
  435. u.is_manage,
  436. sr.id as roleId,
  437. sr.role_name
  438. FROM
  439. sys_user u
  440. LEFT JOIN sys_org o ON u.original_org_id = o.id
  441. LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
  442. <!-- LIKE '%安全保卫管理人员' group by user_id) h ON h.user_id = u.id-->
  443. <!-- LEFT JOIN (select sro.user_id, GROUP_CONCAT(sr.role_name) role_names,-->
  444. <!-- CONCAT(",",GROUP_CONCAT( sr.id ),",") as roleIds from sys_user_role sro-->
  445. <!-- LEFT JOIN sys_role sr on sro.role_id=sr.id) ur on ur.user_id = u.id-->
  446. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  447. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  448. LEFT JOIN sys_role sr on sro.role_id=sr.id
  449. where 1=1
  450. and u.deleted =0
  451. <choose>
  452. <when test="info.checkSub">
  453. AND (o.path like concat('%', #{info.orgPath}, '%')
  454. <if test="info.parentOrgIds!=null and info.parentOrgIds.size()>0">
  455. or o.id in
  456. <foreach collection="info.parentOrgIds" separator="," open="(" close=")" item="orgId">
  457. #{orgId}
  458. </foreach>
  459. </if>
  460. )
  461. </when>
  462. <otherwise>
  463. AND o.id = #{info.orgId}
  464. </otherwise>
  465. </choose>
  466. <if test="info.isLock != null and info.isLock != ''">
  467. AND u.is_lock = #{info.isLock}
  468. </if>
  469. <if test="info.phone != null and info.phone != ''">
  470. AND u.phone like concat('%',concat(#{info.phone},'%'))
  471. </if>
  472. <if test="info.username != null and info.username != ''">
  473. AND u.username like concat('%', #{info.username}, '%')
  474. </if>
  475. <if test="info.name != null and info.name != ''">
  476. AND u.name like concat('%', #{info.name}, '%')
  477. </if>
  478. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  479. <!-- 开始时间检索 -->
  480. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  481. </if>
  482. <if test="info.params.endTime != null and info.params.endTime != ''">
  483. <!-- 结束时间检索 -->
  484. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  485. </if>
  486. ) c
  487. group by c.id
  488. ) t
  489. where 1=1
  490. <if test="info.roleId != null and info.roleId != ''">
  491. AND t.roleIds like concat("%,",#{info.roleId},",%")
  492. </if>
  493. <if test="info.onlyManager ==true">
  494. AND t.is_manage ='Y'
  495. </if>
  496. <if test="info.source !=null">
  497. AND t.source =0
  498. </if>
  499. <!-- <if test="info.onlyManager ==false or info.onlyManager==null">-->
  500. <!-- AND (t.is_manage is NULL OR t.is_manage ='N')-->
  501. <!-- </if>-->
  502. ORDER BY t.org_id DESC, t.id DESC
  503. </select>
  504. <select id="selectrolesByOrgId" resultType="com.xunmei.system.api.domain.SysRole">
  505. SELECT r.*
  506. FROM sys_role r
  507. LEFT JOIN sys_org o ON r.org_type = o.type
  508. WHERE 1 = 1
  509. AND o.id = #{orgId}
  510. </select>
  511. <select id="getList" resultMap="SysUserResult">
  512. SELECT
  513. u.id,
  514. u.is_manage AS is_manager,
  515. role_name,
  516. u.dept_id,
  517. u.is_lock,
  518. u.job_id,
  519. u.NAME,
  520. u.username,
  521. u.org_id,
  522. u.phone,
  523. u.create_time,
  524. u.modified_name,
  525. u.update_time,
  526. u.modified_id,
  527. u.PASSWORD,
  528. u.salt,
  529. u.deleted,
  530. u.last_ip,
  531. u.last_time,
  532. o.NAME AS org_name,
  533. o.path AS org_path,
  534. u.image,
  535. u.card,
  536. u.gender,
  537. u.job_number,
  538. u.note,
  539. u.is_sign,
  540. u.sign_time,
  541. u.agreement_id,
  542. u.sign_version,
  543. u.approve_status,
  544. u.locked,
  545. u.create_by,
  546. u.update_by,
  547. u.CODE,
  548. u.source,
  549. u.original_org_id
  550. FROM
  551. sys_user u
  552. LEFT JOIN sys_org o ON u.original_org_id = o.id
  553. LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
  554. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  555. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  556. LEFT JOIN sys_role sr on sro.role_id=sr.id
  557. where 1=1
  558. and u.deleted =0
  559. <choose>
  560. <when test="info.checkSub">
  561. AND o.path like concat('%', #{info.orgPath}, '%')
  562. </when>
  563. <otherwise>
  564. AND o.id = #{info.orgId}
  565. </otherwise>
  566. </choose>
  567. <if test="info.isLock != null and info.isLock != ''">
  568. AND u.is_lock = #{info.isLock}
  569. </if>
  570. <if test="info.phone != null and info.phone != ''">
  571. AND u.phone like concat('%',concat(#{info.phone},'%'))
  572. </if>
  573. <if test="info.username != null and info.username != ''">
  574. AND u.username like concat('%', #{info.username}, '%')
  575. </if>
  576. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  577. <!-- 开始时间检索 -->
  578. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  579. </if>
  580. <if test="info.params.endTime != null and info.params.endTime != ''">
  581. <!-- 结束时间检索 -->
  582. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  583. </if>
  584. ORDER BY u.update_time DESC
  585. </select>
  586. <select id="selectAllUser" resultType="com.xunmei.system.api.domain.SysUser">
  587. select * from
  588. sys_user where deleted=0 and is_lock =0 and locked=0
  589. <if test="userName != null and userName != ''">
  590. AND name like concat('%', #{userName}, '%')
  591. </if>
  592. </select>
  593. <select id="selectUserListByRole" resultType="com.xunmei.system.api.domain.SysUser">
  594. select a.* from sys_user a left join sys_user_role b on a.id = b.user_id where
  595. b.role_id in
  596. <foreach collection="notificationToRoles" item="role" open="(" separator="," close=")">
  597. #{role.roleId}
  598. </foreach>
  599. </select>
  600. <select id="selectUserListByRoleAndOrg" resultType="com.xunmei.system.api.domain.SysUser">
  601. SELECT DISTINCT a.*
  602. FROM sys_user a
  603. LEFT JOIN sys_org b ON a.org_id = b.id
  604. LEFT JOIN sys_user_role c ON c.user_id = a.id
  605. LEFT JOIN sys_role d ON d.id = c.role_id
  606. WHERE a.deleted = 0
  607. AND d.del_flag = 0
  608. AND b.id = #{sysRoleOrgDTO.orgId}
  609. AND d.id IN (SELECT role_id FROM core_resumption_plan_to_role WHERE plan_id = #{sysRoleOrgDTO.planId})
  610. </select>
  611. <select id="select" resultType="com.xunmei.system.util.UserExport">
  612. SELECT
  613. GROUP_CONCAT(sr.role_name) role_names,
  614. CONCAT(',',GROUP_CONCAT( sr.id ),',') as roleIds,
  615. u.id,
  616. u.dept_id,
  617. u.is_lock,
  618. u.job_id,
  619. u.NAME,
  620. u.username,
  621. u.org_id,
  622. u.phone,
  623. u.create_time,
  624. u.modified_name,
  625. u.update_time,
  626. u.modified_id,
  627. u.PASSWORD,
  628. u.salt,
  629. u.deleted,
  630. u.last_ip,
  631. u.last_time,
  632. o.short_name AS org_name,
  633. o.path AS org_path,
  634. o.affiliated_area,
  635. o.affiliated_bank,
  636. u.image,
  637. u.card,
  638. u.gender,
  639. u.job_number,
  640. u.note,
  641. u.is_sign,
  642. u.sign_time,
  643. u.agreement_id,
  644. u.sign_version,
  645. u.approve_status,
  646. u.locked,
  647. u.create_by,
  648. u.update_by,
  649. u.CODE,
  650. u.source,
  651. u.original_org_id,
  652. u.is_manage as isManage
  653. FROM
  654. sys_user u
  655. LEFT JOIN sys_org o ON u.original_org_id = o.id
  656. LEFT JOIN ( SELECT user_id FROM sys_user_role uo LEFT JOIN sys_role ro ON uo.role_id = ro.id WHERE ro.role_name
  657. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  658. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  659. LEFT JOIN sys_role sr on sro.role_id=sr.id
  660. where 1=1
  661. and u.deleted =0
  662. <choose>
  663. <when test="info.checkSub">
  664. AND o.path like concat('%', #{info.orgPath}, '%')
  665. </when>
  666. <otherwise>
  667. AND o.id = #{info.orgId}
  668. </otherwise>
  669. </choose>
  670. <if test="info.isLock != null and info.isLock != ''">
  671. AND u.is_lock = #{info.isLock}
  672. </if>
  673. <if test="info.phone != null and info.phone != ''">
  674. AND u.phone like concat('%',concat(#{info.phone},'%'))
  675. </if>
  676. <if test="info.username != null and info.username != ''">
  677. AND u.username like concat('%', #{info.username}, '%')
  678. </if>
  679. <if test="info.name != null and info.name != ''">
  680. AND u.name like concat('%', #{info.name}, '%')
  681. </if>
  682. <if test="info.roleId != null and info.roleId != ''">
  683. AND sr.id =#{info.roleId}
  684. </if>
  685. <if test="info.onlyManager ==true">
  686. AND u.is_manage ='Y'
  687. </if>
  688. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  689. <!-- 开始时间检索 -->
  690. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  691. </if>
  692. <if test="info.params.endTime != null and info.params.endTime != ''">
  693. <!-- 结束时间检索 -->
  694. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  695. </if>
  696. group by u.id
  697. ORDER BY
  698. FIND_IN_SET( o.affiliated_bank, #{findInSetOrder} ),
  699. o.is_lock,
  700. isnull( o.sort ),
  701. o.sort,
  702. o.short_name
  703. </select>
  704. <select id="selectCountByNames" resultType="java.lang.String">
  705. select u.name from sys_user u where u.deleted=0 and u.name in
  706. <foreach collection="names" item="name" open="(" separator="," close=")">
  707. #{name}
  708. </foreach>
  709. </select>
  710. <select id="selectSecurityUser" resultType="com.xunmei.system.util.SecurityUserExport">
  711. SELECT c.id AS orgId,
  712. c.short_name AS orgName,
  713. b.`name` AS name,
  714. IFNULL(b.gender, 2) AS gender,
  715. b.card AS card,
  716. TIMESTAMPDIFF(YEAR, a.born_time, NOW()) AS age,
  717. a.dept_id AS departmentName,
  718. a.duties AS nowDuties,
  719. a.is_full_time AS isFullTime,
  720. a.work_type AS workType,
  721. a.entry_time AS entryTime,
  722. a.work_time as workTime,
  723. a.highest_education AS highestEducation,
  724. a.education_type AS educationType,
  725. a.professional_qualifications AS professionalQualifications,
  726. a.certificate_work AS certificateWork,
  727. a.certificate_fail_reason AS certificateFailReason,
  728. a.responsibilities_leader_name AS responsibilitiesLeaderName,
  729. a.responsibilities_leader_duties AS responsibilitiesLeaderDuties
  730. FROM sys_user b
  731. LEFT JOIN sys_user_information a ON a.user_id = b.id
  732. LEFT JOIN sys_org c ON c.id = b.org_id
  733. WHERE b.deleted = 0
  734. AND b.is_manage='Y'
  735. and c.path like concat(#{path}, '%')
  736. ORDER BY
  737. FIND_IN_SET( c.affiliated_bank, #{findInSetOrder} ),
  738. c.is_lock,
  739. isnull( c.sort ),
  740. c.sort,
  741. c.short_name
  742. </select>
  743. <select id="checkUserPermission" resultType="Long">
  744. select rm.menu_id from sys_user_role ur
  745. INNER JOIN sys_role_menu rm on ur.role_id=rm.role_id
  746. WHERE ur.user_id=#{userId} and rm.menu_id in
  747. <foreach collection="menuIds" item="menuId" separator="," close=")" open="(">
  748. #{menuId}
  749. </foreach>
  750. </select>
  751. <select id="selectUserByRoleIdAndOrgPath" resultMap="SysUserResult">
  752. select * from sys_user u inner join sys_user_role ur on u.id =ur.user_id
  753. where u.deleted=0
  754. <if test="path != null and path != ''">
  755. and u.org_path like concat(#{path}, '%')
  756. </if>
  757. <if test="roleIdList != null and roleIdList.size >0">
  758. and ur.role_id in
  759. <foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
  760. #{item}
  761. </foreach>
  762. </if>
  763. </select>
  764. <select id="selectSwitchUserList" resultType="com.xunmei.system.domain.vo.SysMasterSubUserVO">
  765. select
  766. GROUP_CONCAT(sr.role_name) role_names,
  767. CONCAT(',',GROUP_CONCAT( sr.id ),',') as roleIds,
  768. um.master_user_id as masterUserId,
  769. u.id as subUserId,
  770. u.org_id as subUserOrgId,
  771. u.username as subUserAccount,
  772. u.`name` as subUserName,
  773. o.short_name as subUserOrgName,
  774. '0' as associated
  775. FROM
  776. sys_user_account_mapper um
  777. INNER JOIN sys_user u ON u.id = um.sub_user_id
  778. INNER JOIN sys_org o ON o.id=u.org_id
  779. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  780. LEFT JOIN sys_role sr on sro.role_id=sr.id
  781. WHERE um.master_user_id=#{masterUserId}
  782. GROUP BY u.id
  783. <!-- select rm.menu_id from sys_user_role ur-->
  784. <!-- INNER JOIN sys_role_menu rm on ur.role_id=rm.role_id-->
  785. <!-- WHERE ur.user_id=#{userId} and rm.menu_id in-->
  786. <!-- <foreach collection="menuIds" item="menuId" separator="," close=")" open="(">-->
  787. <!-- #{menuId}-->
  788. <!-- </foreach>-->
  789. </select>
  790. <select id="selectAssociatedList" resultType="com.xunmei.system.domain.vo.SysMasterSubUserVO">
  791. select
  792. GROUP_CONCAT(sr.role_name) role_names,
  793. CONCAT(',',GROUP_CONCAT( sr.id ),',') as roleIds,
  794. um.master_user_id as masterUserId,
  795. u.id as subUserId,
  796. u.org_id as subUserOrgId,
  797. u.username as subUserAccount,
  798. u.`name` as subUserName,
  799. o.short_name as subUserOrgName,
  800. '1' as associated
  801. FROM
  802. sys_user_account_mapper um
  803. INNER JOIN sys_user u ON u.id = um.master_user_id
  804. INNER JOIN sys_org o ON o.id=u.org_id
  805. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  806. LEFT JOIN sys_role sr on sro.role_id=sr.id
  807. WHERE um.sub_user_id=#{subUserId}
  808. GROUP BY u.id
  809. </select>
  810. <select id="getFindInSetOrder" resultType="java.lang.String">
  811. SELECT
  812. s.affiliated_bank
  813. FROM
  814. sys_org s
  815. WHERE
  816. s.type = '3'
  817. AND s.deleted = 0
  818. <if test = "path != null and path != ''" >
  819. AND s.path LIKE concat( #{path} , '%')
  820. </if>
  821. GROUP BY
  822. s.affiliated_bank
  823. ORDER BY
  824. s.sort
  825. </select>
  826. </mapper>