diff --git a/business/jxcallback/orderman/orderman_ext.go b/business/jxcallback/orderman/orderman_ext.go index d907719c0..42f79dd53 100644 --- a/business/jxcallback/orderman/orderman_ext.go +++ b/business/jxcallback/orderman/orderman_ext.go @@ -484,6 +484,7 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS case 2: var order *model.GoodsOrderExt var orders2 []*model.GoodsOrderExt + var afsSkuMapObj = make(map[string]bool, 0) 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 { @@ -501,13 +502,18 @@ func (c *OrderManager) ExportOrders(ctx *jxcontext.Context, fromDateStr, toDateS } 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 { + count := 0 + for _, obo1 := range ordersByOrder { + if obo1.SkuID == v.SkuID { + count += 1 + } + } + if count == 1 { v.SkuCount2 -= minus } else { - for _, obo := range ordersByOrder { - if obo.SkuCount2 == v.SkuCount2 && obo.SkuCount2 == minus { - v.SkuCount2 -= minus - } + if have, _ := afsSkuMapObj[v.VendorOrderID+"_"+utils.Int2Str(v.SkuID)]; !have { + afsSkuMapObj[v.VendorOrderID+"_"+utils.Int2Str(v.SkuID)] = true + v.SkuCount2 -= minus } } } diff --git a/controllers/ebai_callback.go b/controllers/ebai_callback.go index 3b5e91f2d..5c7f6d8d2 100644 --- a/controllers/ebai_callback.go +++ b/controllers/ebai_callback.go @@ -5,6 +5,7 @@ import ( "git.rosy.net.cn/baseapi/utils" "git.rosy.net.cn/jx-callback/business/model" "git.rosy.net.cn/jx-callback/business/model/dao" + "git.rosy.net.cn/jx-callback/globals" "io/ioutil" "net/http" "strings" @@ -25,6 +26,7 @@ var EBaiVendorStoreIDList = new(sync.Map) func (c *EbaiController) Msg() { if c.Ctx.Input.Method() == http.MethodPost { obj, callbackResponse := api.EbaiAPI.GetCallbackMsg(c.Ctx.Request) + globals.SugarLogger.Debugf("-------obj := %s", utils.Format4Output(utils.Struct2Map(obj, "", false), false)) if callbackResponse == nil { vendorStoreId, _ := utils.TryInterface2Int64(obj.Body["platform_shop_id"]) if _, have := EBaiVendorStoreIDList.Load(vendorStoreId); vendorStoreId != 0 && !have {