From f4508a84236a4aff1c7b5bfa17a14a8ff95728ba Mon Sep 17 00:00:00 2001 From: yinbentan <yinbentan@live.com> Date: 星期一, 08 七月 2024 09:45:10 +0800 Subject: [PATCH] 接口调用报错处理 --- models/location_product_amount.go | 46 ++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 38 insertions(+), 8 deletions(-) diff --git a/models/location_product_amount.go b/models/location_product_amount.go index 447b469..6b82f7c 100644 --- a/models/location_product_amount.go +++ b/models/location_product_amount.go @@ -11,10 +11,9 @@ type ( LocationProductAmount struct { WmsModel - Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` - //LocationProductId int `json:"locationProductId" gorm:"type:int;not null;comment:涓婃灦瑙勫垯id"` //涓婃灦瑙勫垯id - //LocationProduct LocationProduct `json:"locationProduct" gorm:"foreignKey:LocationProductId;references:Id"` + Id int `json:"id" gorm:"column:id;primary_key;AUTO_INCREMENT"` LocationId int `json:"locationId" gorm:"type:int;not null;comment:浣嶇疆id"` //浣嶇疆id + WarehouseId int `json:"warehouseId" gorm:"type:int;not null;default:0;comment:浠撳簱id"` Location Location `json:"location" gorm:"foreignKey:LocationId;references:id"` ProductCategoryID int `json:"productCategoryId" gorm:"type:int;not null;comment:浜у搧绉嶇被id"` //浜у搧绉嶇被id ProductCategory ProductCategory `json:"productCategory" gorm:"foreignKey:ProductCategoryID;references:Id"` @@ -37,6 +36,7 @@ ProductIds []string Ids []int Query string + Fields string } LocationProductAmountWithOperation struct { @@ -47,10 +47,11 @@ ProductId string `json:"productId" gorm:"column:product_id"` ProductName string `json:"productName" gorm:"column:product_name"` Amount decimal.Decimal `json:"amount" gorm:"column:amount"` + AmountMoreUnits []UnitItems `json:"amountMoreUnits" gorm:"-"` //鍦ㄥ簱鏁伴噺澶氬崟浣� Unit string `json:"unit" gorm:"column:unit"` CreateDate string `json:"createDate" gorm:"column:create_date"` - AdjustAmount decimal.Decimal `json:"adjustAmount" gorm:"column:adjust_amount"` - DifferenceAmount decimal.Decimal `json:"differenceAmount" gorm:"-"` + AdjustAmount decimal.Decimal `json:"adjustAmount" gorm:"column:adjust_amount"` //宸�� + DifferenceAmount decimal.Decimal `json:"differenceAmount" gorm:"-"` //璁℃暟鏁伴噺 OperationId int `json:"operationId" gorm:"column:operation_id"` Status constvar.OperationStatus `json:"status" gorm:"status"` BaseOperationType constvar.BaseOperationType `json:"baseOperationType" gorm:"base_operation_type"` @@ -126,6 +127,16 @@ return slf } +func (slf *LocationProductAmountSearch) SetWarehouseId(wid int) *LocationProductAmountSearch { + slf.WarehouseId = wid + return slf +} + +func (slf *LocationProductAmountSearch) SetFields(fields string) *LocationProductAmountSearch { + slf.Fields = fields + return slf +} + func (slf *LocationProductAmountSearch) build() *gorm.DB { var db = slf.Orm.Model(&LocationProductAmount{}) @@ -147,9 +158,7 @@ if slf.Preload { db = db.Model(&LocationProductAmount{}).Preload("Location").Preload("Product").Preload("ProductCategory") } - //if slf.LocationProductId != 0 { - // db = db.Where("location_product_id=?", slf.LocationProductId) - //} + if len(slf.ProductIds) > 0 { db = db.Where("product_id in (?)", slf.ProductIds) } @@ -172,6 +181,14 @@ if slf.Query != "" { db = db.Where(slf.Query) + } + + if slf.WarehouseId != 0 { + db = db.Where("warehouse_id = ?", slf.WarehouseId) + } + + if slf.Fields != "" { + db = db.Select(slf.Fields) } return db @@ -253,6 +270,9 @@ 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) } @@ -311,3 +331,13 @@ } return result, nil } + +func (slf *LocationProductAmountSearch) Save(record *LocationProductAmount) error { + var db = slf.build() + + if err := db.Omit("CreatedAt").Save(record).Error; err != nil { + return fmt.Errorf("save err: %v, record: %+v", err, record) + } + + return nil +} -- Gitblit v1.8.0