diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index c6668a142..d4451d63f 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -5,6 +5,8 @@ import ( "strings" "time" + "git.rosy.net.cn/baseapi/platformapi/jdshopapi" + "git.rosy.net.cn/baseapi/platformapi/dingdingapi" "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/baseapi/utils/errlist" @@ -213,6 +215,36 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s flag = model.AfsOrderFlagRefuseUserRefund afsOrder.RefuseReason = reason partner.CurOrderManager.UpdateAfsOrderFields(afsOrder, []string{"RefuseReason"}) + } else { + if order, _ := partner.CurOrderManager.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); order != nil { + if order.EarningType == model.EarningTypePoints { + var ( + skuMap = make(map[int]*model.OrderSku) + diff int64 + db = dao.GetDB() + ) + for _, sku := range order.Skus { + skuMap[sku.SkuID] = sku + } + storeDetail, _ := dao.GetStoreDetail(db, jxutils.GetSaleStoreIDFromOrder(order), order.VendorID) + waybills, _ := dao.GetWaybills(db, order.VendorOrderID) + //京东商城和京西要重新算totalshopmoney等 + if vendorID == model.VendorIDJDShop || vendorID == model.VendorIDJX { + for _, v := range afsOrder.Skus { + if skuMap[v.SkuID] != nil { + diff += skuMap[v.SkuID].SalePrice * int64(v.Count) + } + } + order.TotalShopMoney = utils.Float64TwoInt64(float64(order.ActualPayPrice-diff) * jdshopapi.JdsPayPercentage) + if len(waybills) > 0 { + jxutils.RefreshOrderEarningPrice3(order, storeDetail.PayPercentage, waybills[0]) + } else { + jxutils.RefreshOrderEarningPrice2(order, storeDetail.PayPercentage) + } + dao.UpdateEntity(db, order, "TotalShopMoney", "NewEarningPrice") + } + } + } } dao.SetAfsOrderFlag(dao.GetDB(), ctx.GetUserName(), afsOrderID, vendorID, flag) }