| | |
| | | TwoBack string `json:"twoBack" gorm:"type:varchar(255);comment:第二回"` |
| | | ThreeBack string `json:"threeBack" gorm:"type:varchar(255);comment:第三回"` |
| | | Total decimal.Decimal `json:"total" gorm:"type:decimal(12,2);comment:总产量"` |
| | | Items []*YieldRegisterItem `json:"items" gorm:"foreignKey:YieldRegisterId;references:Id"` |
| | | Circles []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId;references:Id"` |
| | | Items []*YieldRegisterItem `json:"items" gorm:"foreignKey:YieldRegisterId"` |
| | | Circles []*YieldRegisterCircle `json:"circles" gorm:"foreignKey:YieldRegisterId"` |
| | | } |
| | | YieldRegisterSearch struct { |
| | | YieldRegister |
| | |
| | | return slf |
| | | } |
| | | |
| | | func (slf *YieldRegisterSearch) SetNumber(number string) *YieldRegisterSearch { |
| | | slf.Number = number |
| | | return slf |
| | | } |
| | | |
| | | func (slf *YieldRegisterSearch) build() *gorm.DB { |
| | | db := slf.Orm.Table(slf.TableName()) |
| | | |
| | | if slf.Preload { |
| | | db = db.Model(YieldRegister{}).Preload("Items").Preload("Circles") |
| | | } |
| | | |
| | | if slf.Number != "" { |
| | | db = db.Where("number = ?", slf.Number) |
| | | } |
| | | |
| | | return db |
| | |
| | | return nil |
| | | } |
| | | |
| | | func (slf *YieldRegisterSearch) First() (*YieldRegister, error) { |
| | | var ( |
| | | record = new(YieldRegister) |
| | | db = slf.build() |
| | | ) |
| | | |
| | | if err := db.First(record).Error; err != nil { |
| | | return record, err |
| | | } |
| | | |
| | | return record, nil |
| | | } |
| | | |
| | | func (slf *YieldRegisterSearch) Find() ([]*YieldRegister, int64, error) { |
| | | var ( |
| | | records = make([]*YieldRegister, 0) |
| | |
| | | if slf.PageNum*slf.PageSize > 0 { |
| | | db = db.Offset((slf.PageNum - 1) * slf.PageSize).Limit(slf.PageSize) |
| | | } |
| | | if err := db.Find(&records).Error; err != nil { |
| | | if err := db.Order("updated_at desc").Find(&records).Error; err != nil { |
| | | return records, total, fmt.Errorf("find records err: %v", err) |
| | | } |
| | | |
| | |
| | | func (slf *YieldRegisterSearch) Save(record *YieldRegister) error { |
| | | var db = slf.build() |
| | | |
| | | if err := db.Save(record).Error; err != nil { |
| | | if err := db.Omit("CreatedAt").Save(record).Error; err != nil { |
| | | return fmt.Errorf("save err: %v, record: %+v", err, record) |
| | | } |
| | | |