liujiandao
2024-04-07 4630cbf64d1d4f33376efaaec7b4fcb90b01bf05
service/test/product.go
@@ -26,6 +26,8 @@
         DeliveryTime:     p.DeliveryTime,
         ShippingDuration: p.ShippingDuration,
         Specifications:   p.Specifications,
         CategoryName:     p.CategoryName,
         ModelNumber:      p.ModelNumber,
      })
   }
@@ -71,7 +73,13 @@
   var ps []test.SupplierMaterial
   //搜索框合一添加查询条件
   if info.Keyword != "" {
      db = db.Where("srm_supplier_material.name LIKE ?", "%"+info.Keyword+"%").Joins("srm_supplier").Or("srm_supplier.name LIKE ?", "%"+info.Keyword+"%")
      kw := "%" + info.Keyword + "%"
      if info.SupplierId == 0 {
         db = db.Where("`srm_supplier_material`.name LIKE ?", kw).Joins("Supplier").Or("Supplier.name LIKE ?", kw)
      } else {
         db = db.Where("name LIKE ? OR number LIKE ? OR specifications LIKE ?", kw, kw, kw)
      }
   }
   if info.Name != "" {
      db = db.Where("name LIKE ?", "%"+info.Name+"%")
@@ -80,16 +88,18 @@
      db = db.Where("number LIKE ?", "%"+info.Number+"%")
   }
   supplierIds := []uint{0}
   if info.SupplierId != 0 {
      db = db.Where("supplier_id = ?", info.SupplierId)
      supplierIds = append(supplierIds, info.SupplierId)
   }
   db = db.Where("supplier_id in (?)", supplierIds)
   err = db.Count(&total).Error
   if err != nil {
      return
   }
   err = db.Limit(limit).Offset(offset).Preload("Supplier").Find(&ps).Error
   err = db.Limit(limit).Offset(offset).Order("id desc").Preload("Supplier").Find(&ps).Error
   return ps, total, err
}
@@ -105,3 +115,28 @@
   }
   return
}
// GetMaterials 获取物料
func (pService *ProductService) GetMaterials(info testReq.ProductSearch) (list []test.Material, total int64, err error) {
   limit := info.PageSize
   offset := info.PageSize * (info.Page - 1)
   // 创建db
   db := global.GVA_DB.Model(&test.Material{})
   var ps []test.Material
   if info.Keyword != "" {
      db = db.Where("name LIKE ? or id LIKE ?", "%"+info.Keyword+"%", "%"+info.Keyword+"%")
   }
   //类型为采购
   db = db.Where("purchase_types LIKE ?", "%1%")
   db = db.Where("is_storage = ?", 1)
   err = db.Count(&total).Error
   if err != nil {
      return
   }
   err = db.Limit(limit).Offset(offset).Find(&ps).Error
   return ps, total, err
}