Files
lgp-admin-plus-api/database/sql/2026-08-14/04_nl_menu_dealer.sql
LQ 11f40a75e4 初始化
缺陷:主题配色需要优化整体的同风格
2026-08-14 23:21:37 +08:00

51 lines
2.6 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
-- ============================================================
-- 菜单:客户中心下增加「经销商管理」(幂等)
-- component/path 对齐前端 views/customer/dealer
-- keep_alive0=开启缓存affix_tab0=固定(输出到前端 meta 时取反)
-- 注意nl_menu 无 type/status 列,勿照搬其它脚手架字段
-- ============================================================
SET @db := DATABASE();
SET @parent_id := (
SELECT id FROM nl_menu WHERE name = 'Customer' AND deleted_at = 0 LIMIT 1
);
SET @exists := (
SELECT COUNT(*) FROM nl_menu
WHERE name = 'CustomerDealer' AND deleted_at = 0
);
-- 插在「微信用户」后sort=1企业管理及之后在 menu-sync / 手工时再调序
SET @sql := IF(@parent_id IS NOT NULL AND @exists = 0,
CONCAT(
'INSERT INTO `nl_menu` (`title`,`icon`,`name`,`path`,`component`,`redirect`,`keep_alive`,`hide_in_menu`,`affix_tab`,`badge`,`badge_type`,`badge_variants`,`iframe_src`,`pid`,`sort`,`query`,`created_at`,`updated_at`,`deleted_at`) VALUES (',
'''经销商管理'', ''lucide:handshake'', ''CustomerDealer'', ''/customer/dealer'', ''/customer/dealer/index'', '''', 1, 0, 1, '''', 0, 0, '''', ',
@parent_id,
', 1, '''', UNIX_TIMESTAMP(), UNIX_TIMESTAMP(), 0)'
),
'SELECT ''skip menu CustomerDealer'' AS msg'
);
PREPARE stmt FROM @sql; EXECUTE stmt; DEALLOCATE PREPARE stmt;
-- 与 lgp_menu 口径一致:企业/清单/订单 sort 后移(仅当经销商菜单刚存在时幂等更新)
UPDATE `nl_menu` SET `sort` = 2, `updated_at` = UNIX_TIMESTAMP()
WHERE `name` = 'CustomerEnterprise' AND `deleted_at` = 0 AND `sort` < 2;
UPDATE `nl_menu` SET `sort` = 3, `updated_at` = UNIX_TIMESTAMP()
WHERE `name` = 'CustomerList' AND `deleted_at` = 0 AND `sort` < 3;
UPDATE `nl_menu` SET `sort` = 4, `updated_at` = UNIX_TIMESTAMP()
WHERE `name` = 'CustomerOrder' AND `deleted_at` = 0 AND `sort` < 4;
-- 凡已拥有「微信用户」菜单的角色,同步挂上「经销商管理」(幂等)
SET @menu_id := (SELECT id FROM nl_menu WHERE name = 'CustomerDealer' AND deleted_at = 0 LIMIT 1);
SET @wx_user_menu_id := (SELECT id FROM nl_menu WHERE name = 'CustomerWxUser' AND deleted_at = 0 LIMIT 1);
INSERT INTO `nl_role_menu_relations` (`role_id`, `menu_id`, `created_at`)
SELECT r.role_id, @menu_id, UNIX_TIMESTAMP()
FROM `nl_role_menu_relations` r
WHERE @menu_id IS NOT NULL
AND @wx_user_menu_id IS NOT NULL
AND r.menu_id = @wx_user_menu_id
AND NOT EXISTS (
SELECT 1 FROM `nl_role_menu_relations` x
WHERE x.role_id = r.role_id AND x.menu_id = @menu_id
);