From 1572f45e72cc0fa15c029f9ee2a08474104435e6 Mon Sep 17 00:00:00 2001
From: selfcheer <selfcheer@gmail.com>
Date: 星期五, 19 七月 2024 00:48:43 +0800
Subject: [PATCH] 采购单产品列表去掉过滤重复产品的逻辑

---
 api/v1/test/product.go |  108 ++++++++++++++++++++++++++---------------------------
 1 files changed, 53 insertions(+), 55 deletions(-)

diff --git a/api/v1/test/product.go b/api/v1/test/product.go
index dfb82c9..64b99e5 100644
--- a/api/v1/test/product.go
+++ b/api/v1/test/product.go
@@ -2,7 +2,6 @@
 
 import (
 	"github.com/gin-gonic/gin"
-	"github.com/spf13/cast"
 	"go.uber.org/zap"
 	"google.golang.org/grpc"
 	"google.golang.org/grpc/credentials/insecure"
@@ -11,7 +10,7 @@
 	"srm/model/common/response"
 	"srm/model/test"
 	testReq "srm/model/test/request"
-	"srm/proto/product"
+	testResp "srm/model/test/response"
 	"srm/service"
 )
 
@@ -38,7 +37,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 +62,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 +110,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 +134,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)
@@ -160,30 +159,29 @@
 // @accept application/json
 // @Produce application/json
 // @Param data query testReq.ProductSearch true "鍒嗛〉鑾峰彇Product鍒楄〃"
+// @Param Authorization	header string true "token"
 // @Success 200 {string} string "{"success":true,"data":{},"msg":"鑾峰彇鎴愬姛"}"
 // @Router /p/getProductList [get]
 func (pApi *ProductApi) GetProductList(c *gin.Context) {
-	var pageInfo testReq.ProductSearch
-	err := c.ShouldBindQuery(&pageInfo)
+	var params testReq.ProductSearch
+	err := c.ShouldBindQuery(&params)
 	if err != nil {
 		response.FailWithMessage(err.Error(), c)
 		return
 	}
-	if list, total, err := pService.GetProductInfoList(pageInfo); err != nil {
+	list, total, err := pService.GetProductInfoList(params)
+	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
 	}
+
+	response.OkWithDetailed(response.PageResult{
+		List:     list,
+		Total:    total,
+		Page:     params.Page,
+		PageSize: params.PageSize,
+	}, "鑾峰彇鎴愬姛", c)
 }
 
 var (
@@ -222,39 +220,39 @@
 		return
 	}
 
-	cli := product.NewProductServiceClient(productServiceConn)
-	getProductListResponse, err := cli.GetProductList(c, &product.GetProductListRequest{
-		Page:          cast.ToInt32(pageInfo.Page),
-		PageSize:      cast.ToInt32(pageInfo.PageSize),
-		ProductNumber: pageInfo.Number,
-		ProductName:   pageInfo.Name,
-	})
-	rawProductList := getProductListResponse.List
-	productList := make([]test.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)
-		productList[k].MinimumStock = min
-		max := int(v.MaxInventory)
-		productList[k].MaximumStock = max
-		productList[k].Remark = v.Node
-		productList[k].ProductType = v.MaterialMode
-	}
-
-	if err != nil || getProductListResponse.Code != 0 {
+	list, total, err := pService.GetMaterials(pageInfo)
+	if err != nil {
 		global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
 		response.FailWithMessage("鑾峰彇澶辫触", c)
-	} else {
-		response.OkWithDetailed(response.PageResult{
-			List:     productList,
-			Total:    int64(len(productList)),
-			Page:     pageInfo.Page,
-			PageSize: pageInfo.PageSize,
-		}, "鑾峰彇鎴愬姛", c)
+		return
 	}
 
+	productList := make([]testResp.Material, 0)
+
+	for _, item := range list {
+		productList = append(productList, testResp.Material{
+			Name:           item.Name,
+			Number:         item.ID,
+			Unit:           item.Unit,
+			Specifications: item.Specs,
+			ModelNumber:    item.Type,
+			MinimumStock:   item.MinInventory.IntPart(),
+			MaximumStock:   item.MaxInventory.IntPart(),
+			Remark:         "",
+			CategoryName:   item.CategoryName,
+		})
+	}
+
+	if err != nil {
+		global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
+		response.FailWithMessage("鑾峰彇澶辫触", c)
+	}
+
+	response.OkWithDetailed(response.PageResult{
+		List:     productList,
+		Total:    total,
+		Page:     pageInfo.Page,
+		PageSize: pageInfo.PageSize,
+	}, "鑾峰彇鎴愬姛", c)
+
 }

--
Gitblit v1.8.0