From f264456b1e4fd284f53ecc4c70a3b951578bfd2d Mon Sep 17 00:00:00 2001 From: wangpengfei <274878379@qq.com> Date: 星期五, 18 八月 2023 17:13:05 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- model/product.go | 121 +++++++++++++++++++++++++++++++++++++--- 1 files changed, 111 insertions(+), 10 deletions(-) diff --git a/model/product.go b/model/product.go index a61ee23..7ec7b6b 100644 --- a/model/product.go +++ b/model/product.go @@ -1,21 +1,122 @@ 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 +} -- Gitblit v1.8.0