diff --git a/business/jxstore/cms/sku.go b/business/jxstore/cms/sku.go index cb97bec0e..9e05a6131 100644 --- a/business/jxstore/cms/sku.go +++ b/business/jxstore/cms/sku.go @@ -3241,51 +3241,54 @@ func GetSkuNamesNew(ctx *jxcontext.Context, keyword string, skuIDs, skuNameIDs [ if err = dao.GetRowsTx(txDB, &skuNamesInfo.SkuNames, sql, sqlParams...); err == nil { skuNamesInfo.TotalCount = dao.GetLastTotalRowCount2(db, txDB) dao.Commit(db, txDB) - for _, skuName := range skuNamesInfo.SkuNames { - skuName.FullName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, "", "", 0, "", 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd) - var ( - skus []*model.Sku - sqlParams = []interface{}{utils.DefaultTimeValue} - sql string - ) - if !isBySku { - sql = ` + task := tasksch.NewParallelTask("GetSkuNamesNew", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + skuName := batchItemList[0].(*model.SkuNameExt) + skuName.FullName = jxutils.ComposeSkuName(skuName.Prefix, skuName.Name, "", "", 0, "", 0, skuName.ExPrefix, skuName.ExPrefixBegin, skuName.ExPrefixEnd) + var ( + skus []*model.Sku + sqlParams = []interface{}{utils.DefaultTimeValue} + sql string + ) + if !isBySku { + sql = ` SELECT * FROM sku WHERE deleted_at = ? AND name_id = ? ` - sqlParams = append(sqlParams, skuName.ID) - } else { - sql = ` + sqlParams = append(sqlParams, skuName.ID) + } else { + sql = ` SELECT * FROM sku WHERE deleted_at = ? AND id = ? ` - sqlParams = append(sqlParams, skuName.SkuID) - } - if err = dao.GetRows(db, &skus, sql, sqlParams); err == nil { - var skusVendors []*model.SkuWithVendor - for _, v := range skus { - skusVendor := &model.SkuWithVendor{ - Sku: v, - } - skusVendors = append(skusVendors, skusVendor) + sqlParams = append(sqlParams, skuName.SkuID) } - skuName.Skus = skusVendors - } - var ( - places []*model.SkuNamePlaceBind - placeCodes []int - ) - sql2 := ` + if err = dao.GetRows(db, &skus, sql, sqlParams); err == nil { + var skusVendors []*model.SkuWithVendor + for _, v := range skus { + skusVendor := &model.SkuWithVendor{ + Sku: v, + } + skusVendors = append(skusVendors, skusVendor) + } + skuName.Skus = skusVendors + } + var ( + places []*model.SkuNamePlaceBind + placeCodes []int + ) + sql2 := ` SELECT * FROM sku_name_place_bind WHERE name_id = ? ` - sqlParams2 := []interface{}{skuName.ID} - if err = dao.GetRows(db, &places, sql2, sqlParams2); err == nil { - for _, v := range places { - placeCodes = append(placeCodes, v.PlaceCode) + sqlParams2 := []interface{}{skuName.ID} + if err = dao.GetRows(db, &places, sql2, sqlParams2); err == nil { + for _, v := range places { + placeCodes = append(placeCodes, v.PlaceCode) + } + skuName.Places = placeCodes } - skuName.Places = placeCodes - } - } - } else { - dao.Rollback(db, txDB) + return retVal, err + }, skuNamesInfo.SkuNames) + tasksch.HandleTask(task, nil, true).Run() + task.GetResult(0) } return skuNamesInfo, err }