From d3fe7ded1aa94f916dec80f604e84be961bc6c3b Mon Sep 17 00:00:00 2001 From: fuzhongyun <15339891972@163.com> Date: Wed, 14 Jan 2026 15:59:49 +0800 Subject: [PATCH] =?UTF-8?q?fix:=201.=20session=E5=88=97=E8=A1=A8=E7=A7=BB?= =?UTF-8?q?=E9=99=A4=E5=88=A0=E9=99=A4=E8=AE=B0=E5=BD=95=202.=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=E5=88=A0=E9=99=A4session=E8=AE=B0=E5=BD=95=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/biz/session.go | 16 ++++++++++++++++ internal/data/impl/session_impl.go | 10 +++++++++- internal/entitys/session.go | 4 ++++ internal/server/router/router.go | 1 + internal/services/session.go | 18 ++++++++++++++++++ 5 files changed, 48 insertions(+), 1 deletion(-) diff --git a/internal/biz/session.go b/internal/biz/session.go index 2d3f419..39f4060 100644 --- a/internal/biz/session.go +++ b/internal/biz/session.go @@ -6,6 +6,7 @@ import ( "ai_scheduler/internal/data/impl" "ai_scheduler/internal/data/model" "ai_scheduler/internal/entitys" + "ai_scheduler/internal/pkg/util" "context" "time" @@ -151,9 +152,24 @@ func (s *SessionBiz) SessionList(ctx context.Context, req *entitys.SessionListRe list, err = s.sessionRepo.FindAll( s.sessionRepo.WithUserId(req.UserId), // 条件:用户ID s.sessionRepo.WithSysId(req.SysId), // 条件:系统ID + s.sessionRepo.WithDeleteAt(), // 条件:未删除 s.sessionRepo.PaginateScope(req.Page, req.PageSize), // 分页 s.sessionRepo.OrderByDesc("create_at"), // 排序:按创建时间降序 ) return } + +// DeleteSession 删除会话 +func (s *SessionBiz) DeleteSession(ctx context.Context, req *entitys.SessionDeleteRequest) error { + err := s.sessionRepo.Update( + &model.AiSession{ + DeleteAt: util.AnyToPoint(time.Now()), // 设置删除时间 + }, + s.sessionRepo.WithSessionId(req.SessionId), // 条件:会话ID + ) + if err != nil { + return err + } + return nil +} diff --git a/internal/data/impl/session_impl.go b/internal/data/impl/session_impl.go index 636c8c7..4fcf4c1 100644 --- a/internal/data/impl/session_impl.go +++ b/internal/data/impl/session_impl.go @@ -4,8 +4,9 @@ import ( "ai_scheduler/internal/data/model" "ai_scheduler/tmpl/dataTemp" "ai_scheduler/utils" - "gorm.io/gorm" "time" + + "gorm.io/gorm" ) type SessionImpl struct { @@ -46,3 +47,10 @@ func (impl *SessionImpl) WithSessionId(sessionId interface{}) CondFunc { return db.Where("session_id = ?", sessionId) } } + +// WithDeletedAt 条件:是否删除 +func (impl *SessionImpl) WithDeleteAt() CondFunc { + return func(db *gorm.DB) *gorm.DB { + return db.Where("delete_at IS NULL") + } +} diff --git a/internal/entitys/session.go b/internal/entitys/session.go index 0527329..cc91218 100644 --- a/internal/entitys/session.go +++ b/internal/entitys/session.go @@ -28,3 +28,7 @@ type UseFulRequest struct { HisId int64 `json:"his_id"` Useful int32 `json:"useful"` } + +type SessionDeleteRequest struct { + SessionId string `json:"session_id"` +} diff --git a/internal/server/router/router.go b/internal/server/router/router.go index fec3d88..3ec0b53 100644 --- a/internal/server/router/router.go +++ b/internal/server/router/router.go @@ -59,6 +59,7 @@ func SetupRoutes(app *fiber.App, ChatService *services.ChatService, sessionServi r.Post("/session/new", sessionService.NewSession) r.Post("/session/init", sessionService.SessionInit) // 会话初始化,不存在则创建,存在则返回会话ID和默认条数会话历史 r.Post("/session/list", sessionService.SessionList) + r.Post("/session/delete", sessionService.DeleteSession) // 删除会话 r.Post("/sys/tasks", task.Tasks) // 评价 diff --git a/internal/services/session.go b/internal/services/session.go index d058d17..440ee32 100644 --- a/internal/services/session.go +++ b/internal/services/session.go @@ -69,3 +69,21 @@ func (s *SessionService) SessionList(c *fiber.Ctx) error { "session_list": sessionList, }) } + +// DeleteSession 删除会话 +func (s *SessionService) DeleteSession(c *fiber.Ctx) error { + req := &entitys.SessionDeleteRequest{} + if err := c.BodyParser(req); err != nil { + return err + } + + err := s.sessionBiz.DeleteSession(c.Context(), req) + + if err != nil { + return err + } + + return c.JSON(fiber.Map{ + "message": "success", + }) +}