QwUserMapper.xml 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383
  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.fs.qw.mapper.QwUserMapper">
  6. <resultMap type="QwUser" id="QwUserResult">
  7. <result property="id" column="id" />
  8. <result property="qwUserId" column="qw_user_id" />
  9. <result property="qwUserName" column="qw_user_name" />
  10. <result property="department" column="department" />
  11. <result property="openid" column="openid" />
  12. <result property="companyId" column="company_id" />
  13. <result property="companyUserId" column="company_user_id" />
  14. <result property="corpId" column="corp_id" />
  15. <result property="status" column="status" />
  16. <result property="isDel" column="is_del" />
  17. <result property="welcomeText" column="welcome_text" />
  18. <result property="welcomeImage" column="welcome_image" />
  19. <result property="isSendMsg" column="is_send_msg" />
  20. <result property="appKey" column="app_key" />
  21. <result property="contactWay" column="contact_way" />
  22. <result property="configId" column="config_id" />
  23. <result property="qwHookId" column="qw_hook_id" />
  24. <result property="fastGptRoleId" column="fastGpt_role_id" />
  25. <result property="loginStatus" column="login_status" />
  26. <result property="toolStatus" column="tool_status" />
  27. <result property="loginCodeUrl" column="login_code_url" />
  28. <result property="version" column="version" />
  29. <result property="vid" column="vid" />
  30. <result property="uid" column="uid" />
  31. <result property="ipadStatus" column="ipad_status" />
  32. <result property="serverId" column="server_id" />
  33. <result property="serverStatus" column="server_status" />
  34. <result property="isAuto" column="is_auto" />
  35. <result property="videoGetStatus" column="video_get_status" />
  36. <result property="avatar" column="avatar" />
  37. <result property="updateTime" column="update_time" />
  38. </resultMap>
  39. <sql id="selectQwUserVo">
  40. select id,is_auto, video_get_status, qw_user_id,server_id,server_status,ipad_status,config_id,vid,uid,contact_way,app_key, qw_user_name, department, openid, company_id, company_user_id, corp_id, status, is_del, welcome_text, welcome_image, is_send_msg,app_key,qw_hook_id,fastGpt_role_id,login_status,tool_status,login_code_url,version,avatar,update_time from qw_user
  41. </sql>
  42. <select id="selectQwUserList" parameterType="QwUser" resultMap="QwUserResult">
  43. <include refid="selectQwUserVo"/>
  44. <where>
  45. 1=1 and is_del = 0 and company_user_id is not null
  46. <if test="qwUserId != null and qwUserId != ''"> and qw_user_id = #{qwUserId}</if>
  47. <if test="qwUserName != null and qwUserName != ''"> and qw_user_name like concat('%', #{qwUserName}, '%')</if>
  48. <if test="department != null and department != ''"> and department = #{department}</if>
  49. <if test="openid != null and openid != ''"> and openid = #{openid}</if>
  50. <if test="companyId != null "> and company_id = #{companyId}</if>
  51. <if test="companyUserId != null "> and company_user_id = #{companyUserId}</if>
  52. <if test="corpId != null and corpId != ''"> and corp_id = #{corpId}</if>
  53. <if test="status != null "> and status = #{status}</if>
  54. <if test="isDel != null "> and is_del = #{isDel}</if>
  55. <if test="welcomeText != null and welcomeText != ''"> and welcome_text = #{welcomeText}</if>
  56. <if test="welcomeImage != null and welcomeImage != ''"> and welcome_image = #{welcomeImage}</if>
  57. <if test="isSendMsg != null "> and is_send_msg = #{isSendMsg}</if>
  58. <if test="fastGptRoleId != null "> and fastGpt_role_id = #{fastGptRoleId}</if>
  59. <if test="loginStatus != null "> and login_status = #{loginStatus}</if>
  60. <if test="toolStatus != null "> and tool_status = #{toolStatus}</if>
  61. <if test="loginCodeUrl != null "> and login_code_url = #{loginCodeUrl}</if>
  62. <if test="version != null "> and version = #{version}</if>
  63. <if test="isAuto != null "> and is_auto = #{isAuto}</if>
  64. <if test="avatar != null "> and avatar = #{avatar}</if>
  65. </where>
  66. </select>
  67. <select id="selectQwUserById" parameterType="Long" resultMap="QwUserResult">
  68. <include refid="selectQwUserVo"/>
  69. where id = #{id}
  70. </select>
  71. <select id="batchGetQwUser" resultType="QwUser">
  72. SELECT
  73. qw_user_id,
  74. corp_id,
  75. qw_user_name
  76. FROM
  77. qw_user
  78. WHERE
  79. (qw_user_id, corp_id) IN
  80. <foreach item="item" collection="list" separator="," open="(" close=")">
  81. (#{item.qwUserid}, #{item.corpId})
  82. </foreach>
  83. </select>
  84. <insert id="insertQwUser" parameterType="QwUser" useGeneratedKeys="true" keyProperty="id">
  85. insert into qw_user
  86. <trim prefix="(" suffix=")" suffixOverrides=",">
  87. <if test="qwUserId != null">qw_user_id,</if>
  88. <if test="qwUserName != null">qw_user_name,</if>
  89. <if test="department != null">department,</if>
  90. <if test="openid != null">openid,</if>
  91. <if test="companyId != null">company_id,</if>
  92. <if test="companyUserId != null">company_user_id,</if>
  93. <if test="corpId != null">corp_id,</if>
  94. <if test="status != null">status,</if>
  95. <if test="isDel != null">is_del,</if>
  96. <if test="welcomeText != null">welcome_text,</if>
  97. <if test="welcomeImage != null">welcome_image,</if>
  98. <if test="isSendMsg != null">is_send_msg,</if>
  99. <if test="contactWay != null">contact_way,</if>
  100. <if test="configId != null">config_id,</if>
  101. <if test="appKey != null">app_key,</if>
  102. <if test="qwHookId != null">qw_hook_id,</if>
  103. <if test="fastGptRoleId != null">fastGpt_role_id,</if>
  104. <if test="loginStatus != null">login_status,</if>
  105. <if test="toolStatus != null">tool_status,</if>
  106. <if test="loginCodeUrl != null">login_code_url,</if>
  107. <if test="version != null">version,</if>
  108. <if test="vid != null">vid,</if>
  109. <if test="uid != null">uid,</if>
  110. <if test="ipadStatus != null">ipad_status,</if>
  111. <if test="serverId != null">server_id,</if>
  112. <if test="serverStatus != null">server_status,</if>
  113. <if test="isAuto != null">is_auto,</if>
  114. <if test="videoGetStatus != null">video_get_status,</if>
  115. <if test="avatar != null">avatar,</if>
  116. </trim>
  117. <trim prefix="values (" suffix=")" suffixOverrides=",">
  118. <if test="qwUserId != null">#{qwUserId},</if>
  119. <if test="qwUserName != null">#{qwUserName},</if>
  120. <if test="department != null">#{department},</if>
  121. <if test="openid != null">#{openid},</if>
  122. <if test="companyId != null">#{companyId},</if>
  123. <if test="companyUserId != null">#{companyUserId},</if>
  124. <if test="corpId != null">#{corpId},</if>
  125. <if test="status != null">#{status},</if>
  126. <if test="isDel != null">#{isDel},</if>
  127. <if test="welcomeText != null">#{welcomeText},</if>
  128. <if test="welcomeImage != null">#{welcomeImage},</if>
  129. <if test="isSendMsg != null">#{isSendMsg},</if>
  130. <if test="contactWay != null">#{contactWay},</if>
  131. <if test="configId != null">#{configId},</if>
  132. <if test="appKey != null">#{appKey},</if>
  133. <if test="qwHookId != null">#{qwHookId},</if>
  134. <if test="fastGptRoleId != null">#{fastGptRoleId},</if>
  135. <if test="loginStatus != null">#{loginStatus},</if>
  136. <if test="toolStatus != null">#{tool_status},</if>
  137. <if test="version != null">#{version},</if>
  138. <if test="vid != null">#{vid},</if>
  139. <if test="uid != null">#{uid},</if>
  140. <if test="ipadStatus != null">#{ipadStatus},</if>
  141. <if test="serverId != null">#{serverId},</if>
  142. <if test="isAuto != null">#{isAuto},</if>
  143. <if test="videoGetStatus != null">#{videoGetStatus},</if>
  144. <if test="avatar != null">#{avatar},</if>
  145. </trim>
  146. </insert>
  147. <insert id="addQwUserGroup">
  148. INSERT INTO qw_user_group (`group_name`, `company_id`, `qw_user_id`, `create_time`, `qw_user_name`,`qw_user_key`)
  149. VALUES
  150. (#{groupName}, #{companyId}, #{userIds}, #{createTime}, #{qwUserName},#{qwUserKey});
  151. </insert>
  152. <update id="updateQwUser" parameterType="QwUser">
  153. update qw_user
  154. <trim prefix="SET" suffixOverrides=",">
  155. <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
  156. <if test="qwUserName != null">qw_user_name = #{qwUserName},</if>
  157. <if test="department != null">department = #{department},</if>
  158. <if test="openid != null">openid = #{openid},</if>
  159. <if test="companyId != null">company_id = #{companyId},</if>
  160. <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
  161. <if test="corpId != null">corp_id = #{corpId},</if>
  162. <if test="status != null">status = #{status},</if>
  163. <if test="isDel != null">is_del = #{isDel},</if>
  164. <if test="welcomeText != null">welcome_text = #{welcomeText},</if>
  165. <if test="welcomeImage != null">welcome_image = #{welcomeImage},</if>
  166. <if test="isSendMsg != null">is_send_msg = #{isSendMsg},</if>
  167. <if test="contactWay != null">contact_way = #{contactWay},</if>
  168. <if test="configId != null">config_id = #{configId},</if>
  169. <if test="appKey != null">app_key = #{appKey},</if>
  170. <if test="qwHookId != null">qw_hook_id = #{qwHookId},</if>
  171. <if test="fastGptRoleId != null">fastGpt_role_id = #{fastGptRoleId},</if>
  172. <if test="loginStatus != null">login_status = #{loginStatus},</if>
  173. <if test="toolStatus != null">tool_status = #{toolStatus},</if>
  174. <if test="loginCodeUrl != null">login_code_url = #{loginCodeUrl},</if>
  175. <if test="version != null">version = #{version},</if>
  176. <if test="vid != null">`vid` = #{vid},</if>
  177. <if test="uid != null">uid = #{uid},</if>
  178. <if test="ipadStatus != null">ipad_status = #{ipadStatus},</if>
  179. <if test="serverId != null">server_id = #{serverId},</if>
  180. <if test="serverStatus != null">server_status = #{serverStatus},</if>
  181. <if test="isAuto != null">is_auto = #{isAuto},</if>
  182. <if test="videoGetStatus != null">video_get_status = #{videoGetStatus},</if>
  183. <if test="avatar != null">avatar = #{avatar},</if>
  184. </trim>
  185. where id = #{id}
  186. </update>
  187. <update id="updateQwUserByAppKey" parameterType="QwUser">
  188. update qw_user set login_status = #{loginStatus},remark = NULL
  189. <if test="version != null">,version = #{version} </if>
  190. where app_key = #{appKey}
  191. </update>
  192. <update id="updateQwUserByAppKeyTool" parameterType="QwUser">
  193. update qw_user set tool_status = #{toolStatus}
  194. where app_key = #{appKey}
  195. </update>
  196. <update id="updateQwUserByAppKeyToUrl" parameterType="QwUser">
  197. update qw_user set login_code_url = #{loginCodeUrl}
  198. where app_key = #{appKey}
  199. </update>
  200. <update id="updateQwUserByCompanyUserId" parameterType="String">
  201. update qw_user set status = 0 , is_del= 2 , company_user_id=null where company_user_id in
  202. <foreach item="userId" collection="array" open="(" separator="," close=")">
  203. #{userId}
  204. </foreach>
  205. </update>
  206. <delete id="deleteQwUserById" parameterType="Long">
  207. delete from qw_user where id = #{id}
  208. </delete>
  209. <delete id="deleteQwUserByIds" parameterType="String">
  210. delete from qw_user where id in
  211. <foreach item="id" collection="array" open="(" separator="," close=")">
  212. #{id}
  213. </foreach>
  214. </delete>
  215. <select id="selectQwUserByUserIds" parameterType="java.util.List" resultMap="QwUserResult">
  216. <include refid="selectQwUserVo"/>
  217. WHERE id IN
  218. <foreach item="userId" collection="list" open="(" separator="," close=")">
  219. #{userId}
  220. </foreach>
  221. </select>
  222. <select id="selectQwWorkTaskList" resultType="com.fs.qw.domain.QwWorkTask">
  223. select
  224. qwt.id,qwt.ext_id, qwt.qw_user_id, qwt.status, qwt.track_type, qwt.type, qwt.title, qwt.remark, qwt.score, qwt.sop_id,
  225. qwt.company_id, qwt.company_user_id, qwt.duration, qwt.create_time, qwt.update_time
  226. from qw_work_task qwt
  227. where qwt.qw_user_id = #{userId}
  228. and date(qwt.create_time) = #{date}
  229. and qwt.status = 0
  230. </select>
  231. <select id="selectQwUserByFsUserId" resultType="com.fs.qw.vo.sidebar.ExternalContactQwUserVO">
  232. SELECT
  233. qw_user.id,
  234. qw_user.qw_user_id,
  235. qw_user.qw_user_name,
  236. qw_user.department,
  237. qw_user.company_user_id,
  238. qw_user.company_id,
  239. company.company_name,
  240. company_user.nick_name as companyUserName
  241. FROM
  242. qw_user
  243. LEFT JOIN company_user ON company_user.user_id = qw_user.company_user_id
  244. LEFT JOIN company ON company.company_id = qw_user.company_id
  245. WHERE
  246. qw_user.qw_user_id IN ( SELECT user_id FROM qw_external_contact WHERE fs_user_id = #{fsUserId} )
  247. </select>
  248. <update id="updateSendType">
  249. update qw_user set send_msg_type = #{type} where id in <foreach collection="ids" open="(" close=")" separator="," item="item">#{item}</foreach>
  250. </update>
  251. <update id="batchUpdateUnbind">
  252. update qw_user set server_id = null , server_status = 0 , ipad_status = 0 where id in
  253. <foreach collection="ids" open="(" close=")" separator="," item="id">
  254. #{id}
  255. </foreach>
  256. </update>
  257. <select id="selectOfflineUser" resultType="com.fs.qw.domain.QwUser">
  258. select * from qw_user where send_msg_type = 2 and server_id is not null and server_status = 1 and ipad_status = 1 limit 1
  259. </select>
  260. <select id="batchSelectQwUserByQwUserIdAndCorpId" resultType="QwUser">
  261. SELECT qw_user_id, corp_id, qw_user_name
  262. FROM qw_user
  263. WHERE
  264. <foreach collection="data" item="query" open="(" separator=" OR " close=")">
  265. (qw_user_id = #{query.qwUserId} AND corp_id = #{query.corpId})
  266. </foreach>
  267. </select>
  268. <select id="selectQwCompanyListOptionsVOBySys" resultType="com.fs.qw.vo.QwOptionsVO">
  269. select corp_id as dictValue,corp_name as dictLabel from qw_company
  270. </select>
  271. <select id="selectQwUserListVOByCompanyIdAndCorpIdAndNickName" resultType="com.fs.qw.vo.QwUserVO">
  272. select
  273. qu.*,
  274. cu.nick_name,
  275. cu.user_name,
  276. qd.dept_name as departmentName,
  277. c.company_name
  278. from qw_user qu
  279. left join company_user cu on cu.user_id = qu.company_user_id
  280. right join qw_dept qd on qu.department = qd.dept_id and qd.corp_id = qu.corp_id
  281. left join company c on qu.company_id = c.company_id
  282. where qu.company_id = #{companyId} and qu.corp_id = #{corpId}
  283. <if test="nickName != null and nickName != ''">
  284. and qu.qw_user_name like concat('%', #{nickName}, '%')
  285. </if>
  286. </select>
  287. <!-- 递归查询子部门,不包括自己,深度5 -->
  288. <select id="selectDeptByParentId" resultType="java.lang.Long">
  289. WITH RECURSIVE sub_dept AS (
  290. SELECT dept_id, parentid, 1 as depth
  291. FROM qw_dept
  292. WHERE parentid = #{deptId} and corp_id=#{corpId}
  293. UNION ALL
  294. SELECT qd.dept_id, qd.parentid, sd.depth + 1
  295. FROM qw_dept qd
  296. INNER JOIN sub_dept sd ON qd.parentid = sd.dept_id
  297. WHERE sd.depth &lt; 5 and qd.corp_id=#{corpId}
  298. )
  299. SELECT dept_id FROM sub_dept
  300. </select>
  301. <select id="selectQwUserVoListByCompanyUserId" resultType="com.fs.qw.vo.QwUserVO">
  302. select
  303. qu.*,
  304. qc.corp_name
  305. from qw_user qu
  306. inner join qw_company qc on qu.corp_id = qc.corp_id
  307. where qu.is_del = 0 and qu.app_key is not null
  308. and qu.company_user_id = #{companyUserId}
  309. </select>
  310. <select id="selectQwUserByTest" resultMap="QwUserResult">
  311. <include refid="selectQwUserVo"/>
  312. where server_status = 1
  313. </select>
  314. <select id="selectQwUserByServerIds" resultType="com.fs.qw.domain.QwUser">
  315. <include refid="selectQwUserVo"/>
  316. where server_id in
  317. <foreach collection="serverIds" item="serverId" open="(" close=")" separator=",">
  318. #{serverId}
  319. </foreach>
  320. </select>
  321. <select id="grouplist" resultType="com.fs.qw.domain.QwUserGroup">
  322. SELECT * FROM `qw_user_group` WHERE company_id = #{companyId}
  323. </select>
  324. <select id="getNameById" resultType="java.lang.String">
  325. SELECT qw_user_name
  326. FROM qw_user
  327. <where>
  328. company_id = #{group.companyId}
  329. <if test="list != null and list.size() > 0">
  330. AND qw_user_id IN
  331. <foreach collection="list" item="userId" open="(" separator="," close=")">
  332. #{userId}
  333. </foreach>
  334. </if>
  335. </where>
  336. </select>
  337. <select id="getQwUser" resultType="com.fs.qw.domain.QwUser">
  338. SELECT * FROM `qw_user`
  339. where
  340. id in
  341. <foreach collection="list" item="id" open="(" separator="," close=")">
  342. #{id}
  343. </foreach>
  344. </select>
  345. <select id="getqwUserByphone" resultType="java.lang.Long">
  346. SELECT user_id FROM `fs_user` WHERE phone = #{phone}
  347. </select>
  348. <select id="getQwUserCompanyInfo" resultType="com.fs.qw.vo.QwUserVO">
  349. select qu.qw_user_id,qu.qw_user_name,c.company_name from qw_user qu left join company c on qu.company_id = c.company_id
  350. where qu.id = #{qwUserId}
  351. </select>
  352. </mapper>