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:"-"`
|
}
|
|
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
|
}
|