mirror of
https://github.com/2930134478/AI-CS.git
synced 2026-06-15 00:44:30 +08:00
43 lines
1.1 KiB
Go
43 lines
1.1 KiB
Go
package repository
|
||
|
||
import (
|
||
"github.com/2930134478/AI-CS/backend/models"
|
||
"gorm.io/gorm"
|
||
)
|
||
|
||
// PromptConfigRepository 提示词配置仓储(按 key 读写)
|
||
type PromptConfigRepository struct {
|
||
db *gorm.DB
|
||
}
|
||
|
||
// NewPromptConfigRepository 创建仓储实例
|
||
func NewPromptConfigRepository(db *gorm.DB) *PromptConfigRepository {
|
||
return &PromptConfigRepository{db: db}
|
||
}
|
||
|
||
// Get 按 key 获取一条配置,不存在返回 nil, nil
|
||
// 使用反引号包裹 key,避免 MySQL 保留字导致 SQL 语法错误
|
||
func (r *PromptConfigRepository) Get(key string) (*models.PromptConfig, error) {
|
||
var m models.PromptConfig
|
||
err := r.db.Where("`key` = ?", key).First(&m).Error
|
||
if err == gorm.ErrRecordNotFound {
|
||
return nil, nil
|
||
}
|
||
if err != nil {
|
||
return nil, err
|
||
}
|
||
return &m, nil
|
||
}
|
||
|
||
// GetAll 获取所有配置(用于管理页展示)
|
||
func (r *PromptConfigRepository) GetAll() ([]models.PromptConfig, error) {
|
||
var list []models.PromptConfig
|
||
err := r.db.Order("`key`").Find(&list).Error
|
||
return list, err
|
||
}
|
||
|
||
// Save 按 key 保存或更新(upsert)
|
||
func (r *PromptConfigRepository) Save(c *models.PromptConfig) error {
|
||
return r.db.Save(c).Error
|
||
}
|