diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 14ba9bc48..ef2c6d43f 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -217,16 +217,35 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s partner.CurOrderManager.UpdateAfsOrderFields(afsOrder, []string{"RefuseReason"}) } else { if order, _ := partner.CurOrderManager.LoadOrder(afsOrder.VendorOrderID, afsOrder.VendorID); order != nil { + var ( + db = dao.GetDB() + ) + waybills, _ := dao.GetWaybills(db, order.VendorOrderID) + //美团的订单如果是同意全部退款,要取消所有三方运单并停止调度 + if order.VendorID == model.VendorIDMTWM { + var ( + afsCount, orderCount int + ) + skus, _ := dao.GetAfsOrderSkuInfo(db, order.VendorOrderID, afsOrderID, order.VendorID, false) + for _, v := range skus { + afsCount += v.Count + } + for _, v := range order.Skus { + orderCount += v.Count + } + //如果售后退款的商品数等于订单商品数,我就当是全部退款了 + for _, v := range waybills { + c.CancelWaybill(v, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) + } + } 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 } - waybills, _ := dao.GetWaybills(db, order.VendorOrderID) //京东商城和京西要重新算totalshopmoney等 if order.VendorID == model.VendorIDJDShop || order.VendorID == model.VendorIDJX { skus, _ := dao.GetAfsOrderSkuInfo(db, order.VendorOrderID, afsOrderID, order.VendorID, false)