Ver Fonte

保存聊天接口,聊天接口详情新增文件对象操作。

S0025136190 há 7 meses atrás
pai
commit
213b295fc7

+ 1 - 1
takai-ai/src/main/java/com/takai/ai/domain/dto/TakaiDialogRespDTO.java

@@ -15,7 +15,7 @@ public class TakaiDialogRespDTO {
     private String appId;
 
     @Excel(name = "知识库ID")
-    private String knowledgeIdd;
+    private String knowledgeId;
 
     @Excel(name = "用户ID")
     private String userId;

+ 2 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/dto/DialogDetailReqDTO.java

@@ -18,4 +18,6 @@ public class DialogDetailReqDTO {
     private String date;
 
     private String dialogId;
+
+    private DocumentDTO document;
 }

+ 3 - 1
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/dto/DialogRespDTO.java

@@ -15,7 +15,7 @@ public class DialogRespDTO {
     private String appId;
 
     @Excel(name = "知识库ID")
-    private String knowledgeIdd;
+    private String knowledgeId;
 
     @Excel(name = "用户ID")
     private String userId;
@@ -36,5 +36,7 @@ public class DialogRespDTO {
     @Excel(name = "创建时间")
     private LocalDateTime create_time;
 
+    private DocumentDTO document;
+
 
 }

+ 14 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/dto/DocumentDTO.java

@@ -0,0 +1,14 @@
+package com.takai.bigmodel.domain.dto;
+
+import lombok.Data;
+
+@Data
+public class DocumentDTO {
+
+    private String id;
+
+    private String name;
+
+    private String url;
+
+}

+ 18 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/domain/entity/FileInfo.java

@@ -0,0 +1,18 @@
+package com.takai.bigmodel.domain.entity;
+
+import com.takai.common.core.domain.BaseEntity;
+import lombok.Data;
+
+@Data
+public class FileInfo extends BaseEntity {
+
+    private String id;
+
+    private String name;
+
+    private String url;
+
+    private String dialogId;
+
+    private String dialogDid;
+}

+ 12 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/mapper/FileInfoMapper.java

@@ -0,0 +1,12 @@
+package com.takai.bigmodel.mapper;
+
+import com.takai.bigmodel.domain.entity.FileInfo;
+import org.apache.ibatis.annotations.Param;
+
+public interface FileInfoMapper {
+
+    FileInfo getFileInfoById(@Param("id") String id, @Param("dialogId") String dialogId, @Param("dialogDid") String dialogDid);
+
+    int insertFileInfo(FileInfo fileInfo);
+
+}

+ 27 - 0
takai-bigmodel/src/main/java/com/takai/bigmodel/service/impl/BigModelServiceImpl.java

@@ -20,6 +20,7 @@ import okhttp3.sse.EventSource;
 import okhttp3.sse.EventSourceListener;
 import okhttp3.sse.EventSources;
 import org.apache.commons.io.FileUtils;
+import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
 import org.springframework.stereotype.Service;
@@ -74,6 +75,9 @@ public class BigModelServiceImpl implements IBigModelService
     @Autowired
     private QuestionMapper questionMapper;
 
+    @Autowired
+    private FileInfoMapper fileInfoMapper;
+
 
     @Override
     public List<BmMediaReplacement> selectMediaList(BmMediaReplacement mData) {
@@ -592,6 +596,19 @@ public class BigModelServiceImpl implements IBigModelService
                 //dto.setId(dto.getId());
                 dialogMapper.insertDialogDetail(dto);
             }
+
+            if(dto.getDocument() != null && !"".equals(dto.getDocument().getId())){
+                FileInfo fileInfo = fileInfoMapper.getFileInfoById(dto.getDocument().getId(), dialogId, dto.getId());
+                if(fileInfo == null && "user".equals(dto.getRole())) {
+                    FileInfo params = new FileInfo();
+                    params.setId(dto.getDocument().getId());
+                    params.setName(dto.getDocument().getName());
+                    params.setUrl(dto.getDocument().getUrl());
+                    params.setDialogId(dialogId);
+                    params.setDialogDid(dto.getId());
+                    fileInfoMapper.insertFileInfo(params);
+                }
+            }
         }
     }
 
@@ -627,6 +644,16 @@ public class BigModelServiceImpl implements IBigModelService
     @Override
     public List<DialogRespDTO> getDialogDetail(String dialogId) {
         List<DialogRespDTO> detail = dialogMapper.selectDialogDetail(dialogId);
+        if(detail != null && detail.size() != 0){
+            for(DialogRespDTO dto : detail){
+                FileInfo fileInfo = fileInfoMapper.getFileInfoById(null, dto.getDialog_id(), dto.getDid());
+                if(fileInfo != null){
+                    DocumentDTO fileInfoDTO = new DocumentDTO();
+                    BeanUtils.copyProperties(fileInfo, fileInfoDTO);
+                    dto.setDocument(fileInfoDTO);
+                }
+            }
+        }
         return detail;
     }
 

+ 48 - 0
takai-bigmodel/src/main/resources/mapper/bm/FileInfoMapper.xml

@@ -0,0 +1,48 @@
+<?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.takai.bigmodel.mapper.FileInfoMapper">
+	
+	<resultMap type="com.takai.bigmodel.domain.entity.FileInfo" id="FileInfoResult">
+		<id property="id"   column="id"   />
+		<result property="name"  column="name"  />
+		<result property="url"  column="url"  />
+		<result property="dialogId"   column="dialog_id"   />
+		<result property="dialogDid"   column="dialog_did"  />
+		<result property="createBy"   column="create_by"   />
+		<result property="createTime" column="create_time" />
+		<result property="updateBy"   column="update_by"   />
+		<result property="updateTime" column="update_time" />
+	</resultMap>
+
+	<select id="getFileInfoById" resultMap="FileInfoResult">
+	    select id, name, url, dialog_id, dialog_did from file_info
+		 <where>
+			 <if test="id != null and id != ''">id = #{id}</if>
+			 <if test="dialogId != null and dialogId != ''">and dialog_id = #{dialogId}</if>
+			 <if test="dialogDid != null and dialogDid != ''">and dialog_did = #{dialogDid}</if>
+		 </where>
+	</select>
+
+ 	<insert id="insertFileInfo" parameterType="FileInfo">
+ 		insert into file_info(
+ 			<if test="id != null and id != ''">id,</if>
+ 			<if test="name != null and name != ''">name,</if>
+ 			<if test="url != null and url != ''">url,</if>
+ 			<if test="dialogId != null and dialogId != ''">dialog_id,</if>
+		    <if test="dialogDid != null and dialogDid != ''">dialog_did,</if>
+ 			<if test="createBy != null and createBy != ''">create_by,</if>
+ 			create_time
+ 		)values(
+			<if test="id != null and id != ''">#{id},</if>
+			<if test="name != null and name != ''">#{name},</if>
+			<if test="url != null and url != ''">#{url},</if>
+			<if test="dialogId != null and dialogId != ''">#{dialogId},</if>
+			<if test="dialogDid != null and dialogDid != ''">#{dialogDid},</if>
+ 			<if test="createBy != null and createBy != ''">#{createBy},</if>
+ 			sysdate()
+ 		)
+	</insert>
+
+</mapper>