| 123456789101112131415161718192021222324252627282930313233343536373839404142 |
- 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
- }
|