From d20acf38c36c11ee4428c3e74a17f5870dc61b51 Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期四, 16 十一月 2023 09:51:00 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.5.5:10010/r/aps/SRM

---
 service/test/product.go |  108 ++++++++++++++++++++++++++----------------------------
 1 files changed, 52 insertions(+), 56 deletions(-)

diff --git a/service/test/product.go b/service/test/product.go
index b4d05c2..8ad82b5 100644
--- a/service/test/product.go
+++ b/service/test/product.go
@@ -12,54 +12,67 @@
 
 // CreateProduct 鍒涘缓Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
-func (pService *ProductService) CreateProduct(p []*test.Product) (err error) {
-	err = global.GVA_DB.Create(p).Error
+func (pService *ProductService) CreateProduct(pList []*testReq.Product) (err error) {
+
+	products := make([]*test.SupplierMaterial, 0, len(pList))
+
+	for _, p := range pList {
+		products = append(products, &test.SupplierMaterial{
+			Name:             p.Name,
+			Number:           p.Number,
+			SupplierId:       p.SupplierId,
+			Unit:             p.Unit,
+			PurchasePrice:    p.PurchasePrice,
+			DeliveryTime:     p.DeliveryTime,
+			ShippingDuration: p.ShippingDuration,
+			Specifications:   p.Specifications,
+			CategoryName:     p.CategoryName,
+		})
+	}
+
+	err = global.GVA_DB.Create(products).Error
 	return err
 }
 
 // DeleteProduct 鍒犻櫎Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
-func (pService *ProductService) DeleteProduct(p test.Product) (err error) {
-	err = global.GVA_DB.Delete(&p).Error
+func (pService *ProductService) DeleteProduct(id int) (err error) {
+	err = global.GVA_DB.Delete(&test.SupplierMaterial{}, "id = ?", id).Error
 	return err
 }
 
 // DeleteProductByIds 鎵归噺鍒犻櫎Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
 func (pService *ProductService) DeleteProductByIds(ids request.IdsReq) (err error) {
-	err = global.GVA_DB.Delete(&[]test.Product{}, "id in ?", ids.Ids).Error
+	err = global.GVA_DB.Delete(&[]test.SupplierMaterial{}, "id in ?", ids.Ids).Error
 	return err
 }
 
 // UpdateProduct 鏇存柊Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
-func (pService *ProductService) UpdateProduct(p test.Product) (err error) {
+func (pService *ProductService) UpdateProduct(p test.SupplierMaterial) (err error) {
 	err = global.GVA_DB.Updates(&p).Error
 	return err
 }
 
 // GetProduct 鏍规嵁id鑾峰彇Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
-func (pService *ProductService) GetProduct(id uint) (p test.Product, err error) {
+func (pService *ProductService) GetProduct(id int) (p test.SupplierMaterial, err error) {
 	err = global.GVA_DB.Where("id = ?", id).First(&p).Error
 	return
 }
 
 // GetProductInfoList 鍒嗛〉鑾峰彇Product璁板綍
 // Author [piexlmax](https://github.com/piexlmax)
-func (pService *ProductService) GetProductInfoList(info testReq.ProductSearch) (list []test.Product, total int64, err error) {
+func (pService *ProductService) GetProductInfoList(info testReq.ProductSearch) (list []test.SupplierMaterial, total int64, err error) {
 	limit := info.PageSize
 	offset := info.PageSize * (info.Page - 1)
 	// 鍒涘缓db
-	db := global.GVA_DB.Model(&test.Product{})
-	var ps []test.Product
-	// 濡傛灉鏈夋潯浠舵悳绱� 涓嬫柟浼氳嚜鍔ㄥ垱寤烘悳绱㈣鍙�
+	db := global.GVA_DB.Model(&test.SupplierMaterial{})
+	var ps []test.SupplierMaterial
 	//鎼滅储妗嗗悎涓�娣诲姞鏌ヨ鏉′欢
 	if info.Keyword != "" {
-		db = db.Where("srm_product.name LIKE ?", "%"+info.Keyword+"%").Joins("srm_supplier").Or("srm_supplier.name LIKE ?", "%"+info.Keyword+"%")
-	}
-	if info.StartCreatedAt != nil && info.EndCreatedAt != nil {
-		db = db.Where("created_at BETWEEN ? AND ?", info.StartCreatedAt, info.EndCreatedAt)
+		db = db.Where("`srm_supplier_material`.name LIKE ?", "%"+info.Keyword+"%").Joins("Supplier").Or("Supplier.name LIKE ?", "%"+info.Keyword+"%")
 	}
 	if info.Name != "" {
 		db = db.Where("name LIKE ?", "%"+info.Name+"%")
@@ -67,48 +80,9 @@
 	if info.Number != "" {
 		db = db.Where("number LIKE ?", "%"+info.Number+"%")
 	}
-	if info.Unit != "" {
-		db = db.Where("unit LIKE ?", "%"+info.Unit+"%")
-	}
 
 	if info.SupplierId != 0 {
 		db = db.Where("supplier_id = ?", info.SupplierId)
-	}
-
-	if info.MaximumStock != 0 {
-		db = db.Where("maximum_stock = ?", info.MaximumStock)
-	}
-
-	if info.MinimumStock != 0 {
-		db = db.Where("minimum_stock = ?", info.MinimumStock)
-	}
-
-	if info.PurchasePrice != 0 {
-		db = db.Where("purchase_price = ?", info.PurchasePrice)
-	}
-
-	if info.Specifications != "" {
-		db = db.Where("specifications LIKE ?", "%"+info.Specifications+"%")
-	}
-
-	if info.ModelNumber != "" {
-		db = db.Where("model_number LIKE ?", "%"+info.ModelNumber+"%")
-	}
-
-	if info.ProductType != "" {
-		db = db.Where("product_type LIKE ?", "%"+info.ProductType+"%")
-	}
-
-	if info.SupplierNumber != "" {
-		db = db.Joins("srm_supplier").Where("srm_supplier.number LIKE ?", "%"+info.SupplierNumber+"%")
-	}
-
-	if info.DeliveryTime != 0 {
-		db = db.Where("delivery_time = ?", info.DeliveryTime)
-	}
-
-	if info.ShippingDuration != 0 {
-		db = db.Where("shipping_duration = ?", info.ShippingDuration)
 	}
 
 	err = db.Count(&total).Error
@@ -121,14 +95,36 @@
 }
 
 // GetProducts 鏍规嵁ids鑾峰彇Product璁板綍
-func (pService *ProductService) GetProducts(ids []uint) (p []*test.Product, m map[uint]*test.Product, err error) {
+func (pService *ProductService) GetProducts(ids []uint) (p []*test.SupplierMaterial, m map[uint]*test.SupplierMaterial, err error) {
 	err = global.GVA_DB.Where("id in ?", ids).Find(&p).Error
 	if err != nil {
 		return
 	}
-	m = make(map[uint]*test.Product, len(p))
+	m = make(map[uint]*test.SupplierMaterial, len(p))
 	for _, product := range p {
 		m[product.ID] = product
 	}
 	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 number LIKE ?", "%"+info.Name+"%", "%"+info.Number+"%")
+	}
+
+	db = db.Where("purchase_type = ?", test.PurchaseTypeOutSource)
+
+	err = db.Count(&total).Error
+	if err != nil {
+		return
+	}
+
+	err = db.Limit(limit).Offset(offset).Find(&ps).Error
+	return ps, total, err
+}

--
Gitblit v1.8.0