From fc7c2238b141396ce4de3ae1b950d1d4ce0d6d5b Mon Sep 17 00:00:00 2001 From: suyl <770236076@qq.com> Date: Sat, 22 May 2021 14:03:21 +0800 Subject: [PATCH] aa --- business/jxstore/cms/store_sku.go | 127 ++++++++++++++++-------------- 1 file changed, 68 insertions(+), 59 deletions(-) diff --git a/business/jxstore/cms/store_sku.go b/business/jxstore/cms/store_sku.go index e2a7a20d2..2eea66738 100644 --- a/business/jxstore/cms/store_sku.go +++ b/business/jxstore/cms/store_sku.go @@ -276,12 +276,13 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b var ( sqlParams []interface{} db = dao.GetDB() - //SkuNames []*dao.StoreSkuNameExt + SkuNames []*dao.StoreSkuNameExt ) sql := ` - SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, e.id store_id, c.unit_price ,b.id sku_id, b.spec_quality sku_spec_quality, - b.spec_unit sku_spec_unit, b.status sku_status, c.stock, c.price bind_price, - c.status store_sku_status + SELECT SQL_CALC_FOUND_ROWS DISTINCT a.*, e.id store_id, c.unit_price + -- ,b.id sku_id, b.spec_quality sku_spec_quality, + -- b.spec_unit sku_spec_unit, b.status sku_status, c.stock, c.price bind_price, + -- c.status store_sku_status FROM sku_name a JOIN sku b ON b.name_id = a.id AND b.deleted_at = ? JOIN store e ON e.deleted_at = ? @@ -368,71 +369,79 @@ func GetStoresSkusForStore(ctx *jxcontext.Context, storeID int, isFocus, isAct b sql += ` LIMIT ? OFFSET ? ` - var tmpList []*tGetStoresSkusInfo + //var tmpList []*tGetStoresSkusInfo pageSize = jxutils.FormalizePageSize(pageSize) offset = jxutils.FormalizePageOffset(offset) sqlParams = append(sqlParams, pageSize, offset) txDB, _ := dao.Begin(db) defer dao.Commit(db, txDB) - if err = dao.GetRowsTx(txDB, &tmpList, sql, sqlParams...); err == nil { + if err = dao.GetRowsTx(txDB, &SkuNames, sql, sqlParams...); err == nil { skuNamesInfo = &dao.StoreSkuNamesInfo{ TotalCount: dao.GetLastTotalRowCount2(db, txDB), } // skuNamesInfo.TotalCount = dao.GetLastTotalRowCount2(db, txDB) - //for _, v := range tmpList { - //var skus []*dao.StoreSkuExt - //sql2 := ` - // SELECT a.id sku_id, a.spec_quality sku_spec_quality, a.spec_unit sku_spec_unit, a.status sku_status, - // b.stock, b.price bind_price, b.unit_price, - // b.status store_sku_status - // FROM sku a - // JOIN sku_name c ON a.name_id = c.id AND c.deleted_at = ? AND c.status = ? - //` - //sqlParams2 := []interface{}{ - // utils.DefaultTimeValue, model.SkuStatusNormal, - //} - //if !isFocus { - // sql2 += ` - // LEFT - // ` - //} - //sql2 += ` JOIN store_sku_bind b ON a.id = b.sku_id AND b.deleted_at = ? AND b.store_id = ? - // WHERE a.deleted_at = ? AND a.name_id = ? AND a.status = ? - //` - //sqlParams2 = append(sqlParams2, utils.DefaultTimeValue, storeID, - // utils.DefaultTimeValue, v.ID, model.SkuStatusNormal, - //) - //if status != -1 { - // sql2 += " AND b.status = ?" - // sqlParams2 = append(sqlParams2, status) - //} - //if err = dao.GetRows(db, &skus, sql2, sqlParams2); err == nil { - // v.Skus = skus - //} - //} - storeNameMap := make(map[int64]*dao.StoreSkuNameExt) - for _, v := range tmpList { - var storeName *dao.StoreSkuNameExt - index := jxutils.Combine2Int(v.StoreID, v.ID) - if storeNameMap[index] == nil { - storeName = &dao.StoreSkuNameExt{ - StoreID: v.StoreID, - StoreName: v.StoreName, - SkuName: v.SkuName, - UnitPrice: v.UnitPrice, - PayPercentage: v.PayPercentage, - RealMidUnitPrice: v.RealMidUnitPrice, - YbSkuName: v.YbSkuName, - AuditUnitPrice: v.AuditUnitPrice, + task := tasksch.NewParallelTask("uuu", tasksch.NewParallelConfig().SetIsContinueWhenError(true), ctx, + func(task *tasksch.ParallelTask, batchItemList []interface{}, params ...interface{}) (retVal interface{}, err error) { + v := batchItemList[0].(*dao.StoreSkuNameExt) + var skus []*dao.StoreSkuExt + sql2 := ` + SELECT a.id sku_id, a.spec_quality sku_spec_quality, a.spec_unit sku_spec_unit, a.status sku_status, + b.stock, b.price bind_price, b.unit_price, + b.status store_sku_status + FROM sku a + JOIN sku_name c ON a.name_id = c.id AND c.deleted_at = ? AND c.status = ? + ` + sqlParams2 := []interface{}{ + utils.DefaultTimeValue, model.SkuStatusNormal, } - storeNameMap[index] = storeName - skuNamesInfo.SkuNames = append(skuNamesInfo.SkuNames, storeName) - } else { - storeName = storeNameMap[index] - } - storeName.Skus = append(storeName.Skus, &v.StoreSkuExt) - } - //skuNamesInfo.SkuNames = SkuNames + if !isFocus { + sql2 += ` + LEFT + ` + } + sql2 += ` JOIN store_sku_bind b ON a.id = b.sku_id AND b.deleted_at = ? AND b.store_id = ? + WHERE a.deleted_at = ? AND a.name_id = ? AND a.status = ? + ` + sqlParams2 = append(sqlParams2, utils.DefaultTimeValue, storeID, + utils.DefaultTimeValue, v.ID, model.SkuStatusNormal, + ) + if status != -1 { + sql2 += " AND b.status = ?" + sqlParams2 = append(sqlParams2, status) + } + if err = dao.GetRows(db, &skus, sql2, sqlParams2); err == nil { + v.Skus = skus + } + return retVal, err + }, SkuNames) + tasksch.HandleTask(task, nil, false).Run() + task.GetResult(0) + //for _, v := range SkuNames { + // + //} + skuNamesInfo.SkuNames = SkuNames + //storeNameMap := make(map[int64]*dao.StoreSkuNameExt) + //for _, v := range tmpList { + // var storeName *dao.StoreSkuNameExt + // index := jxutils.Combine2Int(v.StoreID, v.ID) + // if storeNameMap[index] == nil { + // storeName = &dao.StoreSkuNameExt{ + // StoreID: v.StoreID, + // StoreName: v.StoreName, + // SkuName: v.SkuName, + // UnitPrice: v.UnitPrice, + // PayPercentage: v.PayPercentage, + // RealMidUnitPrice: v.RealMidUnitPrice, + // YbSkuName: v.YbSkuName, + // AuditUnitPrice: v.AuditUnitPrice, + // } + // storeNameMap[index] = storeName + // skuNamesInfo.SkuNames = append(skuNamesInfo.SkuNames, storeName) + // } else { + // storeName = storeNameMap[index] + // } + // storeName.Skus = append(storeName.Skus, &v.StoreSkuExt) + //} if err == nil { if isFocus { if err == nil {