diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index 09f7d72fb..89cdfc9ab 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -3,6 +3,7 @@ package ebai import ( "errors" "fmt" + "git.rosy.net.cn/jx-callback/business/model/dao" "strings" "time" @@ -163,6 +164,16 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *ebaiapi.CallbackMsg) (retVal *ebaia err = partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus) } } + + // 只有有售后订单就更新此订单的结算信息 + if utils.Str2Int(orderStatus.VendorStatus) == ebaiapi.OrderPartRefundSuccess { + orderData, err2 := api.EbaiAPI.OrderPartRefundGet(orderStatus.RefVendorOrderID) + if err2 == nil && utils.MustInterface2Int64(orderData["shop_fee"]) != model.NO { + goodsOrder, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDEBAI) + goodsOrder.TotalShopMoney = utils.MustInterface2Int64(orderData["shop_fee"]) + dao.UpdateEntity(dao.GetDB(), goodsOrder, "TotalShopMoney") + } + } retVal = api.EbaiAPI.Err2CallbackResponse(msg.Cmd, err, nil) } return retVal diff --git a/business/partner/purchase/mtwm/order_afs.go b/business/partner/purchase/mtwm/order_afs.go index 67f84b141..2c5839675 100644 --- a/business/partner/purchase/mtwm/order_afs.go +++ b/business/partner/purchase/mtwm/order_afs.go @@ -151,16 +151,32 @@ func (c *PurchaseHandler) onAfsOrderMsg(msg *mtwmapi.CallbackMsg) (retVal *mtwma } else { // msg-status 1-已申请 10-初审已同意 11-初审已驳回 16-初审已申诉 17-初审申诉已同意 18-初审申诉已驳回 20-终审已发起(用户已发货) 21-终审已同意 22-终审已驳回 26-终审已申诉 27-终审申诉已同意 28-终审申诉已驳回 30-已取消 if err := partner.CurOrderManager.OnAfsOrderStatusChanged(orderStatus); err == nil { + order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM) // 订单回调全额退款接口时,将订单状态修改为取消 refundData := msg.Data.(*mtwmapi.CallbackRefundInfo) - if (refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && msg.Cmd == mtwmapi.MsgTypeOrderRefund) || refundData.Status == "21" { - order, _ := partner.CurOrderManager.LoadOrder(orderStatus.RefVendorOrderID, model.VendorIDMTWM) + if refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && msg.Cmd == mtwmapi.MsgTypeOrderRefund { order.Status = model.OrderStatusCanceled dao.UpdateEntity(dao.GetDB(), order, "Status") + } else if refundData.Status == "21" { + skuList, _ := dao.GetSimpleOrderSkus(dao.GetDB(), orderStatus.RefVendorOrderID, nil) + totalSkuCount := 0 + for _, v := range skuList { + totalSkuCount += v.Count + } + + financialSku, _ := dao.GetOrderRefundSkuList(dao.GetDB(), []string{orderStatus.RefVendorOrderID}) + refundSkuCount := 0 + for _, v := range financialSku { + refundSkuCount += v.Count + } + if totalSkuCount == refundSkuCount { + order.Status = model.OrderStatusCanceled + dao.UpdateEntity(dao.GetDB(), order, "Status") + } } // 新订单平台自动同意退单,某一些情况下产生的运单没退!这个处理一下! - if (refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && (msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderAgree)) || refundData.Status == "21" { + if refundData.NotifyType == mtwmapi.MsgTypeOrderAgree && (msg.Cmd == mtwmapi.MsgTypeOrderRefund || msg.Cmd == mtwmapi.MsgTypeOrderAgree) { wayBill, _ := dao.GetWaybills(dao.GetDB(), orderStatus.RefVendorOrderID, nil) for _, v := range wayBill { handlerInfo := partner.GetDeliveryPlatformFromVendorID(v.WaybillVendorID)