feat:session wire

This commit is contained in:
wolter 2025-09-18 15:48:01 +08:00
parent 11241af84c
commit a43c19eb48
8 changed files with 40 additions and 14 deletions

View File

@ -2,4 +2,4 @@ package biz
import "github.com/google/wire" import "github.com/google/wire"
var ProviderSetBiz = wire.NewSet(NewAiRouterBiz) var ProviderSetBiz = wire.NewSet(NewAiRouterBiz, NewSessionBiz)

View File

@ -52,8 +52,6 @@ func (s *SessionBiz) SessionInit(ctx context.Context, req *entitys.SessionInitRe
session = model.AiSession{ session = model.AiSession{
SysID: sysConfig.SysID, SysID: sysConfig.SysID,
SessionID: utils.UUID(), SessionID: utils.UUID(),
CreateAt: time.Now(),
UpdateAt: time.Now(),
} }
err = s.sessionRepo.Create(&session) err = s.sessionRepo.Create(&session)
if err != nil { if err != nil {

View File

@ -20,6 +20,7 @@ BaseModel 是一个泛型结构体用于封装GORM数据库通用操作。
// 定义受支持的PO类型集合可根据需要扩展, 只有包含表结构才能使用BaseModel避免使用出现问题 // 定义受支持的PO类型集合可根据需要扩展, 只有包含表结构才能使用BaseModel避免使用出现问题
type PO interface { type PO interface {
model.AiChatHi |
model.AiSy | model.AiSession | model.AiTask model.AiSy | model.AiSession | model.AiTask
} }

View File

@ -0,0 +1,25 @@
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
// Code generated by gorm.io/gen. DO NOT EDIT.
package model
import (
"time"
)
const TableNameAiChatHi = "ai_chat_his"
// AiChatHi mapped from table <ai_chat_his>
type AiChatHi struct {
HisID int64 `gorm:"column:his_id;primaryKey" json:"his_id"`
SessionID string `gorm:"column:session_id;not null" json:"session_id"`
Role string `gorm:"column:role;not null" json:"role"`
Content string `gorm:"column:content;not null" json:"content"`
CreateAt *time.Time `gorm:"column:create_at;default:CURRENT_TIMESTAMP" json:"create_at"`
}
// TableName AiChatHi's table name
func (*AiChatHi) TableName() string {
return TableNameAiChatHi
}

View File

@ -12,14 +12,15 @@ const TableNameAiSession = "ai_session"
// AiSession mapped from table <ai_session> // AiSession mapped from table <ai_session>
type AiSession struct { type AiSession struct {
SysID int32 `gorm:"column:sys_id;not null" json:"sys_id"`
SessionID string `gorm:"column:session_id;primaryKey" json:"session_id"` SessionID string `gorm:"column:session_id;primaryKey" json:"session_id"`
SysID int32 `gorm:"column:sys_id;not null" json:"sys_id"`
KnowlegeSessionID string `gorm:"column:knowlege_session_id;not null" json:"knowlege_session_id"` KnowlegeSessionID string `gorm:"column:knowlege_session_id;not null" json:"knowlege_session_id"`
Title string `gorm:"column:title;not null" json:"title"` Title string `gorm:"column:title;not null" json:"title"`
CreateAt time.Time `gorm:"column:create_at;default:CURRENT_TIMESTAMP" json:"create_at"` CreateAt *time.Time `gorm:"column:create_at;default:CURRENT_TIMESTAMP" json:"create_at"`
UpdateAt time.Time `gorm:"column:update_at;default:CURRENT_TIMESTAMP" json:"update_at"` UpdateAt *time.Time `gorm:"column:update_at;default:CURRENT_TIMESTAMP" json:"update_at"`
Status int32 `gorm:"column:status;not null" json:"status"` Status int32 `gorm:"column:status;not null" json:"status"`
DeleteAt time.Time `gorm:"column:delete_at" json:"delete_at"` DeleteAt *time.Time `gorm:"column:delete_at" json:"delete_at"`
UserID string `gorm:"column:user_id;comment:用户id" json:"user_id"` // 用户id
} }
// TableName AiSession's table name // TableName AiSession's table name

View File

@ -22,6 +22,7 @@ type AiSy struct {
UpdateAt time.Time `gorm:"column:update_at;default:CURRENT_TIMESTAMP" json:"update_at"` UpdateAt time.Time `gorm:"column:update_at;default:CURRENT_TIMESTAMP" json:"update_at"`
Status int32 `gorm:"column:status;not null" json:"status"` Status int32 `gorm:"column:status;not null" json:"status"`
DeleteAt time.Time `gorm:"column:delete_at" json:"delete_at"` DeleteAt time.Time `gorm:"column:delete_at" json:"delete_at"`
Prologue string `gorm:"column:prologue;comment:会话开场白" json:"prologue"` // 会话开场白
} }
// TableName AiSy's table name // TableName AiSy's table name

View File

@ -2,4 +2,4 @@ package services
import "github.com/google/wire" import "github.com/google/wire"
var ProviderSetServices = wire.NewSet(NewChatService) var ProviderSetServices = wire.NewSet(NewChatService, NewSessionService)

View File

@ -10,7 +10,7 @@ type SessionService struct {
sessionBiz *biz.SessionBiz sessionBiz *biz.SessionBiz
} }
func NewSession(sessionBiz *biz.SessionBiz) *SessionService { func NewSessionService(sessionBiz *biz.SessionBiz) *SessionService {
return &SessionService{ return &SessionService{
sessionBiz: sessionBiz, sessionBiz: sessionBiz,
} }