|
|
|
@@ -0,0 +1,220 @@
|
|
|
|
|
-- Hierarchical menu permissions. user_column_permission intentionally keeps
|
|
|
|
|
-- only direct grants; descendants are expanded by PermissionMenuService.
|
|
|
|
|
SET @permission_db_name = DATABASE();
|
|
|
|
|
|
|
|
|
|
SET @permission_parent_column_exists = (
|
|
|
|
|
SELECT COUNT(*)
|
|
|
|
|
FROM information_schema.COLUMNS
|
|
|
|
|
WHERE TABLE_SCHEMA = @permission_db_name
|
|
|
|
|
AND TABLE_NAME = 'columns'
|
|
|
|
|
AND COLUMN_NAME = 'parent_id'
|
|
|
|
|
);
|
|
|
|
|
SET @permission_sql = IF(
|
|
|
|
|
@permission_parent_column_exists = 0,
|
|
|
|
|
'ALTER TABLE `columns` ADD COLUMN `parent_id` INT NULL COMMENT ''直接父菜单 ID'' AFTER `id`',
|
|
|
|
|
'SELECT 1'
|
|
|
|
|
);
|
|
|
|
|
PREPARE permission_stmt FROM @permission_sql;
|
|
|
|
|
EXECUTE permission_stmt;
|
|
|
|
|
DEALLOCATE PREPARE permission_stmt;
|
|
|
|
|
|
|
|
|
|
SET @permission_parent_index_exists = (
|
|
|
|
|
SELECT COUNT(*)
|
|
|
|
|
FROM information_schema.STATISTICS
|
|
|
|
|
WHERE TABLE_SCHEMA = @permission_db_name
|
|
|
|
|
AND TABLE_NAME = 'columns'
|
|
|
|
|
AND INDEX_NAME = 'idx_columns_parent_sort_id'
|
|
|
|
|
);
|
|
|
|
|
SET @permission_sql = IF(
|
|
|
|
|
@permission_parent_index_exists = 0,
|
|
|
|
|
'ALTER TABLE `columns` ADD INDEX `idx_columns_parent_sort_id` (`parent_id`, `sort_order`, `id`)',
|
|
|
|
|
'SELECT 1'
|
|
|
|
|
);
|
|
|
|
|
PREPARE permission_stmt FROM @permission_sql;
|
|
|
|
|
EXECUTE permission_stmt;
|
|
|
|
|
DEALLOCATE PREPARE permission_stmt;
|
|
|
|
|
|
|
|
|
|
SET @permission_parent_fk_exists = (
|
|
|
|
|
SELECT COUNT(*)
|
|
|
|
|
FROM information_schema.TABLE_CONSTRAINTS
|
|
|
|
|
WHERE CONSTRAINT_SCHEMA = @permission_db_name
|
|
|
|
|
AND TABLE_NAME = 'columns'
|
|
|
|
|
AND CONSTRAINT_NAME = 'fk_columns_parent_id'
|
|
|
|
|
AND CONSTRAINT_TYPE = 'FOREIGN KEY'
|
|
|
|
|
);
|
|
|
|
|
SET @permission_sql = IF(
|
|
|
|
|
@permission_parent_fk_exists = 0,
|
|
|
|
|
'ALTER TABLE `columns` ADD CONSTRAINT `fk_columns_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `columns` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT',
|
|
|
|
|
'SELECT 1'
|
|
|
|
|
);
|
|
|
|
|
PREPARE permission_stmt FROM @permission_sql;
|
|
|
|
|
EXECUTE permission_stmt;
|
|
|
|
|
DEALLOCATE PREPARE permission_stmt;
|
|
|
|
|
|
|
|
|
|
-- Normalize older underscore keys. If both spellings already exist, retain the
|
|
|
|
|
-- canonical row and move direct grants before deleting the duplicate.
|
|
|
|
|
INSERT IGNORE INTO `user_column_permission` (`user_id`, `column_id`)
|
|
|
|
|
SELECT direct_grant.`user_id`, canonical.`id`
|
|
|
|
|
FROM `user_column_permission` AS direct_grant
|
|
|
|
|
JOIN `columns` AS legacy ON legacy.`id` = direct_grant.`column_id`
|
|
|
|
|
JOIN (
|
|
|
|
|
SELECT 'collect_data' AS legacy_key, 'collect-data' AS canonical_key
|
|
|
|
|
UNION ALL SELECT 'appearance_patent', 'appearance-patent'
|
|
|
|
|
UNION ALL SELECT 'similar_asin', 'similar-asin'
|
|
|
|
|
) AS key_map ON key_map.legacy_key = legacy.`column_key`
|
|
|
|
|
JOIN `columns` AS canonical ON canonical.`column_key` = key_map.canonical_key;
|
|
|
|
|
|
|
|
|
|
DELETE legacy
|
|
|
|
|
FROM `columns` AS legacy
|
|
|
|
|
JOIN (
|
|
|
|
|
SELECT 'collect_data' AS legacy_key, 'collect-data' AS canonical_key
|
|
|
|
|
UNION ALL SELECT 'appearance_patent', 'appearance-patent'
|
|
|
|
|
UNION ALL SELECT 'similar_asin', 'similar-asin'
|
|
|
|
|
) AS key_map ON key_map.legacy_key = legacy.`column_key`
|
|
|
|
|
JOIN `columns` AS canonical ON canonical.`column_key` = key_map.canonical_key;
|
|
|
|
|
|
|
|
|
|
UPDATE `columns` AS legacy
|
|
|
|
|
JOIN (
|
|
|
|
|
SELECT 'collect_data' AS legacy_key, 'collect-data' AS canonical_key
|
|
|
|
|
UNION ALL SELECT 'appearance_patent', 'appearance-patent'
|
|
|
|
|
UNION ALL SELECT 'similar_asin', 'similar-asin'
|
|
|
|
|
) AS key_map ON key_map.legacy_key = legacy.`column_key`
|
|
|
|
|
LEFT JOIN `columns` AS canonical ON canonical.`column_key` = key_map.canonical_key
|
|
|
|
|
SET legacy.`column_key` = key_map.canonical_key
|
|
|
|
|
WHERE canonical.`id` IS NULL;
|
|
|
|
|
|
|
|
|
|
-- Video/image workspace. Keep the legacy `wb` key because existing user
|
|
|
|
|
-- grants reference that row; its route is the current image-video page.
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '视频', 'wb', 'app', 'image-video', 100, NULL
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE `column_key` = 'wb');
|
|
|
|
|
UPDATE `columns`
|
|
|
|
|
SET `name` = '视频', `menu_type` = 'app', `route_path` = 'image-video', `sort_order` = 100, `parent_id` = NULL
|
|
|
|
|
WHERE `column_key` = 'wb';
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '数字人', 'digital-human', 'app', 'digital-human', 101,
|
|
|
|
|
(SELECT id FROM `columns` WHERE column_key = 'wb' LIMIT 1)
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'digital-human');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '带货视频', 'delivery-video', 'app', 'delivery-video', 102,
|
|
|
|
|
(SELECT id FROM `columns` WHERE column_key = 'wb' LIMIT 1)
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'delivery-video');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '混剪', 'mix-video', 'app', 'mix-video', 103,
|
|
|
|
|
(SELECT id FROM `columns` WHERE column_key = 'wb' LIMIT 1)
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'mix-video');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '图片', 'image', 'app', 'image', 104,
|
|
|
|
|
(SELECT id FROM `columns` WHERE column_key = 'wb' LIMIT 1)
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'image');
|
|
|
|
|
|
|
|
|
|
UPDATE `columns` AS child
|
|
|
|
|
JOIN `columns` AS parent ON parent.`column_key` = 'wb'
|
|
|
|
|
SET child.`parent_id` = parent.`id`, child.`menu_type` = 'app',
|
|
|
|
|
child.`name` = CASE child.`column_key`
|
|
|
|
|
WHEN 'digital-human' THEN '数字人' WHEN 'delivery-video' THEN '带货视频'
|
|
|
|
|
WHEN 'mix-video' THEN '混剪' WHEN 'image' THEN '图片' ELSE child.`name` END,
|
|
|
|
|
child.`route_path` = CASE child.`column_key`
|
|
|
|
|
WHEN 'digital-human' THEN 'digital-human' WHEN 'delivery-video' THEN 'delivery-video'
|
|
|
|
|
WHEN 'mix-video' THEN 'mix-video' WHEN 'image' THEN 'image' ELSE child.`route_path` END,
|
|
|
|
|
child.`sort_order` = CASE child.`column_key`
|
|
|
|
|
WHEN 'digital-human' THEN 101 WHEN 'delivery-video' THEN 102
|
|
|
|
|
WHEN 'mix-video' THEN 103 WHEN 'image' THEN 104 ELSE child.`sort_order` END
|
|
|
|
|
WHERE child.`column_key` IN ('digital-human', 'delivery-video', 'mix-video', 'image');
|
|
|
|
|
|
|
|
|
|
-- Three APP navigation groups.
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '前端工具', 'brand_front_tools', 'app', 'brand-front-tools', 110, NULL
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE `column_key` = 'brand_front_tools');
|
|
|
|
|
UPDATE `columns` SET `name` = '前端工具', `menu_type` = 'app', `route_path` = 'brand-front-tools', `sort_order` = 110, `parent_id` = NULL
|
|
|
|
|
WHERE `column_key` = 'brand_front_tools';
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '运营工具', 'brand_operation_tools', 'app', 'brand-operation-tools', 120, NULL
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE `column_key` = 'brand_operation_tools');
|
|
|
|
|
UPDATE `columns` SET `name` = '运营工具', `menu_type` = 'app', `route_path` = 'brand-operation-tools', `sort_order` = 120, `parent_id` = NULL
|
|
|
|
|
WHERE `column_key` = 'brand_operation_tools';
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '后勤工具', 'brand_logistics_tools', 'app', 'brand-logistics-tools', 130, NULL
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE `column_key` = 'brand_logistics_tools');
|
|
|
|
|
UPDATE `columns` SET `name` = '后勤工具', `menu_type` = 'app', `route_path` = 'brand-logistics-tools', `sort_order` = 130, `parent_id` = NULL
|
|
|
|
|
WHERE `column_key` = 'brand_logistics_tools';
|
|
|
|
|
|
|
|
|
|
-- APP children. The key follows the frontend item key (except the existing
|
|
|
|
|
-- shop_data_crawl compatibility key); route_path remains the route slug.
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`)
|
|
|
|
|
SELECT '采集数据', 'collect-data', 'app', 'collect-data', 111,
|
|
|
|
|
(SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1)
|
|
|
|
|
WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'collect-data');
|
|
|
|
|
UPDATE `columns` AS child
|
|
|
|
|
JOIN `columns` AS parent ON parent.`column_key` = 'brand_front_tools'
|
|
|
|
|
SET child.`name` = '采集数据', child.`menu_type` = 'app', child.`route_path` = 'collect-data',
|
|
|
|
|
child.`sort_order` = 111, child.`parent_id` = parent.`id`
|
|
|
|
|
WHERE child.`column_key` = 'collect-data';
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '品牌检测', 'brand', 'app', 'brand', 112, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'brand');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '外观专利检测', 'appearance-patent', 'app', 'appearance-patent', 113, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'appearance-patent');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '货源查询', 'similar-asin', 'app', 'similar-asin', 114, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'similar-asin');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '数据去重', 'dedupe', 'app', 'dedupe', 115, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'dedupe');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '数据拆分', 'split', 'app', 'split', 116, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'split');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '格式转换', 'convert', 'app', 'convert', 117, (SELECT id FROM `columns` WHERE column_key = 'brand_front_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'convert');
|
|
|
|
|
|
|
|
|
|
UPDATE `columns` AS child
|
|
|
|
|
JOIN `columns` AS parent ON parent.`column_key` = 'brand_front_tools'
|
|
|
|
|
SET child.`parent_id` = parent.`id`, child.`menu_type` = 'app',
|
|
|
|
|
child.`name` = CASE child.`column_key`
|
|
|
|
|
WHEN 'brand' THEN '品牌检测' WHEN 'appearance-patent' THEN '外观专利检测'
|
|
|
|
|
WHEN 'similar-asin' THEN '货源查询' WHEN 'dedupe' THEN '数据去重'
|
|
|
|
|
WHEN 'split' THEN '数据拆分' WHEN 'convert' THEN '格式转换' ELSE child.`name` END,
|
|
|
|
|
child.`route_path` = CASE child.`column_key`
|
|
|
|
|
WHEN 'brand' THEN 'brand' WHEN 'appearance-patent' THEN 'appearance-patent'
|
|
|
|
|
WHEN 'similar-asin' THEN 'similar-asin' WHEN 'dedupe' THEN 'dedupe'
|
|
|
|
|
WHEN 'split' THEN 'split' WHEN 'convert' THEN 'convert' ELSE child.`route_path` END,
|
|
|
|
|
child.`sort_order` = CASE child.`column_key`
|
|
|
|
|
WHEN 'brand' THEN 112 WHEN 'appearance-patent' THEN 113 WHEN 'similar-asin' THEN 114
|
|
|
|
|
WHEN 'dedupe' THEN 115 WHEN 'split' THEN 116 WHEN 'convert' THEN 117 ELSE child.`sort_order` END
|
|
|
|
|
WHERE child.`column_key` IN ('brand', 'appearance-patent', 'similar-asin', 'dedupe', 'split', 'convert');
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '上架', 'publish', 'app', 'publish', 121, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'publish');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '删除ASIN', 'delete-brand', 'app', 'delete-brand', 122, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'delete-brand');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '商品风险解决', 'product-risk', 'app', 'product-risk', 123, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'product-risk');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '定时匹配', 'shop-match', 'app', 'shop-match', 124, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'shop-match');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '跟价', 'pricing', 'app', 'price-track', 125, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'pricing');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '巡店删除', 'patrol-delete', 'app', 'patrol-delete', 126, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'patrol-delete');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '查询ASIN', 'query-asin', 'app', 'query-asin', 127, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'query-asin');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '店铺数据抓取', 'shop_data_crawl', 'app', 'shop-data-crawl', 128, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'shop_data_crawl');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '取款', 'withdraw', 'app', 'withdraw', 129, (SELECT id FROM `columns` WHERE column_key = 'brand_operation_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'withdraw');
|
|
|
|
|
UPDATE `columns` AS child
|
|
|
|
|
JOIN `columns` AS parent ON parent.`column_key` = 'brand_operation_tools'
|
|
|
|
|
SET child.`parent_id` = parent.`id`, child.`menu_type` = 'app',
|
|
|
|
|
child.`name` = CASE child.`column_key`
|
|
|
|
|
WHEN 'publish' THEN '上架' WHEN 'delete-brand' THEN '删除ASIN'
|
|
|
|
|
WHEN 'product-risk' THEN '商品风险解决' WHEN 'shop-match' THEN '定时匹配'
|
|
|
|
|
WHEN 'pricing' THEN '跟价' WHEN 'patrol-delete' THEN '巡店删除'
|
|
|
|
|
WHEN 'query-asin' THEN '查询ASIN' WHEN 'shop_data_crawl' THEN '店铺数据抓取'
|
|
|
|
|
WHEN 'withdraw' THEN '取款' ELSE child.`name` END,
|
|
|
|
|
child.`route_path` = CASE child.`column_key`
|
|
|
|
|
WHEN 'publish' THEN 'publish' WHEN 'delete-brand' THEN 'delete-brand'
|
|
|
|
|
WHEN 'product-risk' THEN 'product-risk' WHEN 'shop-match' THEN 'shop-match'
|
|
|
|
|
WHEN 'pricing' THEN 'price-track' WHEN 'patrol-delete' THEN 'patrol-delete'
|
|
|
|
|
WHEN 'query-asin' THEN 'query-asin' WHEN 'shop_data_crawl' THEN 'shop-data-crawl'
|
|
|
|
|
WHEN 'withdraw' THEN 'withdraw' ELSE child.`route_path` END,
|
|
|
|
|
child.`sort_order` = CASE child.`column_key`
|
|
|
|
|
WHEN 'publish' THEN 121 WHEN 'delete-brand' THEN 122 WHEN 'product-risk' THEN 123 WHEN 'shop-match' THEN 124
|
|
|
|
|
WHEN 'pricing' THEN 125 WHEN 'patrol-delete' THEN 126 WHEN 'query-asin' THEN 127 WHEN 'shop_data_crawl' THEN 128 WHEN 'withdraw' THEN 129 ELSE child.`sort_order` END
|
|
|
|
|
WHERE child.`column_key` IN ('publish', 'delete-brand', 'product-risk', 'shop-match', 'pricing', 'patrol-delete', 'query-asin', 'shop_data_crawl', 'withdraw');
|
|
|
|
|
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT '采购', 'purchase', 'app', 'purchase', 131, (SELECT id FROM `columns` WHERE column_key = 'brand_logistics_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'purchase');
|
|
|
|
|
INSERT INTO `columns` (`name`, `column_key`, `menu_type`, `route_path`, `sort_order`, `parent_id`) SELECT 'ERP', 'erp', 'app', 'erp', 132, (SELECT id FROM `columns` WHERE column_key = 'brand_logistics_tools' LIMIT 1) WHERE NOT EXISTS (SELECT 1 FROM `columns` WHERE column_key = 'erp');
|
|
|
|
|
UPDATE `columns` AS child
|
|
|
|
|
JOIN `columns` AS parent ON parent.`column_key` = 'brand_logistics_tools'
|
|
|
|
|
SET child.`parent_id` = parent.`id`, child.`menu_type` = 'app',
|
|
|
|
|
child.`name` = CASE child.`column_key`
|
|
|
|
|
WHEN 'purchase' THEN '采购' WHEN 'erp' THEN 'ERP' ELSE child.`name` END,
|
|
|
|
|
child.`route_path` = CASE child.`column_key`
|
|
|
|
|
WHEN 'purchase' THEN 'purchase' WHEN 'erp' THEN 'erp' ELSE child.`route_path` END,
|
|
|
|
|
child.`sort_order` = CASE child.`column_key`
|
|
|
|
|
WHEN 'purchase' THEN 131 WHEN 'erp' THEN 132 ELSE child.`sort_order` END
|
|
|
|
|
WHERE child.`column_key` IN ('purchase', 'erp');
|