SysUserMapper.xml 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456
  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. <id property="id" column="id"/>
  8. <result property="deptId" column="dept_id"/>
  9. <result property="username" column="user_name"/>
  10. <result property="nickName" column="nick_name"/>
  11. <result property="email" column="email"/>
  12. <result property="phonenumber" column="phonenumber"/>
  13. <result property="sex" column="sex"/>
  14. <result property="avatar" column="avatar"/>
  15. <result property="password" column="password"/>
  16. <result property="status" column="status"/>
  17. <result property="deleted" column="deleted"/>
  18. <result property="loginIp" column="login_ip"/>
  19. <result property="loginDate" column="login_date"/>
  20. <result property="createBy" column="create_by"/>
  21. <result property="createTime" column="create_time"/>
  22. <result property="updateBy" column="update_by"/>
  23. <result property="updateTime" column="update_time"/>
  24. <association property="dept" column="dept_id" javaType="com.xunmei.system.api.domain.SysDept"
  25. resultMap="deptResult"/>
  26. <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
  27. </resultMap>
  28. <!-- <resultMap type="com.xunmei.system.api.domain.SysUser" id="SyncSysUserResult">-->
  29. <!-- <id property="id" column="id" />-->
  30. <!-- <result property="username" column="user_name" />-->
  31. <!-- <result property="name" column="name" />-->
  32. <!-- <result property="email" column="email" />-->
  33. <!-- <result property="phonenumber" column="phonenumber" />-->
  34. <!-- <result property="sex" column="sex" />-->
  35. <!-- <result property="avatar" column="avatar" />-->
  36. <!-- <result property="password" column="password" />-->
  37. <!-- <result property="status" column="status" />-->
  38. <!-- <result property="delFlag" column="del_flag" />-->
  39. <!-- <result property="loginIp" column="login_ip" />-->
  40. <!-- <result property="loginDate" column="login_date" />-->
  41. <!-- <result property="createBy" column="create_by" />-->
  42. <!-- <result property="createTime" column="create_time" />-->
  43. <!-- <result property="updateBy" column="update_by" />-->
  44. <!-- <result property="updateTime" column="update_time" />-->
  45. <!-- <association property="dept" column="dept_id" javaType="com.xunmei.system.api.domain.SysDept" resultMap="deptResult" />-->
  46. <!-- <collection property="roles" javaType="java.util.List" resultMap="RoleResult" />-->
  47. <!-- </resultMap>-->
  48. <resultMap id="deptResult" type="com.xunmei.system.api.domain.SysDept">
  49. <id property="deptId" column="dept_id"/>
  50. <result property="parentId" column="parent_id"/>
  51. <result property="deptName" column="dept_name"/>
  52. <result property="ancestors" column="ancestors"/>
  53. <result property="orderNum" column="order_num"/>
  54. <result property="leader" column="leader"/>
  55. <result property="status" column="dept_status"/>
  56. </resultMap>
  57. <resultMap id="RoleResult" type="com.xunmei.system.api.domain.SysRole">
  58. <id property="roleId" column="role_id"/>
  59. <result property="roleName" column="role_name"/>
  60. <result property="roleKey" column="role_key"/>
  61. <result property="roleSort" column="role_sort"/>
  62. <result property="dataScope" column="data_scope"/>
  63. <result property="status" column="role_status"/>
  64. </resultMap>
  65. <sql id="selectUserVo">
  66. select u.id,
  67. u.dept_id,
  68. u.user_name,
  69. u.nick_name,
  70. u.avatar,
  71. u.phonenumber,
  72. u.password,
  73. u.sex,
  74. u.is_lock,
  75. u.deleted,
  76. u.login_ip,
  77. u.login_date,
  78. u.create_by,
  79. u.create_time,
  80. u.remark,
  81. u.original_org_id,
  82. d.dept_id,
  83. d.parent_id,
  84. d.ancestors,
  85. d.dept_name,
  86. d.order_num,
  87. d.leader,
  88. d.status as dept_status,
  89. r.id,
  90. r.role_name,
  91. r.role_key,
  92. r.role_sort,
  93. r.data_scope,
  94. r.status as role_status
  95. from sys_user u
  96. left join sys_dept d on u.dept_id = d.dept_id
  97. left join sys_user_role ur on u.id = ur.user_id
  98. left join sys_role r on r.id = ur.role_id
  99. </sql>
  100. <select id="selectUserList" parameterType="com.xunmei.system.api.domain.SysUser" resultMap="SysUserResult">
  101. 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,
  102. u.login_ip, u.login_date, u.create_by, u.create_time, u.remark, d.dept_name, d.leader from sys_user u
  103. left join sys_dept d on u.dept_id = d.dept_id
  104. where u.deleted = '0'
  105. <if test="userId != null and userId != 0">
  106. AND u.id = #{userId}
  107. </if>
  108. <if test="userName != null and userName != ''">
  109. AND u.user_name like concat('%', #{userName}, '%')
  110. </if>
  111. <if test="status != null and status != ''">
  112. AND u.is_lock = #{isLock}
  113. </if>
  114. <if test="phonenumber != null and phonenumber != ''">
  115. AND u.phonenumber like concat('%', #{phonenumber}, '%')
  116. </if>
  117. <if test="params.beginTime != null and params.beginTime != ''">
  118. <!-- 开始时间检索 -->
  119. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
  120. </if>
  121. <if test="params.endTime != null and params.endTime != ''">
  122. <!-- 结束时间检索 -->
  123. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
  124. </if>
  125. <if test="deptId != null and deptId != 0">
  126. AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE find_in_set(#{deptId},
  127. ancestors) ))
  128. </if>
  129. <!-- 数据范围过滤 -->
  130. ${params.dataScope}
  131. </select>
  132. <select id="selectAllocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
  133. resultType="com.xunmei.system.api.domain.SysUser">
  134. select distinct u.name as name,u.is_lock as isLock, u.id as id, u.dept_id as deptId, u.username as username,
  135. u.phone as phone, u.create_time as createTime
  136. from sys_user u
  137. left join sys_dept d on u.dept_id = d.dept_id
  138. left join sys_user_role ur on u.id = ur.user_id
  139. left join sys_role r on r.id = ur.role_id
  140. where u.deleted = '0' and r.id = #{roleId}
  141. <if test="username != null and username != ''">
  142. AND u.username like concat('%', #{username}, '%')
  143. </if>
  144. <if test="phone != null and phone != ''">
  145. AND u.phone like concat('%', #{phone}, '%')
  146. </if>
  147. <!-- 数据范围过滤 -->
  148. ${params.dataScope}
  149. </select>
  150. <select id="selectUnallocatedList" parameterType="com.xunmei.system.domain.vo.SysUserVO"
  151. resultType="com.xunmei.system.api.domain.SysUser">
  152. select distinct u.id, u.dept_id, u.username, u.name, u.phone, u.is_lock, u.create_time
  153. from sys_user u
  154. left join sys_dept d on u.dept_id = d.dept_id
  155. left join sys_user_role ur on u.id = ur.user_id
  156. left join sys_role r on r.id = ur.role_id
  157. where u.deleted = 0 and (r.id != #{roleId} or r.id IS NULL)
  158. 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 =
  159. #{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="selectSyncUserList" parameterType="com.xunmei.system.api.domain.SysUser"
  170. resultType="com.xunmei.system.api.domain.SysUser">
  171. select *
  172. from sys_user u
  173. <where>
  174. <if test="source != null">
  175. AND u.source =#{source}
  176. </if>
  177. <if test="orgId != null">
  178. AND u.org_id =#{orgId}
  179. </if>
  180. </where>
  181. </select>
  182. <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
  183. <include refid="selectUserVo"/>
  184. where u.user_name = #{userName} and u.deleted = 0
  185. </select>
  186. <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
  187. <include refid="selectUserVo"/>
  188. where u.id = #{userId}
  189. </select>
  190. <select id="checkUserNameUnique" parameterType="String" resultType="com.xunmei.system.api.domain.SysUser">
  191. select id, username
  192. from sys_user
  193. where username = #{userName}
  194. and deleted = '0'
  195. limit 1
  196. </select>
  197. <select id="checkPhoneUnique" parameterType="String" resultType="com.xunmei.system.api.domain.SysUser">
  198. select id, phone
  199. from sys_user
  200. where phone = #{phonenumber}
  201. and deleted = '0'
  202. limit 1
  203. </select>
  204. <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
  205. select user_id, email
  206. from sys_user
  207. where email = #{email}
  208. and deleted = '0'
  209. limit 1
  210. </select>
  211. <insert id="insertUser" parameterType="com.xunmei.system.api.domain.SysUser" useGeneratedKeys="true"
  212. keyProperty="userId">
  213. insert into sys_user(
  214. <if test="userId != null and userId != 0">
  215. user_id,
  216. </if>
  217. <if test="deptId != null and deptId != 0">
  218. dept_id,
  219. </if>
  220. <if test="userName != null and userName != ''">
  221. user_name,
  222. </if>
  223. <if test="nickName != null and nickName != ''">
  224. nick_name,
  225. </if>
  226. <if test="email != null and email != ''">
  227. email,
  228. </if>
  229. <if test="avatar != null and avatar != ''">
  230. avatar,
  231. </if>
  232. <if test="phonenumber != null and phonenumber != ''">
  233. phonenumber,
  234. </if>
  235. <if test="sex != null and sex != ''">
  236. sex,
  237. </if>
  238. <if test="password != null and password != ''">
  239. password,
  240. </if>
  241. <if test="status != null and status != ''">
  242. status,
  243. </if>
  244. <if test="createBy != null and createBy != ''">
  245. create_by,
  246. </if>
  247. <if test="remark != null and remark != ''">
  248. remark,
  249. </if>
  250. create_time
  251. )values(
  252. <if test="userId != null and userId != ''">
  253. #{userId},
  254. </if>
  255. <if test="deptId != null and deptId != ''">
  256. #{deptId},
  257. </if>
  258. <if test="userName != null and userName != ''">
  259. #{userName},
  260. </if>
  261. <if test="nickName != null and nickName != ''">
  262. #{nickName},
  263. </if>
  264. <if test="email != null and email != ''">
  265. #{email},
  266. </if>
  267. <if test="avatar != null and avatar != ''">
  268. #{avatar},
  269. </if>
  270. <if test="phonenumber != null and phonenumber != ''">
  271. #{phonenumber},
  272. </if>
  273. <if test="sex != null and sex != ''">
  274. #{sex},
  275. </if>
  276. <if test="password != null and password != ''">
  277. #{password},
  278. </if>
  279. <if test="status != null and status != ''">
  280. #{status},
  281. </if>
  282. <if test="createBy != null and createBy != ''">
  283. #{createBy},
  284. </if>
  285. <if test="remark != null and remark != ''">
  286. #{remark},
  287. </if>
  288. sysdate()
  289. )
  290. </insert>
  291. <update id="updateUser" parameterType="com.xunmei.system.api.domain.SysUser">
  292. update sys_user
  293. <set>
  294. <if test="deptId != null and deptId != 0">
  295. dept_id = #{deptId},
  296. </if>
  297. <if test="userName != null and userName != ''">
  298. user_name = #{userName},
  299. </if>
  300. <if test="nickName != null and nickName != ''">
  301. nick_name = #{nickName},
  302. </if>
  303. <if test="email != null ">
  304. email = #{email},
  305. </if>
  306. <if test="phonenumber != null ">
  307. phonenumber = #{phonenumber},
  308. </if>
  309. <if test="sex != null and sex != ''">
  310. sex = #{sex},
  311. </if>
  312. <if test="avatar != null and avatar != ''">
  313. avatar = #{avatar},
  314. </if>
  315. <if test="password != null and password != ''">
  316. password = #{password},
  317. </if>
  318. <if test="status != null and status != ''">
  319. status = #{status},
  320. </if>
  321. <if test="loginIp != null and loginIp != ''">
  322. login_ip = #{loginIp},
  323. </if>
  324. <if test="loginDate != null">
  325. login_date = #{loginDate},
  326. </if>
  327. <if test="updateBy != null and updateBy != ''">
  328. update_by = #{updateBy},
  329. </if>
  330. <if test="remark != null">
  331. remark = #{remark},
  332. </if>
  333. update_time = sysdate()
  334. </set>
  335. where user_id = #{userId}
  336. </update>
  337. <update id="updateUserStatus" parameterType="com.xunmei.system.api.domain.SysUser">
  338. update sys_user
  339. set status = #{status}
  340. where user_id = #{userId}
  341. </update>
  342. <update id="updateUserAvatar" parameterType="com.xunmei.system.api.domain.SysUser">
  343. update sys_user
  344. set avatar = #{avatar}
  345. where user_name = #{userName}
  346. </update>
  347. <update id="resetUserPwd" parameterType="com.xunmei.system.api.domain.SysUser">
  348. update sys_user
  349. set password = #{password}
  350. where username = #{userName}
  351. </update>
  352. <delete id="deleteUserById" parameterType="Long">
  353. update sys_user
  354. set deleted = '2'
  355. where user_id = #{userId}
  356. </delete>
  357. <delete id="deleteUserByIds" parameterType="Long">
  358. update sys_user set deleted= '1' where id in
  359. <foreach collection="array" item="userId" open="(" separator="," close=")">
  360. #{userId}
  361. </foreach>
  362. </delete>
  363. <select id="selectSysByUserId" resultType="com.xunmei.system.api.domain.SysOrg">
  364. select *
  365. from sys_org o
  366. inner join sys_user u on o.id = u.org_id
  367. where u.id = #{userId}
  368. </select>
  369. <select id="getPage" resultType="com.xunmei.system.api.domain.SysUser">
  370. select
  371. u.id,
  372. u.dept_id,
  373. u.is_lock,
  374. u.job_id,
  375. u.name,
  376. u.username,
  377. u.org_id,
  378. u.phone,
  379. u.create_time,
  380. u.modified_name,
  381. u.update_time,
  382. u.modified_id,
  383. u.password,
  384. u.salt,
  385. u.deleted,
  386. u.last_ip,
  387. u.last_time,
  388. o.name as org_name,
  389. o.path as org_path,
  390. u.image,
  391. u.card,
  392. u.gender,
  393. u.job_number,
  394. u.note,
  395. u.is_sign,
  396. u.sign_time,
  397. u.agreement_id,
  398. u.sign_version,
  399. u.approve_status,
  400. u.locked,
  401. u.create_by,
  402. u.update_by,
  403. u.code,
  404. u.source,
  405. u.original_org_id
  406. from sys_user u
  407. left join sys_org o on u.original_org_id = o.id
  408. where 1=1
  409. <choose>
  410. <when test="info.checkSub">
  411. AND o.path like concat('%', #{info.orgPath}, '%')
  412. </when>
  413. <otherwise>
  414. AND o.id = #{info.orgId}
  415. </otherwise>
  416. </choose>
  417. <if test="info.isLock != null and info.isLock != ''">
  418. AND u.is_lock = #{isLock}
  419. </if>
  420. <if test="info.username != null and info.username != ''">
  421. AND u.username like concat('%', #{info.username}, '%')
  422. </if>
  423. <if test="info.params.beginTime != null and info.params.beginTime != ''">
  424. <!-- 开始时间检索 -->
  425. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
  426. </if>
  427. <if test="info.params.endTime != null and info.params.endTime != ''">
  428. <!-- 结束时间检索 -->
  429. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
  430. </if>
  431. </select>
  432. </mapper>