| | |
| | | package model |
| | | |
| | | import ( |
| | | "aps_crm/pkg/mysqlx" |
| | | "github.com/shopspring/decimal" |
| | | "gorm.io/gorm" |
| | | ) |
| | | |
| | | type Product struct { |
| | | Id uint `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name;type:varchar(255);comment:产品名称"` |
| | | Price decimal.Decimal `json:"price" gorm:"column:price;type:decimal(10,2);comment:产品价格"` |
| | | Number string `json:"number" gorm:"column:number;type:varchar(255);comment:产品编号"` |
| | | Amount decimal.Decimal `json:"amount" gorm:"column:amount;type:int;comment:产品数量"` |
| | | Total decimal.Decimal `json:"total" gorm:"column:total;type:decimal(10,2);comment:产品总价"` |
| | | Desc string `json:"desc" gorm:"column:desc;type:varchar(255);comment:产品描述"` |
| | | gorm.Model `json:"-"` |
| | | } |
| | | type ( |
| | | Product struct { |
| | | Id uint `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` |
| | | Name string `json:"name" gorm:"column:name;type:varchar(255);comment:产品名称"` |
| | | Price decimal.Decimal `json:"price" gorm:"column:price;type:decimal(10,2);comment:产品价格"` |
| | | Number string `json:"number" gorm:"column:number;type:varchar(255);comment:产品编号"` |
| | | Amount decimal.Decimal `json:"amount" gorm:"column:amount;type:int;comment:产品数量"` |
| | | Total decimal.Decimal `json:"total" gorm:"column:total;type:decimal(10,2);comment:产品总价"` |
| | | Desc string `json:"desc" gorm:"column:desc;type:varchar(255);comment:产品描述"` |
| | | gorm.Model `json:"-"` |
| | | } |
| | | |
| | | ProductSearch struct { |
| | | Product |
| | | Ids []uint |
| | | Orm *gorm.DB |
| | | } |
| | | ) |
| | | |
| | | func (Product) TableName() string { |
| | | return "products" |
| | | } |
| | | |
| | | func NewProductSearch(db *gorm.DB) *ProductSearch { |
| | | if db == nil { |
| | | db = mysqlx.GetDB() |
| | | } |
| | | |
| | | return &ProductSearch{ |
| | | Orm: db, |
| | | } |
| | | } |
| | | |
| | | func (slf *ProductSearch) build() *gorm.DB { |
| | | var db = slf.Orm.Model(&Product{}) |
| | | if slf.Id != 0 { |
| | | db = db.Where("id = ?", slf.Id) |
| | | } |
| | | if slf.Name != "" { |
| | | db = db.Where("name = ?", slf.Name) |
| | | } |
| | | |
| | | return db |
| | | } |
| | | |
| | | // Create 创建 |
| | | func (slf *ProductSearch) Create(record *Product) error { |
| | | var db = slf.build() |
| | | return db.Create(record).Error |
| | | } |
| | | |
| | | func (slf *ProductSearch) CreateBatch(records []*Product) error { |
| | | var db = slf.build() |
| | | return db.Create(records).Error |
| | | } |
| | | |
| | | func (slf *ProductSearch) Delete() error { |
| | | var db = slf.build() |
| | | return db.Delete(&Product{}).Error |
| | | } |
| | | |
| | | func (slf *ProductSearch) Update(record *Product) error { |
| | | var db = slf.build() |
| | | return db.Updates(record).Error |
| | | } |
| | | |
| | | func (slf *ProductSearch) GetListByIds(ids []int) (result []Product, err error) { |
| | | var db = slf.build() |
| | | err = db.Where("id in (?)", ids).Find(&result).Error |
| | | return |
| | | } |
| | | |
| | | func (slf *ProductSearch) Find() (result []Product, err error) { |
| | | var db = slf.build() |
| | | err = db.Preload("country").Find(&result).Error |
| | | return |
| | | } |
| | | |
| | | func (slf *ProductSearch) SetId(id uint) *ProductSearch { |
| | | slf.Id = id |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProductSearch) SetIds(ids []uint) *ProductSearch { |
| | | slf.Ids = ids |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProductSearch) SetName(name string) *ProductSearch { |
| | | slf.Name = name |
| | | return slf |
| | | } |
| | | |
| | | func (slf *ProductSearch) UpdateList(m map[string]interface{}, ids []int) error { |
| | | var db = slf.build() |
| | | return db.Where("id in (?)", ids).Updates(m).Error |
| | | } |
| | | |
| | | func (slf *ProductSearch) First() (result Product, err error) { |
| | | var db = slf.build() |
| | | err = db.First(&result).Error |
| | | return |
| | | } |
| | | |
| | | func (slf *ProductSearch) FindAll() (result []*Product, err error) { |
| | | var db = slf.build() |
| | | err = db.Find(&result).Error |
| | | return |
| | | } |
| | | |
| | | func (slf *ProductSearch) Updates(m map[string]interface{}) error { |
| | | var db = slf.build() |
| | | return db.Updates(m).Error |
| | | } |