From 548030097f2b95dff474c397c7393168c73ab8a2 Mon Sep 17 00:00:00 2001 From: liujiandao <274878379@qq.com> Date: 星期三, 20 九月 2023 09:51:04 +0800 Subject: [PATCH] 产品与产品类型功能开发 --- models/product.go | 583 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 292 insertions(+), 291 deletions(-) diff --git a/models/product.go b/models/product.go index 66c371d..373ee26 100644 --- a/models/product.go +++ b/models/product.go @@ -1,293 +1,294 @@ package models -import ( - "fmt" - "github.com/shopspring/decimal" - "gorm.io/gorm" - "wms/constvar" - "wms/pkg/mysqlx" -) - -type ( - // Product 浜у搧 - Product struct { - WmsModel - Id int `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"` - Name string `gorm:"index;type:varchar(255);not null;comment:浜у搧鍚嶇О" json:"name"` //浜у搧鍚嶇О - Type constvar.ProductType `gorm:"type:int(11);comment:浜у搧绫诲瀷" json:"type"` //浜у搧绫诲瀷 - InvoicingStrategy constvar.InvoicingStrategy `gorm:"type:int(11);comment:寮�绁ㄧ瓥鐣�" json:"invoicingStrategy"` - OrderCreation constvar.OrderCreation `gorm:"type:int(11);comment:璁㈠崟鍒涘缓" json:"orderCreation"` - ObjectTemplateId string `gorm:"type:varchar(191);comment:椤圭洰妯$増id" json:"objectTemplateId"` - SalePrice decimal.Decimal `gorm:"type:decimal(35,18);comment:閿�鍞崟浠�" json:"salePrice"` //閿�鍞环鏍� - CustomerTaxes decimal.Decimal `gorm:"type:decimal(20,2);comment:瀹㈡埛绋�" json:"customerTaxes"` //瀹㈡埛绋庣櫨鍒嗘瘮 - Cost decimal.Decimal `gorm:"type:decimal(20,2);comment:鎴愭湰" json:"cost"` //鎴愭湰 - CategoryId int `gorm:"type:int(11);comment:浜у搧绫诲瀷id" json:"categoryId"` //浜у搧鍒嗙被id - InternalReference string `gorm:"type:varchar(255);comment:鍐呴儴鍙傝��" json:"internalReference"` //鍐呴儴鍙傝�� - Barcode string `gorm:"type:varchar(255);comment:鏉$爜" json:"barcode"` //鏉$爜 - ProductTagId int `gorm:"type:int(11);comment:浜у搧鏍囩id" json:"productTagId"` //浜у搧鏍囩 - ProductTagName string `gorm:"type:varchar(255);comment:浜у搧鏍囩鍚嶇О" json:"productTagName"` - CompanyId int `gorm:"type:int(11);comment:鍏徃id" json:"companyId"` - CompanyName string `gorm:"type:varchar(255);comment:鍏徃鍚嶇О" json:"companyName"` - InternalNotes string `gorm:"type:varchar(512);comment:鍐呴儴璇存槑" json:"internalNotes"` //鍐呴儴璇存槑 - CanBeSell bool `gorm:"type:tinyint(1);comment:鏄惁鍙攢鍞�" json:"canBeSell"` //鏄惁閿�鍞� - SelectProduct int `gorm:"type:int(11);comment:鍙�変骇鍝乮d" json:"selectProduct"` - SellExplain string `gorm:"type:varchar(512);comment:閿�鍞鏄�" json:"sellExplain"` - CanBePurchased bool `gorm:"type:int(11);comment:鏄惁鍙噰璐�" json:"canBePurchased"` //鏄惁鍙噰璐� - SupplierId int `gorm:"type:int(11);comment:渚涘簲鍟唅d" json:"supplierId"` - SupplierName string `gorm:"type:varchar(255);comment:渚涘簲鍟嗗悕绉�" json:"supplierName"` - Price decimal.Decimal `gorm:"type:decimal(20,2);comment:浠锋牸" json:"price"` - CurrencyId int `gorm:"type:int(11);comment:甯佺id" json:"currencyId"` - CurrencyName string `gorm:"type:varchar(255);comment:甯佺鍚嶇О" json:"currencyName"` - DeliveryAdvanceTime decimal.Decimal `gorm:"type:decimal(20,5);comment:鎻愬墠浜よ揣鏃堕棿" json:"deliveryAdvanceTime"` - ControlStrategy constvar.InvoicingStrategy `gorm:"type:int(11);comment:鎺у埗绛栫暐" json:"controlStrategy"` - BuyExplain string `gorm:"type:varchar(512);comment:閲囪喘璇存槑" json:"buyExplain"` - Principal string `gorm:"type:varchar(255);comment:璐熻矗浜�" json:"principal"` //璐熻矗浜� - Weight decimal.Decimal `gorm:"type:decimal(20,2);comment:閲嶉噺" json:"weight"` //閲嶉噺 - Volume decimal.Decimal `gorm:"type:decimal(20,2);comment:浣撶Н" json:"volume"` //浣撶Н - CustomerAdvanceTime decimal.Decimal `gorm:"type:decimal(20,5);comment:瀹㈡埛鍓嶇疆鏃堕棿" json:"customerAdvanceTime"` - HSCode string `gorm:"type:varchar(255);comment:HS缂栫爜" json:"HSCode"` - OriginCountryId int `gorm:"type:int(11);comment:鍘熶骇鍦癷d" json:"originCountryId"` - OriginCountryName string `gorm:"type:varchar(255);comment:鍘熶骇鍦板悕绉�" json:"originCountryName"` - InStorageExplain string `gorm:"type:varchar(512);comment:鍏ュ簱璇存槑" json:"inStorageExplain"` - OutStorageExplain string `gorm:"type:varchar(512);comment:鍑哄簱璇存槑" json:"outStorageExplain"` - InternalTransferExplain string `gorm:"type:varchar(512);comment:鍐呴儴璋冩嫧璇存槑" json:"internalTransferExplain"` - } - - ProductSearch struct { - Product - Order string - PageNum int - PageSize int - Keyword string - Orm *gorm.DB - Preload bool - } - - PurchaseInfo struct { - PurchasePrice decimal.Decimal `gorm:"type:decimal(35,18);comment:閲囪喘浠锋牸" json:"purchasePrice"` - PurchaseAheadDay int `gorm:"type:int(11);comment:閲囪喘鎻愬墠鏈�(澶�)" json:"purchaseAheadDay"` - ProduceAheadDay int `gorm:"type:int(11);comment:鍒堕�犳彁鍓嶆湡(澶�)" json:"produceAheadDay"` - MinPurchaseAmount decimal.Decimal `gorm:"type:decimal(35,18);comment:鏈�灏忛噰璐噺" json:"minPurchaseAmount"` - } -) - -func (slf *Product) TableName() string { - return "wms_product" -} - -func (slf *Product) BeforeCreate(db *gorm.DB) error { - return nil -} - -func (slf *Product) AfterFind(db *gorm.DB) error { - return nil -} - -func NewProductSearch() *ProductSearch { - return &ProductSearch{Orm: mysqlx.GetDB()} -} - -func (slf *ProductSearch) SetOrm(tx *gorm.DB) *ProductSearch { - slf.Orm = tx - return slf -} - -func (slf *ProductSearch) SetPage(page, size int) *ProductSearch { - slf.PageNum, slf.PageSize = page, size - return slf -} - -func (slf *ProductSearch) SetOrder(order string) *ProductSearch { - slf.Order = order - return slf -} - -func (slf *ProductSearch) SetID(id uint) *ProductSearch { - slf.ID = id - return slf -} - -func (slf *ProductSearch) SetName(name string) *ProductSearch { - slf.Name = name - return slf -} - -func (slf *ProductSearch) SetKeyword(keyword string) *ProductSearch { - slf.Keyword = keyword - return slf -} - -func (slf *ProductSearch) SetPreload(preload bool) *ProductSearch { - slf.Preload = preload - return slf -} - -func (slf *ProductSearch) build() *gorm.DB { - var db = slf.Orm.Model(&Product{}) - - if slf.ID != 0 { - db = db.Where("id = ?", slf.ID) - } - - if slf.Order != "" { - db = db.Order(slf.Order) - } - - if slf.Keyword != "" { - db = db.Where("name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)) - } - - if slf.Name != "" { - db = db.Where("name = ?", slf.Name) - } - - return db -} - -// Create 鍗曟潯鎻掑叆 -func (slf *ProductSearch) Create(record *Product) error { - var db = slf.build() - - if err := db.Create(record).Error; err != nil { - return err - } - - return nil -} - -// CreateBatch 鎵归噺鎻掑叆 -func (slf *ProductSearch) CreateBatch(records []*Product) 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 *ProductSearch) Update(record *Product) error { - var db = slf.build() - - if err := db.Omit("CreatedAt").Updates(record).Error; err != nil { - return fmt.Errorf("save err: %v, record: %+v", err, record) - } - - return nil -} - -func (slf *ProductSearch) UpdateByMap(upMap map[string]interface{}) error { - var ( - db = slf.build() - ) - - if err := db.Updates(upMap).Error; err != nil { - return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) - } - - return nil -} - -func (slf *ProductSearch) UpdateByQuery(query string, args []interface{}, upMap map[string]interface{}) error { - var ( - db = slf.Orm.Table(slf.TableName()).Where(query, args...) - ) - - if err := db.Updates(upMap).Error; err != nil { - return fmt.Errorf("update by query err: %v, query: %s, args: %+v, upMap: %+v", err, query, args, upMap) - } - - return nil -} - -func (slf *ProductSearch) Delete() error { - var db = slf.build() - return db.Delete(&Product{}).Error -} - -func (slf *ProductSearch) First() (*Product, error) { - var ( - record = new(Product) - db = slf.build() - ) - - if err := db.First(record).Error; err != nil { - return record, err - } - - return record, nil -} - -func (slf *ProductSearch) Find() ([]*Product, int64, error) { - var ( - records = make([]*Product, 0) - total int64 - db = slf.build() - ) - - if err := db.Count(&total).Error; err != nil { - return records, total, fmt.Errorf("find count err: %v", err) - } - 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 { - return records, total, fmt.Errorf("find records err: %v", err) - } - - return records, total, nil -} - -func (slf *ProductSearch) FindNotTotal() ([]*Product, error) { - var ( - records = make([]*Product, 0) - db = slf.build() - ) - - 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 { - return records, fmt.Errorf("find records err: %v", err) - } - - return records, nil -} - -// FindByQuery 鎸囧畾鏉′欢鏌ヨ. -func (slf *ProductSearch) FindByQuery(query string, args []interface{}) ([]*Product, int64, error) { - var ( - records = make([]*Product, 0) - total int64 - db = slf.Orm.Table(slf.TableName()).Where(query, args...) - ) - - if err := db.Count(&total).Error; err != nil { - return records, total, fmt.Errorf("find by query count err: %v", err) - } - 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 { - return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) - } - - return records, total, nil -} - -// FindByQueryNotTotal 鎸囧畾鏉′欢鏌ヨ&涓嶆煡璇㈡�绘潯鏁�. -func (slf *ProductSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*Product, error) { - var ( - records = make([]*Product, 0) - db = slf.Orm.Table(slf.TableName()).Where(query, args...) - ) - - 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 { - return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) - } - - return records, nil -} +// +//import ( +// "fmt" +// "github.com/shopspring/decimal" +// "gorm.io/gorm" +// "wms/constvar" +// "wms/pkg/mysqlx" +//) +// +//type ( +// // Product 浜у搧 +// Product struct { +// WmsModel +// Id int `gorm:"column:id;primary_key;AUTO_INCREMENT" json:"id"` +// Name string `gorm:"index;type:varchar(255);not null;comment:浜у搧鍚嶇О" json:"name"` //浜у搧鍚嶇О +// Type constvar.ProductType `gorm:"type:int(11);comment:浜у搧绫诲瀷" json:"type"` //浜у搧绫诲瀷 +// InvoicingStrategy constvar.InvoicingStrategy `gorm:"type:int(11);comment:寮�绁ㄧ瓥鐣�" json:"invoicingStrategy"` +// OrderCreation constvar.OrderCreation `gorm:"type:int(11);comment:璁㈠崟鍒涘缓" json:"orderCreation"` +// ObjectTemplateId string `gorm:"type:varchar(191);comment:椤圭洰妯$増id" json:"objectTemplateId"` +// SalePrice decimal.Decimal `gorm:"type:decimal(35,18);comment:閿�鍞崟浠�" json:"salePrice"` //閿�鍞环鏍� +// CustomerTaxes decimal.Decimal `gorm:"type:decimal(20,2);comment:瀹㈡埛绋�" json:"customerTaxes"` //瀹㈡埛绋庣櫨鍒嗘瘮 +// Cost decimal.Decimal `gorm:"type:decimal(20,2);comment:鎴愭湰" json:"cost"` //鎴愭湰 +// CategoryId int `gorm:"type:int(11);comment:浜у搧绫诲瀷id" json:"categoryId"` //浜у搧鍒嗙被id +// InternalReference string `gorm:"type:varchar(255);comment:鍐呴儴鍙傝��" json:"internalReference"` //鍐呴儴鍙傝�� +// Barcode string `gorm:"type:varchar(255);comment:鏉$爜" json:"barcode"` //鏉$爜 +// ProductTagId int `gorm:"type:int(11);comment:浜у搧鏍囩id" json:"productTagId"` //浜у搧鏍囩 +// ProductTagName string `gorm:"type:varchar(255);comment:浜у搧鏍囩鍚嶇О" json:"productTagName"` +// CompanyId int `gorm:"type:int(11);comment:鍏徃id" json:"companyId"` +// CompanyName string `gorm:"type:varchar(255);comment:鍏徃鍚嶇О" json:"companyName"` +// InternalNotes string `gorm:"type:varchar(512);comment:鍐呴儴璇存槑" json:"internalNotes"` //鍐呴儴璇存槑 +// CanBeSell bool `gorm:"type:tinyint(1);comment:鏄惁鍙攢鍞�" json:"canBeSell"` //鏄惁閿�鍞� +// SelectProduct int `gorm:"type:int(11);comment:鍙�変骇鍝乮d" json:"selectProduct"` +// SellExplain string `gorm:"type:varchar(512);comment:閿�鍞鏄�" json:"sellExplain"` +// CanBePurchased bool `gorm:"type:int(11);comment:鏄惁鍙噰璐�" json:"canBePurchased"` //鏄惁鍙噰璐� +// SupplierId int `gorm:"type:int(11);comment:渚涘簲鍟唅d" json:"supplierId"` +// SupplierName string `gorm:"type:varchar(255);comment:渚涘簲鍟嗗悕绉�" json:"supplierName"` +// Price decimal.Decimal `gorm:"type:decimal(20,2);comment:浠锋牸" json:"price"` +// CurrencyId int `gorm:"type:int(11);comment:甯佺id" json:"currencyId"` +// CurrencyName string `gorm:"type:varchar(255);comment:甯佺鍚嶇О" json:"currencyName"` +// DeliveryAdvanceTime decimal.Decimal `gorm:"type:decimal(20,5);comment:鎻愬墠浜よ揣鏃堕棿" json:"deliveryAdvanceTime"` +// ControlStrategy constvar.InvoicingStrategy `gorm:"type:int(11);comment:鎺у埗绛栫暐" json:"controlStrategy"` +// BuyExplain string `gorm:"type:varchar(512);comment:閲囪喘璇存槑" json:"buyExplain"` +// Principal string `gorm:"type:varchar(255);comment:璐熻矗浜�" json:"principal"` //璐熻矗浜� +// Weight decimal.Decimal `gorm:"type:decimal(20,2);comment:閲嶉噺" json:"weight"` //閲嶉噺 +// Volume decimal.Decimal `gorm:"type:decimal(20,2);comment:浣撶Н" json:"volume"` //浣撶Н +// CustomerAdvanceTime decimal.Decimal `gorm:"type:decimal(20,5);comment:瀹㈡埛鍓嶇疆鏃堕棿" json:"customerAdvanceTime"` +// HSCode string `gorm:"type:varchar(255);comment:HS缂栫爜" json:"HSCode"` +// OriginCountryId int `gorm:"type:int(11);comment:鍘熶骇鍦癷d" json:"originCountryId"` +// OriginCountryName string `gorm:"type:varchar(255);comment:鍘熶骇鍦板悕绉�" json:"originCountryName"` +// InStorageExplain string `gorm:"type:varchar(512);comment:鍏ュ簱璇存槑" json:"inStorageExplain"` +// OutStorageExplain string `gorm:"type:varchar(512);comment:鍑哄簱璇存槑" json:"outStorageExplain"` +// InternalTransferExplain string `gorm:"type:varchar(512);comment:鍐呴儴璋冩嫧璇存槑" json:"internalTransferExplain"` +// } +// +// ProductSearch struct { +// Product +// Order string +// PageNum int +// PageSize int +// Keyword string +// Orm *gorm.DB +// Preload bool +// } +// +// PurchaseInfo struct { +// PurchasePrice decimal.Decimal `gorm:"type:decimal(35,18);comment:閲囪喘浠锋牸" json:"purchasePrice"` +// PurchaseAheadDay int `gorm:"type:int(11);comment:閲囪喘鎻愬墠鏈�(澶�)" json:"purchaseAheadDay"` +// ProduceAheadDay int `gorm:"type:int(11);comment:鍒堕�犳彁鍓嶆湡(澶�)" json:"produceAheadDay"` +// MinPurchaseAmount decimal.Decimal `gorm:"type:decimal(35,18);comment:鏈�灏忛噰璐噺" json:"minPurchaseAmount"` +// } +//) +// +//func (slf *Product) TableName() string { +// return "wms_product" +//} +// +//func (slf *Product) BeforeCreate(db *gorm.DB) error { +// return nil +//} +// +//func (slf *Product) AfterFind(db *gorm.DB) error { +// return nil +//} +// +//func NewProductSearch() *ProductSearch { +// return &ProductSearch{Orm: mysqlx.GetDB()} +//} +// +//func (slf *ProductSearch) SetOrm(tx *gorm.DB) *ProductSearch { +// slf.Orm = tx +// return slf +//} +// +//func (slf *ProductSearch) SetPage(page, size int) *ProductSearch { +// slf.PageNum, slf.PageSize = page, size +// return slf +//} +// +//func (slf *ProductSearch) SetOrder(order string) *ProductSearch { +// slf.Order = order +// return slf +//} +// +//func (slf *ProductSearch) SetID(id uint) *ProductSearch { +// slf.ID = id +// return slf +//} +// +//func (slf *ProductSearch) SetName(name string) *ProductSearch { +// slf.Name = name +// return slf +//} +// +//func (slf *ProductSearch) SetKeyword(keyword string) *ProductSearch { +// slf.Keyword = keyword +// return slf +//} +// +//func (slf *ProductSearch) SetPreload(preload bool) *ProductSearch { +// slf.Preload = preload +// return slf +//} +// +//func (slf *ProductSearch) build() *gorm.DB { +// var db = slf.Orm.Model(&Product{}) +// +// if slf.ID != 0 { +// db = db.Where("id = ?", slf.ID) +// } +// +// if slf.Order != "" { +// db = db.Order(slf.Order) +// } +// +// if slf.Keyword != "" { +// db = db.Where("name like ?", fmt.Sprintf("%%%v%%", slf.Keyword)) +// } +// +// if slf.Name != "" { +// db = db.Where("name = ?", slf.Name) +// } +// +// return db +//} +// +//// Create 鍗曟潯鎻掑叆 +//func (slf *ProductSearch) Create(record *Product) error { +// var db = slf.build() +// +// if err := db.Create(record).Error; err != nil { +// return err +// } +// +// return nil +//} +// +//// CreateBatch 鎵归噺鎻掑叆 +//func (slf *ProductSearch) CreateBatch(records []*Product) 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 *ProductSearch) Update(record *Product) error { +// var db = slf.build() +// +// if err := db.Omit("CreatedAt").Updates(record).Error; err != nil { +// return fmt.Errorf("save err: %v, record: %+v", err, record) +// } +// +// return nil +//} +// +//func (slf *ProductSearch) UpdateByMap(upMap map[string]interface{}) error { +// var ( +// db = slf.build() +// ) +// +// if err := db.Updates(upMap).Error; err != nil { +// return fmt.Errorf("update by map err: %v, upMap: %+v", err, upMap) +// } +// +// return nil +//} +// +//func (slf *ProductSearch) UpdateByQuery(query string, args []interface{}, upMap map[string]interface{}) error { +// var ( +// db = slf.Orm.Table(slf.TableName()).Where(query, args...) +// ) +// +// if err := db.Updates(upMap).Error; err != nil { +// return fmt.Errorf("update by query err: %v, query: %s, args: %+v, upMap: %+v", err, query, args, upMap) +// } +// +// return nil +//} +// +//func (slf *ProductSearch) Delete() error { +// var db = slf.build() +// return db.Delete(&Product{}).Error +//} +// +//func (slf *ProductSearch) First() (*Product, error) { +// var ( +// record = new(Product) +// db = slf.build() +// ) +// +// if err := db.First(record).Error; err != nil { +// return record, err +// } +// +// return record, nil +//} +// +//func (slf *ProductSearch) Find() ([]*Product, int64, error) { +// var ( +// records = make([]*Product, 0) +// total int64 +// db = slf.build() +// ) +// +// if err := db.Count(&total).Error; err != nil { +// return records, total, fmt.Errorf("find count err: %v", err) +// } +// 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 { +// return records, total, fmt.Errorf("find records err: %v", err) +// } +// +// return records, total, nil +//} +// +//func (slf *ProductSearch) FindNotTotal() ([]*Product, error) { +// var ( +// records = make([]*Product, 0) +// db = slf.build() +// ) +// +// 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 { +// return records, fmt.Errorf("find records err: %v", err) +// } +// +// return records, nil +//} +// +//// FindByQuery 鎸囧畾鏉′欢鏌ヨ. +//func (slf *ProductSearch) FindByQuery(query string, args []interface{}) ([]*Product, int64, error) { +// var ( +// records = make([]*Product, 0) +// total int64 +// db = slf.Orm.Table(slf.TableName()).Where(query, args...) +// ) +// +// if err := db.Count(&total).Error; err != nil { +// return records, total, fmt.Errorf("find by query count err: %v", err) +// } +// 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 { +// return records, total, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) +// } +// +// return records, total, nil +//} +// +//// FindByQueryNotTotal 鎸囧畾鏉′欢鏌ヨ&涓嶆煡璇㈡�绘潯鏁�. +//func (slf *ProductSearch) FindByQueryNotTotal(query string, args []interface{}) ([]*Product, error) { +// var ( +// records = make([]*Product, 0) +// db = slf.Orm.Table(slf.TableName()).Where(query, args...) +// ) +// +// 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 { +// return records, fmt.Errorf("find by query records err: %v, query: %s, args: %+v", err, query, args) +// } +// +// return records, nil +//} -- Gitblit v1.8.0