From 90ebefc0ce4306bdc96f34ea9503ca986a59bbe7 Mon Sep 17 00:00:00 2001
From: zhangqian <zhangqian@123.com>
Date: 星期三, 31 一月 2024 14:12:00 +0800
Subject: [PATCH] 客户列表grpc接口
---
api/v1/product.go | 138 +++++++++++++++++++++++++++++++++------------
1 files changed, 101 insertions(+), 37 deletions(-)
diff --git a/api/v1/product.go b/api/v1/product.go
index 9ade9d2..ee678df 100644
--- a/api/v1/product.go
+++ b/api/v1/product.go
@@ -1,43 +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
- }
-}
-
-func CloseProductServiceConn() {
- if productServiceConn != nil {
- productServiceConn.Close()
- }
-}
+//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
//
@@ -59,13 +55,36 @@
return
}
- cli := product.NewProductServiceClient(productServiceConn)
+ if params.QuotationNumber != "" {
+ find, err := model.NewQuotationSearch(nil).SetNumber(params.QuotationNumber).Find()
+ if err != nil {
+ ctx.FailWithMsg(ecode.UnknownErr, "鎶ヤ环鍗曚俊鎭煡璇㈠け璐�")
+ return
+ }
+ products := find.Products
+ ctx.OkWithDetailed(response.ListResponse{
+ Data: products,
+ Count: int64(len(products)),
+ })
+ return
+ }
+ 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,
})
+ if err != nil {
+ logx.Errorf("grpc GetProductList err: %v", err.Error())
+ ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
+ return
+ }
+ if getProductListResponse.Code != 0 {
+ logx.Errorf("grpc GetProductList err: %v", err.Error())
+ ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
+ return
+ }
rawProductList := getProductListResponse.List
productList := make([]model.Product, len(rawProductList))
@@ -75,18 +94,9 @@
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, "鍐呴儴閿欒")
- return
- }
- if getProductListResponse.Code != 0 {
- logx.Errorf("GetProductList err: %v", err.Error())
- ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
- return
- }
ctx.OkWithDetailed(response.ListResponse{
Data: productList,
Count: getProductListResponse.Total,
@@ -108,18 +118,72 @@
// 鑾峰彇浜у搧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 {
- logx.Errorf("GetProductInfo err: %v", err.Error())
+ logx.Errorf(" grpc GetProductInfo err: %v", err.Error())
ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
return
}
if getProductInfoResponse.Code != 0 {
- logx.Errorf("GetProductInfo err: %v", err.Error())
+ logx.Errorf("grpc GetProductInfo err: %v", err.Error())
ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
return
}
ctx.OkWithDetailed(getProductInfoResponse.Data)
}
+
+// GetProductOrderInfo
+//
+// @Tags 浜у搧
+// @Summary 鑾峰彇浜у搧璁㈠崟淇℃伅
+// @Produce application/json
+// @Param number path string true "鏄庣粏缂栫爜"
+// @Success 200 {object} contextx.Response{data=response.Info} "鎴愬姛"
+//
+// @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("grpc GetProductOrder err: %v", err.Error())
+ ctx.FailWithMsg(ecode.UnknownErr, "鍐呴儴閿欒")
+ return
+ }
+ var result response.Info
+ 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)
+ }
+ result.MakeInfo = list
+ var purchaseInfo []response.Purchase
+ for _, pl := range info.PurchaseList {
+ var p response.Purchase
+ p.Amount = pl.Amount
+ p.Status = pl.Status
+ p.PurchaseName = pl.PurchaseName
+ p.PurchaseNumber = pl.PurchaseNumber
+ p.SupplierName = pl.SupplierName
+ purchaseInfo = append(purchaseInfo, p)
+ }
+ result.PurchaseInfo = purchaseInfo
+ ctx.OkWithDetailed(result)
+}
--
Gitblit v1.8.0