diff --git a/business/jxcallback/scheduler/defsch/defsch.go b/business/jxcallback/scheduler/defsch/defsch.go index 639e308e9..c121ada50 100644 --- a/business/jxcallback/scheduler/defsch/defsch.go +++ b/business/jxcallback/scheduler/defsch/defsch.go @@ -1180,7 +1180,7 @@ func (s *DefScheduler) updateOrderByBill(order *model.GoodsOrder, bill *model.Wa if bill.Status == model.WaybillStatusDelivered { storeDetail, _ := partner.CurOrderManager.LoadStoreDetail(jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) if storeDetail != nil { - jxutils.RefreshOrderEarningPrice2(order, storeDetail.PayPercentage) + jxutils.RefreshOrderEarningPrice3(order, storeDetail.PayPercentage, bill) updateFields = append(updateFields, "NewEarningPrice") } } diff --git a/business/jxutils/jxutils.go b/business/jxutils/jxutils.go index afe67673b..30064d05e 100644 --- a/business/jxutils/jxutils.go +++ b/business/jxutils/jxutils.go @@ -601,6 +601,19 @@ func RefreshOrderEarningPrice2(order *model.GoodsOrder, payPercentage int) *mode return order } +func RefreshOrderEarningPrice3(order *model.GoodsOrder, payPercentage int, bill *model.Waybill) *model.GoodsOrder { + if order.EarningType == model.EarningTypePoints { + if order.VendorID == model.VendorIDJDShop || order.VendorID == model.VendorIDJX { + order.NewEarningPrice = (order.TotalShopMoney - bill.DesiredFee) * int64((100 - payPercentage)) / 100 + } else { + order.NewEarningPrice = (order.TotalShopMoney - bill.DesiredFee) * int64((100 - payPercentage/2)) / 100 + } + } else { + order.NewEarningPrice = order.EarningPrice + } + return order +} + func RefreshAfsOrderSkuRelated(afsOrder *model.AfsOrder) *model.AfsOrder { afsOrder.SkuUserMoney = 0 afsOrder.PmSkuSubsidyMoney = 0