From c5a5f4777b28d21632cdb64fc4367811fad91368 Mon Sep 17 00:00:00 2001 From: gazebo Date: Mon, 12 Aug 2019 17:17:12 +0800 Subject: [PATCH] =?UTF-8?q?-=20AdjustOrder=E4=B8=8EPartRefundOrder?= =?UTF-8?q?=E4=B8=AD=EF=BC=8C=E4=B8=BA=E4=BA=86=E5=8C=BA=E5=88=AB=E6=B4=BB?= =?UTF-8?q?=E5=8A=A8=E4=B8=8E=E9=9D=9E=E6=B4=BB=E5=8A=A8SKU=EF=BC=8C?= =?UTF-8?q?=E9=9C=80=E8=BD=AC=E5=85=A5SubStoreID=EF=BC=88=E5=8D=B3?= =?UTF-8?q?=E5=8D=95=E5=93=81=E7=9A=84=E6=B4=BB=E5=8A=A8ID=EF=BC=89?= =?UTF-8?q?=E5=8C=BA=E5=88=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 2 +- controllers/jx_order.go | 28 ++++++++++++++++++--------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index b3197895a..1e75f297b 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -333,7 +333,7 @@ func (c *OrderManager) updateOrderSkuOtherInfo(order *model.GoodsOrder, db *dao. // } else if actStoreSkuMap != nil { if skuID := jxutils.GetSkuIDFromOrderSku(v); skuID > 0 /*&& v.StoreSubName != ""*/ { - if actStoreSku := actStoreSkuMap.GetActStoreSku(jxStoreID, skuID, order.VendorID); actStoreSku != nil { + if actStoreSku := actStoreSkuMap.GetActStoreSku(jxStoreID, skuID, order.VendorID); actStoreSku != nil && v.StoreSubName != "" { v.EarningPrice = actStoreSku.EarningPrice v.StoreSubID = actStoreSku.ActID } diff --git a/controllers/jx_order.go b/controllers/jx_order.go index af0f6be8f..54dabfe9f 100644 --- a/controllers/jx_order.go +++ b/controllers/jx_order.go @@ -504,22 +504,30 @@ func (c *OrderController) GetPrinterStatus() { }) } -func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int]*model.OrderSku) { - skuMap = make(map[int]*model.OrderSku) +func skuList2Map(skuList []*model.OrderSku) (skuCount int, skuMap map[int64]*model.OrderSku) { + skuMap = make(map[int64]*model.OrderSku) for _, sku := range skuList { skuCount += sku.Count skuID := jxutils.GetSkuIDFromOrderSku(sku) if sku.SkuID > 0 { - if skuMap[skuID] == nil { - skuMap[skuID] = sku + index := jxutils.Combine2Int(skuID, sku.StoreSubID) + if skuMap[index] == nil { + skuMap[index] = sku } else { - skuMap[skuID].Count += sku.Count + skuMap[index].Count += sku.Count } } } return skuCount, skuMap } +func getSkuFromMap(skuMap map[int64]*model.OrderSku, skuID, actID int) (sku *model.OrderSku) { + if sku = skuMap[jxutils.Combine2Int(skuID, actID)]; sku == nil && actID != 0 { + sku = skuMap[jxutils.Combine2Int(skuID, 0)] + } + return sku +} + // @Title 调整订单 // @Description 调整订单 // @Param token header string true "认证token" @@ -760,16 +768,18 @@ func fillSkuList(skuList, orderSkuList []*model.OrderSku) (isSame bool, err erro for _, sku := range skuList { skuCount2 += sku.Count skuID := jxutils.GetSkuIDFromOrderSku(sku) - if orderSkuMap[skuID] == nil { + actID := sku.StoreSubID + sku2 := getSkuFromMap(orderSkuMap, skuID, actID) + if sku2 == nil { err = fmt.Errorf("找不到SKU:%d", skuID) - } else if sku.Count > orderSkuMap[skuID].Count { - err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, orderSkuMap[skuID].Count) + } else if sku.Count > sku2.Count { + err = fmt.Errorf("SKU:%d调整数量:%d大于实际数量:%d", skuID, sku.Count, sku2.Count) } if err != nil { break } else { count := sku.Count - *sku = *orderSkuMap[skuID] + *sku = *sku2 sku.Count = count } }