From 51c30afacd2fe23de69f7d564653f39dfc18cdb3 Mon Sep 17 00:00:00 2001 From: richboo111 Date: Fri, 5 Aug 2022 16:43:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5=E5=94=AE=E5=90=8E?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/partner/purchase/ebai/order.go | 7 ++++++- business/partner/purchase/ebai/order_afs.go | 22 +++++++++++++-------- 2 files changed, 20 insertions(+), 9 deletions(-) diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 6750b6dc9..d9149d38a 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -641,7 +641,12 @@ func (c *PurchaseHandler) GetOrderRealMobile(ctx *jxcontext.Context, order *mode func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *model.GoodsOrder, isAgree bool, reason string) (err error) { if globals.EnableEbaiStoreWrite { if isAgree { - err = api.EbaiAPI.OrderAgreeRefund(order.VendorOrderID) + //售后同意多次取消 + if order.Status > model.OrderStatusEndBegin { + err = api.EbaiAPI.OrderAgreePartRefund(order.VendorOrderID) + } else { + err = api.EbaiAPI.OrderAgreeRefund(order.VendorOrderID) + } } else { err = api.EbaiAPI.OrderDisagreeRefund(order.VendorOrderID, reason) } diff --git a/business/partner/purchase/ebai/order_afs.go b/business/partner/purchase/ebai/order_afs.go index 229da640a..bf31d7bd1 100644 --- a/business/partner/purchase/ebai/order_afs.go +++ b/business/partner/purchase/ebai/order_afs.go @@ -224,9 +224,9 @@ func (c *PurchaseHandler) callbackAfsMsg2Status(msg *ebaiapi.CallbackMsg) (order func (c *PurchaseHandler) AgreeOrRefuseRefund(ctx *jxcontext.Context, order *model.AfsOrder, approveType int, reason string) (err error) { if globals.EnableEbaiStoreWrite { if approveType == partner.AfsApproveTypeRefused { - err = api.EbaiAPI.OrderDisagreeRefund(order.VendorOrderID, reason) + err = api.EbaiAPI.OrderDisagreeReturnGoods(order.VendorOrderID, reason) } else { - err = api.EbaiAPI.OrderAgreeRefund(order.VendorOrderID) + err = api.EbaiAPI.OrderAgreeReturnGoods(order.VendorOrderID) } } return err @@ -239,17 +239,23 @@ func (c *PurchaseHandler) ConfirmReceivedReturnGoods(ctx *jxcontext.Context, ord } // 发起全款退款 -func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string) (err error) { - return c.PartRefundOrder(ctx, order, order.Skus, reason) +func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, reason string, isAgree bool) (err error) { + return c.PartRefundOrder(ctx, order, order.Skus, reason, isAgree) } -// 发起部分退款 -func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string) (err error) { +// 发起部分退款 售后/售中 +func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.GoodsOrder, refundSkuList []*model.OrderSku, reason string, isAgree bool) (err error) { if globals.EnableEbaiStoreWrite { + //售后部分多次退款 if order.Status > model.OrderStatusEndBegin { - return fmt.Errorf("饿百暂不支持售后退款!") + if err := api.EbaiAPI.OrderAgreePartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil { + return err + } + } else { + if err := api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)); err != nil { + return err + } } - err = api.EbaiAPI.OrderPartRefund(order.VendorOrderID, orderSkus2AfsSkus(refundSkuList)) } return err }