From 6aceac83950d3f17a1137d984df4b1086bfbd016 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 15 十一月 2023 16:25:29 +0800
Subject: [PATCH] 重构产品

---
 api/v1/test/product.go |   66 +++++++++++++++++++++-----------
 1 files changed, 43 insertions(+), 23 deletions(-)

diff --git a/api/v1/test/product.go b/api/v1/test/product.go
index dfb82c9..bcd2eea 100644
--- a/api/v1/test/product.go
+++ b/api/v1/test/product.go
@@ -11,6 +11,7 @@
 	"srm/model/common/response"
 	"srm/model/test"
 	testReq "srm/model/test/request"
+	testResp "srm/model/test/response"
 	"srm/proto/product"
 	"srm/service"
 )
@@ -38,7 +39,7 @@
 	}
 	for _, t := range p.List {
 		var num int64
-		db := global.GVA_DB.Model(&test.Product{})
+		db := global.GVA_DB.Model(&test.SupplierMaterial{})
 		err := db.Where("number = ?", t.Number).Where("supplier_id = ?", t.SupplierId).Count(&num).Error
 		if err != nil {
 			response.FailWithMessage(err.Error(), c)
@@ -63,17 +64,17 @@
 // @Security ApiKeyAuth
 // @accept application/json
 // @Produce application/json
-// @Param data body test.Product true "鍒犻櫎Product"
+// @Param data body request.GetById true "鍒犻櫎Product"
 // @Success 200 {string} string "{"success":true,"data":{},"msg":"鍒犻櫎鎴愬姛"}"
 // @Router /p/deleteProduct [delete]
 func (pApi *ProductApi) DeleteProduct(c *gin.Context) {
-	var p test.Product
+	var p request.GetById
 	err := c.ShouldBindJSON(&p)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-	if err := pService.DeleteProduct(p); err != nil {
+	if err := pService.DeleteProduct(p.ID); err != nil {
 		global.GVA_LOG.Error("鍒犻櫎澶辫触!", zap.Error(err))
 		response.FailWithMessage("鍒犻櫎澶辫触", c)
 	} else {
@@ -111,11 +112,11 @@
 // @Security ApiKeyAuth
 // @accept application/json
 // @Produce application/json
-// @Param data body test.Product true "鏇存柊Product"
+// @Param data body test.SupplierMaterial true "鏇存柊Product"
 // @Success 200 {string} string "{"success":true,"data":{},"msg":"鏇存柊鎴愬姛"}"
 // @Router /p/updateProduct [put]
 func (pApi *ProductApi) UpdateProduct(c *gin.Context) {
-	var p test.Product
+	var p test.SupplierMaterial
 	err := c.ShouldBindJSON(&p)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -135,11 +136,11 @@
 // @Security ApiKeyAuth
 // @accept application/json
 // @Produce application/json
-// @Param data query test.Product true "鐢╥d鏌ヨProduct"
+// @Param data query request.GetById true "鐢╥d鏌ヨProduct"
 // @Success 200 {string} string "{"success":true,"data":{},"msg":"鏌ヨ鎴愬姛"}"
 // @Router /p/findProduct [get]
 func (pApi *ProductApi) FindProduct(c *gin.Context) {
-	var p test.Product
+	var p request.GetById
 	err := c.ShouldBindQuery(&p)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
@@ -169,21 +170,40 @@
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-	if list, total, err := pService.GetProductInfoList(pageInfo); err != nil {
+	list, total, err := pService.GetProductInfoList(pageInfo)
+	if err != nil {
 		global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
 		response.FailWithMessage("鑾峰彇澶辫触", c)
-	} else {
-		//娣诲姞渚涘簲鍟嗗悕绉�
-		for i := 0; i < len(list); i++ {
-			list[i].SupplierName = list[i].Supplier.Name
-		}
-		response.OkWithDetailed(response.PageResult{
-			List:     list,
-			Total:    total,
-			Page:     pageInfo.Page,
-			PageSize: pageInfo.PageSize,
-		}, "鑾峰彇鎴愬姛", c)
+		return
 	}
+
+	productList := make([]testResp.Product, 0, len(list))
+
+	for _, item := range list {
+		productList = append(productList, testResp.Product{
+			Name:             item.Name,
+			Number:           item.Number,
+			SupplierId:       item.SupplierId,
+			Unit:             item.Unit,
+			PurchasePrice:    item.PurchasePrice,
+			DeliveryTime:     item.DeliveryTime,
+			ShippingDuration: item.ShippingDuration,
+			Specifications:   item.Specifications,
+			ModelNumber:      item.ModelNumber,
+			ProductType:      "",
+			MinimumStock:     item.MinimumStock,
+			MaximumStock:     item.MaximumStock,
+			Remark:           "",
+			SupplierName:     item.Supplier.Name,
+		})
+	}
+
+	response.OkWithDetailed(response.PageResult{
+		List:     list,
+		Total:    total,
+		Page:     pageInfo.Page,
+		PageSize: pageInfo.PageSize,
+	}, "鑾峰彇鎴愬姛", c)
 }
 
 var (
@@ -230,16 +250,16 @@
 		ProductName:   pageInfo.Name,
 	})
 	rawProductList := getProductListResponse.List
-	productList := make([]test.Product, len(rawProductList))
+	productList := make([]testResp.Product, len(rawProductList))
 
 	for k, v := range rawProductList {
 		productList[k].Number = v.Number
 		productList[k].Name = v.Name
 		productList[k].Unit = v.Unit
 		productList[k].PurchasePrice = v.SalePrice
-		min := int(v.MinInventory)
+		min := int64(v.MinInventory)
 		productList[k].MinimumStock = min
-		max := int(v.MaxInventory)
+		max := int64(v.MaxInventory)
 		productList[k].MaximumStock = max
 		productList[k].Remark = v.Node
 		productList[k].ProductType = v.MaterialMode

--
Gitblit v1.8.0