更新
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
-- 角色数据驾驶舱
|
||||
-- 页面路径: /stats/performance_dashboard
|
||||
-- 前端组件: /stats/performance-dashboard/index
|
||||
-- 查询权限: stats.performanceDashboard/overview
|
||||
|
||||
SET @stats_root_id = (
|
||||
SELECT `id`
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `type` = 'M'
|
||||
AND (`paths` IN ('stats', '/stats') OR `name` = '数据统计')
|
||||
ORDER BY CASE WHEN `paths` IN ('stats', '/stats') THEN 0 ELSE 1 END, `id` ASC
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@stats_root_id,
|
||||
'C',
|
||||
'数据驾驶舱',
|
||||
'el-icon-DataAnalysis',
|
||||
100,
|
||||
'stats.performanceDashboard/overview',
|
||||
'/stats/performance_dashboard',
|
||||
'/stats/performance-dashboard/index',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
UNIX_TIMESTAMP(),
|
||||
UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @stats_root_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.performanceDashboard/overview'
|
||||
);
|
||||
|
||||
SET @dashboard_menu_id = (
|
||||
SELECT `id`
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'stats.performanceDashboard/overview'
|
||||
ORDER BY `id` ASC
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
-- 已拥有「数据统计」目录或其任一子菜单的角色,默认获得驾驶舱入口。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT DISTINCT role_menu.`role_id`, @dashboard_menu_id
|
||||
FROM `zyt_system_role_menu` AS role_menu
|
||||
INNER JOIN `zyt_system_menu` AS granted_menu ON granted_menu.`id` = role_menu.`menu_id`
|
||||
WHERE @dashboard_menu_id IS NOT NULL
|
||||
AND @stats_root_id IS NOT NULL
|
||||
AND (granted_menu.`id` = @stats_root_id OR granted_menu.`pid` = @stats_root_id);
|
||||
@@ -0,0 +1,85 @@
|
||||
-- 一诊 / 综合数据转化
|
||||
-- 页面:/first_visit/conversion
|
||||
-- 组件:first_visit/conversion/index
|
||||
-- 查询权限:firstvisit.conversion/overview
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
0, 'M', '一诊', 'el-icon-FirstAidKit', 802, '', 'first_visit', '', '', '', 0, 1, 0,
|
||||
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
);
|
||||
|
||||
SET @first_visit_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
ORDER BY CASE WHEN TRIM(`name`) = '一诊' AND TRIM(`paths`) = 'first_visit' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@first_visit_menu_id, 'C', '综合数据转化', 'el-icon-DataAnalysis', 90,
|
||||
'firstvisit.conversion/overview', 'conversion', 'first_visit/conversion/index',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'firstvisit.conversion/overview'
|
||||
OR (`pid` = @first_visit_menu_id AND (
|
||||
TRIM(`name`) = '综合数据转化'
|
||||
OR TRIM(`paths`) = 'conversion'
|
||||
OR TRIM(`component`) = 'first_visit/conversion/index'
|
||||
))
|
||||
);
|
||||
|
||||
SET @first_visit_conversion_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = @first_visit_menu_id
|
||||
AND (`perms` = 'firstvisit.conversion/overview'
|
||||
OR TRIM(`name`) = '综合数据转化'
|
||||
OR TRIM(`component`) = 'first_visit/conversion/index')
|
||||
ORDER BY CASE WHEN `perms` = 'firstvisit.conversion/overview' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
-- 若历史上已有同路径占位菜单,统一修正为当前页面与权限,保证迁移可重复执行。
|
||||
UPDATE `zyt_system_menu`
|
||||
SET `name` = '综合数据转化',
|
||||
`icon` = 'el-icon-DataAnalysis',
|
||||
`sort` = 90,
|
||||
`perms` = 'firstvisit.conversion/overview',
|
||||
`paths` = 'conversion',
|
||||
`component` = 'first_visit/conversion/index',
|
||||
`is_cache` = 0,
|
||||
`is_show` = 1,
|
||||
`is_disable` = 0,
|
||||
`update_time` = UNIX_TIMESTAMP()
|
||||
WHERE `id` = @first_visit_conversion_menu_id;
|
||||
|
||||
-- 医助=本人、诊室组长=本部门、经理=本部门及下级、管理员=全部;root 自动拥有。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_conversion_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_conversion_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,84 @@
|
||||
-- 一诊 / 医生看板
|
||||
-- 页面:/first_visit/doctor_dashboard
|
||||
-- 组件:first_visit/doctor_dashboard/index
|
||||
-- 查询权限:firstvisit.doctorDashboard/overview
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
0, 'M', '一诊', 'el-icon-FirstAidKit', 802, '', 'first_visit', '', '', '', 0, 1, 0,
|
||||
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
);
|
||||
|
||||
SET @first_visit_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
ORDER BY CASE WHEN TRIM(`name`) = '一诊' AND TRIM(`paths`) = 'first_visit' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@first_visit_menu_id, 'C', '医生看板', 'el-icon-DataLine', 70,
|
||||
'firstvisit.doctorDashboard/overview', 'doctor_dashboard', 'first_visit/doctor_dashboard/index',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'firstvisit.doctorDashboard/overview'
|
||||
OR (`pid` = @first_visit_menu_id AND (
|
||||
TRIM(`name`) = '医生看板'
|
||||
OR TRIM(`paths`) = 'doctor_dashboard'
|
||||
OR TRIM(`component`) = 'first_visit/doctor_dashboard/index'
|
||||
))
|
||||
);
|
||||
|
||||
SET @doctor_dashboard_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = @first_visit_menu_id
|
||||
AND (`perms` = 'firstvisit.doctorDashboard/overview'
|
||||
OR TRIM(`name`) = '医生看板'
|
||||
OR TRIM(`component`) = 'first_visit/doctor_dashboard/index')
|
||||
ORDER BY CASE WHEN `perms` = 'firstvisit.doctorDashboard/overview' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
UPDATE `zyt_system_menu`
|
||||
SET `name` = '医生看板',
|
||||
`icon` = 'el-icon-DataLine',
|
||||
`sort` = 70,
|
||||
`perms` = 'firstvisit.doctorDashboard/overview',
|
||||
`paths` = 'doctor_dashboard',
|
||||
`component` = 'first_visit/doctor_dashboard/index',
|
||||
`is_cache` = 0,
|
||||
`is_show` = 1,
|
||||
`is_disable` = 0,
|
||||
`update_time` = UNIX_TIMESTAMP()
|
||||
WHERE `id` = @doctor_dashboard_menu_id;
|
||||
|
||||
-- 医生=本人;医助=本人经手;组长/经理=部门范围;管理员=全部。root 自动拥有。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医生', '医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @doctor_dashboard_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @doctor_dashboard_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医生', '医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,115 @@
|
||||
-- 一诊 / 我的患者
|
||||
-- 页面:/first_visit/my_patients
|
||||
-- 组件:first_visit/my_patients/index
|
||||
-- 查询权限:firstvisit.myPatient/lists
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
0,
|
||||
'M',
|
||||
'一诊',
|
||||
'el-icon-FirstAidKit',
|
||||
802,
|
||||
'',
|
||||
'first_visit',
|
||||
'',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
UNIX_TIMESTAMP(),
|
||||
UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0
|
||||
AND `type` = 'M'
|
||||
AND (
|
||||
TRIM(`name`) = '一诊'
|
||||
OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit')
|
||||
)
|
||||
);
|
||||
|
||||
SET @first_visit_menu_id = (
|
||||
SELECT `id`
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0
|
||||
AND `type` = 'M'
|
||||
AND (
|
||||
TRIM(`name`) = '一诊'
|
||||
OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit')
|
||||
)
|
||||
ORDER BY CASE WHEN TRIM(`name`) = '一诊' AND TRIM(`paths`) = 'first_visit' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@first_visit_menu_id,
|
||||
'C',
|
||||
'我的患者',
|
||||
'el-icon-User',
|
||||
100,
|
||||
'firstvisit.myPatient/lists',
|
||||
'my_patients',
|
||||
'first_visit/my_patients/index',
|
||||
'',
|
||||
'',
|
||||
0,
|
||||
1,
|
||||
0,
|
||||
UNIX_TIMESTAMP(),
|
||||
UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'firstvisit.myPatient/lists'
|
||||
OR (
|
||||
`pid` = @first_visit_menu_id
|
||||
AND (
|
||||
TRIM(`name`) = '我的患者'
|
||||
OR TRIM(`paths`) = 'my_patients'
|
||||
OR TRIM(`component`) = 'first_visit/my_patients/index'
|
||||
)
|
||||
)
|
||||
);
|
||||
|
||||
SET @my_patient_menu_id = (
|
||||
SELECT `id`
|
||||
FROM `zyt_system_menu`
|
||||
WHERE `pid` = @first_visit_menu_id
|
||||
AND (
|
||||
`perms` = 'firstvisit.myPatient/lists'
|
||||
OR TRIM(`name`) = '我的患者'
|
||||
OR TRIM(`paths`) = 'my_patients'
|
||||
OR TRIM(`component`) = 'first_visit/my_patients/index'
|
||||
)
|
||||
ORDER BY CASE WHEN `perms` = 'firstvisit.myPatient/lists' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
-- 医生、医助、经理、诊室组长、管理员可见入口;root 无需角色菜单授权。
|
||||
-- 页面内诊单/预约/订单按钮继续使用各自原有按钮权限。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医生', '医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @my_patient_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @my_patient_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医生', '医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,84 @@
|
||||
-- 一诊 / 挂号统计
|
||||
-- 页面:/first_visit/registration_stats
|
||||
-- 组件:first_visit/registration_stats/index
|
||||
-- 查询权限:firstvisit.registrationStats/overview
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
0, 'M', '一诊', 'el-icon-FirstAidKit', 802, '', 'first_visit', '', '', '', 0, 1, 0,
|
||||
UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
);
|
||||
|
||||
SET @first_visit_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
ORDER BY CASE WHEN TRIM(`name`) = '一诊' AND TRIM(`paths`) = 'first_visit' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@first_visit_menu_id, 'C', '挂号统计', 'el-icon-Histogram', 80,
|
||||
'firstvisit.registrationStats/overview', 'registration_stats', 'first_visit/registration_stats/index',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'firstvisit.registrationStats/overview'
|
||||
OR (`pid` = @first_visit_menu_id AND (
|
||||
TRIM(`name`) = '挂号统计'
|
||||
OR TRIM(`paths`) = 'registration_stats'
|
||||
OR TRIM(`component`) = 'first_visit/registration_stats/index'
|
||||
))
|
||||
);
|
||||
|
||||
SET @registration_stats_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = @first_visit_menu_id
|
||||
AND (`perms` = 'firstvisit.registrationStats/overview'
|
||||
OR TRIM(`name`) = '挂号统计'
|
||||
OR TRIM(`component`) = 'first_visit/registration_stats/index')
|
||||
ORDER BY CASE WHEN `perms` = 'firstvisit.registrationStats/overview' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
UPDATE `zyt_system_menu`
|
||||
SET `name` = '挂号统计',
|
||||
`icon` = 'el-icon-Histogram',
|
||||
`sort` = 80,
|
||||
`perms` = 'firstvisit.registrationStats/overview',
|
||||
`paths` = 'registration_stats',
|
||||
`component` = 'first_visit/registration_stats/index',
|
||||
`is_cache` = 0,
|
||||
`is_show` = 1,
|
||||
`is_disable` = 0,
|
||||
`update_time` = UNIX_TIMESTAMP()
|
||||
WHERE `id` = @registration_stats_menu_id;
|
||||
|
||||
-- 医助=本人、诊室组长=本部门、经理=本部门及下级、管理员=全部;root 自动拥有。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @registration_stats_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @registration_stats_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
COMMIT;
|
||||
@@ -0,0 +1,166 @@
|
||||
-- 一诊 / 企业微信推广助手
|
||||
-- 页面组件:first_visit/wecom_promotion/index
|
||||
-- 页面权限:firstvisit.wecomPromotion/overview
|
||||
|
||||
START TRANSACTION;
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_provider_state` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`suite_id` varchar(128) NOT NULL DEFAULT '' COMMENT '第三方应用 SuiteID',
|
||||
`suite_ticket_cipher` text NOT NULL COMMENT '加密后的 suite_ticket',
|
||||
`ticket_received_at` int unsigned NOT NULL DEFAULT 0,
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_suite_id` (`suite_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微推广服务商状态';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_account` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`corp_id` varchar(128) NOT NULL DEFAULT '' COMMENT '授权企业 CorpID(服务商体系)',
|
||||
`corp_name` varchar(160) NOT NULL DEFAULT '',
|
||||
`permanent_code_cipher` text NOT NULL COMMENT 'AES-GCM 加密永久授权码',
|
||||
`agent_id` varchar(64) NOT NULL DEFAULT '',
|
||||
`auth_info_json` mediumtext NULL,
|
||||
`auth_status` tinyint unsigned NOT NULL DEFAULT 1 COMMENT '0取消 1有效',
|
||||
`owner_admin_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`dept_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`authorized_at` int unsigned NOT NULL DEFAULT 0,
|
||||
`last_refresh_at` int unsigned NOT NULL DEFAULT 0,
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`delete_time` int unsigned NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_corp_id` (`corp_id`),
|
||||
KEY `idx_owner_status` (`owner_admin_id`,`auth_status`),
|
||||
KEY `idx_dept` (`dept_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微推广授权企业';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_pool` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`name` varchar(60) NOT NULL DEFAULT '',
|
||||
`public_key` char(32) NOT NULL COMMENT '公开 JS 分流键',
|
||||
`status` tinyint unsigned NOT NULL DEFAULT 1,
|
||||
`fallback_url` varchar(1000) NOT NULL DEFAULT '',
|
||||
`click_count` bigint unsigned NOT NULL DEFAULT 0,
|
||||
`owner_admin_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`dept_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`delete_time` int unsigned NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_public_key` (`public_key`),
|
||||
KEY `idx_owner_status` (`owner_admin_id`,`status`),
|
||||
KEY `idx_dept` (`dept_id`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微推广分流方案';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_link` (
|
||||
`id` int unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pool_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`account_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`name` varchar(80) NOT NULL DEFAULT '',
|
||||
`group_name` varchar(60) NOT NULL DEFAULT '默认分组',
|
||||
`wecom_url` varchar(1000) NOT NULL DEFAULT '',
|
||||
`weight` smallint unsigned NOT NULL DEFAULT 1,
|
||||
`status` tinyint unsigned NOT NULL DEFAULT 1,
|
||||
`daily_limit` int unsigned NOT NULL DEFAULT 0 COMMENT '0为不限',
|
||||
`today_count` int unsigned NOT NULL DEFAULT 0,
|
||||
`today_date` date NULL DEFAULT NULL,
|
||||
`active_start` int unsigned NOT NULL DEFAULT 0,
|
||||
`active_end` int unsigned NOT NULL DEFAULT 0,
|
||||
`click_count` bigint unsigned NOT NULL DEFAULT 0,
|
||||
`last_click_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`owner_admin_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`dept_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`remark` varchar(255) NOT NULL DEFAULT '',
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`update_time` int unsigned NOT NULL DEFAULT 0,
|
||||
`delete_time` int unsigned NULL DEFAULT NULL,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_pool_eligible` (`pool_id`,`status`,`active_start`,`active_end`),
|
||||
KEY `idx_account` (`account_id`),
|
||||
KEY `idx_owner` (`owner_admin_id`),
|
||||
KEY `idx_today` (`today_date`,`today_count`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微推广链接池';
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `zyt_qywx_promotion_click_log` (
|
||||
`id` bigint unsigned NOT NULL AUTO_INCREMENT,
|
||||
`pool_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`link_id` int unsigned NOT NULL DEFAULT 0,
|
||||
`source_url` varchar(500) NOT NULL DEFAULT '',
|
||||
`referer` varchar(500) NOT NULL DEFAULT '',
|
||||
`user_agent` varchar(500) NOT NULL DEFAULT '',
|
||||
`ip_hash` char(64) NOT NULL DEFAULT '',
|
||||
`click_date` date NOT NULL,
|
||||
`create_time` int unsigned NOT NULL DEFAULT 0,
|
||||
PRIMARY KEY (`id`),
|
||||
KEY `idx_pool_date` (`pool_id`,`click_date`),
|
||||
KEY `idx_link_date` (`link_id`,`click_date`),
|
||||
KEY `idx_create_time` (`create_time`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='企微推广点击日志';
|
||||
|
||||
SET @first_visit_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = 0 AND `type` = 'M'
|
||||
AND (TRIM(`name`) = '一诊' OR LOWER(TRIM(`paths`)) IN ('first_visit', 'firstvisit', 'first-visit'))
|
||||
ORDER BY CASE WHEN TRIM(`name`) = '一诊' AND TRIM(`paths`) = 'first_visit' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
INSERT INTO `zyt_system_menu`
|
||||
(`pid`, `type`, `name`, `icon`, `sort`, `perms`, `paths`, `component`, `selected`, `params`, `is_cache`, `is_show`, `is_disable`, `create_time`, `update_time`)
|
||||
SELECT
|
||||
@first_visit_menu_id, 'C', '企业微信推广助手', 'el-icon-Promotion', 60,
|
||||
'firstvisit.wecomPromotion/overview', 'wecom_promotion', 'first_visit/wecom_promotion/index',
|
||||
'', '', 0, 1, 0, UNIX_TIMESTAMP(), UNIX_TIMESTAMP()
|
||||
FROM DUAL
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND NOT EXISTS (
|
||||
SELECT 1 FROM `zyt_system_menu`
|
||||
WHERE `perms` = 'firstvisit.wecomPromotion/overview'
|
||||
OR (`pid` = @first_visit_menu_id AND (
|
||||
TRIM(`name`) = '企业微信推广助手'
|
||||
OR TRIM(`paths`) = 'wecom_promotion'
|
||||
OR TRIM(`component`) = 'first_visit/wecom_promotion/index'
|
||||
))
|
||||
);
|
||||
|
||||
SET @wecom_promotion_menu_id = (
|
||||
SELECT `id` FROM `zyt_system_menu`
|
||||
WHERE `pid` = @first_visit_menu_id
|
||||
AND (`perms` = 'firstvisit.wecomPromotion/overview'
|
||||
OR TRIM(`name`) = '企业微信推广助手'
|
||||
OR TRIM(`component`) = 'first_visit/wecom_promotion/index')
|
||||
ORDER BY CASE WHEN `perms` = 'firstvisit.wecomPromotion/overview' THEN 0 ELSE 1 END, `id`
|
||||
LIMIT 1
|
||||
);
|
||||
|
||||
UPDATE `zyt_system_menu`
|
||||
SET `name` = '企业微信推广助手',
|
||||
`icon` = 'el-icon-Promotion',
|
||||
`sort` = 60,
|
||||
`perms` = 'firstvisit.wecomPromotion/overview',
|
||||
`paths` = 'wecom_promotion',
|
||||
`component` = 'first_visit/wecom_promotion/index',
|
||||
`is_cache` = 0,
|
||||
`is_show` = 1,
|
||||
`is_disable` = 0,
|
||||
`update_time` = UNIX_TIMESTAMP()
|
||||
WHERE `id` = @wecom_promotion_menu_id;
|
||||
|
||||
-- 医助维护本人链接;组长/经理按部门范围管理;管理员全量管理并可发起企业授权。
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @first_visit_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @first_visit_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
INSERT IGNORE INTO `zyt_system_role_menu` (`role_id`, `menu_id`)
|
||||
SELECT `id`, @wecom_promotion_menu_id
|
||||
FROM `zyt_system_role`
|
||||
WHERE @wecom_promotion_menu_id IS NOT NULL
|
||||
AND `delete_time` IS NULL
|
||||
AND `name` IN ('医助', '经理', '诊室组长', '管理员');
|
||||
|
||||
COMMIT;
|
||||
Reference in New Issue
Block a user