File indexing completed on 2024-03-24 06:03:44
0001 DELIMITER $$ 0002 CREATE 0003 DEFINER = CURRENT_USER PROCEDURE `fetchCatTreeForStore`(IN `STORE_ID` int(11)) 0004 BEGIN 0005 DROP TABLE IF EXISTS `tmp_store_cat`; 0006 CREATE TEMPORARY TABLE `tmp_store_cat` 0007 ( 0008 INDEX `idx_cat_id` (`project_category_id`) 0009 ) 0010 ENGINE MEMORY 0011 AS 0012 SELECT `csc`.`store_id`, `csc`.`project_category_id`, `csc`.`order`, `pc`.`title`, `pc`.`lft`, `pc`.`rgt` 0013 FROM `config_store_category` AS `csc` 0014 JOIN `project_category` AS `pc` ON `pc`.`project_category_id` = `csc`.`project_category_id` 0015 WHERE `csc`.`store_id` = `STORE_ID` 0016 GROUP BY `csc`.`store_category_id` 0017 ORDER BY `csc`.`order`, `pc`.`title`; 0018 0019 SET @`NEW_ORDER` := 0; 0020 0021 UPDATE `tmp_store_cat` SET `order` = (@`NEW_ORDER` := @`NEW_ORDER` + 10); 0022 0023 SELECT `sct`.`lft`, 0024 `sct`.`rgt`, 0025 `sct`.`project_category_id` AS `id`, 0026 `sct`.`title`, 0027 `scpc`.`count_product` AS `product_count`, 0028 `sct`.`xdg_type`, 0029 `sct`.`name_legacy`, 0030 if(`sct`.`rgt` - `sct`.`lft` = 1, 0, 1) AS `has_children`, 0031 (SELECT `project_category_id` 0032 FROM `stat_cat_tree` AS `sct2` 0033 WHERE `sct2`.`lft` < `sct`.`lft` 0034 AND `sct2`.`rgt` > `sct`.`rgt` 0035 ORDER BY `sct2`.`rgt` - `sct`.`rgt` 0036 LIMIT 1) AS `parent_id` 0037 FROM `tmp_store_cat` AS `cfc` 0038 JOIN `stat_cat_tree` AS `sct` ON find_in_set(`cfc`.`project_category_id`, `sct`.`ancestor_id_path`) 0039 JOIN `stat_cat_prod_count` AS `scpc` 0040 ON `sct`.`project_category_id` = `scpc`.`project_category_id` AND `scpc`.`package_type_id` IS NULL 0041 WHERE `cfc`.`store_id` = `STORE_ID` 0042 ORDER BY `cfc`.`order`, `sct`.`lft`; 0043 END$$ 0044 DELIMITER ; 0045 0046 DELIMITER $$ 0047 CREATE 0048 DEFINER = CURRENT_USER PROCEDURE `fetchCatTreeWithPackage`(IN `STORE_ID` int(11), IN `PACKAGE_TYPE` int(11)) 0049 BEGIN 0050 DROP TABLE IF EXISTS `tmp_store_cat`; 0051 CREATE TEMPORARY TABLE `tmp_store_cat` 0052 ( 0053 INDEX `idx_cat_id` (`project_category_id`) 0054 ) 0055 ENGINE MEMORY 0056 AS 0057 SELECT `csc`.`store_id`, `csc`.`project_category_id`, `csc`.`order`, `pc`.`title`, `pc`.`lft`, `pc`.`rgt` 0058 FROM `config_store_category` AS `csc` 0059 JOIN `project_category` AS `pc` ON `pc`.`project_category_id` = `csc`.`project_category_id` 0060 WHERE `csc`.`store_id` = `STORE_ID` 0061 GROUP BY `csc`.`store_category_id` 0062 ORDER BY `csc`.`order`, `pc`.`title`; 0063 0064 SET @`NEW_ORDER` := 0; 0065 0066 UPDATE `tmp_store_cat` SET `order` = (@`NEW_ORDER` := @`NEW_ORDER` + 10); 0067 0068 SELECT `sct`.`lft`, 0069 `sct`.`rgt`, 0070 `sct`.`project_category_id` AS `id`, 0071 `sct`.`title`, 0072 `scpc`.`count_product` AS `product_count`, 0073 `sct`.`xdg_type`, 0074 `sct`.`name_legacy`, 0075 if(`sct`.`rgt` - `sct`.`lft` = 1, 0, 1) AS `has_children`, 0076 (SELECT `project_category_id` 0077 FROM `stat_cat_tree` AS `sct2` 0078 WHERE `sct2`.`lft` < `sct`.`lft` 0079 AND `sct2`.`rgt` > `sct`.`rgt` 0080 ORDER BY `sct2`.`rgt` - `sct`.`rgt` 0081 LIMIT 1) AS `parent_id` 0082 FROM `tmp_store_cat` AS `cfc` 0083 JOIN `stat_cat_tree` AS `sct` ON find_in_set(`cfc`.`project_category_id`, `sct`.`ancestor_id_path`) 0084 JOIN `stat_cat_prod_count` AS `scpc` ON `sct`.`project_category_id` = `scpc`.`project_category_id` AND 0085 `scpc`.`package_type_id` = `PACKAGE_TYPE` 0086 WHERE `cfc`.`store_id` = `STORE_ID` 0087 ORDER BY `cfc`.`order`, `sct`.`lft`; 0088 END$$ 0089 DELIMITER ; 0090 0091 0092 DROP PROCEDURE IF EXISTS `fetchCatTreeForStore`; 0093 0094 DELIMITER $$ 0095 CREATE 0096 DEFINER = CURRENT_USER PROCEDURE `fetchCatTreeForStore`(IN `STORE_ID` int(11)) 0097 BEGIN 0098 DROP TABLE IF EXISTS `tmp_store_cat`; 0099 CREATE TEMPORARY TABLE `tmp_store_cat` 0100 ( 0101 INDEX `idx_cat_id` (`project_category_id`) 0102 ) 0103 ENGINE MEMORY 0104 AS 0105 SELECT `csc`.`store_id`, `csc`.`project_category_id`, `csc`.`order`, `pc`.`title`, `pc`.`lft`, `pc`.`rgt` 0106 FROM `config_store_category` AS `csc` 0107 JOIN `project_category` AS `pc` ON `pc`.`project_category_id` = `csc`.`project_category_id` 0108 WHERE `csc`.`store_id` = `STORE_ID` 0109 GROUP BY `csc`.`store_category_id` 0110 ORDER BY `csc`.`order`, `pc`.`title`; 0111 0112 SET @`NEW_ORDER` := 0; 0113 0114 UPDATE `tmp_store_cat` SET `order` = (@`NEW_ORDER` := @`NEW_ORDER` + 10); 0115 0116 SELECT `sct`.`lft`, 0117 `sct`.`rgt`, 0118 `sct`.`project_category_id` AS `id`, 0119 `sct`.`title`, 0120 `scpc`.`count_product` AS `product_count`, 0121 `sct`.`xdg_type`, 0122 `sct`.`name_legacy`, 0123 if(`sct`.`rgt` - `sct`.`lft` = 1, 0, 1) AS `has_children`, 0124 (SELECT `project_category_id` 0125 FROM `stat_cat_tree` AS `sct2` 0126 WHERE `sct2`.`lft` < `sct`.`lft` 0127 AND `sct2`.`rgt` > `sct`.`rgt` 0128 ORDER BY `sct2`.`rgt` - `sct`.`rgt` 0129 LIMIT 1) AS `parent_id` 0130 FROM `tmp_store_cat` AS `cfc` 0131 JOIN `stat_cat_tree` AS `sct` ON find_in_set(`cfc`.`project_category_id`, `sct`.`ancestor_id_path`) 0132 JOIN `stat_cat_prod_count` AS `scpc` 0133 ON `sct`.`project_category_id` = `scpc`.`project_category_id` AND `scpc`.`tag_id` IS NULL 0134 WHERE `cfc`.`store_id` = `STORE_ID` 0135 ORDER BY `cfc`.`order`, `sct`.`lft`; 0136 END$$ 0137 DELIMITER ; 0138