QwUserMapper.xml 17 KB

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