jiangshuai
2023-10-26 be19d957b591ad27a47057929c4a8694f0776a1a
models/location_product_amount.go
@@ -11,22 +11,29 @@
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"`
      //LocationProductId int             `json:"locationProductId" gorm:"type:int;not null;comment:上架规则id"` //上架规则id
      //LocationProduct   LocationProduct `json:"locationProduct" gorm:"foreignKey:LocationProductId;references:Id"`
      LocationId        int             `json:"locationId" gorm:"type:int;not null;comment:位置id"` //位置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"`
      ProductId         string          `json:"productId" gorm:"type:varchar(191);not null;comment:产品id"` //产品id
      Product           Material        `json:"product" gorm:"foreignKey:ProductId;references:ID"`
      Amount            decimal.Decimal `json:"amount" gorm:"type:decimal(20,2);not null;comment:库存数量"` //库存数量
      CreateDate        string          `json:"createDate" gorm:"type:varchar(63);comment:日期"`          //日期
   }
   LocationProductAmountSearch struct {
      LocationProductAmount
      Order              string
      PageNum            int
      PageSize           int
      Keyword            string
      Orm                *gorm.DB
      Preload            bool
      LocationProductIds []int
      Order    string
      PageNum  int
      PageSize int
      Keyword  string
      Orm      *gorm.DB
      Preload  bool
      //LocationProductIds []int
      LocationIds []int
   }
   LocationProductAmountWithOperation struct {
@@ -85,13 +92,23 @@
   return slf
}
func (slf *LocationProductAmountSearch) SetLocationProductId(id int) *LocationProductAmountSearch {
   slf.LocationProductId = id
func (slf *LocationProductAmountSearch) SetProductId(productId string) *LocationProductAmountSearch {
   slf.ProductId = productId
   return slf
}
func (slf *LocationProductAmountSearch) SetLocationProductIds(ids []int) *LocationProductAmountSearch {
   slf.LocationProductIds = ids
func (slf *LocationProductAmountSearch) SetLocationId(locationId int) *LocationProductAmountSearch {
   slf.LocationId = locationId
   return slf
}
//func (slf *LocationProductAmountSearch) SetLocationProductIds(ids []int) *LocationProductAmountSearch {
//   slf.LocationProductIds = ids
//   return slf
//}
func (slf *LocationProductAmountSearch) SetLocationIds(ids []int) *LocationProductAmountSearch {
   slf.LocationIds = ids
   return slf
}
@@ -110,13 +127,25 @@
   }
   if slf.Preload {
      db = db.Model(&LocationProductAmount{}).Preload("LocationProduct").Preload("LocationProduct.Location").Preload("LocationProduct.Product")
      db = db.Model(&LocationProductAmount{}).Preload("Location").Preload("Product").Preload("ProductCategory")
   }
   if slf.LocationProductId != 0 {
      db = db.Where("location_product_id=?", slf.LocationProductId)
   //if slf.LocationProductId != 0 {
   //   db = db.Where("location_product_id=?", slf.LocationProductId)
   //}
   //if len(slf.LocationProductIds) > 0 {
   //   db = db.Where("location_product_id in (?)", slf.LocationProductIds)
   //}
   if len(slf.LocationIds) > 0 {
      db = db.Where("location_id in (?)", slf.LocationIds)
   }
   if len(slf.LocationProductIds) > 0 {
      db = db.Where("location_product_id in (?)", slf.LocationProductIds)
   if slf.LocationId != 0 {
      db = db.Where("location_id = ?", slf.LocationId)
   }
   if slf.ProductId != "" {
      db = db.Where("product_id=?", slf.ProductId)
   }
   return db
@@ -204,3 +233,12 @@
   return records, nil
}
func (slf *LocationProductAmountSearch) FirstRes() (*LocationProductAmount, *gorm.DB) {
   var (
      record = new(LocationProductAmount)
      db     = slf.build()
   )
   return record, db.First(&record)
}