From 7ca629b0ce52897d61f0df56609e85f0cfc3563d Mon Sep 17 00:00:00 2001
From: tuqin <tuqin@tuqin.cn>
Date: 星期二, 13 十月 2026 17:19:31 +0800
Subject: [PATCH] fix(aftersales): 问题库菜单 SQL 改为按权限存在性判断,避免与已有菜单重复

---
 sql/mysql/aftersales_problem_visit_init.sql |   26 ++++++++++++++------------
 1 files changed, 14 insertions(+), 12 deletions(-)

diff --git a/sql/mysql/aftersales_problem_visit_init.sql b/sql/mysql/aftersales_problem_visit_init.sql
index c0c3473..4a25966 100644
--- a/sql/mysql/aftersales_problem_visit_init.sql
+++ b/sql/mysql/aftersales_problem_visit_init.sql
@@ -1,6 +1,6 @@
 -- =============================================
 -- 鍞悗锛氶棶棰樺簱 + 鍥炶锛堝彲閲嶅鎵ц锛�
--- 鍚細after_sale_ticket 鍔� 6 鍒椼�乤fter_sale_problem / after_sale_visit 寤鸿〃銆侀棶棰樺簱鑿滃崟锛堢┖闂� id 602710-602716锛�
+-- 鍚細after_sale_ticket 鍔� 6 鍒椼�乤fter_sale_problem / after_sale_visit 寤鸿〃銆侀棶棰樺簱鑿滃崟锛堢┖闂� id 602710-602716锛屽凡瀛樺湪鍒欒烦杩囷級
 -- =============================================
 
 -- 1. after_sale_ticket 鍔犲洖璁�/娌夋穩鐩稿叧鍒�
@@ -68,22 +68,24 @@
     PRIMARY KEY (`id`), KEY `idx_ticket` (`ticket_id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='鍞悗鍥炶璁板綍琛�';
 
--- 4. 闂搴撹彍鍗曪紙鎸� 602587 鍞悗绠$悊 涓嬶紝绌洪棽 id 602710-602716锛�
+-- 4. 闂搴撹彍鍗� 鈥斺�� 浠呭綋绯荤粺涓�愬皻鏃犮�戦棶棰樺簱鑿滃崟(鎸夋潈闄� aftersales:problem:query 鍒ゆ柇)鏃舵墠鎻掑叆锛岄伩鍏嶄笌宸叉湁鑿滃崟閲嶅
 INSERT INTO `system_menu`
 (`id`,`name`,`permission`,`type`,`sort`,`parent_id`,`path`,`icon`,`component`,`component_name`,`status`,`visible`,`keep_alive`,`always_show`,`creator`,`create_time`,`updater`,`update_time`,`deleted`)
-VALUES
-(602710,'闂搴�','',2,3,602587,'problem','ep:collection','/aftersales/problem/index','AfterSaleProblem',0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602711,'闂搴撴煡璇�','aftersales:problem:query',3,1,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602712,'闂搴撳垱寤�','aftersales:problem:create',3,2,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602713,'闂搴撴洿鏂�','aftersales:problem:update',3,3,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602714,'闂搴撳垹闄�','aftersales:problem:delete',3,4,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602715,'闂搴撳彂甯�','aftersales:problem:publish',3,5,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'),
-(602716,'闂搴撳仠鐢�','aftersales:problem:disable',3,6,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0')
-ON DUPLICATE KEY UPDATE `name`=VALUES(`name`),`permission`=VALUES(`permission`),`type`=VALUES(`type`),`parent_id`=VALUES(`parent_id`),`path`=VALUES(`path`),`component`=VALUES(`component`),`component_name`=VALUES(`component_name`),`status`=VALUES(`status`),`deleted`=b'0';
+SELECT * FROM (
+    SELECT 602710 AS id,'闂搴�' AS name,'' AS permission,2 AS type,3 AS sort,602587 AS parent_id,'problem' AS path,'ep:collection' AS icon,'/aftersales/problem/index' AS component,'AfterSaleProblem' AS component_name,0 AS status,b'1' AS visible,b'1' AS keep_alive,b'1' AS always_show,'1' AS creator,NOW() AS create_time,'1' AS updater,NOW() AS update_time,b'0' AS deleted
+    UNION ALL SELECT 602711,'闂搴撴煡璇�','aftersales:problem:query',3,1,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+    UNION ALL SELECT 602712,'闂搴撳垱寤�','aftersales:problem:create',3,2,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+    UNION ALL SELECT 602713,'闂搴撴洿鏂�','aftersales:problem:update',3,3,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+    UNION ALL SELECT 602714,'闂搴撳垹闄�','aftersales:problem:delete',3,4,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+    UNION ALL SELECT 602715,'闂搴撳彂甯�','aftersales:problem:publish',3,5,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+    UNION ALL SELECT 602716,'闂搴撳仠鐢�','aftersales:problem:disable',3,6,602710,'','','',NULL,0,b'1',b'1',b'1','1',NOW(),'1',NOW(),b'0'
+) t
+WHERE NOT EXISTS (SELECT 1 FROM `system_menu` WHERE `permission`='aftersales:problem:query' AND `deleted`=b'0');
 
 INSERT INTO `system_role_menu` (`role_id`,`menu_id`,`creator`,`create_time`,`updater`,`update_time`,`deleted`)
 SELECT 1, m.menu_id, '1', NOW(), '1', NOW(), b'0'
 FROM (SELECT 602710 AS menu_id UNION ALL SELECT 602711 UNION ALL SELECT 602712 UNION ALL SELECT 602713 UNION ALL SELECT 602714 UNION ALL SELECT 602715 UNION ALL SELECT 602716) m
-WHERE NOT EXISTS (SELECT 1 FROM `system_role_menu` rm WHERE rm.`role_id`=1 AND rm.`menu_id`=m.menu_id AND rm.`deleted`=b'0');
+WHERE EXISTS (SELECT 1 FROM `system_menu` sm WHERE sm.`id`=m.menu_id)
+  AND NOT EXISTS (SELECT 1 FROM `system_role_menu` rm WHERE rm.`role_id`=1 AND rm.`menu_id`=m.menu_id AND rm.`deleted`=b'0');
 
 SELECT '鍞悗闂搴�/鍥炶鍒濆鍖栧畬鎴�' AS result;

--
Gitblit v1.9.3