diff --git a/internal/biz/session.go b/internal/biz/session.go index 39f4060..2886bf1 100644 --- a/internal/biz/session.go +++ b/internal/biz/session.go @@ -173,3 +173,17 @@ func (s *SessionBiz) DeleteSession(ctx context.Context, req *entitys.SessionDele } return nil } + +// RenameSession 会话重命名 +func (s *SessionBiz) RenameSession(ctx context.Context, req *entitys.SessionRenameRequest) error { + err := s.sessionRepo.Update( + &model.AiSession{ + Title: req.NewName, // 设置会话名称 + }, + s.sessionRepo.WithSessionId(req.SessionId), // 条件:会话ID + ) + if err != nil { + return err + } + return nil +} diff --git a/internal/entitys/session.go b/internal/entitys/session.go index cc91218..4ada0a0 100644 --- a/internal/entitys/session.go +++ b/internal/entitys/session.go @@ -32,3 +32,8 @@ type UseFulRequest struct { type SessionDeleteRequest struct { SessionId string `json:"session_id"` } + +type SessionRenameRequest struct { + SessionId string `json:"session_id"` + NewName string `json:"new_name"` +} diff --git a/internal/server/router/router.go b/internal/server/router/router.go index 3ec0b53..17fff12 100644 --- a/internal/server/router/router.go +++ b/internal/server/router/router.go @@ -60,6 +60,7 @@ func SetupRoutes(app *fiber.App, ChatService *services.ChatService, sessionServi r.Post("/session/init", sessionService.SessionInit) // 会话初始化,不存在则创建,存在则返回会话ID和默认条数会话历史 r.Post("/session/list", sessionService.SessionList) r.Post("/session/delete", sessionService.DeleteSession) // 删除会话 + r.Post("/session/rename", sessionService.RenameSession) // 会话重命名 r.Post("/sys/tasks", task.Tasks) // 评价 diff --git a/internal/services/session.go b/internal/services/session.go index 440ee32..ccf58af 100644 --- a/internal/services/session.go +++ b/internal/services/session.go @@ -2,7 +2,9 @@ package services import ( "ai_scheduler/internal/biz" + errorcode "ai_scheduler/internal/data/error" "ai_scheduler/internal/entitys" + "net/http" "github.com/gofiber/fiber/v2" ) @@ -87,3 +89,24 @@ func (s *SessionService) DeleteSession(c *fiber.Ctx) error { "message": "success", }) } + +// RenameSession 会话重命名 +func (s *SessionService) RenameSession(c *fiber.Ctx) error { + req := &entitys.SessionRenameRequest{} + if err := c.BodyParser(req); err != nil { + return err + } + if req.SessionId == "" || req.NewName == "" { + return errorcode.NewBusinessErr(http.StatusBadRequest, "新会话名称不能为空") + } + + err := s.sessionBiz.RenameSession(c.Context(), req) + + if err != nil { + return err + } + + return c.JSON(fiber.Map{ + "message": "success", + }) +}