SysUserMapper.xml 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797
  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.user_name,
  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. <include refid="selectUserVo"/>
  201. where u.user_name = #{userName} and u.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
  390. h.user_id AS is_manager,
  391. <!-- ur. role_names,-->
  392. <!-- ur. roleIds,-->
  393. GROUP_CONCAT(sr.role_name) role_names,
  394. CONCAT(",",GROUP_CONCAT( sr.id ),",") as roleIds,
  395. u.id,
  396. u.dept_id,
  397. u.is_lock,
  398. u.job_id,
  399. u.NAME,
  400. u.username,
  401. u.org_id,
  402. u.phone,
  403. u.create_time,
  404. u.modified_name,
  405. u.update_time,
  406. u.modified_id,
  407. u.PASSWORD,
  408. u.salt,
  409. u.deleted,
  410. u.last_ip,
  411. u.last_time,
  412. o.short_NAME AS org_name,
  413. o.path AS org_path,
  414. o.affiliated_area,
  415. o.affiliated_bank,
  416. o.type as orgType,
  417. u.image,
  418. u.card,
  419. u.gender,
  420. u.job_number,
  421. u.note,
  422. u.is_sign,
  423. u.sign_time,
  424. u.agreement_id,
  425. u.sign_version,
  426. u.approve_status,
  427. u.locked,
  428. u.create_by,
  429. u.update_by,
  430. u.CODE,
  431. u.source,
  432. u.original_org_id,
  433. u.is_manage
  434. FROM
  435. sys_user u
  436. LEFT JOIN sys_org o ON u.original_org_id = o.id
  437. 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
  438. <!-- LIKE '%安全保卫管理人员' group by user_id) h ON h.user_id = u.id-->
  439. <!-- LEFT JOIN (select sro.user_id, GROUP_CONCAT(sr.role_name) role_names,-->
  440. <!-- CONCAT(",",GROUP_CONCAT( sr.id ),",") as roleIds from sys_user_role sro-->
  441. <!-- LEFT JOIN sys_role sr on sro.role_id=sr.id) ur on ur.user_id = u.id-->
  442. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  443. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  444. LEFT JOIN sys_role sr on sro.role_id=sr.id
  445. where 1=1
  446. and u.deleted =0
  447. <choose>
  448. <when test="info.checkSub">
  449. AND (o.path like concat('%', #{info.orgPath}, '%')
  450. <if test="info.parentOrgIds!=null and info.parentOrgIds.size()>0">
  451. or o.id in
  452. <foreach collection="info.parentOrgIds" separator="," open="(" close=")" item="orgId">
  453. #{orgId}
  454. </foreach>
  455. </if>
  456. )
  457. </when>
  458. <otherwise>
  459. AND o.id = #{info.orgId}
  460. </otherwise>
  461. </choose>
  462. <if test="info.isLock != null and info.isLock != ''">
  463. AND u.is_lock = #{info.isLock}
  464. </if>
  465. <if test="info.phone != null and info.phone != ''">
  466. AND u.phone like concat('%',concat(#{info.phone},'%'))
  467. </if>
  468. <if test="info.username != null and info.username != ''">
  469. AND u.username like concat('%', #{info.username}, '%')
  470. </if>
  471. <if test="info.name != null and info.name != ''">
  472. AND u.name like concat('%', #{info.name}, '%')
  473. </if>
  474. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  475. <!-- 开始时间检索 -->
  476. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  477. </if>
  478. <if test="info.params.endTime != null and info.params.endTime != ''">
  479. <!-- 结束时间检索 -->
  480. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  481. </if>
  482. group by u.id
  483. ) t
  484. where 1=1
  485. <if test="info.roleId != null and info.roleId != ''">
  486. AND t.roleIds like concat("%,",#{info.roleId},",%")
  487. </if>
  488. <if test="info.onlyManager ==true">
  489. AND t.is_manage ='Y'
  490. </if>
  491. <if test="info.source !=null">
  492. AND t.source =0
  493. </if>
  494. <!-- <if test="info.onlyManager ==false or info.onlyManager==null">-->
  495. <!-- AND (t.is_manage is NULL OR t.is_manage ='N')-->
  496. <!-- </if>-->
  497. ORDER BY t.org_id DESC, t.id DESC
  498. </select>
  499. <select id="selectrolesByOrgId" resultType="com.xunmei.system.api.domain.SysRole">
  500. SELECT r.*
  501. FROM sys_role r
  502. LEFT JOIN sys_org o ON r.org_type = o.type
  503. WHERE 1 = 1
  504. AND o.id = #{orgId}
  505. </select>
  506. <select id="getList" resultMap="SysUserResult">
  507. SELECT
  508. u.id,
  509. u.is_manage AS is_manager,
  510. role_name,
  511. u.dept_id,
  512. u.is_lock,
  513. u.job_id,
  514. u.NAME,
  515. u.username,
  516. u.org_id,
  517. u.phone,
  518. u.create_time,
  519. u.modified_name,
  520. u.update_time,
  521. u.modified_id,
  522. u.PASSWORD,
  523. u.salt,
  524. u.deleted,
  525. u.last_ip,
  526. u.last_time,
  527. o.NAME AS org_name,
  528. o.path AS org_path,
  529. u.image,
  530. u.card,
  531. u.gender,
  532. u.job_number,
  533. u.note,
  534. u.is_sign,
  535. u.sign_time,
  536. u.agreement_id,
  537. u.sign_version,
  538. u.approve_status,
  539. u.locked,
  540. u.create_by,
  541. u.update_by,
  542. u.CODE,
  543. u.source,
  544. u.original_org_id
  545. FROM
  546. sys_user u
  547. LEFT JOIN sys_org o ON u.original_org_id = o.id
  548. 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
  549. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  550. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  551. LEFT JOIN sys_role sr on sro.role_id=sr.id
  552. where 1=1
  553. and u.deleted =0
  554. <choose>
  555. <when test="info.checkSub">
  556. AND o.path like concat('%', #{info.orgPath}, '%')
  557. </when>
  558. <otherwise>
  559. AND o.id = #{info.orgId}
  560. </otherwise>
  561. </choose>
  562. <if test="info.isLock != null and info.isLock != ''">
  563. AND u.is_lock = #{info.isLock}
  564. </if>
  565. <if test="info.phone != null and info.phone != ''">
  566. AND u.phone like concat('%',concat(#{info.phone},'%'))
  567. </if>
  568. <if test="info.username != null and info.username != ''">
  569. AND u.username like concat('%', #{info.username}, '%')
  570. </if>
  571. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  572. <!-- 开始时间检索 -->
  573. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  574. </if>
  575. <if test="info.params.endTime != null and info.params.endTime != ''">
  576. <!-- 结束时间检索 -->
  577. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  578. </if>
  579. ORDER BY u.update_time DESC
  580. </select>
  581. <select id="selectAllUser" resultType="com.xunmei.system.api.domain.SysUser">
  582. select * from
  583. sys_user where deleted=0 and is_lock =0 and locked=0
  584. <if test="userName != null and userName != ''">
  585. AND name like concat('%', #{userName}, '%')
  586. </if>
  587. </select>
  588. <select id="selectUserListByRole" resultType="com.xunmei.system.api.domain.SysUser">
  589. select a.* from sys_user a left join sys_user_role b on a.id = b.user_id where
  590. b.role_id in
  591. <foreach collection="notificationToRoles" item="role" open="(" separator="," close=")">
  592. #{role.roleId}
  593. </foreach>
  594. </select>
  595. <select id="selectUserListByRoleAndOrg" resultType="com.xunmei.system.api.domain.SysUser">
  596. SELECT DISTINCT a.*
  597. FROM sys_user a
  598. LEFT JOIN sys_org b ON a.org_id = b.id
  599. LEFT JOIN sys_user_role c ON c.user_id = a.id
  600. LEFT JOIN sys_role d ON d.id = c.role_id
  601. WHERE a.deleted = 0
  602. AND d.del_flag = 0
  603. AND b.id = #{sysRoleOrgDTO.orgId}
  604. AND d.id IN (SELECT role_id FROM core_resumption_plan_to_role WHERE plan_id = #{sysRoleOrgDTO.planId})
  605. </select>
  606. <select id="select" resultType="com.xunmei.system.util.UserExport">
  607. SELECT
  608. GROUP_CONCAT(sr.role_name) role_names,
  609. CONCAT(',',GROUP_CONCAT( sr.id ),',') as roleIds,
  610. u.id,
  611. u.dept_id,
  612. u.is_lock,
  613. u.job_id,
  614. u.NAME,
  615. u.username,
  616. u.org_id,
  617. u.phone,
  618. u.create_time,
  619. u.modified_name,
  620. u.update_time,
  621. u.modified_id,
  622. u.PASSWORD,
  623. u.salt,
  624. u.deleted,
  625. u.last_ip,
  626. u.last_time,
  627. o.NAME AS org_name,
  628. o.path AS org_path,
  629. o.affiliated_area,
  630. o.affiliated_bank,
  631. u.image,
  632. u.card,
  633. u.gender,
  634. u.job_number,
  635. u.note,
  636. u.is_sign,
  637. u.sign_time,
  638. u.agreement_id,
  639. u.sign_version,
  640. u.approve_status,
  641. u.locked,
  642. u.create_by,
  643. u.update_by,
  644. u.CODE,
  645. u.source,
  646. u.original_org_id,
  647. u.is_manage as isManage
  648. FROM
  649. sys_user u
  650. LEFT JOIN sys_org o ON u.original_org_id = o.id
  651. 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
  652. LIKE '%安全保卫管理人员' ) h ON h.user_id = u.id
  653. LEFT JOIN sys_user_role sro on u.id=sro.user_id
  654. LEFT JOIN sys_role sr on sro.role_id=sr.id
  655. where 1=1
  656. and u.deleted =0
  657. <choose>
  658. <when test="info.checkSub">
  659. AND o.path like concat('%', #{info.orgPath}, '%')
  660. </when>
  661. <otherwise>
  662. AND o.id = #{info.orgId}
  663. </otherwise>
  664. </choose>
  665. <if test="info.isLock != null and info.isLock != ''">
  666. AND u.is_lock = #{info.isLock}
  667. </if>
  668. <if test="info.phone != null and info.phone != ''">
  669. AND u.phone like concat('%',concat(#{info.phone},'%'))
  670. </if>
  671. <if test="info.username != null and info.username != ''">
  672. AND u.username like concat('%', #{info.username}, '%')
  673. </if>
  674. <if test="info.name != null and info.name != ''">
  675. AND u.name like concat('%', #{info.name}, '%')
  676. </if>
  677. <if test="info.roleId != null and info.roleId != ''">
  678. AND sr.id =#{info.roleId}
  679. </if>
  680. <if test="info.onlyManager ==true">
  681. AND u.is_manage ='Y'
  682. </if>
  683. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  684. <!-- 开始时间检索 -->
  685. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{info.params.beginTime},'%y%m%d')
  686. </if>
  687. <if test="info.params.endTime != null and info.params.endTime != ''">
  688. <!-- 结束时间检索 -->
  689. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{info.params.endTime},'%y%m%d')
  690. </if>
  691. group by u.id
  692. </select>
  693. <select id="selectCountByNames" resultType="java.lang.String">
  694. select u.name from sys_user u where u.deleted=0 and u.name in
  695. <foreach collection="names" item="name" open="(" separator="," close=")">
  696. #{name}
  697. </foreach>
  698. </select>
  699. <select id="selectSecurityUser" resultType="com.xunmei.system.util.SecurityUserExport">
  700. SELECT c.id AS orgId,
  701. c.short_name AS orgName,
  702. b.`name` AS name,
  703. IFNULL(b.gender, 2) AS gender,
  704. b.card AS card,
  705. TIMESTAMPDIFF(YEAR, a.born_time, NOW()) AS age,
  706. a.dept_id AS departmentName,
  707. a.duties AS nowDuties,
  708. a.is_full_time AS isFullTime,
  709. a.work_type AS workType,
  710. a.entry_time AS entryTime,
  711. ROUND(TIMESTAMPDIFF(MONTH, a.work_time, NOW())/12,2) AS workDuration,
  712. a.highest_education AS highestEducation,
  713. a.education_type AS educationType,
  714. a.professional_qualifications AS professionalQualifications,
  715. a.certificate_work AS certificateWork,
  716. a.certificate_fail_reason AS certificateFailReason,
  717. a.responsibilities_leader_name AS responsibilitiesLeaderName,
  718. a.responsibilities_leader_duties AS responsibilitiesLeaderDuties
  719. FROM sys_user_information a
  720. LEFT JOIN sys_user b ON a.user_id = b.id
  721. LEFT JOIN sys_org c ON c.id = b.org_id
  722. WHERE b.deleted = 0
  723. AND b.is_manage='Y'
  724. and c.path like concat(#{path}, '%')
  725. </select>
  726. <select id="checkUserPermission" resultType="Long">
  727. select rm.menu_id from sys_user_role ur
  728. INNER JOIN sys_role_menu rm on ur.role_id=rm.role_id
  729. WHERE ur.user_id=#{userId} and rm.menu_id in
  730. <foreach collection="menuIds" item="menuId" separator="," close=")" open="(">
  731. #{menuId}
  732. </foreach>
  733. </select>
  734. <select id="selectUserByRoleIdAndOrgPath" resultMap="SysUserResult">
  735. select * from sys_user u inner join sys_user_role ur on u.id =ur.user_id
  736. where u.deleted=0
  737. <if test="path != null and path != ''">
  738. and u.org_path like concat(#{path}, '%')
  739. </if>
  740. <if test="roleIdList != null and roleIdList.size >0">
  741. and ur.role_id in
  742. <foreach collection="roleIdList" index="index" item="item" open="(" separator="," close=")">
  743. #{item}
  744. </foreach>
  745. </if>
  746. </select>
  747. <select id="selectSwitchUserList" resultType="com.xunmei.system.domain.vo.SysMasterSubUserVO">
  748. select
  749. um.master_user_id as masterUserId,
  750. u.id as subUserId,
  751. u.org_id as subUserOrgId,
  752. u.username as subUserAccount,
  753. u.`name` as subUserName,
  754. o.short_name as subUserOrgName
  755. FROM
  756. sys_user_account_mapper um
  757. INNER JOIN sys_user u ON u.id = um.sub_user_id
  758. INNER JOIN sys_org o ON o.id=u.org_id
  759. WHERE um.master_user_id=#{masterUserId}
  760. <!-- select rm.menu_id from sys_user_role ur-->
  761. <!-- INNER JOIN sys_role_menu rm on ur.role_id=rm.role_id-->
  762. <!-- WHERE ur.user_id=#{userId} and rm.menu_id in-->
  763. <!-- <foreach collection="menuIds" item="menuId" separator="," close=")" open="(">-->
  764. <!-- #{menuId}-->
  765. <!-- </foreach>-->
  766. </select>
  767. </mapper>