This commit is contained in:
邹宗楠
2023-09-28 09:52:09 +08:00
parent 6858dc7919
commit 90dc6d21b3

View File

@@ -291,34 +291,38 @@ func (c *PurchaseHandler) RefundOrder(ctx *jxcontext.Context, order *model.Goods
// 发起部分退款 售后/售中 // 发起部分退款 售后/售中
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) (err error) {
if globals.EnableEbaiStoreWrite { if order.Status < model.OrderStatusEndBegin {
//获取afsOrder return fmt.Errorf("订单处于未结束状态,请稍后重试")
var afsOrderInfo *model.AfsOrder
result, err := api.EbaiAPI.OrderPartRefundGet(order.VendorOrderID)
if err != nil {
return err
} }
afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result)
//售后部分多次退款
if order.Status > model.OrderStatusEndBegin {
param := &ebaiapi.RefundOrderExamine{ param := &ebaiapi.RefundOrderExamine{
ReverseOrderId: afsOrderInfo.AfsOrderID, ReverseOrderId: "",
OrderId: afsOrderInfo.VendorOrderID, OrderId: "",
IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), IdempotentId: utils.Int64ToStr(time.Now().UnixNano()),
ActionType: ebaiapi.RefundTypeAgree, ActionType: ebaiapi.RefundTypeAgree,
ReasonCode: "", ReasonCode: "",
ReasonRemarks: reason, ReasonRemarks: reason,
} }
date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) date, err := api.EbaiAPI.GetReverseOrder(order.VendorOrderID)
globals.SugarLogger.Debug("============data := %s", utils.Format4Output(date, false)) if err != nil {
return err
}
if date == nil {
return fmt.Errorf("GetReverseOrder 饿百售后数据查询为空")
}
refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) refundProductList := make([]*ebaiapi.RefundProductList, 0, 0)
for _, v := range date { removerAll := false
for k, v := range date {
v2 := v.(map[string]interface{}) v2 := v.(map[string]interface{})
refundProduct := &ebaiapi.RefundProductList{ refundProduct := &ebaiapi.RefundProductList{
SubBizOrderId: v2["sub_biz_order_id"].(string), SubBizOrderId: v2["sub_biz_order_id"].(string),
PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)), PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)),
} }
// 全退
if k == model.NO && utils.MustInterface2Int64(v2["is_refund_all"]) == model.YES {
removerAll = true
}
switch utils.MustInterface2Int64(v2["fund_calculate_type"]) { switch utils.MustInterface2Int64(v2["fund_calculate_type"]) {
case 0: case 0:
refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"])) refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"]))
@@ -328,7 +332,9 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
refundProductList = append(refundProductList, refundProduct) refundProductList = append(refundProductList, refundProduct)
} }
param.RefundProductList = refundProductList param.RefundProductList = refundProductList
globals.SugarLogger.Debug("============param := %s", utils.Format4Output(param, false))
//售后部分多次退款
if removerAll {
err = api.EbaiAPI.OrderAgreePartRefund(param) err = api.EbaiAPI.OrderAgreePartRefund(param)
} else { } else {
if reason == "" { if reason == "" {
@@ -349,7 +355,6 @@ func (c *PurchaseHandler) PartRefundOrder(ctx *jxcontext.Context, order *model.G
return err return err
} }
} }
}
return err return err
} }