hyapp-server/server/admin/internal/repository/app_config_repository.go
2026-05-02 13:02:38 +08:00

41 lines
941 B
Go

package repository
import (
"strings"
"time"
"hyapp-admin-server/internal/model"
"gorm.io/gorm/clause"
)
func (s *Store) ListAppConfigs(group string) ([]model.AppConfig, error) {
var items []model.AppConfig
err := s.db.Where("`group` = ?", strings.TrimSpace(group)).Order("`key` ASC").Find(&items).Error
return items, err
}
func (s *Store) UpsertAppConfigs(items []model.AppConfig) error {
if len(items) == 0 {
return nil
}
now := time.Now()
for index := range items {
items[index].Group = strings.TrimSpace(items[index].Group)
items[index].Key = strings.TrimSpace(items[index].Key)
items[index].UpdatedAt = now
if items[index].CreatedAt.IsZero() {
items[index].CreatedAt = now
}
}
return s.db.Clauses(clause.OnConflict{
Columns: []clause.Column{
{Name: "group"},
{Name: "key"},
},
DoUpdates: clause.AssignmentColumns([]string{"value", "description", "updated_at"}),
}).Create(&items).Error
}