diff --git a/business/partner/purchase/ebai/financial_test.go b/business/partner/purchase/ebai/financial_test.go index dd8b99cd5..9b96a7682 100644 --- a/business/partner/purchase/ebai/financial_test.go +++ b/business/partner/purchase/ebai/financial_test.go @@ -32,7 +32,7 @@ func TestOnFinancialMsg(t *testing.T) { } func TestOnOrderDetail(t *testing.T) { - orderID := "1554939646172038357" + orderID := "4088600070462723689" result, err := api.EbaiAPI.OrderGet(orderID) if err == nil { new(PurchaseHandler).OnOrderDetail(result, partner.CreatedPeration) diff --git a/business/partner/purchase/ebai/order.go b/business/partner/purchase/ebai/order.go index d45779931..f91412886 100644 --- a/business/partner/purchase/ebai/order.go +++ b/business/partner/purchase/ebai/order.go @@ -130,7 +130,20 @@ func (p *PurchaseHandler) GetOrder4PartRefund(vendorOrderID string) (order *mode if err1 == nil { order = p.Map2Order(result1) if err2 == nil { - order.Skus = p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["reverse_order_list"]) + skuHave := make([]*model.OrderSku, 0, 0) + refundSkuList := p.partRefund2OrderDetailSkuList(utils.Interface2String(result2["order_id"]), result2["reverse_order_list"]) + if len(refundSkuList) != model.NO { + refundSkuMap := make(map[string]*model.OrderSku, 0) + for _, rs := range refundSkuList { + refundSkuMap[rs.VendorSkuID] = rs + } + for _, os := range order.Skus { + if _, OK := refundSkuMap[os.VendorSkuID]; !OK { + skuHave = append(skuHave, os) + } + } + } + order.Skus = append(order.Skus, skuHave...) giftSkus, discountMoney := getZengSkus(vendorOrderID, result1) order.DiscountMoney = discountMoney order.Skus = append(order.Skus, giftSkus...)