From b86e8b84137afb1c6ec6e8210358acab7afeb65d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 12 Oct 2020 14:04:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=B7=E6=96=B0=E6=8A=A5=E4=BB=B7=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E5=95=86=E5=93=81=E4=BB=B7=E6=A0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxcallback/orderman/order.go | 41 ++++++++++++++++++++------- 1 file changed, 31 insertions(+), 10 deletions(-) diff --git a/business/jxcallback/orderman/order.go b/business/jxcallback/orderman/order.go index 6b0b49bad..20460608a 100644 --- a/business/jxcallback/orderman/order.go +++ b/business/jxcallback/orderman/order.go @@ -1916,19 +1916,22 @@ func UpdateOrderInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID int, func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID, skuID int) (num int64, err error) { var ( - db = dao.GetDB() + db = dao.GetDB() + shopPrice int64 ) order, err := partner.CurOrderManager.LoadOrder(vendorOrderID, vendorID) - for _, v := range order.Skus { - if v.SkuID == 0 { - if v.SkuID == skuID { - - } - } else { - if v.JxSkuID == skuID { - - } + if order.EarningType != model.EarningTypeQuote { + return 0, fmt.Errorf("目前只支持报价订单有此操作!") + } + updateOrderSku := func(v *model.OrderSku, skuID2 int) (err error) { + storeSkus, _ := dao.GetStoresSkusInfo(db, []int{jxutils.GetSaleStoreIDFromOrder(order)}, []int{skuID2}) + if len(storeSkus) == 0 { + return fmt.Errorf("未找到此门店商品!") } + storeSku := storeSkus[0] + v.ShopPrice = int64(storeSku.Price) + dao.UpdateEntity(db, v, "ShopPrice") + return err } dao.Begin(db) defer func() { @@ -1937,6 +1940,24 @@ func RefreshOrderSkuInfo(ctx *jxcontext.Context, vendorOrderID string, vendorID, panic(r) } }() + for _, v := range order.Skus { + if v.SkuID == 0 { + if v.SkuID == skuID { + err = updateOrderSku(v, skuID) + } + } else { + if v.JxSkuID == skuID { + err = updateOrderSku(v, skuID) + } + } + } + if err != nil { + return 0, err + } + for _, v := range order.Skus { + shopPrice += v.ShopPrice * int64(v.Count) + } + order.ShopPrice = shopPrice num, err = dao.UpdateEntity(db, order, "ShopPrice") dao.Commit(db) return num, err