48 lines
872 B
Go
48 lines
872 B
Go
|
|
package mysql
|
||
|
|
|
||
|
|
import (
|
||
|
|
"errors"
|
||
|
|
|
||
|
|
"gorm.io/gorm"
|
||
|
|
"myschools.me/heritage/heritage-api/model"
|
||
|
|
)
|
||
|
|
|
||
|
|
// 获取选项
|
||
|
|
func OptionPluck(name *string) ([]string, error) {
|
||
|
|
db, err := newDB()
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
|
||
|
|
var options []string
|
||
|
|
if err := db.Where("option_name=?", *name).Pluck("option_value", &options).Error; err != nil {
|
||
|
|
if errors.Is(err, gorm.ErrRecordNotFound) {
|
||
|
|
return nil, nil
|
||
|
|
}
|
||
|
|
}
|
||
|
|
return options, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// 获取选项数量
|
||
|
|
func OptionCount() (*int64, error) {
|
||
|
|
db, err := newDB()
|
||
|
|
if err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
|
||
|
|
var count int64
|
||
|
|
if err := db.Model(&model.Option{}).Count(&count).Error; err != nil {
|
||
|
|
return nil, err
|
||
|
|
}
|
||
|
|
return &count, nil
|
||
|
|
}
|
||
|
|
|
||
|
|
// OptionCreateBatch 批量创建选项
|
||
|
|
func OptionCreateBatch(options []model.Option) error {
|
||
|
|
db, err := newDB()
|
||
|
|
if err != nil {
|
||
|
|
return err
|
||
|
|
}
|
||
|
|
return db.Create(&options).Error
|
||
|
|
}
|