From 0432d97cb1f0689f85d36e56f67aa7dc8a932227 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, 30 Dec 2019 17:32:22 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=B7=E6=A0=BC=E7=BB=9F=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/report/report.go | 22 +++++++++++++++++++++- business/model/dao/report.go | 30 ++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/business/jxstore/report/report.go b/business/jxstore/report/report.go index c9001fcbd..891901b11 100644 --- a/business/jxstore/report/report.go +++ b/business/jxstore/report/report.go @@ -76,6 +76,26 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int) (err e dao.WrapAddIDCULDEntity(v, ctx.GetUserName()) v.SnapshotAt = snapshotAt err = dao.CreateEntity(db, v) + return retVal, err + }, priceReferSnapshot) + tasksch.HandleTask(task, nil, true).Run() + _, err = task.GetResult(0) + dao.Commit(db) + } + dao.Begin(db) + defer func() { + if r := recover(); r != nil || err != nil { + dao.Rollback(db) + if r != nil { + panic(r) + } + } + }() + priceReferList, err := dao.GetPriceReferSnapshotNoPage(db, nil, nil, nil, utils.Time2Date(time.Now().AddDate(0, 0, -1))) + if len(priceReferList) > 0 { + task := tasksch.NewParallelTask("更新单价", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*model.PriceReferSnapshot) priceRefer, err := dao.GetPriceReferUnitPrice(db, v.CityCode, v.NameID, v.SnapshotAt) v.MidUnitPrice = priceRefer.MidUnitPrice v.MaxUnitPrice = priceRefer.MaxUnitPrice @@ -86,7 +106,7 @@ func BeginSavePriceRefer(ctx *jxcontext.Context, cityCodes, skuIDs []int) (err e }, priceReferSnapshot) tasksch.HandleTask(task, nil, true).Run() _, err = task.GetResult(0) - dao.Commit(db) } + dao.Commit(db) return err } diff --git a/business/model/dao/report.go b/business/model/dao/report.go index 20ff39589..4a5648dc6 100644 --- a/business/model/dao/report.go +++ b/business/model/dao/report.go @@ -292,3 +292,33 @@ func GetPriceReferSnapshot(db *DaoDB, cityCodes, skuIDs []int, skuNameID int, sn } return priceReferSnapshot, totalCount, err } + +func GetPriceReferSnapshotNoPage(db *DaoDB, cityCodes, skuIDs, skuNameIDs []int, snapDate time.Time) (priceReferSnapshot []*model.PriceReferSnapshot, err error) { + sql := ` + SELECT a.* + FROM price_refer_snapshot a + WHERE 1=1 + AND a.deleted_at = ? + ` + sqlParams := []interface{}{ + utils.DefaultTimeValue, + } + if len(skuNameIDs) > 0 { + sql += " AND a.name_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuNameIDs) + } + if len(skuIDs) > 0 { + sql += " AND a.sku_id IN (" + GenQuestionMarks(len(skuIDs)) + ")" + sqlParams = append(sqlParams, skuIDs) + } + if len(cityCodes) > 0 { + sql += " AND a.city_code IN (" + GenQuestionMarks(len(cityCodes)) + ")" + sqlParams = append(sqlParams, cityCodes) + } + if !utils.IsTimeZero(snapDate) { + sql += " AND a.snapshot_at = ?" + sqlParams = append(sqlParams, snapDate) + } + err = GetRows(db, &priceReferSnapshot, sql, sqlParams...) + return priceReferSnapshot, err +}