From d1a8d459334e876d332c5fd8f0ea34504c36dfd7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Thu, 26 Dec 2019 10:37:09 +0800 Subject: [PATCH] =?UTF-8?q?=E9=83=A8=E5=88=86=E5=85=B3=E6=B3=A8=E5=95=86?= =?UTF-8?q?=E5=93=81=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/store_sku.go | 72 +++++++++++++++++++------------ business/model/order.go | 5 +++ 2 files changed, 49 insertions(+), 28 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index b5ecb5ee1..b9dee32f5 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -2861,35 +2861,51 @@ func FocusStoreSkusBySku(ctx *jxcontext.Context, skuIDs []int, isAsync, isContin db := dao.GetDB() skuList, err := dao.GetSkus(db, skuIDs, nil, nil, nil) storeList, err := dao.GetStoreList(db, nil, nil, "") - for _, v := range storeList { - storeIDs = append(storeIDs, v.ID) - } - for _, v := range skuList { - skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{ - SkuID: v.ID, - IsSale: 1, - }) - } - task := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, - func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - store := batchItemList[0].(*model.Store) - for k, v := range skuNameMap { - midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1))) - skuBindInfo := &StoreSkuBindInfo{ - NameID: k, - UnitPrice: midPrice, - IsFocus: 1, - Skus: v, - } - retVal = []*StoreSkuBindInfo{skuBindInfo} + taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { + switch step { + case 0: + for _, v := range storeList { + storeIDs = append(storeIDs, v.ID) } - return retVal, err - }, storeList) - tasksch.HandleTask(task, nil, true).Run() - result, err := task.GetResult(0) - for _, v := range result { - skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo)) + for _, v := range skuList { + skuNameMap[v.NameID] = append(skuNameMap[v.NameID], &StoreSkuBindSkuInfo{ + SkuID: v.ID, + IsSale: 1, + }) + } + case 1: + taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + store := batchItemList[0].(*model.Store) + for k, v := range skuNameMap { + midPrice, _ := dao.GetMidPriceByNameID(db, store.CityCode, k, utils.Time2Date(time.Now().AddDate(0, 0, -1))) + skuBindInfo := &StoreSkuBindInfo{ + NameID: k, + UnitPrice: midPrice, + IsFocus: 1, + Skus: v, + } + retVal = []*StoreSkuBindInfo{skuBindInfo} + } + return retVal, err + } + taskParallel := tasksch.NewParallelTask("根据skuID部分关注商品", tasksch.NewParallelConfig().SetIsContinueWhenError(isContinueWhenError), ctx, taskFunc, storeList) + tasksch.HandleTask(taskParallel, task, true).Run() + result1, _ := taskParallel.GetResult(0) + for _, v := range result1 { + skuBindInfos = append(skuBindInfos, v.(*StoreSkuBindInfo)) + } + case 2: + UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) + } + return result, err + } + taskSeq := tasksch.NewSeqTask2("根据skuID批量部分关注商品", ctx, isContinueWhenError, taskSeqFunc, 3) + tasksch.HandleTask(taskSeq, nil, true).Run() + if !isAsync { + _, err = taskSeq.GetResult(0) + hint = "1" + } else { + hint = taskSeq.GetID() } - hint, err = UpdateStoresSkus(ctx, storeIDs, skuBindInfos, false, isAsync, isContinueWhenError) return hint, err } diff --git a/business/model/order.go b/business/model/order.go index 264140f9d..0bc2c4d3f 100644 --- a/business/model/order.go +++ b/business/model/order.go @@ -343,6 +343,11 @@ type OrderPayRefund struct { OriginalData string `orm:"type(text)" json:"-"` } +type OrderSupplementFee struct { + ModelIDCULD + VendorOrderID string `orm:"column(vendor_order_id);index;size(48)" json:"vendorOrderID"` +} + // 判断是否是购买平台自有物流 // 对于京东,饿百来说,就是其自有的物流,对于微商城来说,是达达 func IsWaybillPlatformOwn(bill *Waybill) bool {