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 }