From 7338ca099939bb14c8a577ac143db2ea0653c076 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 10 Feb 2020 09:23:33 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/report/report.go | 43 +++---------------------------- 1 file changed, 4 insertions(+), 39 deletions(-) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 68079e575..8ed465825 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -84,16 +84,11 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } }() - taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - v := batchItemList[0].(*model.PriceReferSnapshot) + for _, v := range priceReferSnapshot { dao.WrapAddIDCULDEntity(v, ctx.GetUserName()) v.SnapshotAt = snapshotAt - err = dao.CreateEntity(db, v) - return retVal, err } - taskParallel := tasksch.NewParallelTask("生成价格统计", tasksch.NewParallelConfig(), ctx, taskFunc, priceReferSnapshot) - tasksch.HandleTask(taskParallel, task, true).Run() - _, err = taskParallel.GetResult(0) + dao.CreateMultiEntities(db, priceReferSnapshot) dao.Commit(db) } case 1: @@ -210,15 +205,6 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } resultMap[k1] = skuNameMap } - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() if len(priceReferSnapshotList) > 0 { for _, v := range priceReferSnapshotList { if v.CityCode == 0 { @@ -240,17 +226,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } } - dao.Commit(db) case 2: - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() if len(priceReferSnapshotList) > 0 { for _, v := range priceReferSnapshotList { result, _ := dao.GetPriceReferPrice(db, v.CityCode, v.SkuID, snapshotAt) @@ -261,22 +237,12 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn dao.UpdateEntity(db, v, "MidPrice", "MaxPrice", "MinPrice", "AvgPrice") } } - dao.Commit(db) case 3: - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, nil, snapshotAt) for _, v := range priceReferSnapshotList { for _, appOrg := range apimanager.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD) { - directPrice, err := jd.GetAPI(appOrg).GetJdSkuDirectPrice(v.SkuID) - if err != nil || directPrice == 0 { + directPrice, _ := jd.GetAPI(appOrg).GetJdSkuDirectPrice(v.SkuID) + if directPrice == 0 { continue } else { v.JdDirectPrice = int(directPrice) @@ -284,7 +250,6 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } } - dao.Commit(db) } return result, err } From a2ffd1610a7e3438b58cdfe4756627700033cd7e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 10 Feb 2020 10:04:50 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/report/report.go | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 8ed465825..3df659e26 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -205,6 +205,15 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } resultMap[k1] = skuNameMap } + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() if len(priceReferSnapshotList) > 0 { for _, v := range priceReferSnapshotList { if v.CityCode == 0 { @@ -226,7 +235,17 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } } + dao.Commit(db) case 2: + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() if len(priceReferSnapshotList) > 0 { for _, v := range priceReferSnapshotList { result, _ := dao.GetPriceReferPrice(db, v.CityCode, v.SkuID, snapshotAt) @@ -237,7 +256,17 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn dao.UpdateEntity(db, v, "MidPrice", "MaxPrice", "MinPrice", "AvgPrice") } } + dao.Commit(db) case 3: + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, nil, snapshotAt) for _, v := range priceReferSnapshotList { for _, appOrg := range apimanager.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD) { @@ -250,6 +279,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } } } + dao.Commit(db) } return result, err } From 4c9028330fa2281ca8bc5a1422a69fe974818d42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Mon, 10 Feb 2020 17:47:40 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E7=BB=9F=E8=AE=A1?= =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/report/report.go | 27 ++++++++++++++++----------- 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index 3df659e26..073a47914 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -258,17 +258,18 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn } dao.Commit(db) case 3: - dao.Begin(db) - defer func() { - if r := recover(); r != nil || err != nil { - dao.Rollback(db) - if r != nil { - panic(r) - } - } - }() priceReferSnapshotList, err = dao.GetPriceReferSnapshotNoPage(db, []int{0}, nil, nil, snapshotAt) - for _, v := range priceReferSnapshotList { + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() + v := batchItemList[0].(*model.PriceReferSnapshot) for _, appOrg := range apimanager.CurAPIManager.GetAppOrgCodeList(model.VendorIDJD) { directPrice, _ := jd.GetAPI(appOrg).GetJdSkuDirectPrice(v.SkuID) if directPrice == 0 { @@ -278,8 +279,12 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int, isAsyn dao.UpdateEntity(db, v, "JdDirectPrice") } } + dao.Commit(db) + return retVal, err } - dao.Commit(db) + taskParallel := tasksch.NewParallelTask("获取并更新京东指导价格", tasksch.NewParallelConfig(), ctx, taskFunc, priceReferSnapshotList) + tasksch.HandleTask(taskParallel, task, true).Run() + _, err = taskParallel.GetResult(0) } return result, err }