From 89df7add774087ddcf771dcbff341d74044721ac Mon Sep 17 00:00:00 2001
From: liujiandao <274878379@qq.com>
Date: 星期四, 16 十一月 2023 09:58:57 +0800
Subject: [PATCH] 代码合并
---
api/v1/purchase/purchase.go | 65 ++++++++++++++++++++++++++------
1 files changed, 53 insertions(+), 12 deletions(-)
diff --git a/api/v1/purchase/purchase.go b/api/v1/purchase/purchase.go
index 388ddd7..c037be0 100644
--- a/api/v1/purchase/purchase.go
+++ b/api/v1/purchase/purchase.go
@@ -1,8 +1,9 @@
package purchase
import (
+ "context"
+ "fmt"
"github.com/gin-gonic/gin"
- "github.com/mitchellh/mapstructure"
"go.uber.org/zap"
"gorm.io/gorm"
"srm/global"
@@ -10,8 +11,10 @@
"srm/model/common/response"
"srm/model/purchase"
purchaserequest "srm/model/purchase/request"
+ "srm/proto/purchase_wms"
"strconv"
"strings"
+ "time"
//"srm/model/purchase"
@@ -42,7 +45,7 @@
}
var purchaseRecord purchase.Purchase
- if err := mapstructure.Decode(params.Purchase, &purchaseRecord); err != nil {
+ if err := utils.AssignTo(params.Purchase, &purchaseRecord); err != nil {
global.GVA_LOG.Error("Add Purchase failed", zap.Error(err))
response.FailWithMessage(err.Error(), c)
return
@@ -52,6 +55,9 @@
purchaseRecord.Status = purchase.OrderStatusConfirmed
purchaseRecord.HandledBy = "admin"
purchaseRecord.Creator = "admin"
+ purchaseRecord.Number = fmt.Sprintf("CG%v", time.Now().Unix())
+ purchaseRecord.Principal = "admin"
+ purchaseRecord.OrderType = "閲囪喘璁㈠崟"
if !purchaseRecord.WholeDiscountType.IsValid(purchaseRecord.TotalPrice, purchaseRecord.WholeDiscount) {
response.FailWithMessage("鏁村崟鎶樻墸鏁板�间笉姝g‘", c)
@@ -71,7 +77,7 @@
return
}
global.GVA_LOG.Error("鍒涘缓澶辫触!", zap.Error(err))
- response.FailWithMessage("鍒涘缓澶辫触", c)
+ response.FailWithMessage(err.Error(), c)
return
}
response.OkWithMessage("鍒涘缓鎴愬姛", c)
@@ -119,7 +125,7 @@
}
var purchaseRecord purchase.Purchase
- if err := mapstructure.Decode(params.Purchase, &purchaseRecord); err != nil {
+ if err := utils.AssignTo(params.Purchase, &purchaseRecord); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
@@ -163,7 +169,7 @@
return
}
respProductList := make([]*purchaseRes.PurchaseProducts, len(productList))
- err = mapstructure.Decode(productList, &respProductList)
+ err = utils.AssignTo(productList, &respProductList)
if err != nil {
global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
response.FailWithMessage("鑾峰彇澶辫触", c)
@@ -173,7 +179,7 @@
respProductList[k].Amount = item.Amount
respProductList[k].Price = item.Price
respProductList[k].Total = item.Total
- err = mapstructure.Decode(item.Product, &respProductList[k])
+ err = utils.AssignTo(item.Product, &respProductList[k])
if err != nil {
global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
response.FailWithMessage("鑾峰彇澶辫触", c)
@@ -227,14 +233,49 @@
// @Produce application/json
// @Param id path int true "閲囪喘鍗旾D"
// @Success 200 {object} response.Response{msg=string} "鎻愪氦閲囪喘鍗�"
-// @Router /purchase/submit/{id} [post]
+// @Router /purchase/submit [post]
func (e *PurchaseApi) Submit(c *gin.Context) {
- id, _ := strconv.Atoi(c.Param("id"))
- if id == 0 {
- response.FailWithMessage("鍙傛暟缂哄け", c)
+ var params purchaserequest.SubmitPurchase
+ err := c.ShouldBindJSON(¶ms)
+ if err != nil {
+ global.GVA_LOG.Error("Submit failed", zap.Error(err))
+ response.FailWithMessage(err.Error(), c)
return
}
- err := service.NewPurchaseService().Submit(uint(id))
+ if params.Status == purchase.OrderStatusReceived {
+ data, err := service.NewPurchaseService().GetPurchase(uint(params.Id))
+ if err != nil {
+ global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
+ response.FailWithMessage("鑾峰彇澶辫触", c)
+ return
+ }
+ productList, err := service.NewPurchaseService().GetPurchaseProductList(uint(params.Id))
+ if err != nil {
+ global.GVA_LOG.Error("鑾峰彇澶辫触!", zap.Error(err))
+ response.FailWithMessage("鑾峰彇澶辫触", c)
+ return
+ }
+ product := make([]*purchase_wms.PurchaseProduct, 0)
+ for _, products := range productList {
+ var p purchase_wms.PurchaseProduct
+ p.Id = products.Product.Number
+ p.Amount = products.Amount.IntPart()
+ product = append(product, &p)
+ }
+ client := purchase_wms.NewPurchaseServiceClient(purchase_wms.PurchaseConn)
+ _, err = client.PurchaseToWms(context.Background(), &purchase_wms.PurchaseToWmsRequest{
+ Number: data.Number,
+ SupplierName: data.Supplier.Name,
+ Product: product,
+ })
+ if err != nil {
+ global.GVA_LOG.Error("grpc璋冪敤澶辫触!", zap.Error(err))
+ response.FailWithMessage("grpc璋冪敤澶辫触", c)
+ return
+ }
+ }
+
+ err = service.NewPurchaseService().Submit(params.Id, params.Status)
if err != nil {
global.GVA_LOG.Error("鏇存柊澶辫触!", zap.Error(err))
response.FailWithMessage("鏇存柊澶辫触", c)
@@ -261,7 +302,7 @@
}
purchaseTypeList := make([]*purchase.PurchaseType, 0, len(params))
- if err := mapstructure.Decode(params, &purchaseTypeList); err != nil {
+ if err := utils.AssignTo(params, &purchaseTypeList); err != nil {
response.FailWithMessage(err.Error(), c)
return
}
--
Gitblit v1.8.0