QwUserVoiceLogMapper.xml 8.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173
  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.QwUserVoiceLogMapper">
  6. <resultMap type="QwUserVoiceLog" id="QwUserVoiceLogResult">
  7. <result property="id" column="id" />
  8. <result property="extId" column="ext_id" />
  9. <result property="qwUserId" column="qw_user_id" />
  10. <result property="duration" column="duration" />
  11. <result property="title" column="title" />
  12. <result property="status" column="status" />
  13. <result property="corpId" column="corp_id" />
  14. <result property="companyId" column="company_id" />
  15. <result property="companyUserId" column="company_user_id" />
  16. <result property="createTime" column="create_time" />
  17. </resultMap>
  18. <resultMap type="com.fs.qw.vo.QwUserVoiceLogTotalVo" id="QwUserVoiceLogVoTotalResult">
  19. <result property="id" column="id" />
  20. <result property="corpId" column="corp_id" />
  21. <result property="duration" column="duration" />
  22. <result property="connectCount" column="connectCount" />
  23. <result property="noConnectCount" column="noConnectCount" />
  24. <result property="createTime" column="create_time" />
  25. <result property="companyUserId" column="company_user_id" />
  26. <association property="qwUser" javaType="com.fs.qw.domain.QwUser" autoMapping="true">
  27. <id column="qw_user_id" property="qwUserId"></id>
  28. <result column="qw_user_name" property="qwUserName"></result>
  29. </association>
  30. </resultMap>
  31. <resultMap type="com.fs.qw.vo.QwUserVoiceLogVo" id="QwUserVoiceLogVoResult" extends="QwUserVoiceLogResult">
  32. <association property="qwExternalContact" javaType="com.fs.qw.domain.QwExternalContact" autoMapping="true">
  33. <id column="id" property="id"></id>
  34. <result column="name" property="name"></result>
  35. </association>
  36. <association property="company" javaType="com.fs.company.domain.Company" autoMapping="true">
  37. <id column="company_id" property="companyId"></id>
  38. <result column="company_name" property="companyName"></result>
  39. </association>
  40. <association property="companyUser" javaType="com.fs.company.domain.CompanyUser" autoMapping="true">
  41. <id column="user_id" property="userId"></id>
  42. <result column="user_name" property="userName"></result>
  43. </association>
  44. <association property="qwUser" javaType="com.fs.qw.domain.QwUser" autoMapping="true">
  45. <id column="qw_uer_id" property="qwUserId"></id>
  46. <result column="qw_user_name" property="qwUserName"></result>
  47. </association>
  48. </resultMap>
  49. <sql id="selectQwUserVoiceLogVo">
  50. select id, ext_id, qw_user_id, duration, title, status, corp_id, company_id, company_user_id, create_time from qw_user_voice_log
  51. </sql>
  52. <select id="selectQwUserVoiceLogList" resultMap="QwUserVoiceLogVoResult">
  53. select uvl.id, ext_id, uvl.qw_user_id, duration, title, uvl.status, uvl.corp_id, uvl.company_id, uvl.company_user_id, uvl.create_time,qec.`name`,qec.tag_ids,c.company_name,cu.user_name,qu.qw_user_name
  54. from qw_user_voice_log uvl
  55. left join qw_external_contact qec on uvl.ext_id = qec.id
  56. left join company c on uvl.company_id = c.company_id
  57. left join company_user cu on uvl.company_user_id = cu.user_id
  58. left join qw_user qu on uvl.qw_user_id = qu.id
  59. <where>
  60. <if test="extName != null "> and qec.name like concat(#{extName}, '%')</if>
  61. <if test="qwUserName != null "> and qu.qw_user_name like concat(#{qwUserName}, '%')</if>
  62. <if test="title != null and title != ''"> and uvl.title = #{title}</if>
  63. <if test="status != null "> and uvl.status = #{status}</if>
  64. <if test="tagIds != null">
  65. and
  66. <foreach collection="tagIds" item="tagId" separator="and">
  67. <!-- 使用JSON_CONTAINS检查JSON数组中是否包含指定元素 -->
  68. JSON_CONTAINS(qec.tag_ids, CONCAT('"', #{tagId}, '"'))
  69. </foreach>
  70. </if>
  71. <if test="corpId != null and corpId != ''"> and uvl.corp_id = #{corpId}</if>
  72. <if test="companyId != null "> and c.company_id = #{companyId}</if>
  73. <if test="companyName != null "> and c.company_name like concat(#{companyName}, '%')</if>
  74. <if test="companyUserId != null "> and cu.user_id = #{companyUserId}</if>
  75. <if test="companyUserName != null and companyUserName != ''"> and cu.user_name like concat(#{companyUserName}, '%')</if>
  76. <if test="beginTime != null and endTime != null">
  77. AND date_format(uvl.create_time,'%Y-%m-%d') &gt;= #{beginTime}
  78. AND date_format(uvl.create_time,'%Y-%m-%d') &lt;= #{endTime}
  79. </if>
  80. </where>
  81. </select>
  82. <select id="selectQwUserVoiceLogById" parameterType="Long" resultMap="QwUserVoiceLogResult">
  83. <include refid="selectQwUserVoiceLogVo"/>
  84. where id = #{id}
  85. </select>
  86. <select id="selectQwUserVoiceLogTotalList" resultMap="QwUserVoiceLogVoTotalResult">
  87. SELECT
  88. SUM(duration) duration,qu.qw_user_name,uvl.corp_id,qu.qw_user_id,uvl.company_user_id,
  89. COUNT(CASE WHEN uvl.status=1 THEN 1 END) AS connectCount,
  90. COUNT(CASE WHEN uvl.status=2 THEN 1 END) AS noConnectCount
  91. FROM qw_user_voice_log uvl
  92. LEFT JOIN qw_user qu ON uvl.qw_user_id = qu.id
  93. <where>
  94. <if test="companyId != null ">and uvl.company_id = #{companyId}</if>
  95. <if test="companyUserId != null ">and uvl.company_user_id = #{companyUserId}</if>
  96. <if test="qwUserName != null ">and qu.qw_user_name like concat(#{qwUserName}, '%')</if>
  97. <if test="beginTime != null and endTime != null">
  98. AND date_format(uvl.create_time,'%Y-%m-%d') &gt;= #{beginTime}
  99. AND date_format(uvl.create_time,'%Y-%m-%d') &lt;= #{endTime}
  100. </if>
  101. </where>
  102. <if test="qwUserId != null">
  103. group by qu.qw_user_id,uvl.corp_id,uvl.qw_user_id
  104. </if>
  105. <if test="qwUserId == null">
  106. group by qu.company_user_id
  107. </if>
  108. </select>
  109. <insert id="insertQwUserVoiceLog" parameterType="QwUserVoiceLog" useGeneratedKeys="true" keyProperty="id">
  110. insert into qw_user_voice_log
  111. <trim prefix="(" suffix=")" suffixOverrides=",">
  112. <if test="extId != null">ext_id,</if>
  113. <if test="qwUserId != null">qw_user_id,</if>
  114. <if test="duration != null">duration,</if>
  115. <if test="title != null">title,</if>
  116. <if test="status != null">status,</if>
  117. <if test="corpId != null">corp_id,</if>
  118. <if test="companyId != null">company_id,</if>
  119. <if test="companyUserId != null">company_user_id,</if>
  120. <if test="createTime != null">create_time,</if>
  121. </trim>
  122. <trim prefix="values (" suffix=")" suffixOverrides=",">
  123. <if test="extId != null">#{extId},</if>
  124. <if test="qwUserId != null">#{qwUserId},</if>
  125. <if test="duration != null">#{duration},</if>
  126. <if test="title != null">#{title},</if>
  127. <if test="status != null">#{status},</if>
  128. <if test="corpId != null">#{corpId},</if>
  129. <if test="companyId != null">#{companyId},</if>
  130. <if test="companyUserId != null">#{companyUserId},</if>
  131. <if test="createTime != null">#{createTime},</if>
  132. </trim>
  133. </insert>
  134. <update id="updateQwUserVoiceLog" parameterType="QwUserVoiceLog">
  135. update qw_user_voice_log
  136. <trim prefix="SET" suffixOverrides=",">
  137. <if test="extId != null">ext_id = #{extId},</if>
  138. <if test="qwUserId != null">qw_user_id = #{qwUserId},</if>
  139. <if test="duration != null">duration = #{duration},</if>
  140. <if test="title != null">title = #{title},</if>
  141. <if test="status != null">status = #{status},</if>
  142. <if test="corpId != null">corp_id = #{corpId},</if>
  143. <if test="companyId != null">company_id = #{companyId},</if>
  144. <if test="companyUserId != null">company_user_id = #{companyUserId},</if>
  145. <if test="createTime != null">create_time = #{createTime},</if>
  146. </trim>
  147. where id = #{id}
  148. </update>
  149. <delete id="deleteQwUserVoiceLogById" parameterType="Long">
  150. delete from qw_user_voice_log where id = #{id}
  151. </delete>
  152. <delete id="deleteQwUserVoiceLogByIds" parameterType="String">
  153. delete from qw_user_voice_log where id in
  154. <foreach item="id" collection="array" open="(" separator="," close=")">
  155. #{id}
  156. </foreach>
  157. </delete>
  158. </mapper>