sql/mysql/aftersales_problem_visit_init.sql
@@ -1,6 +1,6 @@
-- =============================================
-- 售后:问题库 + 回访(可重复执行)
-- 含:after_sale_ticket 加 6 列、after_sale_problem / after_sale_visit 建表、问题库菜单(空闲 id 602710-602716)
-- 含:after_sale_ticket 加 6 列、after_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;