Просмотр исходного кода

feat: Vendor 和 Model 添加 sort_order 字段,查询按 sort_order ASC 排序

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
master
fengsilin 2 недель назад
Родитель
Сommit
f8859b7c35
2 измененных файлов: 7 добавлений и 5 удалений
  1. +4
    -3
      model/model_meta.go
  2. +3
    -2
      model/vendor_meta.go

+ 4
- 3
model/model_meta.go Просмотреть файл

@@ -42,6 +42,7 @@ type Model struct {
Endpoints string `json:"endpoints,omitempty" gorm:"type:text"`
Status int `json:"status" gorm:"default:1"`
SyncOfficial int `json:"sync_official" gorm:"default:1"`
SortOrder int `json:"sort_order" gorm:"default:0"`
CreatedTime int64 `json:"created_time" gorm:"bigint"`
UpdatedTime int64 `json:"updated_time" gorm:"bigint"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;uniqueIndex:uk_model_name_delete_at,priority:2"`
@@ -89,7 +90,7 @@ func (mi *Model) Update() error {
mi.UpdatedTime = common.GetTimestamp()
// 使用 Select 强制更新所有字段,包括零值
return DB.Model(&Model{}).Where("id = ?", mi.Id).
Select("model_name", "description", "icon", "tags", "type", "vendor_id", "endpoints", "status", "sync_official", "name_rule", "updated_time").
Select("model_name", "description", "icon", "tags", "type", "vendor_id", "endpoints", "status", "sync_official", "name_rule", "sort_order", "updated_time").
Updates(mi).Error
}

@@ -117,7 +118,7 @@ func GetVendorModelCounts() (map[int64]int64, error) {

func GetAllModels(offset int, limit int) ([]*Model, error) {
var models []*Model
err := DB.Order("id DESC").Offset(offset).Limit(limit).Find(&models).Error
err := DB.Order("sort_order ASC, id ASC").Offset(offset).Limit(limit).Find(&models).Error
return models, err
}

@@ -165,7 +166,7 @@ func SearchModels(keyword string, vendor string, offset int, limit int) ([]*Mode
if err := db.Count(&total).Error; err != nil {
return nil, 0, err
}
if err := db.Order("models.id DESC").Offset(offset).Limit(limit).Find(&models).Error; err != nil {
if err := db.Order("sort_order ASC, models.id ASC").Offset(offset).Limit(limit).Find(&models).Error; err != nil {
return nil, 0, err
}
return models, total, nil


+ 3
- 2
model/vendor_meta.go Просмотреть файл

@@ -18,6 +18,7 @@ type Vendor struct {
Description string `json:"description,omitempty" gorm:"type:text"`
Icon string `json:"icon,omitempty" gorm:"type:varchar(128)"`
Status int `json:"status" gorm:"default:1"`
SortOrder int `json:"sort_order" gorm:"default:0"`
CreatedTime int64 `json:"created_time" gorm:"bigint"`
UpdatedTime int64 `json:"updated_time" gorm:"bigint"`
DeletedAt gorm.DeletedAt `json:"-" gorm:"index;uniqueIndex:uk_vendor_name_delete_at,priority:2"`
@@ -65,7 +66,7 @@ func GetVendorByID(id int) (*Vendor, error) {
// GetAllVendors 获取全部供应商(分页)
func GetAllVendors(offset int, limit int) ([]*Vendor, error) {
var vendors []*Vendor
err := DB.Offset(offset).Limit(limit).Find(&vendors).Error
err := DB.Order("sort_order ASC, id ASC").Offset(offset).Limit(limit).Find(&vendors).Error
return vendors, err
}

@@ -81,7 +82,7 @@ func SearchVendors(keyword string, offset int, limit int) ([]*Vendor, int64, err
return nil, 0, err
}
var vendors []*Vendor
if err := db.Offset(offset).Limit(limit).Order("id DESC").Find(&vendors).Error; err != nil {
if err := db.Order("sort_order ASC, id ASC").Offset(offset).Limit(limit).Find(&vendors).Error; err != nil {
return nil, 0, err
}
return vendors, total, nil


Загрузка…
Отмена
Сохранить