From 002539c8dc7eae6e64da1608245be01a889c061c Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期六, 02 十二月 2023 14:48:14 +0800
Subject: [PATCH] 修改销售明细

---
 api/v1/product.go |   97 ++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 77 insertions(+), 20 deletions(-)

diff --git a/api/v1/product.go b/api/v1/product.go
index f34eb07..9cca9e4 100644
--- a/api/v1/product.go
+++ b/api/v1/product.go
@@ -1,35 +1,39 @@
 package v1
 
 import (
-	"aps_crm/conf"
+	"aps_crm/model"
+	"aps_crm/model/grpc_init"
 	"aps_crm/model/request"
 	"aps_crm/model/response"
 	"aps_crm/pkg/contextx"
 	"aps_crm/pkg/ecode"
 	"aps_crm/pkg/logx"
 	"aps_crm/proto/product"
-	"fmt"
 	"github.com/gin-gonic/gin"
+	"github.com/shopspring/decimal"
 	"github.com/spf13/cast"
-	"google.golang.org/grpc"
-	"google.golang.org/grpc/credentials/insecure"
 )
 
 type ProductApi struct{}
 
-var (
-	productServiceConn *grpc.ClientConn
-)
-
-func InitProductServiceConn() {
-	fmt.Println(conf.Conf.GrpcServiceAddr.Aps)
-	var err error
-	productServiceConn, err = grpc.Dial(conf.Conf.GrpcServiceAddr.Aps, grpc.WithTransportCredentials(insecure.NewCredentials()))
-	if err != nil {
-		logx.Errorf("grpc dial product service error: %v", err.Error())
-		return
-	}
-}
+//var (
+//	productServiceConn *grpc.ClientConn
+//)
+//
+//func InitProductServiceConn() {
+//	var err error
+//	productServiceConn, err = grpc.Dial(conf.Conf.GrpcServiceAddr.Aps, grpc.WithTransportCredentials(insecure.NewCredentials()))
+//	if err != nil {
+//		logx.Errorf("grpc dial product service error: %v", err.Error())
+//		return
+//	}
+//}
+//
+//func CloseProductServiceConn() {
+//	if productServiceConn != nil {
+//		productServiceConn.Close()
+//	}
+//}
 
 // List
 //
@@ -51,13 +55,25 @@
 		return
 	}
 
-	cli := product.NewProductServiceClient(productServiceConn)
+	cli := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
 	getProductListResponse, err := cli.GetProductList(ctx.GetCtx(), &product.GetProductListRequest{
 		Page:          cast.ToInt32(params.Page),
 		PageSize:      cast.ToInt32(params.PageSize),
 		ProductNumber: params.ProductNumber,
 		ProductName:   params.ProductName,
 	})
+	rawProductList := getProductListResponse.List
+	productList := make([]model.Product, len(rawProductList))
+
+	for k, v := range rawProductList {
+		productList[k].Number = v.Number
+		productList[k].Name = v.Name
+		productList[k].Price = decimal.NewFromFloat(v.SalePrice).Round(2)
+		productList[k].Amount = decimal.NewFromFloat(1)
+		productList[k].Total = productList[k].Price.Mul(productList[k].Amount).Round(2)
+		productList[k].Unit = v.Unit
+	}
+
 	if err != nil {
 		logx.Errorf("GetProductList err: %v", err.Error())
 		ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
@@ -69,7 +85,7 @@
 		return
 	}
 	ctx.OkWithDetailed(response.ListResponse{
-		Data:  getProductListResponse.List,
+		Data:  productList,
 		Count: getProductListResponse.Total,
 	})
 }
@@ -89,7 +105,7 @@
 
 	// 鑾峰彇浜у搧ID
 	productId := c.Query("productNumber")
-	cli := product.NewProductServiceClient(productServiceConn)
+	cli := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
 
 	getProductInfoResponse, err := cli.GetProductInfo(ctx.GetCtx(), &product.GetProductInfoRequest{ProductId: productId})
 	if err != nil {
@@ -104,3 +120,44 @@
 	}
 	ctx.OkWithDetailed(getProductInfoResponse.Data)
 }
+
+// GetProductOrderInfo
+//
+// @Tags		浜у搧
+// @Summary	鑾峰彇浜у搧璁㈠崟淇℃伅
+// @Produce	application/json
+// @Param		number	path		string	true	"鏄庣粏缂栫爜"
+// @Success	200	{object}	contextx.Response{data=[]product.WorkOrderInfo}	"鎴愬姛"
+//
+//	@Router		/api/product/getProductOrderInfo/{number} [get]
+func (ci *ProductApi) GetProductOrderInfo(c *gin.Context) {
+	ctx, ok := contextx.NewContext(c, nil)
+	if !ok {
+		return
+	}
+	number := c.Param("number")
+	if number == "" || number == "undefined" {
+		ctx.Ok()
+		return
+	}
+	client := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
+	info, err := client.GetProductOrder(ctx.GetCtx(), &product.GetProductOrderRequest{SalesDetailsNumber: number})
+	if err != nil {
+		logx.Errorf("GetProductOrder err: %v", err.Error())
+		ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
+		return
+	}
+	var list []response.WorkOrderInfo
+	for _, orderInfo := range info.List {
+		var wo response.WorkOrderInfo
+		wo.OrderId = orderInfo.OrderId
+		wo.ProductName = orderInfo.ProductName
+		wo.OrderStatus = orderInfo.OrderStatus
+		wo.WorkOrderId = orderInfo.WorkOrderId
+		wo.WorkOrderStatus = orderInfo.WorkOrderStatus
+		wo.StartTime = orderInfo.StartTime
+		wo.EndTime = orderInfo.EndTime
+		list = append(list, wo)
+	}
+	ctx.OkWithDetailed(list)
+}

--
Gitblit v1.8.0