SysUserMapper.xml 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649
  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.linkwechat.web.mapper.SysUserMapper">
  6. <resultMap type="com.linkwechat.common.core.domain.entity.SysUser" id="SysUserResult">
  7. <id property="userId" column="user_id"/>
  8. <result property="weUserId" column="we_user_id"/>
  9. <result property="dataScope" column="data_scope"/>
  10. <result property="deptId" column="dept_id"/>
  11. <result property="userName" column="user_name"/>
  12. <result property="position" column="position"/>
  13. <result property="phoneNumber" column="phone_number"/>
  14. <result property="sex" column="sex"/>
  15. <result property="email" column="email"/>
  16. <result property="bizMail" column="biz_mail"/>
  17. <result property="leader" column="leader"/>
  18. <result property="avatar" column="avatar"/>
  19. <result property="thumbAvatar" column="thumb_avatar"/>
  20. <result property="telephone" column="telephone"/>
  21. <result property="nickName" column="nick_name"/>
  22. <result property="extAttr" column="ext_attr"/>
  23. <result property="weUserStatus" column="we_user_status"/>
  24. <result property="qrCode" column="qr_code"/>
  25. <result property="externalProfile" column="external_profile"/>
  26. <result property="externalPosition" column="external_position"/>
  27. <result property="address" column="address"/>
  28. <result property="openUserid" column="open_userid"/>
  29. <result property="password" column="password"/>
  30. <result property="status" column="status"/>
  31. <result property="delFlag" column="del_flag"/>
  32. <result property="loginIp" column="login_ip"/>
  33. <result property="loginDate" column="login_date"/>
  34. <result property="createBy" column="create_by"/>
  35. <result property="createTime" column="create_time"/>
  36. <result property="updateBy" column="update_by"/>
  37. <result property="updateTime" column="update_time"/>
  38. <result property="remark" column="remark"/>
  39. <result property="userType" column="user_type"/>
  40. <association property="dept" column="dept_id" javaType="com.linkwechat.common.core.domain.entity.SysDept" resultMap="deptResult"/>
  41. <collection property="roles" javaType="java.util.List" resultMap="RoleResult"/>
  42. </resultMap>
  43. <resultMap id="userDeptResult" type="com.linkwechat.web.domain.vo.UserVo">
  44. <id property="userId" column="user_id"/>
  45. <result property="weUserId" column="we_user_id"/>
  46. <result property="scopeDept" column="scopeDept"/>
  47. <result property="dataScope" column="data_scope" />
  48. <result property="userName" column="user_name"/>
  49. <result property="position" column="position"/>
  50. <result property="phoneNumber" column="phone_number"/>
  51. <result property="nickName" column="nick_name"/>
  52. <result property="openUserid" column="open_userid"/>
  53. <collection property="userDepts" ofType="com.linkwechat.common.core.domain.entity.SysUserDept" column="we_user_id" select="com.linkwechat.web.mapper.SysUserMapper.selectSysUserDeptList">
  54. <id property="deptId" column="dept_id"/>
  55. <result property="deptName" column="dept_name"/>
  56. <result property="deptEnName" column="dept_en_name"/>
  57. </collection>
  58. </resultMap>
  59. <resultMap id="userRoleResult" type="com.linkwechat.web.domain.vo.UserRoleVo">
  60. <id property="userId" column="user_id"/>
  61. <id property="roleId" column="role_id"/>
  62. <result property="roleName" column="role_name"/>
  63. </resultMap>
  64. <resultMap id="deptResult" type="com.linkwechat.common.core.domain.entity.SysDept">
  65. <id property="deptId" column="dept_id"/>
  66. <result property="parentId" column="parent_id"/>
  67. <result property="deptName" column="dept_name"/>
  68. <result property="deptEnName" column="dept_en_name"/>
  69. <result property="orderNum" column="order_num"/>
  70. <result property="leader" column="leader"/>
  71. <result property="status" column="dept_status"/>
  72. </resultMap>
  73. <resultMap id="RoleResult" type="com.linkwechat.common.core.domain.entity.SysRole">
  74. <id property="roleId" column="role_id"/>
  75. <result property="roleName" column="role_name"/>
  76. <result property="roleKey" column="role_key"/>
  77. <result property="roleSort" column="role_sort"/>
  78. <result property="dataScope" column="data_scope"/>
  79. <result property="status" column="role_status"/>
  80. </resultMap>
  81. <sql id="simpleUserVo">
  82. select user_id,
  83. dept_id,
  84. user_name,
  85. user_type,
  86. nick_name,
  87. email,
  88. phone_number,
  89. sex,
  90. avatar,
  91. password,
  92. status,
  93. del_flag,
  94. login_ip,
  95. login_date,
  96. create_by,
  97. create_time,
  98. update_by,
  99. update_time,
  100. remark,
  101. we_user_id,
  102. position,
  103. thumb_avatar,
  104. biz_mail,
  105. leader,
  106. telephone,
  107. ext_attr,
  108. we_user_status,
  109. qr_code,
  110. external_profile,
  111. external_position,
  112. address,
  113. open_userid
  114. from sys_user
  115. </sql>
  116. <sql id="selectUserVo">
  117. select u.user_id,
  118. ifnull(u.data_scope,5) as data_scope,
  119. u.we_user_id,
  120. u.dept_id,
  121. u.user_name,
  122. u.position,
  123. u.phone_number,
  124. u.sex,
  125. u.email,
  126. u.biz_mail,
  127. u.leader,
  128. u.avatar,
  129. u.thumb_avatar,
  130. u.telephone,
  131. u.nick_name,
  132. u.ext_attr,
  133. u.we_user_status,
  134. u.qr_code,
  135. u.external_profile,
  136. u.external_position,
  137. u.address,
  138. u.open_userid,
  139. u.password,
  140. u.status,
  141. u.del_flag,
  142. u.login_ip,
  143. u.login_date,
  144. u.create_by,
  145. u.create_time,
  146. u.remark,
  147. u.user_type,
  148. d.dept_id,
  149. d.parent_id,
  150. d.dept_name,
  151. d.dept_en_name,
  152. d.status as dept_status,
  153. r.role_id,
  154. r.role_name,
  155. r.role_key,
  156. r.role_sort,
  157. r.data_scope,
  158. r.status as role_status
  159. from sys_user u
  160. left join sys_dept d on u.dept_id = d.dept_id
  161. left join sys_user_role ur on u.user_id = ur.user_id
  162. left join sys_role r on r.role_id = ur.role_id
  163. </sql>
  164. <select id="selectUserRoleList" parameterType="java.util.List" resultMap="userRoleResult">
  165. select u.user_id,
  166. r.role_id,
  167. r.role_name
  168. from sys_user u
  169. left join sys_user_role ur on u.user_id = ur.user_id and u.user_id in
  170. <foreach collection="userIds" item="userId" open="(" separator="," close=")">
  171. #{userId}
  172. </foreach>
  173. left join sys_role r on r.role_id = ur.role_id
  174. where u.del_flag = '0' and r.role_id is not null
  175. </select>
  176. <select id="selectUserDeptList" resultMap="userDeptResult">
  177. select * from (select
  178. u.we_user_id,
  179. ifnull(u.data_scope,5) as data_scope,
  180. (SELECT GROUP_CONCAT(d.dept_name) FROM sys_user_manage_scop sums
  181. LEFT JOIN sys_dept d ON d.dept_id=sums.dept_id
  182. WHERE sums.user_id=u.user_id ) as scopeDept,
  183. u.user_id,
  184. u.user_name,
  185. u.position,
  186. u.phone_number,
  187. u.nick_name,
  188. u.open_userid
  189. from sys_user u
  190. left join sys_user_dept ud on u.we_user_id = ud.we_user_id
  191. LEFT JOIN sys_dept d ON ud.dept_id = d.dept_id
  192. LEFT JOIN sys_dept e ON u.dept_id = e.dept_id
  193. left join sys_user_role sur on sur.user_id=u.user_id
  194. where u.del_flag = 0 and u.is_user_leave=0
  195. <if test="sysUser.userName != null and sysUser.userName != ''">
  196. AND u.user_name like concat('%', #{sysUser.userName}, '%')
  197. </if>
  198. <if test="sysUser.status != null and sysUser.status != ''">
  199. AND u.status = #{sysUser.status}
  200. </if>
  201. <if test="sysUser.phoneNumber != null and sysUser.phoneNumber != ''">
  202. AND u.phone_number like concat('%', #{sysUser.phoneNumber}, '%')
  203. </if>
  204. <if test="sysUser.beginTime != null and sysUser.beginTime != ''"><!-- 开始时间检索 -->
  205. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{sysUser.beginTime},'%y%m%d')
  206. </if>
  207. <if test="sysUser.endTime != null and sysUser.endTime != ''"><!-- 结束时间检索 -->
  208. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{sysUser.endTime},'%y%m%d')
  209. </if>
  210. <if test="sysUser.roleId != null ">
  211. AND sur.role_id = #{sysUser.roleId}
  212. </if>
  213. <if test="sysUser.deptId != 1">
  214. AND u.dept_id in (select dept_id from sys_dept where find_in_set(#{sysUser.deptId}, ancestors)
  215. union
  216. select #{sysUser.deptId}
  217. )
  218. </if>
  219. union
  220. select
  221. u.we_user_id,
  222. ifnull(u.data_scope,5) as data_scope,
  223. (SELECT GROUP_CONCAT(d.dept_name) FROM sys_user_manage_scop sums
  224. LEFT JOIN sys_dept d ON d.dept_id=sums.dept_id
  225. WHERE sums.user_id=u.user_id ) as scopeDept,
  226. u.user_id,
  227. u.user_name,
  228. u.position,
  229. u.phone_number,
  230. u.nick_name,
  231. u.open_userid
  232. from sys_user u
  233. left join sys_user_dept ud on u.we_user_id = ud.we_user_id
  234. LEFT JOIN sys_dept d ON ud.dept_id = d.dept_id
  235. LEFT JOIN sys_dept e ON u.dept_id = e.dept_id
  236. left join sys_user_role sur on sur.user_id=u.user_id
  237. where u.del_flag = 0 and u.is_user_leave=0
  238. <if test="sysUser.userName != null and sysUser.userName != ''">
  239. AND u.user_name like concat('%', #{sysUser.userName}, '%')
  240. </if>
  241. <if test="sysUser.status != null and sysUser.status != ''">
  242. AND u.status = #{sysUser.status}
  243. </if>
  244. <if test="sysUser.phoneNumber != null and sysUser.phoneNumber != ''">
  245. AND u.phone_number like concat('%', #{sysUser.phoneNumber}, '%')
  246. </if>
  247. <if test="sysUser.beginTime != null and sysUser.beginTime != ''"><!-- 开始时间检索 -->
  248. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{sysUser.beginTime},'%y%m%d')
  249. </if>
  250. <if test="sysUser.endTime != null and sysUser.endTime != ''"><!-- 结束时间检索 -->
  251. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{sysUser.endTime},'%y%m%d')
  252. </if>
  253. <if test="sysUser.roleId != null ">
  254. AND sur.role_id = #{sysUser.roleId}
  255. </if>
  256. <if test="sysUser.deptId != 1">
  257. AND (ud.dept_id in (select dept_id from sys_dept where find_in_set(#{sysUser.deptId}, ancestors)
  258. union
  259. select #{
  260. sysUser.deptId}
  261. )
  262. )
  263. </if>
  264. ) aaa
  265. <if test="pageDomain !=null">
  266. <if test="pageDomain.pageNum !=null and pageDomain.pageSize !=null">
  267. limit ${pageDomain.pageSize * (pageDomain.pageNum-1)}, #{pageDomain.pageSize}
  268. </if>
  269. </if>
  270. </select>
  271. <select id="selectCountUserDeptList" parameterType="com.linkwechat.common.core.domain.entity.SysUser" resultType="int">
  272. select count(DISTINCT we_user_id) from (
  273. select
  274. u.*
  275. from sys_user u
  276. left join sys_user_dept ud on u.we_user_id = ud.we_user_id
  277. left join sys_dept d on ud.dept_id = d.dept_id
  278. LEFT JOIN sys_dept e ON u.dept_id = e.dept_id
  279. left join sys_user_role sur on sur.user_id=u.user_id
  280. where u.del_flag = 0 and u.is_user_leave=0
  281. <if test="userName != null and userName != ''">
  282. AND u.user_name like concat('%', #{userName}, '%')
  283. </if>
  284. <if test="status != null and status != ''">
  285. AND u.status = #{status}
  286. </if>
  287. <if test="phoneNumber != null and phoneNumber != ''">
  288. AND u.phone_number like concat('%', #{phoneNumber}, '%')
  289. </if>
  290. <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
  291. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
  292. </if>
  293. <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
  294. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
  295. </if>
  296. <if test="roleId != null ">
  297. AND sur.role_id = #{roleId}
  298. </if>
  299. <if test="deptId != 1">
  300. AND (
  301. u.dept_id in (select dept_id from sys_dept where find_in_set(#{deptId}, ancestors)
  302. union
  303. select #{deptId}
  304. )
  305. )
  306. </if>
  307. union all
  308. select
  309. u.*
  310. from sys_user u
  311. left join sys_user_dept ud on u.we_user_id = ud.we_user_id
  312. left join sys_dept d on ud.dept_id = d.dept_id
  313. LEFT JOIN sys_dept e ON u.dept_id = e.dept_id
  314. left join sys_user_role sur on sur.user_id=u.user_id
  315. where u.del_flag = 0 and u.is_user_leave=0
  316. <if test="userName != null and userName != ''">
  317. AND u.user_name like concat('%', #{userName}, '%')
  318. </if>
  319. <if test="status != null and status != ''">
  320. AND u.status = #{status}
  321. </if>
  322. <if test="phoneNumber != null and phoneNumber != ''">
  323. AND u.phone_number like concat('%', #{phoneNumber}, '%')
  324. </if>
  325. <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
  326. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
  327. </if>
  328. <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
  329. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
  330. </if>
  331. <if test="roleId != null ">
  332. AND sur.role_id = #{roleId}
  333. </if>
  334. <if test="deptId != 1">
  335. AND (ud.dept_id in (select dept_id from sys_dept where find_in_set(#{deptId}, ancestors)
  336. union
  337. select #{deptId}
  338. )
  339. )
  340. </if>
  341. ) aaa
  342. </select>
  343. <select id="selectUserList" parameterType="com.linkwechat.common.core.domain.entity.SysUser" resultMap="SysUserResult">
  344. select u.user_id,u.we_user_id,u.dept_id, u.nick_name, u.user_name, u.email, u.avatar, u.phone_number,
  345. u.password, u.sex, u.status, u.del_flag, u.login_ip, u.login_date, u.create_by, u.create_time, u.remark,
  346. d.dept_name, d.leader from sys_user u
  347. left join sys_dept d on u.dept_id = d.dept_id
  348. where u.del_flag = '0'
  349. <if test="userName != null and userName != ''">
  350. AND u.user_name like concat('%', #{userName}, '%')
  351. </if>
  352. <if test="status != null and status != ''">
  353. AND u.status = #{status}
  354. </if>
  355. <if test="phoneNumber != null and phoneNumber != ''">
  356. AND u.phone_number like concat('%', #{phoneNumber}, '%')
  357. </if>
  358. <if test="beginTime != null and beginTime != ''"><!-- 开始时间检索 -->
  359. AND date_format(u.create_time,'%y%m%d') &gt;= date_format(#{beginTime},'%y%m%d')
  360. </if>
  361. <if test="endTime != null and endTime != ''"><!-- 结束时间检索 -->
  362. AND date_format(u.create_time,'%y%m%d') &lt;= date_format(#{endTime},'%y%m%d')
  363. </if>
  364. <if test="deptId != null and deptId != 0">
  365. AND (u.dept_id = #{deptId} OR u.dept_id IN ( SELECT t.dept_id FROM sys_dept t WHERE FIND_IN_SET
  366. (#{deptId},ancestors) ))
  367. </if>
  368. </select>
  369. <select id="selectUserByUserName" parameterType="String" resultMap="SysUserResult">
  370. <include refid="selectUserVo"/>
  371. where (u.user_name = #{userName} or u.we_user_id = #{userName}) and u.del_flag = '0'
  372. </select>
  373. <select id="selectUserById" parameterType="Long" resultMap="SysUserResult">
  374. <include refid="selectUserVo"/>
  375. where u.user_id = #{userId}
  376. </select>
  377. <select id="checkUserNameUnique" parameterType="String" resultType="int">
  378. select count(1)
  379. from sys_user
  380. where user_name = #{userName}
  381. and del_flag = '0' limit 1
  382. </select>
  383. <select id="checkPhoneUnique" parameterType="String" resultMap="SysUserResult">
  384. select user_id, phone_number
  385. from sys_user
  386. where phone_number = #{phoneNumber}
  387. and del_flag = '0' limit 1
  388. </select>
  389. <select id="checkEmailUnique" parameterType="String" resultMap="SysUserResult">
  390. select user_id, email
  391. from sys_user
  392. where email = #{email}
  393. and del_flag = '0' limit 1
  394. </select>
  395. <select id="selectUserByWeUserId" resultMap="SysUserResult">
  396. <include refid="selectUserVo"/>
  397. <where>
  398. <if test="weUserId != null and weUserId != ''">
  399. and u.we_user_id = #{weUserId}
  400. </if>
  401. </where>
  402. </select>
  403. <insert id="insertUser" parameterType="com.linkwechat.common.core.domain.entity.SysUser" useGeneratedKeys="true" keyProperty="userId">
  404. insert into sys_user(
  405. <if test="userId != null and userId != 0">user_id,</if>
  406. <if test="weUserId != null and weUserId != ''">we_user_id,</if>
  407. <if test="deptId != null and deptId != 0">dept_id,</if>
  408. <if test="userName != null and userName != ''">user_name,</if>
  409. <if test="position != null and position != ''">position,</if>
  410. <if test="phoneNumber != null and phoneNumber != ''">phone_number,</if>
  411. <if test="sex != null and sex != ''">sex,</if>
  412. <if test="email != null and email != ''">email,</if>
  413. <if test="bizMail != null and bizMail != ''">biz_mail,</if>
  414. <if test="leader != null and leader != ''">leader,</if>
  415. <if test="avatar != null and avatar != ''">avatar,</if>
  416. <if test="thumbAvatar != null and thumbAvatar != ''">thumb_avatar,</if>
  417. <if test="telephone != null and telephone != ''">telephone,</if>
  418. <if test="nickName != null and nickName != ''">nick_name,</if>
  419. <if test="extAttr != null and extAttr != ''">ext_attr,</if>
  420. <if test="weUserStatus != null and weUserStatus != ''">we_user_status,</if>
  421. <if test="qrCode != null and qrCode != ''">qr_code,</if>
  422. <if test="externalProfile != null and externalProfile != ''">external_profile,</if>
  423. <if test="externalPosition != null and externalPosition != ''">external_position,</if>
  424. <if test="address != null and address != ''">address,</if>
  425. <if test="openUserid != null and openUserid != ''">open_userid,</if>
  426. <if test="password != null and password != ''">password,</if>
  427. <if test="status != null and status != ''">status,</if>
  428. <if test="createBy != null and createBy != ''">create_by,</if>
  429. <if test="remark != null and remark != ''">remark,</if>
  430. <if test="userType != null and userType != ''">user_type,</if>
  431. create_time
  432. )values(
  433. <if test="userId != null and userId != 0">#{userId},</if>
  434. <if test="weUserId != null and weUserId != ''">#{weUserId},</if>
  435. <if test="deptId != null and deptId != 0">#{deptId},</if>
  436. <if test="userName != null and userName != ''">#{userName},</if>
  437. <if test="position != null and position != ''">#{position},</if>
  438. <if test="phoneNumber != null and phoneNumber != ''">#{phoneNumber},</if>
  439. <if test="sex != null and sex != ''">#{sex},</if>
  440. <if test="email != null and email != ''">#{email},</if>
  441. <if test="bizMail != null and bizMail != ''">#{bizMail},</if>
  442. <if test="leader != null and leader != ''">#{leader},</if>
  443. <if test="avatar != null and avatar != ''">#{avatar},</if>
  444. <if test="thumbAvatar != null and thumbAvatar != ''">#{thumbAvatar},</if>
  445. <if test="telephone != null and telephone != ''">#{telephone},</if>
  446. <if test="nickName != null and nickName != ''">#{nickName},</if>
  447. <if test="extAttr != null and extAttr != ''">#{extAttr},</if>
  448. <if test="weUserStatus != null and weUserStatus != ''">#{weUserStatus},</if>
  449. <if test="qrCode != null and qrCode != ''">#{qrCode},</if>
  450. <if test="externalProfile != null and externalProfile != ''">#{externalProfile},</if>
  451. <if test="externalPosition != null and externalPosition != ''">#{externalPosition},</if>
  452. <if test="address != null and address != ''">#{address},</if>
  453. <if test="openUserid != null and openUserid != ''">#{openUserid},</if>
  454. <if test="password != null and password != ''">#{password},</if>
  455. <if test="status != null and status != ''">#{status},</if>
  456. <if test="createBy != null and createBy != ''">#{createBy},</if>
  457. <if test="remark != null and remark != ''">#{remark},</if>
  458. <if test="userType != null and userType != ''">#{userType},</if>
  459. sysdate()
  460. )
  461. </insert>
  462. <update id="updateUser" parameterType="com.linkwechat.common.core.domain.entity.SysUser">
  463. update sys_user
  464. <set>
  465. <if test="weUserId != null and weUserId != ''">we_user_id = #{weUserId},</if>
  466. <if test="deptId != null and deptId != 0">dept_id = #{deptId},</if>
  467. <if test="userName != null and userName != ''">user_name = #{userName},</if>
  468. <if test="position != null and position != ''">position = #{position},</if>
  469. <if test="phoneNumber != null and phoneNumber != ''">phone_number = #{phoneNumber},</if>
  470. <if test="sex != null and sex != ''">sex = #{sex},</if>
  471. <if test="email != null and email != ''">email = #{email},</if>
  472. <if test="bizMail != null and bizMail != ''">biz_mail = #{bizMail},</if>
  473. <if test="leader != null and leader != ''">leader = #{leader},</if>
  474. <if test="avatar != null and avatar != ''">avatar = #{avatar},</if>
  475. <if test="thumbAvatar != null and thumbAvatar != ''">thumb_avatar = #{thumbAvatar},</if>
  476. <if test="telephone != null and telephone != ''">telephone = #{telephone},</if>
  477. <if test="nickName != null and nickName != ''">nick_name = #{nickName},</if>
  478. <if test="extAttr != null and extAttr != ''">ext_attr = #{extAttr},</if>
  479. <if test="weUserStatus != null and weUserStatus != ''">we_user_status = #{weUserStatus},</if>
  480. <if test="qrCode != null and qrCode != ''">qr_code = #{qrCode},</if>
  481. <if test="externalProfile != null and externalProfile != ''">external_profile = #{externalProfile},</if>
  482. <if test="externalPosition != null and externalPosition != ''">external_position = #{externalPosition},</if>
  483. <if test="address != null and address != ''">address = #{address},</if>
  484. <if test="openUserid != null and openUserid != ''">open_userid = #{openUserid},</if>
  485. <if test="password != null and password != ''">password = #{password},</if>
  486. <if test="status != null and status != ''">status = #{status},</if>
  487. <if test="createBy != null and createBy != ''">create_by = #{createBy},</if>
  488. <if test="remark != null and remark != ''">remark = #{remark},</if>
  489. <if test="userType != null and userType != ''">user_type = #{userType},</if>
  490. update_time = sysdate()
  491. </set>
  492. where user_id = #{userId}
  493. </update>
  494. <update id="updateUserStatus" parameterType="com.linkwechat.common.core.domain.entity.SysUser">
  495. update sys_user
  496. set status = #{status}
  497. where user_id = #{userId}
  498. </update>
  499. <update id="updateUserAvatar" parameterType="com.linkwechat.common.core.domain.entity.SysUser">
  500. update sys_user
  501. set avatar = #{avatar}
  502. where user_name = #{userName}
  503. </update>
  504. <update id="resetUserPwd" parameterType="com.linkwechat.common.core.domain.entity.SysUser">
  505. update sys_user
  506. set password = #{password}
  507. where user_name = #{userName}
  508. </update>
  509. <delete id="deleteUserById" parameterType="Long">
  510. delete
  511. from sys_user
  512. where user_id = #{userId}
  513. </delete>
  514. <delete id="deleteUserByIds" parameterType="Long">
  515. update sys_user set del_flag = '2' where user_id in
  516. <foreach collection="array" item="userId" open="(" separator="," close=")">
  517. #{userId}
  518. </foreach>
  519. </delete>
  520. <update id="batchAddOrUpdate">
  521. insert into sys_user (user_id, dept_id, user_name, user_type, nick_name, email, phone_number, sex,
  522. avatar,password,status,login_ip,login_date,we_user_id,position, thumb_avatar,
  523. biz_mail, leader, telephone, ext_attr, we_user_status,qr_code, external_profile,
  524. external_position,address,open_userid,is_allocate,dimission_time,is_open_chat,
  525. create_by,create_by_id,create_time,update_by,update_by_id,update_time,remark)
  526. values
  527. <foreach collection="weUserList" item="weUser" index="index" separator=",">
  528. ( #{weUser.userId},#{weUser.deptId},#{weUser.userName},#{weUser.userType},#{weUser.nickName},#{weUser.email},#{weUser.phoneNumber},#{weUser.sex},
  529. #{weUser.avatar}, #{weUser.password}, #{weUser.status}, #{weUser.loginIp}, #{weUser.loginDate}, #{weUser.weUserId}, #{weUser.position}, #{weUser.thumbAvatar},
  530. #{weUser.bizMail}, #{weUser.leader}, #{weUser.telephone}, #{weUser.extAttr}, #{weUser.weUserStatus}, #{weUser.qrCode}, #{weUser.externalProfile},
  531. #{weUser.externalPosition}, #{weUser.address}, #{weUser.openUserid}, #{weUser.isAllocate}, #{weUser.dimissionTime}, #{weUser.isOpenChat},
  532. #{weUser.createBy}, #{weUser.createById}, #{weUser.createTime}, #{weUser.updateBy}, #{weUser.updateById}, #{weUser.updateTime}, #{weUser.remark}
  533. )
  534. </foreach>
  535. ON DUPLICATE KEY UPDATE
  536. dept_id=IFNULL(VALUES(dept_id), sys_user.dept_id),
  537. user_name=IFNULL(VALUES(user_name), sys_user.user_name),
  538. user_type=IFNULL(VALUES(user_type), sys_user.user_type),
  539. nick_name=IFNULL(VALUES(nick_name), sys_user.nick_name),
  540. email=IFNULL(VALUES(email), sys_user.email),
  541. phone_number=IFNULL(VALUES(phone_number), sys_user.phone_number),
  542. sex=IFNULL(VALUES(sex), sys_user.sex),
  543. avatar=IFNULL(VALUES(avatar), sys_user.avatar),
  544. password=IFNULL(VALUES(password), sys_user.password),
  545. status=IFNULL(VALUES(status), sys_user.status),
  546. login_ip=IFNULL(VALUES(login_ip), sys_user.login_ip),
  547. login_date=IFNULL(VALUES(login_date), sys_user.login_date),
  548. we_user_id=IFNULL(VALUES(we_user_id), sys_user.we_user_id),
  549. position=IFNULL(VALUES(position), sys_user.position),
  550. thumb_avatar=IFNULL(VALUES(thumb_avatar), sys_user.thumb_avatar),
  551. biz_mail=IFNULL(VALUES(biz_mail), sys_user.biz_mail),
  552. leader=IFNULL(VALUES(leader), sys_user.leader),
  553. telephone=IFNULL(VALUES(telephone), sys_user.telephone),
  554. ext_attr=IFNULL(VALUES(ext_attr), sys_user.ext_attr),
  555. we_user_status=IFNULL(VALUES(we_user_status), sys_user.we_user_status),
  556. qr_code=IFNULL(VALUES(qr_code), sys_user.qr_code),
  557. external_profile=IFNULL(VALUES(external_profile), sys_user.external_profile),
  558. external_position=IFNULL(VALUES(external_position), sys_user.external_position),
  559. address=IFNULL(VALUES(address), sys_user.address),
  560. open_userid=IFNULL(VALUES(open_userid), sys_user.open_userid),
  561. is_allocate=IFNULL(VALUES(is_allocate), sys_user.is_allocate),
  562. dimission_time=IFNULL(VALUES(dimission_time), sys_user.dimission_time),
  563. is_open_chat=IFNULL(VALUES(is_open_chat), sys_user.is_open_chat),
  564. update_by=IFNULL(VALUES(update_by), sys_user.update_by),
  565. update_by_id=IFNULL(VALUES(update_by_id), sys_user.update_by_id),
  566. update_time=IFNULL(VALUES(update_time), sys_user.update_time),
  567. remark=IFNULL(VALUES(remark), sys_user.remark);
  568. </update>
  569. <select id="findAllSysUser" resultType="com.linkwechat.common.core.domain.entity.SysUser">
  570. SELECT
  571. su.*,
  572. (SELECT GROUP_CONCAT(d.dept_name) FROM sys_dept d WHERE sud.dept_id = d.dept_id) as dept_name
  573. FROM
  574. sys_user su
  575. LEFT JOIN sys_user_dept sud on su.user_id=sud.user_id
  576. WHERE
  577. su.del_flag = 0
  578. <if test="weUserIds !='' and weUserIds !=null">
  579. and su.we_user_id in
  580. <foreach collection="weUserIds.split(',')" item="item" index="index" open="(" close=")" separator=",">
  581. #{item}
  582. </foreach>
  583. </if>
  584. <if test="positions !='' and positions !=null">
  585. and su.position in
  586. <foreach collection="positions.split(',')" item="item" index="index" open="(" close=")" separator=",">
  587. #{item}
  588. </foreach>
  589. </if>
  590. <if test="deptIds != null and deptIds != ''">
  591. and sud.dept_id in
  592. <foreach collection="deptIds.split(',')" item="item" index="index" open="(" close=")" separator=",">
  593. #{item}
  594. </foreach>
  595. </if>
  596. </select>
  597. <select id="selectSysUserDeptList" resultType="com.linkwechat.common.core.domain.entity.SysUserDept">
  598. SELECT
  599. u.we_user_id,
  600. IFNULL( d.dept_id, u.dept_id ) dept_id,
  601. IFNULL( d.dept_name, e.dept_name ) dept_name,
  602. IFNULL( d.dept_en_name, e.dept_en_name ) dept_en_name
  603. FROM
  604. sys_user u
  605. LEFT JOIN sys_user_dept ud ON u.we_user_id = ud.we_user_id
  606. LEFT JOIN sys_dept d ON ud.dept_id = d.dept_id
  607. LEFT JOIN sys_dept e ON u.dept_id = e.dept_id
  608. WHERE
  609. u.we_user_id=#{weUserId}
  610. </select>
  611. <select id="getUserDictList" resultType="com.linkwechat.common.core.domain.entity.SysUser">
  612. SELECT
  613. su.*
  614. FROM
  615. sys_user su
  616. </select>
  617. </mapper>