From c58a357ed3212e7b1a66ebfd1c57eb3b4edbf055 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E5=AE=97=E6=A5=A0?= Date: Mon, 10 Feb 2025 14:17:18 +0800 Subject: [PATCH] 1 --- business/jxcallback/orderman/orderman_ext.go | 27 ++++++++++++-------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index 13e2375f9..d907719c0 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -487,25 +487,30 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS for _, v := range orders { if afsInfo := afsSkuMap[jxutils.ComposeUniversalOrderID(v.VendorOrderID, v.VendorID)]; afsInfo != nil { if afsInfo[v.SkuID] != nil && afsInfo[v.SkuID].Count >= 0 { - minus := afsInfo[v.SkuID].Count // 1 + minus := afsInfo[v.SkuID].Count if minus > v.SkuCount2 { minus = v.SkuCount2 } - // SkuCount2 4 - // SkuCount2 1 - // minus 1 - v.SkuCount2 -= minus // 3 0 - if minus == 0 && v.EarningType == model.EarningTypeQuote { // 有售后单,且通过,部分商品缺重等情况 - if afsInfo[v.SkuID].Count == model.NO { // 退差价的,count还在 - // 300 - 413/1*300 + + if minus == 0 { // 退差价的,count还在 + if afsInfo[v.SkuID].Count == model.NO && v.EarningType == model.EarningTypeQuote { v.SkuShopPrice = v.SkuShopPrice - utils.Float64TwoInt(float64(afsInfo[v.SkuID].UserMoney)/float64(v.SkuSalePrice)*float64(v.SkuShopPrice)) v.SkuEarningPrice = v.SkuEarningPrice - utils.Float64TwoInt(float64(afsInfo[v.SkuID].UserMoney)/float64(v.SkuSalePrice)*float64(v.SkuEarningPrice)) v.SkuSalePrice = v.SkuSalePrice - int(afsInfo[v.SkuID].UserMoney) - } else if afsInfo[v.SkuID].Count == model.YES { // 整个退 - + } + } else { + // 同一个商品有多个商品列表,且有不定退货 + ordersByOrder, _, _ := dao.GetOrders(dao.GetDB(), nil, true, true, fromDateStr, toDateStr, false, nil, false, "", map[string]interface{}{"orderID": v.VendorOrderID}, 0, model.UnlimitedPageSize) + if len(ordersByOrder) == 1 { + v.SkuCount2 -= minus + } else { + for _, obo := range ordersByOrder { + if obo.SkuCount2 == v.SkuCount2 && obo.SkuCount2 == minus { + v.SkuCount2 -= minus + } + } } } - afsInfo[v.SkuID].Count -= minus } } if v.SkuCount2 > 0 {