kobe6258 1 сар өмнө
parent
commit
28edfada1d

+ 52 - 0
controllers/rag/user_chat_controller.go

@@ -53,6 +53,12 @@ func (ucCtrl *UserChatController) NewChat() {
 		br.ErrMsg = "创建失败,Err:" + err.Error()
 		return
 	}
+	_ = llmService.AddChatRecord(&llm.UserChatRecordRedis{
+		ChatId:       session.Id,
+		ChatUserType: "user",
+		Content:      req.ChatTitle,
+		SendTime:     time.Now().Format(utils.FormatDateTime),
+	})
 	br.Ret = 200
 	br.Success = true
 	br.Msg = "创建成功"
@@ -109,6 +115,52 @@ func (ucCtrl *UserChatController) RenameChat() {
 	br.Msg = "重命名成功"
 }
 
+// DeleteChat @Title 删除对话框
+// @Description 删除对话框
+// @Success 101 {object} response.ListResp
+// @router /chat/delete_chat [post]
+func (ucCtrl *UserChatController) DeleteChat() {
+	br := new(models.BaseResponse).Init()
+	defer func() {
+		ucCtrl.Data["json"] = br
+		ucCtrl.ServeJSON()
+	}()
+	var req llm_http.UserChatReq
+	err := json.Unmarshal(ucCtrl.Ctx.Input.RequestBody, &req)
+	if err != nil {
+		br.Msg = "参数解析异常!"
+		br.ErrMsg = "参数解析失败,Err:" + err.Error()
+		return
+	}
+	sysUser := ucCtrl.SysUser
+	if sysUser == nil {
+		br.Msg = "请登录"
+		br.ErrMsg = "请登录,SysUser Is Empty"
+		br.Ret = 408
+		return
+	}
+	if req.ChatId <= 0 {
+		br.Msg = "非法的对话框Id"
+		br.ErrMsg = "非法的对话框Id"
+		return
+	}
+
+	session := llm.UserLlmChat{
+		Id:         req.ChatId,
+		UpdateTime: time.Now(),
+		IsDeleted:  1,
+	}
+	err = session.DeleteChatSession()
+	if err != nil {
+		br.Msg = "删除失败"
+		br.ErrMsg = "删除失败,Err:" + err.Error()
+		return
+	}
+	br.Ret = 200
+	br.Success = true
+	br.Msg = "删除成功"
+}
+
 // GetUserChatList @Title 获取用户对话框列表
 // @Description  获取用户对话框列表
 // @Success 101 {object} response.ListResp

+ 6 - 2
models/llm/user_llm_chat.go

@@ -63,11 +63,15 @@ func (u *UserLlmChat) RenameChatSession() (err error) {
 	err = o.Select("chat_title").Updates(u).Error
 	return
 }
-
+func (u *UserLlmChat) DeleteChatSession() (err error) {
+	o := global.DbMap[utils.DbNameAI]
+	err = o.Select("is_deleted").Updates(u).Error
+	return
+}
 func GetUserChatList(userId int, monDay, toDay string) (chatList []UserLlmChatListItem, err error) {
 	o := global.DbMap[utils.DbNameAI]
 	sql := `select ulc.id AS id ,ulc.user_id as user_id,ulc.chat_title as chat_title,ulc.created_time,COUNT(ucr.id) AS record_count from user_llm_chat ulc left join user_chat_record ucr
-    ON ucr.chat_id = ulc.id where ulc.user_id=? and ` + utils.GenerateQuerySql(utils.ToDate, &utils.QueryParam{Column: "ulc.created_time"}) + ` BETWEEN ? and ? GROUP BY ulc.id order by ulc.created_time desc`
+    ON ucr.chat_id = ulc.id where ulc.user_id=? and ` + utils.GenerateQuerySql(utils.ToDate, &utils.QueryParam{Column: "ulc.created_time"}) + ` BETWEEN ? and ? AND is_deleted=0 GROUP BY ulc.id order by ulc.created_time desc`
 	err = o.Raw(sql, userId, monDay, toDay).Find(&chatList).Error
 	return
 }

+ 9 - 0
routers/commentsRouter.go

@@ -8638,6 +8638,15 @@ func init() {
             Filters: nil,
             Params: nil})
 
+    beego.GlobalControllerRouter["eta/eta_api/controllers/rag:UserChatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/rag:UserChatController"],
+        beego.ControllerComments{
+            Method: "DeleteChat",
+            Router: `/chat/delete_chat`,
+            AllowHTTPMethods: []string{"post"},
+            MethodParams: param.Make(),
+            Filters: nil,
+            Params: nil})
+
     beego.GlobalControllerRouter["eta/eta_api/controllers/rag:UserChatController"] = append(beego.GlobalControllerRouter["eta/eta_api/controllers/rag:UserChatController"],
         beego.ControllerComments{
             Method: "NewChat",