diff --git a/business/jxcallback/scheduler/basesch/basesch_ext.go b/business/jxcallback/scheduler/basesch/basesch_ext.go index 872f6466a..c7df132cb 100644 --- a/business/jxcallback/scheduler/basesch/basesch_ext.go +++ b/business/jxcallback/scheduler/basesch/basesch_ext.go @@ -230,7 +230,7 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s ) waybills, _ := dao.GetWaybills(db, order.VendorOrderID) //美团的订单如果是同意全部退款,要取消所有三方运单并停止调度 - if order.VendorID == model.VendorIDMTWM { + if order.VendorID == model.VendorIDMTWM || order.VendorID == model.VendorIDJX { var ( afsCount, orderCount int ) @@ -242,13 +242,19 @@ func (c *BaseScheduler) AgreeOrRefuseRefund(ctx *jxcontext.Context, afsOrderID s orderCount += v.Count } //如果售后退款的商品数等于订单商品数,我就当是全部退款了 - if afsCount == orderCount { + if afsCount == orderCount && order.VendorID == model.VendorIDMTWM { order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag"}) for _, v := range waybills { c.CancelWaybill(v, partner.CancelWaybillReasonOther, partner.CancelWaybillReasonStrActive) } } + if afsCount == orderCount && order.VendorID == model.VendorIDJX { + order.DeliveryFlag |= model.OrderDeliveryFlagMaskScheduleDisabled + order.Status = model.OrderStatusCanceled + order.VendorStatus = utils.Int2Str(model.OrderStatusCanceled) + partner.CurOrderManager.UpdateOrderFields(order, []string{"DeliveryFlag", "Status", "VendorStatus"}) + } } if order.EarningType == model.EarningTypePoints { var ( diff --git a/business/model/order.go b/business/model/order.go index 74303f634..acf5b7e22 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -244,7 +244,7 @@ type Waybill struct { ModelTimeInfo `json:"-"` OriginalData string `orm:"type(text)" json:"-"` Remark string `orm:"-" json:"-"` // 用于传递remark - //OtherFee int64 `orm:"column(other_fee)" json:"otherFee"` // 对应美团外卖运单的保险费 + //PunctualFee int64 `orm:"column(punctual_fee)" json:"punctualFee"` // 对应美团外卖运单的准时保险费 VendorOrgCode string `orm:"size(64)" json:"vendorOrgCode"` // 同一平台下不同的商户代码,如果只有一个,可以为空 } diff --git a/business/partner/purchase/jx/phpjx/order_afs.go b/business/partner/purchase/jx/phpjx/order_afs.go index f768c2869..c2985b376 100644 --- a/business/partner/purchase/jx/phpjx/order_afs.go +++ b/business/partner/purchase/jx/phpjx/order_afs.go @@ -144,8 +144,22 @@ func buildAfsOrder(msg *CallbackMsg) (outAfsOrder *model.AfsOrder, err error) { return nil, err } - // 最后一个商品 - if len(skuList) == len(refundFinancial)+len(afsOrder.Skus) && len(skuList) != model.YES { + makeOrderSkuCount := 0 + afsOrderOrderSkuCount := 0 + refundFinacialSkuCount := 0 + for _, v := range skuList { + makeOrderSkuCount += v.Count + } + for _, v := range afsOrder.Skus { + afsOrderOrderSkuCount += v.Count + } + for _, v := range refundFinancial { + refundFinacialSkuCount += v.Count + } + // 这么写主要是不想让满足条件一的进入条件三 + if makeOrderSkuCount == afsOrderOrderSkuCount && refundFinacialSkuCount == model.NO { // 整单退 + } else if makeOrderSkuCount-refundFinacialSkuCount == model.YES && makeOrderSkuCount == model.YES { // 整单退且只有一个商品 + } else if makeOrderSkuCount-refundFinacialSkuCount-afsOrderOrderSkuCount == model.NO && afsOrderOrderSkuCount > 0 { // 分单退最后一个,不给退 return nil, errors.New("如需整单退款,请使用整单退,无法分批次整单退款") } diff --git a/business/partner/purchase/mtwm/waybill.go b/business/partner/purchase/mtwm/waybill.go index bb615bf7f..01be0cf0e 100644 --- a/business/partner/purchase/mtwm/waybill.go +++ b/business/partner/purchase/mtwm/waybill.go @@ -49,11 +49,16 @@ func (c *PurchaseHandler) callbackMsg2Waybill(msg *mtwmapi.CallbackMsg) (retVal Status: c.GetWaybillStatusFromVendorStatus(vendorStatus), StatusTime: getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("time"))), Remark: "", - - VendorOrgCode: msg.AppID, + VendorOrgCode: msg.AppID, } if retVal.StatusTime == utils.DefaultTimeValue { retVal.StatusTime = getTimeFromTimestamp(utils.Str2Int64(msg.FormData.Get("timestamp"))) } + + //if vendorStatus == "4" || vendorStatus == "8" { // 4:美团推送已经(确认骑手)订单 8:美团推送(骑手完成)订单 + // retVal.DesiredFee = utils.Float64TwoInt64(utils.Str2Float64WithDefault(msg.FormData.Get("shipping_fee"), 0)) // 订单优惠前的总费用 + // partner.CurOrderManager + //} + return retVal }