Accept Merge Request #184: (su -> mark)

Merge Request: 价格统计优化
Created By: @苏尹岚
Accepted By: @苏尹岚
URL: https://rosydev.coding.net/p/jx-callback/d/jx-callback/git/merge/184
This commit is contained in:
苏尹岚
2020-02-11 13:38:50 +08:00
3 changed files with 52 additions and 28 deletions

View File

@@ -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:
@@ -263,28 +258,33 @@ 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, 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)
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
}