diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index 54491e862..4eb5e631d 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -665,43 +665,38 @@ func (c *PurchaseHandler) AgreeOrRefuseCancel(ctx *jxcontext.Context, order *mod } afsOrderInfo = CurPurchaseHandler.AfsOrderDetail2Financial(result) + param := &ebaiapi.RefundOrderExamine{ + ReverseOrderId: afsOrderInfo.AfsOrderID, + OrderId: order.VendorOrderID, + IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), + ActionType: ebaiapi.RefundTypeRefuse, + ReasonRemarks: reason, + } + refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) + date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) + for _, v := range date { + v2 := v.(map[string]interface{}) + refundProduct := &ebaiapi.RefundProductList{ + SubBizOrderId: v2["sub_biz_order_id"].(string), + PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)), + } + switch utils.MustInterface2Int64(v2["fund_calculate_type"]) { + case 0: + refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"])) + case 1: + refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"])) + } + refundProductList = append(refundProductList, refundProduct) + } + param.RefundProductList = refundProductList + if isAcceptIt { - err = api.EbaiAPI.OrderAgreeRefund(&ebaiapi.RefundOrderExamine{ - ReverseOrderId: afsOrderInfo.AfsOrderID, - OrderId: order.VendorOrderID, - IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), - ActionType: ebaiapi.RefundTypeAgree, - ReasonRemarks: reason, - }) + err = api.EbaiAPI.OrderAgreeRefund(param) } else { if reason == "" { return fmt.Errorf("拒绝退单时,请填写拒单原因") } - param := &ebaiapi.RefundOrderExamine{ - ReverseOrderId: afsOrderInfo.AfsOrderID, - OrderId: order.VendorOrderID, - IdempotentId: utils.Int64ToStr(time.Now().UnixNano()), - ActionType: ebaiapi.RefundTypeRefuse, - ReasonCode: "7001", - ReasonRemarks: reason, - } - refundProductList := make([]*ebaiapi.RefundProductList, 0, 0) - date, _ := api.EbaiAPI.GetReverseOrder(order.VendorOrderID) - for _, v := range date { - v2 := v.(map[string]interface{}) - refundProduct := &ebaiapi.RefundProductList{ - SubBizOrderId: v2["sub_biz_order_id"].(string), - PlatformSkuId: utils.Int64ToStr(utils.Interface2Int64WithDefault(v2["platform_sku_id"], 0)), - } - switch utils.MustInterface2Int64(v2["fund_calculate_type"]) { - case 0: - refundProduct.Number = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_quantity"])) - case 1: - refundProduct.RefundAmount = utils.Int64ToStr(utils.MustInterface2Int64(v2["refund_user_amount"])) - } - refundProductList = append(refundProductList, refundProduct) - } - param.RefundProductList = refundProductList + param.ReasonCode = "7001" err = api.EbaiAPI.OrderDisagreeRefund(param) } }