From 6c13f113e8d50aa7a74cd9df6e04991ff296685a Mon Sep 17 00:00:00 2001 From: gazebo Date: Wed, 25 Dec 2019 21:54:16 +0800 Subject: [PATCH] =?UTF-8?q?jdapi.AdjustOrder=E5=A4=84=E7=90=86=E9=87=8D?= =?UTF-8?q?=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/jd/order.go | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/business/partner/purchase/jd/order.go b/business/partner/purchase/jd/order.go index a4bcc73e7..f47577449 100644 --- a/business/partner/purchase/jd/order.go +++ b/business/partner/purchase/jd/order.go @@ -437,11 +437,18 @@ func (c *PurchaseHandler) CancelOrder(ctx *jxcontext.Context, order *model.Goods func (c *PurchaseHandler) AdjustOrder(ctx *jxcontext.Context, order *model.GoodsOrder, removedSkuList []*model.OrderSku, reason string) (err error) { order = jxutils.RemoveSkuFromOrder(order, removedSkuList) var oaosAdjustDTOList []*jdapi.OAOSAdjustDTO + dtoMap := make(map[int]*jdapi.OAOSAdjustDTO) for _, sku := range order.Skus { - oaosAdjustDTOList = append(oaosAdjustDTOList, &jdapi.OAOSAdjustDTO{ - OutSkuID: utils.Int2Str(jxutils.GetSkuIDFromOrderSku(sku)), - SkuCount: sku.Count, - }) + skuID := jxutils.GetSkuIDFromOrderSku(sku) + if dtoMap[skuID] == nil { + dtoMap[skuID] = &jdapi.OAOSAdjustDTO{ + OutSkuID: utils.Int2Str(skuID), + SkuCount: sku.Count, + } + oaosAdjustDTOList = append(oaosAdjustDTOList, dtoMap[skuID]) + } else { + dtoMap[skuID].SkuCount += sku.Count + } } if globals.EnableJdStoreWrite { err = getAPI(order.VendorOrgCode).AdjustOrder(order.VendorOrderID, ctx.GetUserName(), reason, oaosAdjustDTOList)