1
This commit is contained in:
@@ -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 (
|
||||
|
||||
@@ -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"` // 同一平台下不同的商户代码,如果只有一个,可以为空
|
||||
}
|
||||
|
||||
|
||||
@@ -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("如需整单退款,请使用整单退,无法分批次整单退款")
|
||||
}
|
||||
|
||||
|
||||
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user