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