From 9174b5438f36969070ca5836439e7ce0e3b3b2d3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=8F=E5=B0=B9=E5=B2=9A?= <770236076@qq.com> Date: Fri, 17 Jul 2020 09:53:33 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E5=95=86=E5=93=81=E5=89=8D?= =?UTF-8?q?=E7=BC=80=E8=AE=A9=E4=BB=96=E4=BB=AC=E8=87=AA=E5=B7=B1=E5=90=8C?= =?UTF-8?q?=E6=AD=A5=E6=8A=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- business/jxstore/cms/sku.go | 110 ++++++++++++++---------------------- 1 file changed, 43 insertions(+), 67 deletions(-) diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index 516dcb737..fb4ef4b57 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -2567,79 +2567,55 @@ func UpdateSkuExinfoMap(ctx *jxcontext.Context, nameIDs []int, imgWaterMark stri if toTimeP.Before(fromTimeP) { return "", fmt.Errorf("结束时间不可以小于开始时间!开始时间:[%v],结束时间:[%v]", fromTimeP, toTimeP) } - taskSeqFunc := func(task *tasksch.SeqTask, step int, params ...interface{}) (result interface{}, err error) { - switch step { - case 0: - taskFunc := func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { - nameID := batchItemList[0].(int) - skuEx := &model.SkuExinfoMap{ - NameID: nameID, - ImgWatermark: imgWaterMark, - ExPrefix: exPrefix, - VendorID: vendorID, - BeginAt: fromTimeP, - EndAt: toTimeP, - } - dao.WrapAddIDCULDEntity(skuEx, ctx.GetUserName()) - skuExs, _ := dao.GetSkuExinfos(db, []int{nameID}, []int{vendorID}, "", utils.ZeroTimeValue, utils.ZeroTimeValue) - if len(skuExs) > 0 { - skuEx2 := skuExs[0] - skuEx2.DeletedAt = time.Now() - skuEx2.LastOperator = ctx.GetUserName() - dao.UpdateEntity(db, skuEx2, "DeletedAt", "LastOperator") - dao.CreateEntity(db, skuEx) - } else { - dao.CreateEntity(db, skuEx) - } - now := utils.Time2Date(time.Now()) - if now.Sub(fromTimeP) >= 0 && now.Sub(toTimeP) <= 0 { - var skuIDs []int - skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) - if err = err2; err == nil { - if len(skuList) > 0 { - for _, v := range skuList { - skuIDs = append(skuIDs, v.ID) - retVal = []int{v.ID} - } - if partner.IsMultiStore(vendorID) { - for _, v := range skuIDs { - OnUpdateThing(ctx, db, nil, int64(v), model.ThingTypeSku) - } - } else { - SetStoreSkuSyncStatus2(db, nil, []int{vendorID}, skuIDs, model.SyncFlagModifiedMask) + task := tasksch.NewParallelTask("UpdateSkuExinfoMap", tasksch.NewParallelConfig().SetParallelCount(1).SetIsContinueWhenError(isContinueWhenError), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + nameID := batchItemList[0].(int) + skuEx := &model.SkuExinfoMap{ + NameID: nameID, + ImgWatermark: imgWaterMark, + ExPrefix: exPrefix, + VendorID: vendorID, + BeginAt: fromTimeP, + EndAt: toTimeP, + } + dao.WrapAddIDCULDEntity(skuEx, ctx.GetUserName()) + skuExs, _ := dao.GetSkuExinfos(db, []int{nameID}, []int{vendorID}, "", utils.ZeroTimeValue, utils.ZeroTimeValue) + if len(skuExs) > 0 { + skuEx2 := skuExs[0] + skuEx2.DeletedAt = time.Now() + skuEx2.LastOperator = ctx.GetUserName() + dao.UpdateEntity(db, skuEx2, "DeletedAt", "LastOperator") + dao.CreateEntity(db, skuEx) + } else { + dao.CreateEntity(db, skuEx) + } + now := utils.Time2Date(time.Now()) + if now.Sub(fromTimeP) >= 0 && now.Sub(toTimeP) <= 0 { + var skuIDs []int + skuList, err2 := dao.GetSkus(db, nil, []int{nameID}, nil, nil, nil) + if err = err2; err == nil { + if len(skuList) > 0 { + for _, v := range skuList { + skuIDs = append(skuIDs, v.ID) + } + if partner.IsMultiStore(vendorID) { + for _, v := range skuIDs { + OnUpdateThing(ctx, db, nil, int64(v), model.ThingTypeSku) } + } else { + SetStoreSkuSyncStatus2(db, nil, []int{vendorID}, skuIDs, model.SyncFlagModifiedMask) } } } - return retVal, err } - taskParallel := tasksch.NewParallelTask("UpdateSkuExinfoMap", tasksch.NewParallelConfig().SetParallelCount(parallelCount), ctx, taskFunc, nameIDs) - tasksch.HandleTask(taskParallel, nil, true).Run() - _, err = task.GetResult(0) - // err = err2 - // if len(result) > 0 { - // for _, v := range result { - // skuIDs = append(skuIDs, int(utils.Interface2Int64WithDefault(v, 0))) - // } - // } - case 1: - // if len(skuIDs) > 0 { - // if partner.IsMultiStore(vendorID) { - // CurVendorSync.SyncSkus(ctx, db, nil, skuIDs, isAsync, isContinueWhenError, ctx.GetUserName()) - // } else { - // CurVendorSync.SyncStoresSkus2(ctx, nil, 0, db, []int{vendorID}, nil, false, skuIDs, nil, model.SyncFlagModifiedMask, isAsync, isContinueWhenError) - // } - // } - } - return result, err - } - taskSeq := tasksch.NewSeqTask2("更新商品前缀", ctx, isContinueWhenError, taskSeqFunc, 2) - tasksch.HandleTask(taskSeq, nil, true).Run() - if !isAsync { - _, err = taskSeq.GetResult(0) - hint = "1" + return retVal, err + }, nameIDs) + tasksch.HandleTask(task, nil, true).Run() + if isAsync { + hint = task.GetID() } else { - hint = taskSeq.GetID() + _, err = task.GetResult(0) + hint = "1" } return hint, err }