From 18c42494735992c42d63c7858f5fdb31069d0342 Mon Sep 17 00:00:00 2001
From: jiangshuai <291802688@qq.com>
Date: 星期四, 23 十一月 2023 20:11:31 +0800
Subject: [PATCH] 获取客户列表服务端
---
api/v1/product.go | 117 +++++++++++++++++++++++++++++++++++++++++++++-------------
1 files changed, 91 insertions(+), 26 deletions(-)
diff --git a/api/v1/product.go b/api/v1/product.go
index 0b51826..e4fdc19 100644
--- a/api/v1/product.go
+++ b/api/v1/product.go
@@ -1,41 +1,40 @@
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"
+ "aps_crm/utils"
"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
//
@@ -57,13 +56,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, "鍐呴儴閿欒")
@@ -75,7 +86,7 @@
return
}
ctx.OkWithDetailed(response.ListResponse{
- Data: getProductListResponse.List,
+ Data: productList,
Count: getProductListResponse.Total,
})
}
@@ -95,7 +106,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 {
@@ -110,3 +121,57 @@
}
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
+ }
+ first, err := model.NewSalesDetailsSearch().SetNumber(number).SetPreload(true).First()
+ if err != nil {
+ ctx.FailWithMsg(ecode.UnknownErr, "鏄庣粏璇︽儏鏌ユ壘澶辫触")
+ return
+ }
+ params := make([]*product.Info, 0)
+ for _, p := range first.Products {
+ var pa product.Info
+ pa.ProductId = p.Number
+ pa.StartTime = utils.TimeToString(first.UpdatedAt)
+ pa.EndTime = first.DeliveryDate
+ params = append(params, &pa)
+ }
+ client := product.NewProductServiceClient(grpc_init.CrmApsGrpcServiceConn)
+ info, err := client.GetProductOrder(ctx.GetCtx(), &product.GetProductOrderRequest{Params: params})
+ 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