package models import ( "fmt" "github.com/shopspring/decimal" "gorm.io/gorm" "silkserver/constvar" "silkserver/pkg/mysqlx" ) type ( //RawSilkRankStandard 生丝定级标准 RawSilkRankStandard struct { gorm.Model LineId string `json:"lineId" gorm:"type:varchar(255);comment:行id"` CheckItem constvar.CheckItem `json:"checkItem" gorm:"type:int;comment:检查项目名称"` StartFineness decimal.Decimal `json:"startFineness" gorm:"type:decimal(20,4);comment:开始纤度"` EndFineness decimal.Decimal `json:"endFineness" gorm:"type:decimal(20,4);comment:结束纤度"` RankA decimal.Decimal `json:"rankA" gorm:"type:decimal(20,4);comment:野纤"` RankB decimal.Decimal `json:"rankB" gorm:"type:decimal(20,4);comment:大野"` RankC decimal.Decimal `json:"rankC" gorm:"type:decimal(20,4);comment:特野"` RankProp string `json:"rankProp" gorm:"type:varchar(255);comment:前缀key"` RankName string `json:"rankName" gorm:"type:varchar(255);comment:等级名称"` RankValue decimal.Decimal `json:"rankValue" gorm:"type:decimal(20,4);comment:等级值"` } RawSilkRankStandardSearch struct { RawSilkRankStandard PageNum int PageSize int Orm *gorm.DB } ) func (slf RawSilkRankStandard) TableName() string { return "silk_raw_silk_rank_standard" } func NewRawSilkRankStandardSearch() *RawSilkRankStandardSearch { return &RawSilkRankStandardSearch{Orm: mysqlx.GetDB()} } func (slf *RawSilkRankStandardSearch) SetOrm(tx *gorm.DB) *RawSilkRankStandardSearch { slf.Orm = tx return slf } func (slf *RawSilkRankStandardSearch) SetPage(page, size int) *RawSilkRankStandardSearch { slf.PageNum, slf.PageSize = page, size return slf } func (slf *RawSilkRankStandardSearch) SetFineness(start, end decimal.Decimal) *RawSilkRankStandardSearch { slf.StartFineness, slf.EndFineness = start, end return slf } func (slf *RawSilkRankStandardSearch) build() *gorm.DB { db := slf.Orm.Table(slf.TableName()) if slf.ID > 0 { db = db.Where("id = ?", slf.ID) } if !slf.StartFineness.IsZero() || !slf.EndFineness.IsZero() { db = db.Where("start_fineness <= ? and end_fineness >= ?", slf.StartFineness, slf.EndFineness) } return db } // Create 单条插入 func (slf *RawSilkRankStandardSearch) Create(record *RawSilkRankStandard) error { db := slf.build() err := db.Create(record).Error if err != nil { return fmt.Errorf("create err: %v, record: %+v", err, record) } return nil } // CreateBatch 批量插入 func (slf *RawSilkRankStandardSearch) CreateBatch(records []*RawSilkRankStandard) error { var db = slf.build() if err := db.Create(&records).Error; err != nil { return fmt.Errorf("create batch err: %v, records: %+v", err, records) } return nil } func (slf *RawSilkRankStandardSearch) FindNotTotal() ([]*RawSilkRankStandard, error) { var ( records = make([]*RawSilkRankStandard, 0) db = slf.build() ) if err := db.Find(&records).Error; err != nil { return records, fmt.Errorf("find records err: %v", err) } return records, nil } func (slf *RawSilkRankStandardSearch) Save(record *RawSilkRankStandard) error { var db = slf.build() if err := db.Save(record).Error; err != nil { return fmt.Errorf("save err: %v, record: %+v", err, record) } return nil } func (slf *RawSilkRankStandardSearch) DeleteAll() error { var db = slf.build() if err := db.Where("1=1").Delete(&RawSilkRankStandard{}).Error; err != nil { return err } return nil }