|
|
@@ -0,0 +1,115 @@
|
|
|
+<?xml version="1.0" encoding="UTF-8" ?>
|
|
|
+<!DOCTYPE mapper
|
|
|
+ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|
|
+ "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
|
+<mapper namespace="com.fs.crm.mapper.CrmCustomerChatMessageMapper">
|
|
|
+
|
|
|
+ <resultMap type="CrmCustomerChatMessage" id="ChatMessageResult">
|
|
|
+ <result property="msgId" column="msg_id" />
|
|
|
+ <result property="sessionId" column="session_id" />
|
|
|
+ <result property="senderType" column="sender_type" />
|
|
|
+ <result property="contentType" column="content_type" />
|
|
|
+ <result property="content" column="content" />
|
|
|
+ <result property="metadata" column="metadata" />
|
|
|
+ <result property="tokenCount" column="token_count" />
|
|
|
+ <result property="modelName" column="model_name" />
|
|
|
+ <result property="costTime" column="cost_time" />
|
|
|
+ <result property="status" column="status" />
|
|
|
+ <result property="createTime" column="create_time" />
|
|
|
+ <result property="updateTime" column="update_time" />
|
|
|
+ </resultMap>
|
|
|
+
|
|
|
+ <!-- 查询消息列表(带游标分页) -->
|
|
|
+ <select id="selectChatMessagesBySession" parameterType="java.util.HashMap" resultMap="ChatMessageResult">
|
|
|
+ SELECT msg_id, session_id, sender_type, content_type, content, metadata,
|
|
|
+ token_count, model_name, cost_time, status, create_time
|
|
|
+ FROM crm_customer_chat_message
|
|
|
+ WHERE session_id = #{sessionId}
|
|
|
+ AND status = 1
|
|
|
+ <if test="cursor != null">
|
|
|
+ <choose>
|
|
|
+ <when test="direction == 'before'">
|
|
|
+ AND create_time < FROM_UNIXTIME(#{cursor} / 1000)
|
|
|
+ </when>
|
|
|
+ <when test="direction == 'after'">
|
|
|
+ AND create_time > FROM_UNIXTIME(#{cursor} / 1000)
|
|
|
+ </when>
|
|
|
+ </choose>
|
|
|
+ </if>
|
|
|
+ ORDER BY create_time DESC
|
|
|
+ LIMIT #{limit}
|
|
|
+ </select>
|
|
|
+ <select id="selectChatMessageById" parameterType="Long" resultType="com.fs.crm.domain.CrmCustomerChatMessage">
|
|
|
+ SELECT * FROM crm_customer_chat_message WHERE msg_id = #{msgId}
|
|
|
+ </select>
|
|
|
+
|
|
|
+ <!-- 批量插入消息 -->
|
|
|
+ <insert id="batchInsertChatMessage" parameterType="java.util.List">
|
|
|
+ INSERT INTO crm_customer_chat_message
|
|
|
+ (session_id, sender_type, content_type, content, metadata, token_count, model_name, cost_time, status, create_time)
|
|
|
+ VALUES
|
|
|
+ <foreach item="message" collection="messages" separator=",">
|
|
|
+ (#{message.sessionId}, #{message.senderType}, #{message.contentType}, #{message.content},
|
|
|
+ #{message.metadata}, #{message.tokenCount}, #{message.modelName}, #{message.costTime},
|
|
|
+ #{message.status}, NOW())
|
|
|
+ </foreach>
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!-- 新增消息 -->
|
|
|
+ <insert id="insertChatMessage" parameterType="com.fs.crm.domain.CrmCustomerChatMessage">
|
|
|
+ INSERT INTO crm_customer_chat_message
|
|
|
+ <trim prefix="(" suffix=")" suffixOverrides=",">
|
|
|
+ <if test="sessionId != null">session_id,</if>
|
|
|
+ <if test="senderType != null">sender_type,</if>
|
|
|
+ <if test="contentType != null">content_type,</if>
|
|
|
+ <if test="content != null and content != ''">content,</if>
|
|
|
+ <if test="metadata != null">metadata,</if>
|
|
|
+ <if test="tokenCount != null">token_count,</if>
|
|
|
+ <if test="modelName != null">model_name,</if>
|
|
|
+ <if test="costTime != null">cost_time,</if>
|
|
|
+ <if test="status != null">status,</if>
|
|
|
+ create_time,
|
|
|
+ </trim>
|
|
|
+ <trim prefix="values (" suffix=")" suffixOverrides=",">
|
|
|
+ <if test="sessionId != null">#{sessionId},</if>
|
|
|
+ <if test="senderType != null">#{senderType},</if>
|
|
|
+ <if test="contentType != null">#{contentType},</if>
|
|
|
+ <if test="content != null and content != ''">#{content},</if>
|
|
|
+ <if test="metadata != null">#{metadata},</if>
|
|
|
+ <if test="tokenCount != null">#{tokenCount},</if>
|
|
|
+ <if test="modelName != null">#{modelName},</if>
|
|
|
+ <if test="costTime != null">#{costTime},</if>
|
|
|
+ <if test="status != null">#{status},</if>
|
|
|
+ NOW(),
|
|
|
+ </trim>
|
|
|
+ </insert>
|
|
|
+
|
|
|
+ <!-- 更新消息 -->
|
|
|
+ <update id="updateChatMessage" parameterType="com.fs.crm.domain.CrmCustomerChatMessage">
|
|
|
+ UPDATE crm_customer_chat_message
|
|
|
+ <trim prefix="SET" suffixOverrides=",">
|
|
|
+ <if test="content != null">content = #{content},</if>
|
|
|
+ <if test="metadata != null">metadata = #{metadata},</if>
|
|
|
+ <if test="tokenCount != null">token_count = #{tokenCount},</if>
|
|
|
+ <if test="modelName != null">model_name = #{modelName},</if>
|
|
|
+ <if test="costTime != null">cost_time = #{costTime},</if>
|
|
|
+ <if test="status != null">status = #{status},</if>
|
|
|
+ update_time = NOW(),
|
|
|
+ </trim>
|
|
|
+ WHERE msg_id = #{msgId}
|
|
|
+ </update>
|
|
|
+
|
|
|
+ <!-- 删除消息 -->
|
|
|
+ <delete id="deleteChatMessageById" parameterType="Long">
|
|
|
+ DELETE FROM crm_customer_chat_message WHERE msg_id = #{msgId}
|
|
|
+ </delete>
|
|
|
+
|
|
|
+ <!-- 批量删除消息 -->
|
|
|
+ <delete id="deleteChatMessageByIds" parameterType="Long">
|
|
|
+ DELETE FROM crm_customer_chat_message WHERE msg_id IN
|
|
|
+ <foreach item="msgId" collection="array" open="(" separator="," close=")">
|
|
|
+ #{msgId}
|
|
|
+ </foreach>
|
|
|
+ </delete>
|
|
|
+
|
|
|
+</mapper>
|