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