xinli/sql/psychological_system_complete.sql
2025-11-06 14:59:32 +08:00

1711 lines
117 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.

-- ========================================
-- 蹇冪悊娴嬭瘎绯荤粺瀹屾暣SQL鑴氭湰
-- 鍒涘缓鏃堕棿: 2025-11-04 09:09:05
-- 璇存槑锛氭暣鍚堟墍鏈夊績鐞嗘祴璇勭郴缁熺浉鍏崇殑SQL鑴氭湰
-- ========================================
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ========================================
-- 鏉ユ簮鏂囦欢: psy_assessment_system.sql
-- ========================================
-- ----------------------------
-- 1、心理量表基本信息表
-- ----------------------------
DROP TABLE IF EXISTS `psy_scale`;
CREATE TABLE `psy_scale` (
`scale_id` bigint NOT NULL AUTO_INCREMENT COMMENT '量表ID',
`scale_code` varchar(50) NOT NULL COMMENT '量表编码(唯一标识)',
`scale_name` varchar(100) NOT NULL COMMENT '量表名称',
`scale_en_name` varchar(200) DEFAULT NULL COMMENT '量表英文名称',
`scale_type` varchar(50) DEFAULT NULL COMMENT '量表类型(如:人格量表、情绪量表、认知量表等)',
`scale_version` varchar(20) DEFAULT '1.0' COMMENT '量表版本',
`scale_intro` text COMMENT '量表简介',
`scale_description` text COMMENT '量表详细描述',
`item_count` int DEFAULT 0 COMMENT '题目数量',
`estimated_time` int DEFAULT NULL COMMENT '预计完成时间(分钟)',
`target_population` varchar(200) DEFAULT NULL COMMENT '适用人群',
`author` varchar(100) DEFAULT NULL COMMENT '量表作者',
`source` varchar(200) DEFAULT NULL COMMENT '量表来源(权威机构或文献)',
`reference` text COMMENT '参考文献',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`scale_id`),
UNIQUE KEY `uk_scale_code` (`scale_code`),
KEY `idx_scale_type` (`scale_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='心理量表基本信息表';
-- ----------------------------
-- 2、量表题目表
-- ----------------------------
DROP TABLE IF EXISTS `psy_scale_item`;
CREATE TABLE `psy_scale_item` (
`item_id` bigint NOT NULL AUTO_INCREMENT COMMENT '题目ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`item_number` int NOT NULL COMMENT '题目序号',
`item_content` text NOT NULL COMMENT '题目内容',
`item_type` varchar(20) DEFAULT 'single' COMMENT '题目类型single单选 multiple多选 matrix矩阵',
`required` char(1) DEFAULT '1' COMMENT '是否必填0否 1是',
`reverse_score` char(1) DEFAULT '0' COMMENT '是否反向计分0否 1是',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`item_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_item_number` (`scale_id`, `item_number`),
CONSTRAINT `fk_item_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='量表题目表';
-- ----------------------------
-- 3、题目选项表
-- ----------------------------
DROP TABLE IF EXISTS `psy_scale_option`;
CREATE TABLE `psy_scale_option` (
`option_id` bigint NOT NULL AUTO_INCREMENT COMMENT '选项ID',
`item_id` bigint NOT NULL COMMENT '题目ID',
`option_code` varchar(20) DEFAULT NULL COMMENT '选项编码如A、B、C或1、2、3',
`option_content` varchar(500) NOT NULL COMMENT '选项内容',
`option_score` decimal(10,2) DEFAULT 0.00 COMMENT '选项分值',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`option_id`),
KEY `idx_item_id` (`item_id`),
CONSTRAINT `fk_option_item` FOREIGN KEY (`item_id`) REFERENCES `psy_scale_item` (`item_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='题目选项表';
-- ----------------------------
-- 4、量表因子维度
-- ----------------------------
DROP TABLE IF EXISTS `psy_factor`;
CREATE TABLE `psy_factor` (
`factor_id` bigint NOT NULL AUTO_INCREMENT COMMENT '因子ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`factor_code` varchar(50) NOT NULL COMMENT '因子编码',
`factor_name` varchar(100) NOT NULL COMMENT '因子名称',
`factor_en_name` varchar(200) DEFAULT NULL COMMENT '因子英文名称',
`factor_description` text COMMENT '因子描述',
`factor_order` int DEFAULT 0 COMMENT '因子顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`factor_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_factor_code` (`scale_id`, `factor_code`),
CONSTRAINT `fk_factor_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='量表因子(维度)表';
-- ----------------------------
-- 5、因子计分规则表定义哪些题目属于哪个因子以及计分方式
-- ----------------------------
DROP TABLE IF EXISTS `psy_factor_rule`;
CREATE TABLE `psy_factor_rule` (
`rule_id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`factor_id` bigint NOT NULL COMMENT '因子ID',
`item_id` bigint NOT NULL COMMENT '题目ID',
`option_ids` varchar(500) DEFAULT NULL COMMENT '参与计分的选项ID多个用逗号分隔为空表示该题的所有选项',
`weight` decimal(5,2) DEFAULT 1.00 COMMENT '权重默认1.0',
`calculation_type` varchar(50) DEFAULT 'sum' COMMENT '计算方式sum求和 average平均 max最大 min最小',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
PRIMARY KEY (`rule_id`),
UNIQUE KEY `uk_factor_item` (`factor_id`, `item_id`),
KEY `idx_factor_id` (`factor_id`),
KEY `idx_item_id` (`item_id`),
CONSTRAINT `fk_rule_factor` FOREIGN KEY (`factor_id`) REFERENCES `psy_factor` (`factor_id`) ON DELETE CASCADE,
CONSTRAINT `fk_rule_item` FOREIGN KEY (`item_id`) REFERENCES `psy_scale_item` (`item_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='因子计分规则表';
-- ----------------------------
-- 6、测评记录表
-- ----------------------------
DROP TABLE IF EXISTS `psy_assessment`;
CREATE TABLE `psy_assessment` (
`assessment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '测评ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`user_id` bigint DEFAULT NULL COMMENT '用户ID关联sys_user可为空表示匿名测评',
`assessee_name` varchar(50) DEFAULT NULL COMMENT '被测评人姓名(匿名测评时使用)',
`assessee_gender` char(1) DEFAULT NULL COMMENT '被测评人性别0男 1女 2未知',
`assessee_age` int DEFAULT NULL COMMENT '被测评人年龄',
`assessee_id_card` varchar(18) DEFAULT NULL COMMENT '被测评人身份证号(可选)',
`assessee_phone` varchar(11) DEFAULT NULL COMMENT '被测评人手机号',
`assessee_email` varchar(100) DEFAULT NULL COMMENT '被测评人邮箱',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`complete_time` int DEFAULT NULL COMMENT '完成耗时(秒)',
`total_score` decimal(10,2) DEFAULT NULL COMMENT '总分',
`status` char(1) DEFAULT '0' COMMENT '状态0进行中 1已完成 2已作废',
`ip_address` varchar(128) DEFAULT '' COMMENT 'IP地址',
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`assessment_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`),
KEY `idx_submit_time` (`submit_time`),
CONSTRAINT `fk_assessment_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`),
CONSTRAINT `fk_assessment_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测评记录表';
-- ----------------------------
-- 7、测评答案表
-- ----------------------------
DROP TABLE IF EXISTS `psy_assessment_answer`;
CREATE TABLE `psy_assessment_answer` (
`answer_id` bigint NOT NULL AUTO_INCREMENT COMMENT '答案ID',
`assessment_id` bigint NOT NULL COMMENT '测评ID',
`item_id` bigint NOT NULL COMMENT '题目ID',
`option_id` bigint DEFAULT NULL COMMENT '选项ID单选时使用',
`option_ids` varchar(500) DEFAULT NULL COMMENT '选项ID列表多选时使用多个用逗号分隔',
`answer_score` decimal(10,2) DEFAULT 0.00 COMMENT '答案得分',
`answer_text` text COMMENT '文本答案(适用于开放题)',
`create_time` datetime DEFAULT NULL COMMENT '答题时间',
PRIMARY KEY (`answer_id`),
UNIQUE KEY `uk_assessment_item` (`assessment_id`, `item_id`),
KEY `idx_assessment_id` (`assessment_id`),
KEY `idx_item_id` (`item_id`),
KEY `idx_option_id` (`option_id`),
CONSTRAINT `fk_answer_assessment` FOREIGN KEY (`assessment_id`) REFERENCES `psy_assessment` (`assessment_id`) ON DELETE CASCADE,
CONSTRAINT `fk_answer_item` FOREIGN KEY (`item_id`) REFERENCES `psy_scale_item` (`item_id`),
CONSTRAINT `fk_answer_option` FOREIGN KEY (`option_id`) REFERENCES `psy_scale_option` (`option_id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测评答案表';
-- ----------------------------
-- 8、因子得分表存储每个因子的得分
-- ----------------------------
DROP TABLE IF EXISTS `psy_factor_score`;
CREATE TABLE `psy_factor_score` (
`score_id` bigint NOT NULL AUTO_INCREMENT COMMENT '得分ID',
`assessment_id` bigint NOT NULL COMMENT '测评ID',
`factor_id` bigint NOT NULL COMMENT '因子ID',
`factor_score` decimal(10,2) NOT NULL COMMENT '因子得分',
`standard_score` decimal(10,2) DEFAULT NULL COMMENT '标准分T分、Z分等',
`percentile` decimal(5,2) DEFAULT NULL COMMENT '百分位',
`create_time` datetime DEFAULT NULL COMMENT '计算时间',
PRIMARY KEY (`score_id`),
UNIQUE KEY `uk_assessment_factor` (`assessment_id`, `factor_id`),
KEY `idx_assessment_id` (`assessment_id`),
KEY `idx_factor_id` (`factor_id`),
CONSTRAINT `fk_score_assessment` FOREIGN KEY (`assessment_id`) REFERENCES `psy_assessment` (`assessment_id`) ON DELETE CASCADE,
CONSTRAINT `fk_score_factor` FOREIGN KEY (`factor_id`) REFERENCES `psy_factor` (`factor_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='因子得分表';
-- ----------------------------
-- 9、结果解释标准表
-- ----------------------------
DROP TABLE IF EXISTS `psy_result_interpretation`;
CREATE TABLE `psy_result_interpretation` (
`interpretation_id` bigint NOT NULL AUTO_INCREMENT COMMENT '解释ID',
`scale_id` bigint DEFAULT NULL COMMENT '量表ID为空表示通用解释',
`factor_id` bigint DEFAULT NULL COMMENT '因子ID为空表示总体解释',
`score_range_min` decimal(10,2) DEFAULT NULL COMMENT '分数范围最小值',
`score_range_max` decimal(10,2) DEFAULT NULL COMMENT '分数范围最大值',
`level` varchar(50) DEFAULT NULL COMMENT '等级(如:低、中、高)',
`level_name` varchar(100) DEFAULT NULL COMMENT '等级名称(如:轻度、中度、重度)',
`interpretation_title` varchar(200) DEFAULT NULL COMMENT '解释标题',
`interpretation_content` text COMMENT '解释内容',
`suggestions` text COMMENT '建议或指导',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`interpretation_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_factor_id` (`factor_id`),
KEY `idx_score_range` (`score_range_min`, `score_range_max`),
CONSTRAINT `fk_interpretation_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`) ON DELETE CASCADE,
CONSTRAINT `fk_interpretation_factor` FOREIGN KEY (`factor_id`) REFERENCES `psy_factor` (`factor_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='结果解释标准表';
-- ----------------------------
-- 10、测评报告表
-- ----------------------------
DROP TABLE IF EXISTS `psy_assessment_report`;
CREATE TABLE `psy_assessment_report` (
`report_id` bigint NOT NULL AUTO_INCREMENT COMMENT '报告ID',
`assessment_id` bigint NOT NULL COMMENT '测评ID',
`report_type` varchar(50) DEFAULT 'standard' COMMENT '报告类型standard标准 detailed详细 brief简要',
`report_title` varchar(200) DEFAULT NULL COMMENT '报告标题',
`report_content` longtext COMMENT '报告内容HTML格式',
`summary` text COMMENT '报告摘要',
`chart_data` text COMMENT '图表数据JSON格式',
`pdf_path` varchar(500) DEFAULT NULL COMMENT 'PDF文件路径',
`is_generated` char(1) DEFAULT '0' COMMENT '是否已生成0否 1是',
`generate_time` datetime DEFAULT NULL COMMENT '生成时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`report_id`),
UNIQUE KEY `uk_assessment_report` (`assessment_id`),
CONSTRAINT `fk_report_assessment` FOREIGN KEY (`assessment_id`) REFERENCES `psy_assessment` (`assessment_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测评报告表';
-- ----------------------------
-- 11、测评模板表用于快速创建相似量表
-- ----------------------------
DROP TABLE IF EXISTS `psy_scale_template`;
CREATE TABLE `psy_scale_template` (
`template_id` bigint NOT NULL AUTO_INCREMENT COMMENT '模板ID',
`template_name` varchar(100) NOT NULL COMMENT '模板名称',
`template_description` text COMMENT '模板描述',
`scale_config` longtext COMMENT '量表配置JSON格式包含题目、选项、因子等完整配置',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`template_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='测评模板表';
-- ----------------------------
-- 初始化数据字典(心理测评相关)
-- ----------------------------
-- 量表状态字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('量表状态', 'psy_scale_status', '0', 'admin', sysdate(), '心理量表状态列表');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '正常', '0', 'psy_scale_status', '', 'primary', 'Y', '0', 'admin', sysdate(), '正常状态'),
(2, '停用', '1', 'psy_scale_status', '', 'danger', 'N', '0', 'admin', sysdate(), '停用状态');
-- 测评状态字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('测评状态', 'psy_assessment_status', '0', 'admin', sysdate(), '心理测评状态列表');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '进行中', '0', 'psy_assessment_status', '', 'warning', 'Y', '0', 'admin', sysdate(), '进行中'),
(2, '已完成', '1', 'psy_assessment_status', '', 'success', 'N', '0', 'admin', sysdate(), '已完成'),
(3, '已作废', '2', 'psy_assessment_status', '', 'danger', 'N', '0', 'admin', sysdate(), '已作废');
-- 题目类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('题目类型', 'psy_item_type', '0', 'admin', sysdate(), '心理测评题目类型');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '单选题', 'single', 'psy_item_type', '', 'primary', 'Y', '0', 'admin', sysdate(), '单选题'),
(2, '多选题', 'multiple', 'psy_item_type', '', 'success', 'N', '0', 'admin', sysdate(), '多选题'),
(3, '矩阵题', 'matrix', 'psy_item_type', '', 'info', 'N', '0', 'admin', sysdate(), '矩阵题');
-- 量表类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('量表类型', 'psy_scale_type', '0', 'admin', sysdate(), '心理量表类型');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '人格量表', 'personality', 'psy_scale_type', '', 'primary', 'Y', '0', 'admin', sysdate(), '人格量表'),
(2, '情绪量表', 'emotion', 'psy_scale_type', '', 'success', 'N', '0', 'admin', sysdate(), '情绪量表'),
(3, '认知量表', 'cognitive', 'psy_scale_type', '', 'info', 'N', '0', 'admin', sysdate(), '认知量表'),
(4, '行为量表', 'behavior', 'psy_scale_type', '', 'warning', 'N', '0', 'admin', sysdate(), '行为量表'),
(5, '其他', 'other', 'psy_scale_type', '', 'default', 'N', '0', 'admin', sysdate(), '其他类型');
-- ========================================
-- 鏉ユ簮鏂囦欢: psy_assessment_system_extension.sql
-- ========================================
-- ----------------------------
-- 1、用户档案扩展表
-- ----------------------------
DROP TABLE IF EXISTS `psy_user_profile`;
CREATE TABLE `psy_user_profile` (
`profile_id` bigint NOT NULL AUTO_INCREMENT COMMENT '档案ID',
`user_id` bigint NOT NULL COMMENT '用户ID关联sys_user',
`profile_type` varchar(50) DEFAULT 'standard' COMMENT '档案类型standard标准 child儿童 adult成人 senior老年',
`profile_data` longtext COMMENT '档案数据JSON格式支持自定义字段',
`avatar` varchar(500) DEFAULT NULL COMMENT '头像',
`id_card` varchar(18) DEFAULT NULL COMMENT '身份证号',
`birthday` date DEFAULT NULL COMMENT '生日',
`education` varchar(50) DEFAULT NULL COMMENT '学历',
`occupation` varchar(100) DEFAULT NULL COMMENT '职业',
`address` varchar(500) DEFAULT NULL COMMENT '地址',
`emergency_contact` varchar(50) DEFAULT NULL COMMENT '紧急联系人',
`emergency_phone` varchar(11) DEFAULT NULL COMMENT '紧急联系电话',
`medical_history` text COMMENT '病史',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`profile_id`),
UNIQUE KEY `uk_user_id` (`user_id`),
KEY `idx_profile_type` (`profile_type`),
CONSTRAINT `fk_profile_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='用户档案扩展表';
-- ----------------------------
-- 2、量表权限表
-- ----------------------------
DROP TABLE IF EXISTS `psy_scale_permission`;
CREATE TABLE `psy_scale_permission` (
`permission_id` bigint NOT NULL AUTO_INCREMENT COMMENT '权限ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`dept_id` bigint DEFAULT NULL COMMENT '部门ID关联sys_dept为空表示所有部门',
`role_id` bigint DEFAULT NULL COMMENT '角色ID关联sys_role为空表示所有角色',
`user_id` bigint DEFAULT NULL COMMENT '用户ID关联sys_user为空表示所有用户',
`class_name` varchar(100) DEFAULT NULL COMMENT '班级名称(特殊字段,用于罪犯管理)',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`end_time` datetime DEFAULT NULL COMMENT '结束时间',
`status` char(1) DEFAULT '0' COMMENT '状态0有效 1无效',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`permission_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_dept_id` (`dept_id`),
KEY `idx_role_id` (`role_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`),
CONSTRAINT `fk_permission_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`) ON DELETE CASCADE,
CONSTRAINT `fk_permission_dept` FOREIGN KEY (`dept_id`) REFERENCES `sys_dept` (`dept_id`) ON DELETE CASCADE,
CONSTRAINT `fk_permission_role` FOREIGN KEY (`role_id`) REFERENCES `sys_role` (`role_id`) ON DELETE CASCADE,
CONSTRAINT `fk_permission_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='量表权限表';
-- ----------------------------
-- 3、自定义问卷表
-- ----------------------------
DROP TABLE IF EXISTS `psy_questionnaire`;
CREATE TABLE `psy_questionnaire` (
`questionnaire_id` bigint NOT NULL AUTO_INCREMENT COMMENT '问卷ID',
`questionnaire_code` varchar(50) NOT NULL COMMENT '问卷编码',
`questionnaire_name` varchar(100) NOT NULL COMMENT '问卷名称',
`questionnaire_type` varchar(50) DEFAULT 'custom' COMMENT '问卷类型custom自定义 exam考试 practice练习',
`paper_type` varchar(50) DEFAULT 'manual' COMMENT '组卷方式manual手动 random随机 mixed混合',
`item_count` int DEFAULT 0 COMMENT '题目数量',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '总分',
`pass_score` decimal(10,2) DEFAULT NULL COMMENT '及格分数',
`estimated_time` int DEFAULT NULL COMMENT '预计完成时间(分钟)',
`description` text COMMENT '问卷描述',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`questionnaire_id`),
UNIQUE KEY `uk_questionnaire_code` (`questionnaire_code`),
KEY `idx_questionnaire_type` (`questionnaire_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='自定义问卷表';
-- ----------------------------
-- 4、问卷题目表支持多种题型
-- ----------------------------
DROP TABLE IF EXISTS `psy_questionnaire_item`;
CREATE TABLE `psy_questionnaire_item` (
`item_id` bigint NOT NULL AUTO_INCREMENT COMMENT '题目ID',
`questionnaire_id` bigint NOT NULL COMMENT '问卷ID',
`item_number` int NOT NULL COMMENT '题目序号',
`item_content` text NOT NULL COMMENT '题目内容',
`item_type` varchar(20) NOT NULL COMMENT '题目类型radio单选 checkbox多选 boolean判断 input填空 sort排序 calculate计算 text简答 textarea问答 essay作文',
`is_required` char(1) DEFAULT '1' COMMENT '是否必填0否 1是',
`score` decimal(10,2) DEFAULT 0.00 COMMENT '题目分值',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`item_id`),
KEY `idx_questionnaire_id` (`questionnaire_id`),
KEY `idx_item_number` (`questionnaire_id`, `item_number`),
CONSTRAINT `fk_q_item_questionnaire` FOREIGN KEY (`questionnaire_id`) REFERENCES `psy_questionnaire` (`questionnaire_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='问卷题目表';
-- ----------------------------
-- 5、问卷选项表
-- ----------------------------
DROP TABLE IF EXISTS `psy_questionnaire_option`;
CREATE TABLE `psy_questionnaire_option` (
`option_id` bigint NOT NULL AUTO_INCREMENT COMMENT '选项ID',
`item_id` bigint NOT NULL COMMENT '题目ID',
`option_code` varchar(20) DEFAULT NULL COMMENT '选项编码如A、B、C或1、2、3',
`option_content` varchar(500) NOT NULL COMMENT '选项内容',
`option_score` decimal(10,2) DEFAULT 0.00 COMMENT '选项分值',
`is_correct` char(1) DEFAULT '0' COMMENT '是否正确答案0否 1是',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`option_id`),
KEY `idx_item_id` (`item_id`),
CONSTRAINT `fk_q_option_item` FOREIGN KEY (`item_id`) REFERENCES `psy_questionnaire_item` (`item_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='问卷选项表';
-- ----------------------------
-- 6、问卷答题记录表
-- ----------------------------
DROP TABLE IF EXISTS `psy_questionnaire_answer`;
CREATE TABLE `psy_questionnaire_answer` (
`answer_id` bigint NOT NULL AUTO_INCREMENT COMMENT '答案ID',
`questionnaire_id` bigint NOT NULL COMMENT '问卷ID',
`user_id` bigint DEFAULT NULL COMMENT '用户ID关联sys_user',
`respondent_name` varchar(50) DEFAULT NULL COMMENT '答题人姓名',
`start_time` datetime DEFAULT NULL COMMENT '开始时间',
`submit_time` datetime DEFAULT NULL COMMENT '提交时间',
`total_score` decimal(10,2) DEFAULT 0.00 COMMENT '总得分',
`is_pass` char(1) DEFAULT '0' COMMENT '是否及格0否 1是',
`rank` int DEFAULT NULL COMMENT '排名',
`status` char(1) DEFAULT '0' COMMENT '状态0进行中 1已完成 2已作废',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`answer_id`),
KEY `idx_questionnaire_id` (`questionnaire_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`),
CONSTRAINT `fk_q_answer_questionnaire` FOREIGN KEY (`questionnaire_id`) REFERENCES `psy_questionnaire` (`questionnaire_id`),
CONSTRAINT `fk_q_answer_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE SET NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='问卷答题记录表';
-- ----------------------------
-- 7、语音读题配置表
-- ----------------------------
DROP TABLE IF EXISTS `psy_voice_config`;
CREATE TABLE `psy_voice_config` (
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`item_id` bigint DEFAULT NULL COMMENT '题目ID为空表示全局配置',
`voice_type` varchar(50) DEFAULT 'tts' COMMENT '语音类型tts合成 human真人录音',
`voice_url` varchar(500) DEFAULT NULL COMMENT '语音文件URL',
`voice_provider` varchar(50) DEFAULT NULL COMMENT 'TTS提供商aliyun tencent baidu local',
`voice_speed` decimal(3,2) DEFAULT 1.00 COMMENT '语速0.5-2.0',
`voice_pitch` decimal(3,2) DEFAULT 1.00 COMMENT '音调0.5-2.0',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`config_id`),
KEY `idx_item_id` (`item_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='语音读题配置表';
-- ----------------------------
-- 8、危机预警表
-- ----------------------------
DROP TABLE IF EXISTS `psy_warning`;
CREATE TABLE `psy_warning` (
`warning_id` bigint NOT NULL AUTO_INCREMENT COMMENT '预警ID',
`assessment_id` bigint NOT NULL COMMENT '测评ID',
`user_id` bigint DEFAULT NULL COMMENT '用户ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`factor_id` bigint DEFAULT NULL COMMENT '因子ID为空表示整体预警',
`warning_type` varchar(50) DEFAULT 'score' COMMENT '预警类型score分数 risk风险',
`warning_level` varchar(50) DEFAULT 'medium' COMMENT '预警级别low低 medium中 high高 critical严重',
`warning_score` decimal(10,2) DEFAULT NULL COMMENT '预警分值',
`warning_reason` text COMMENT '预警原因',
`status` char(1) DEFAULT '0' COMMENT '状态0待处理 1处理中 2已解除 3已归档',
`handler_id` bigint DEFAULT NULL COMMENT '处理人ID',
`handle_time` datetime DEFAULT NULL COMMENT '处理时间',
`handle_result` text COMMENT '处理结果',
`relief_time` datetime DEFAULT NULL COMMENT '解除时间',
`relief_reason` text COMMENT '解除原因',
`notification_sent` char(1) DEFAULT '0' COMMENT '是否已通知0否 1是',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`warning_id`),
KEY `idx_assessment_id` (`assessment_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_status` (`status`),
KEY `idx_warning_level` (`warning_level`),
CONSTRAINT `fk_warning_assessment` FOREIGN KEY (`assessment_id`) REFERENCES `psy_assessment` (`assessment_id`),
CONSTRAINT `fk_warning_user` FOREIGN KEY (`user_id`) REFERENCES `sys_user` (`user_id`) ON DELETE SET NULL,
CONSTRAINT `fk_warning_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='危机预警表';
-- ----------------------------
-- 9、预警规则配置表
-- ----------------------------
DROP TABLE IF EXISTS `psy_warning_rule`;
CREATE TABLE `psy_warning_rule` (
`rule_id` bigint NOT NULL AUTO_INCREMENT COMMENT '规则ID',
`scale_id` bigint NOT NULL COMMENT '量表ID',
`factor_id` bigint DEFAULT NULL COMMENT '因子ID为空表示整体规则',
`rule_name` varchar(100) NOT NULL COMMENT '规则名称',
`warning_level` varchar(50) DEFAULT 'medium' COMMENT '预警级别',
`score_min` decimal(10,2) DEFAULT NULL COMMENT '分值最小值',
`score_max` decimal(10,2) DEFAULT NULL COMMENT '分值最大值',
`percentile_min` decimal(5,2) DEFAULT NULL COMMENT '百分位最小值',
`percentile_max` decimal(5,2) DEFAULT NULL COMMENT '百分位最大值',
`auto_relief` char(1) DEFAULT '0' COMMENT '是否自动解除0否 1是',
`relief_condition` text COMMENT '解除条件JSON格式',
`status` char(1) DEFAULT '0' COMMENT '状态0启用 1禁用',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`rule_id`),
KEY `idx_scale_id` (`scale_id`),
KEY `idx_factor_id` (`factor_id`),
KEY `idx_status` (`status`),
CONSTRAINT `fk_warning_rule_scale` FOREIGN KEY (`scale_id`) REFERENCES `psy_scale` (`scale_id`) ON DELETE CASCADE,
CONSTRAINT `fk_warning_rule_factor` FOREIGN KEY (`factor_id`) REFERENCES `psy_factor` (`factor_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='预警规则配置表';
-- ----------------------------
-- 10、二维码管理表
-- ----------------------------
DROP TABLE IF EXISTS `psy_qrcode`;
CREATE TABLE `psy_qrcode` (
`qrcode_id` bigint NOT NULL AUTO_INCREMENT COMMENT '二维码ID',
`qrcode_code` varchar(50) NOT NULL COMMENT '二维码编号',
`qrcode_type` varchar(50) NOT NULL COMMENT '二维码类型test测评 view_report查看报告 register注册 login登录',
`target_type` varchar(50) DEFAULT NULL COMMENT '目标类型scale量表 assessment测评 report报告',
`target_id` bigint DEFAULT NULL COMMENT '目标ID',
`short_url` varchar(200) DEFAULT NULL COMMENT '短链接',
`qrcode_url` varchar(500) DEFAULT NULL COMMENT '二维码图片URL',
`scan_count` int DEFAULT 0 COMMENT '扫码次数',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`status` char(1) DEFAULT '0' COMMENT '状态0有效 1无效 2已过期',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`qrcode_id`),
UNIQUE KEY `uk_qrcode_code` (`qrcode_code`),
KEY `idx_qrcode_type` (`qrcode_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='二维码管理表';
-- ----------------------------
-- 11、二维码扫码记录表
-- ----------------------------
DROP TABLE IF EXISTS `psy_qrcode_log`;
CREATE TABLE `psy_qrcode_log` (
`log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '记录ID',
`qrcode_id` bigint NOT NULL COMMENT '二维码ID',
`user_id` bigint DEFAULT NULL COMMENT '扫码用户ID',
`ip_address` varchar(128) DEFAULT '' COMMENT 'IP地址',
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
`scan_time` datetime DEFAULT NULL COMMENT '扫码时间',
PRIMARY KEY (`log_id`),
KEY `idx_qrcode_id` (`qrcode_id`),
KEY `idx_scan_time` (`scan_time`),
CONSTRAINT `fk_qrcode_log_qrcode` FOREIGN KEY (`qrcode_id`) REFERENCES `psy_qrcode` (`qrcode_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='二维码扫码记录表';
-- ----------------------------
-- 12、数据备份表
-- ----------------------------
DROP TABLE IF EXISTS `sys_backup`;
CREATE TABLE `sys_backup` (
`backup_id` bigint NOT NULL AUTO_INCREMENT COMMENT '备份ID',
`backup_name` varchar(200) NOT NULL COMMENT '备份名称',
`backup_type` varchar(50) DEFAULT 'full' COMMENT '备份类型full全量 incremental增量',
`backup_path` varchar(500) NOT NULL COMMENT '备份路径',
`file_size` bigint DEFAULT NULL COMMENT '文件大小(字节)',
`backup_status` char(1) DEFAULT '0' COMMENT '备份状态0备份中 1成功 2失败',
`backup_time` datetime DEFAULT NULL COMMENT '备份时间',
`backup_duration` int DEFAULT NULL COMMENT '备份耗时(秒)',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`backup_id`),
KEY `idx_backup_time` (`backup_time`),
KEY `idx_backup_status` (`backup_status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='数据备份表';
-- ----------------------------
-- 13、心理网站内容表
-- ----------------------------
DROP TABLE IF EXISTS `psy_website_content`;
CREATE TABLE `psy_website_content` (
`content_id` bigint NOT NULL AUTO_INCREMENT COMMENT '内容ID',
`content_type` varchar(50) NOT NULL COMMENT '内容类型article文章 notice公告 banner横幅 link链接',
`category_id` bigint DEFAULT NULL COMMENT '分类ID',
`title` varchar(200) NOT NULL COMMENT '标题',
`subtitle` varchar(200) DEFAULT NULL COMMENT '副标题',
`summary` varchar(500) DEFAULT NULL COMMENT '摘要',
`content` longtext COMMENT '正文内容',
`cover_image` varchar(500) DEFAULT NULL COMMENT '封面图片',
`author` varchar(100) DEFAULT NULL COMMENT '作者',
`source` varchar(200) DEFAULT NULL COMMENT '来源',
`click_count` int DEFAULT 0 COMMENT '点击量',
`like_count` int DEFAULT 0 COMMENT '点赞数',
`is_top` char(1) DEFAULT '0' COMMENT '是否置顶0否 1是',
`is_recommend` char(1) DEFAULT '0' COMMENT '是否推荐0否 1是',
`publish_time` datetime DEFAULT NULL COMMENT '发布时间',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0草稿 1已发布 2已下架',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`content_id`),
KEY `idx_content_type` (`content_type`),
KEY `idx_status` (`status`),
KEY `idx_publish_time` (`publish_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='心理网站内容表';
-- ----------------------------
-- 14、心理网站配置表
-- ----------------------------
DROP TABLE IF EXISTS `psy_website_config`;
CREATE TABLE `psy_website_config` (
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`config_key` varchar(100) NOT NULL COMMENT '配置键',
`config_value` text COMMENT '配置值',
`config_type` varchar(50) DEFAULT 'text' COMMENT '配置类型text文本 number数字 jsonJSON image图片',
`config_description` varchar(500) DEFAULT NULL COMMENT '配置描述',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
PRIMARY KEY (`config_id`),
UNIQUE KEY `uk_config_key` (`config_key`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='心理网站配置表';
-- ----------------------------
-- 15、开放式API配置表
-- ----------------------------
DROP TABLE IF EXISTS `sys_api_config`;
CREATE TABLE `sys_api_config` (
`config_id` bigint NOT NULL AUTO_INCREMENT COMMENT '配置ID',
`api_name` varchar(100) NOT NULL COMMENT 'API名称',
`api_key` varchar(64) NOT NULL COMMENT 'API密钥',
`api_secret` varchar(64) DEFAULT NULL COMMENT 'API密文',
`client_id` varchar(100) DEFAULT NULL COMMENT '客户端ID',
`allowed_ips` varchar(1000) DEFAULT NULL COMMENT '允许的IP地址多个用逗号分隔',
`rate_limit` int DEFAULT 100 COMMENT '限流(每分钟请求数)',
`status` char(1) DEFAULT '0' COMMENT '状态0启用 1禁用',
`expire_time` datetime DEFAULT NULL COMMENT '过期时间',
`last_use_time` datetime DEFAULT NULL COMMENT '最后使用时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`config_id`),
UNIQUE KEY `uk_api_key` (`api_key`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='开放式API配置表';
-- ----------------------------
-- 16、API调用日志表
-- ----------------------------
DROP TABLE IF EXISTS `sys_api_log`;
CREATE TABLE `sys_api_log` (
`log_id` bigint NOT NULL AUTO_INCREMENT COMMENT '日志ID',
`api_key` varchar(64) NOT NULL COMMENT 'API密钥',
`api_path` varchar(200) NOT NULL COMMENT 'API路径',
`request_method` varchar(20) DEFAULT NULL COMMENT '请求方法',
`request_params` text COMMENT '请求参数',
`response_code` varchar(10) DEFAULT NULL COMMENT '响应码',
`response_time` int DEFAULT NULL COMMENT '响应时间(毫秒)',
`ip_address` varchar(128) DEFAULT '' COMMENT 'IP地址',
`user_agent` varchar(500) DEFAULT NULL COMMENT '用户代理',
`create_time` datetime DEFAULT NULL COMMENT '调用时间',
PRIMARY KEY (`log_id`),
KEY `idx_api_key` (`api_key`),
KEY `idx_create_time` (`create_time`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='API调用日志表';
-- ----------------------------
-- 初始化扩展数据字典
-- ----------------------------
-- 档案类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('档案类型', 'psy_profile_type', '0', 'admin', NOW(), '用户档案类型列表');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '标准档案', 'standard', 'psy_profile_type', '', 'primary', 'Y', '0', 'admin', NOW(), '标准档案'),
(2, '儿童档案', 'child', 'psy_profile_type', '', 'success', 'N', '0', 'admin', NOW(), '儿童档案'),
(3, '成人档案', 'adult', 'psy_profile_type', '', 'info', 'N', '0', 'admin', NOW(), '成人档案'),
(4, '老年档案', 'senior', 'psy_profile_type', '', 'warning', 'N', '0', 'admin', NOW(), '老年档案');
-- 问卷类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('问卷类型', 'psy_questionnaire_type', '0', 'admin', NOW(), '自定义问卷类型');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '自定义', 'custom', 'psy_questionnaire_type', '', 'primary', 'Y', '0', 'admin', NOW(), '自定义问卷'),
(2, '考试', 'exam', 'psy_questionnaire_type', '', 'warning', 'N', '0', 'admin', NOW(), '考试问卷'),
(3, '练习', 'practice', 'psy_questionnaire_type', '', 'success', 'N', '0', 'admin', NOW(), '练习问卷');
-- 组卷方式字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('组卷方式', 'psy_paper_type', '0', 'admin', NOW(), '问卷组卷方式');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '手动', 'manual', 'psy_paper_type', '', 'primary', 'Y', '0', 'admin', NOW(), '手动组卷'),
(2, '随机', 'random', 'psy_paper_type', '', 'success', 'N', '0', 'admin', NOW(), '随机组卷'),
(3, '混合', 'mixed', 'psy_paper_type', '', 'info', 'N', '0', 'admin', NOW(), '手动+随机');
-- 扩展题目类型字典
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (4, '判断题', 'boolean', 'psy_item_type', '', 'info', 'N', '0', 'admin', NOW(), '判断题'),
(5, '填空题', 'input', 'psy_item_type', '', 'warning', 'N', '0', 'admin', NOW(), '填空题'),
(6, '排序题', 'sort', 'psy_item_type', '', 'info', 'N', '0', 'admin', NOW(), '排序题'),
(7, '计算题', 'calculate', 'psy_item_type', '', 'warning', 'N', '0', 'admin', NOW(), '计算题'),
(8, '简答题', 'text', 'psy_item_type', '', 'info', 'N', '0', 'admin', NOW(), '简答题'),
(9, '问答题', 'textarea', 'psy_item_type', '', 'warning', 'N', '0', 'admin', NOW(), '问答题'),
(10, '作文题', 'essay', 'psy_item_type', '', 'success', 'N', '0', 'admin', NOW(), '作文题');
-- 预警级别字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('预警级别', 'psy_warning_level', '0', 'admin', NOW(), '危机预警级别');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '', 'low', 'psy_warning_level', '', 'info', 'N', '0', 'admin', NOW(), '低风险'),
(2, '', 'medium', 'psy_warning_level', '', 'warning', 'Y', '0', 'admin', NOW(), '中风险'),
(3, '', 'high', 'psy_warning_level', '', 'danger', 'N', '0', 'admin', NOW(), '高风险'),
(4, '严重', 'critical', 'psy_warning_level', '', 'danger', 'N', '0', 'admin', NOW(), '严重风险');
-- 预警状态字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('预警状态', 'psy_warning_status', '0', 'admin', NOW(), '危机预警状态');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '待处理', '0', 'psy_warning_status', '', 'warning', 'Y', '0', 'admin', NOW(), '待处理'),
(2, '处理中', '1', 'psy_warning_status', '', 'info', 'N', '0', 'admin', NOW(), '处理中'),
(3, '已解除', '2', 'psy_warning_status', '', 'success', 'N', '0', 'admin', NOW(), '已解除'),
(4, '已归档', '3', 'psy_warning_status', '', 'default', 'N', '0', 'admin', NOW(), '已归档');
-- 二维码类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('二维码类型', 'psy_qrcode_type', '0', 'admin', NOW(), '二维码类型列表');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '测评', 'test', 'psy_qrcode_type', '', 'primary', 'Y', '0', 'admin', NOW(), '扫码测评'),
(2, '查看报告', 'view_report', 'psy_qrcode_type', '', 'success', 'N', '0', 'admin', NOW(), '扫码查看报告'),
(3, '注册', 'register', 'psy_qrcode_type', '', 'info', 'N', '0', 'admin', NOW(), '扫码注册'),
(4, '登录', 'login', 'psy_qrcode_type', '', 'warning', 'N', '0', 'admin', NOW(), '扫码登录');
-- 备份类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('备份类型', 'sys_backup_type', '0', 'admin', NOW(), '数据备份类型');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '全量备份', 'full', 'sys_backup_type', '', 'primary', 'Y', '0', 'admin', NOW(), '全量备份'),
(2, '增量备份', 'incremental', 'sys_backup_type', '', 'success', 'N', '0', 'admin', NOW(), '增量备份');
-- 网站内容类型字典
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('网站内容类型', 'psy_content_type', '0', 'admin', NOW(), '心理网站内容类型');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '文章', 'article', 'psy_content_type', '', 'primary', 'Y', '0', 'admin', NOW(), '文章内容'),
(2, '公告', 'notice', 'psy_content_type', '', 'warning', 'N', '0', 'admin', NOW(), '公告内容'),
(3, '横幅', 'banner', 'psy_content_type', '', 'info', 'N', '0', 'admin', NOW(), '横幅图片'),
(4, '链接', 'link', 'psy_content_type', '', 'success', 'N', '0', 'admin', NOW(), '外链内容');
-- ========================================
-- 鏉ユ簮鏂囦欢: psy_assessment_system_patch.sql
-- ========================================
-- ----------------------------
-- 修改测评表status字段注释增加暂停状态
-- ----------------------------
ALTER TABLE `psy_assessment`
MODIFY COLUMN `status` char(1) DEFAULT '0' COMMENT '状态0进行中 1已完成 2已作废 3已暂停';
-- ----------------------------
-- 修改测评状态字典,增加暂停状态
-- ----------------------------
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (4, '已暂停', '3', 'psy_assessment_status', '', 'info', 'N', '0', 'admin', NOW(), '已暂停');
-- ----------------------------
-- 添加暂停相关字段到测评表
-- ----------------------------
ALTER TABLE `psy_assessment`
ADD COLUMN `pause_time` datetime DEFAULT NULL COMMENT '暂停时间' AFTER `start_time`,
ADD COLUMN `resume_time` datetime DEFAULT NULL COMMENT '恢复时间' AFTER `pause_time`,
ADD COLUMN `pause_count` int DEFAULT 0 COMMENT '暂停次数' AFTER `resume_time`;
-- ========================================
-- 鏉ユ簮鏂囦欢: psy_website_supplement.sql
-- ========================================
-- ----------------------------
-- 1、网站栏目表
-- ----------------------------
DROP TABLE IF EXISTS `psy_website_category`;
CREATE TABLE `psy_website_category` (
`category_id` bigint NOT NULL AUTO_INCREMENT COMMENT '栏目ID',
`category_name` varchar(100) NOT NULL COMMENT '栏目名称',
`category_code` varchar(50) DEFAULT NULL COMMENT '栏目编码',
`parent_id` bigint DEFAULT 0 COMMENT '父栏目ID0表示顶级栏目',
`category_type` varchar(50) DEFAULT 'article' COMMENT '栏目类型article文章 notice公告 banner横幅',
`icon` varchar(100) DEFAULT NULL COMMENT '栏目图标',
`description` varchar(500) DEFAULT NULL COMMENT '栏目描述',
`sort_order` int DEFAULT 0 COMMENT '排序顺序',
`status` char(1) DEFAULT '0' COMMENT '状态0正常 1停用',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`create_time` datetime DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`category_id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_category_type` (`category_type`),
KEY `idx_status` (`status`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='心理网站栏目表';
-- ----------------------------
-- 2、网站评论表
-- ----------------------------
DROP TABLE IF EXISTS `psy_website_comment`;
CREATE TABLE `psy_website_comment` (
`comment_id` bigint NOT NULL AUTO_INCREMENT COMMENT '评论ID',
`content_id` bigint NOT NULL COMMENT '内容ID关联psy_website_content',
`parent_id` bigint DEFAULT 0 COMMENT '父评论ID0表示顶级评论',
`user_id` bigint DEFAULT NULL COMMENT '评论用户ID关联sys_user可为空表示匿名',
`nickname` varchar(50) DEFAULT NULL COMMENT '昵称(匿名评论时使用)',
`email` varchar(100) DEFAULT NULL COMMENT '邮箱(匿名评论时使用)',
`comment_content` text NOT NULL COMMENT '评论内容',
`ip_address` varchar(128) DEFAULT '' COMMENT 'IP地址',
`like_count` int DEFAULT 0 COMMENT '点赞数',
`status` char(1) DEFAULT '0' COMMENT '状态0待审核 1已发布 2已删除',
`create_time` datetime DEFAULT NULL COMMENT '评论时间',
`create_by` varchar(64) DEFAULT '' COMMENT '创建者',
`update_by` varchar(64) DEFAULT '' COMMENT '更新者',
`update_time` datetime DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) DEFAULT NULL COMMENT '备注',
PRIMARY KEY (`comment_id`),
KEY `idx_content_id` (`content_id`),
KEY `idx_user_id` (`user_id`),
KEY `idx_parent_id` (`parent_id`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`),
CONSTRAINT `fk_comment_content` FOREIGN KEY (`content_id`) REFERENCES `psy_website_content` (`content_id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='心理网站评论表';
-- ----------------------------
-- 更新psy_website_content表添加外键约束
-- ----------------------------
-- 注意:如果表中已有数据,需要先清理不符合外键约束的数据
-- ALTER TABLE `psy_website_content`
-- ADD CONSTRAINT `fk_content_category` FOREIGN KEY (`category_id`) REFERENCES `psy_website_category` (`category_id`) ON DELETE SET NULL;
-- ----------------------------
-- 初始化字典数据
-- ----------------------------
-- 栏目类型字典(如果不存在)
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
SELECT '栏目类型', 'psy_category_type', '0', 'admin', NOW(), '心理网站栏目类型'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'psy_category_type');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
SELECT 1, '文章', 'article', 'psy_category_type', '', 'primary', 'Y', '0', 'admin', NOW(), '文章栏目'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_category_type' AND `dict_value` = 'article')
UNION ALL
SELECT 2, '公告', 'notice', 'psy_category_type', '', 'warning', 'N', '0', 'admin', NOW(), '公告栏目'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_category_type' AND `dict_value` = 'notice')
UNION ALL
SELECT 3, '横幅', 'banner', 'psy_category_type', '', 'info', 'N', '0', 'admin', NOW(), '横幅栏目'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_category_type' AND `dict_value` = 'banner');
-- 内容状态字典(如果不存在)
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
SELECT '内容状态', 'psy_content_status', '0', 'admin', NOW(), '心理网站内容状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'psy_content_status');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
SELECT 1, '草稿', '0', 'psy_content_status', '', 'info', 'Y', '0', 'admin', NOW(), '草稿状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_content_status' AND `dict_value` = '0')
UNION ALL
SELECT 2, '已发布', '1', 'psy_content_status', '', 'success', 'N', '0', 'admin', NOW(), '已发布状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_content_status' AND `dict_value` = '1')
UNION ALL
SELECT 3, '已下架', '2', 'psy_content_status', '', 'warning', 'N', '0', 'admin', NOW(), '已下架状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_content_status' AND `dict_value` = '2');
-- 评论状态字典(如果不存在)
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
SELECT '评论状态', 'psy_comment_status', '0', 'admin', NOW(), '心理网站评论状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_type` WHERE `dict_type` = 'psy_comment_status');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
SELECT 1, '待审核', '0', 'psy_comment_status', '', 'warning', 'Y', '0', 'admin', NOW(), '待审核状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_comment_status' AND `dict_value` = '0')
UNION ALL
SELECT 2, '已发布', '1', 'psy_comment_status', '', 'success', 'N', '0', 'admin', NOW(), '已发布状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_comment_status' AND `dict_value` = '1')
UNION ALL
SELECT 3, '已删除', '2', 'psy_comment_status', '', 'danger', 'N', '0', 'admin', NOW(), '已删除状态'
WHERE NOT EXISTS (SELECT 1 FROM `sys_dict_data` WHERE `dict_type` = 'psy_comment_status' AND `dict_value` = '2');
SET FOREIGN_KEY_CHECKS = 1;
-- 验证表创建
SELECT '表创建完成!' AS result;
SELECT COUNT(*) AS FROM `psy_website_category`;
SELECT COUNT(*) AS FROM `psy_website_comment`;
-- ========================================
-- 鏉ユ簮鏂囦欢: psy_scale_init_data.sql
-- ========================================
-- ========================================
-- 第一部分罪犯心理测评量表COPA系列
-- ========================================
-- ----------------------------
-- COPA-SAI 罪犯社会适应状况分测验
-- ----------------------------
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `scale_intro`, `scale_description`, `item_count`, `estimated_time`, `target_population`, `author`, `source`, `status`, `sort_order`, `create_by`, `create_time`, `remark`)
VALUES
('COPA_SAI', '罪犯社会适应状况分测验', 'Criminal Social Adaptation Inventory', 'behavior', '1.0',
'用于评估罪犯的社会适应状况,包括社会认知、社会行为和社会情感等方面。',
'该测验从多个维度评估罪犯的社会适应能力,包括:环境适应、人际适应、生活适应等。适用于对服刑人员进行心理健康筛查和风险评估。',
40, 20, '服刑人员', '中国心理学会', '司法部监狱管理局', '0', 1, 'admin', NOW(), 'COPA系列量表之一');
-- 获取刚才插入的COPA-SAI量表ID
SET @scale_id_sai = LAST_INSERT_ID();
-- 插入COPA-SAI因子
INSERT INTO `psy_factor` (`scale_id`, `factor_code`, `factor_name`, `factor_en_name`, `factor_description`, `factor_order`, `create_by`, `create_time`)
VALUES
(@scale_id_sai, 'ENVIRONMENTAL', '环境适应', 'Environmental Adaptation', '对社会环境的适应能力', 1, 'admin', NOW()),
(@scale_id_sai, 'INTERPERSONAL', '人际适应', 'Interpersonal Adaptation', '与他人相处的能力', 2, 'admin', NOW()),
(@scale_id_sai, 'LIFE_SKILLS', '生活适应', 'Life Skills Adaptation', '日常生活技能的适应', 3, 'admin', NOW()),
(@scale_id_sai, 'EMOTIONAL', '情感适应', 'Emotional Adaptation', '情绪情感调节能力', 4, 'admin', NOW());
-- 插入COPA-SAI题目示例题目
INSERT INTO `psy_scale_item` (`scale_id`, `item_number`, `item_content`, `item_type`, `required`, `reverse_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@scale_id_sai, 1, '我能够很快适应新的环境', 'single', '1', '0', 1, 'admin', NOW()),
(@scale_id_sai, 2, '对于生活环境的改变,我感到很不适应', 'single', '1', '1', 2, 'admin', NOW()),
(@scale_id_sai, 3, '我能够很好地融入集体生活', 'single', '1', '0', 3, 'admin', NOW()),
(@scale_id_sai, 4, '我感觉自己很难与他人建立良好关系', 'single', '1', '1', 4, 'admin', NOW()),
(@scale_id_sai, 5, '我能够管理好自己的日常生活', 'single', '1', '0', 5, 'admin', NOW());
-- 为每个题目添加选项统一使用1-4分李克特量表
SET @item_id = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 1);
INSERT INTO `psy_scale_option` (`item_id`, `option_code`, `option_content`, `option_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@item_id, 'A', '完全符合', 1, 1, 'admin', NOW()),
(@item_id, 'B', '比较符合', 2, 2, 'admin', NOW()),
(@item_id, 'C', '不太符合', 3, 3, 'admin', NOW()),
(@item_id, 'D', '完全不符合', 4, 4, 'admin', NOW());
SET @item_id = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 2);
INSERT INTO `psy_scale_option` (`item_id`, `option_code`, `option_content`, `option_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@item_id, 'A', '完全符合', 1, 1, 'admin', NOW()),
(@item_id, 'B', '比较符合', 2, 2, 'admin', NOW()),
(@item_id, 'C', '不太符合', 3, 3, 'admin', NOW()),
(@item_id, 'D', '完全不符合', 4, 4, 'admin', NOW());
SET @item_id = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 3);
INSERT INTO `psy_scale_option` (`item_id`, `option_code`, `option_content`, `option_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@item_id, 'A', '完全符合', 1, 1, 'admin', NOW()),
(@item_id, 'B', '比较符合', 2, 2, 'admin', NOW()),
(@item_id, 'C', '不太符合', 3, 3, 'admin', NOW()),
(@item_id, 'D', '完全不符合', 4, 4, 'admin', NOW());
SET @item_id = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 4);
INSERT INTO `psy_scale_option` (`item_id`, `option_code`, `option_content`, `option_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@item_id, 'A', '完全符合', 1, 1, 'admin', NOW()),
(@item_id, 'B', '比较符合', 2, 2, 'admin', NOW()),
(@item_id, 'C', '不太符合', 3, 3, 'admin', NOW()),
(@item_id, 'D', '完全不符合', 4, 4, 'admin', NOW());
SET @item_id = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 5);
INSERT INTO `psy_scale_option` (`item_id`, `option_code`, `option_content`, `option_score`, `sort_order`, `create_by`, `create_time`)
VALUES
(@item_id, 'A', '完全符合', 1, 1, 'admin', NOW()),
(@item_id, 'B', '比较符合', 2, 2, 'admin', NOW()),
(@item_id, 'C', '不太符合', 3, 3, 'admin', NOW()),
(@item_id, 'D', '完全不符合', 4, 4, 'admin', NOW());
-- ----------------------------
-- 插入因子计分规则(示例,需要根据实际量表完善)
-- ----------------------------
-- 环境适应因子包含题目1,2
SET @factor_id_env = (SELECT factor_id FROM psy_factor WHERE scale_id = @scale_id_sai AND factor_code = 'ENVIRONMENTAL');
SET @item_id_1 = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 1);
SET @item_id_2 = (SELECT item_id FROM psy_scale_item WHERE scale_id = @scale_id_sai AND item_number = 2);
INSERT INTO `psy_factor_rule` (`factor_id`, `item_id`, `weight`, `calculation_type`, `create_by`, `create_time`)
VALUES
(@factor_id_env, @item_id_1, 1.00, 'sum', 'admin', NOW()),
(@factor_id_env, @item_id_2, 1.00, 'sum', 'admin', NOW());
-- ----------------------------
-- 插入结果解释标准(示例)
-- ----------------------------
INSERT INTO `psy_result_interpretation` (`scale_id`, `factor_id`, `score_range_min`, `score_range_max`, `level`, `level_name`, `interpretation_title`, `interpretation_content`, `suggestions`, `sort_order`, `create_by`, `create_time`)
VALUES
(@scale_id_sai, @factor_id_env, 8.00, 10.00, 'high', '适应良好', '环境适应良好',
'您的环境适应能力较好,能够较快适应新的社会环境。',
'继续保持良好的适应状态,多参与集体活动,提升适应能力。', 1, 'admin', NOW()),
(@scale_id_sai, @factor_id_env, 4.00, 7.00, 'medium', '适应一般', '环境适应一般',
'您的环境适应能力一般,在适应新环境时可能需要较长时间。',
'建议主动参与环境适应训练,多与他人交流,逐步改善。', 2, 'admin', NOW()),
(@scale_id_sai, @factor_id_env, 2.00, 3.00, 'low', '适应较差', '环境适应较差',
'您的环境适应能力较差,可能需要更多的支持和帮助。',
'建议寻求专业心理帮助,参加环境适应辅导,改善适应状况。', 3, 'admin', NOW());
-- ========================================
-- 第二部分:经典心理量表(示例)
-- ========================================
-- ----------------------------
-- SCL-90 心理健康临床症状自评量表
-- ----------------------------
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `scale_intro`, `scale_description`, `item_count`, `estimated_time`, `target_population`, `author`, `source`, `status`, `sort_order`, `create_by`, `create_time`, `remark`)
VALUES
('SCL_90', '心理健康临床症状自评量表', 'Symptom Checklist 90', 'emotion', '1.0',
'SCL-90是世界上最著名的心理健康测试量表之一可用于检查心理健康水平。',
'该量表包含90个题目从9个维度评估心理健康状况躯体化、强迫症状、人际关系敏感、抑郁、焦虑、敌对、恐怖、偏执、精神病性。适用于一般人群心理健康筛查。',
90, 30, '一般人群', 'L.R.Derogatis', '心理学量表专业机构', '0', 10, 'admin', NOW(), '国际通用心理健康量表');
-- ----------------------------
-- SAS 焦虑自评量表
-- ----------------------------
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `scale_intro`, `scale_description`, `item_count`, `estimated_time`, `target_population`, `author`, `source`, `status`, `sort_order`, `create_by`, `create_time`, `remark`)
VALUES
('SAS', '焦虑自评量表', 'Self-Rating Anxiety Scale', 'emotion', '1.0',
'用于评定焦虑情绪的主观感受。',
'该量表包含20个题目采用4级评分用于评估个体的焦虑程度。标准分≥50分为焦虑分数越高焦虑程度越重。',
20, 10, '一般人群', 'Zung', '心理学量表专业机构', '0', 11, 'admin', NOW(), '国际通用焦虑量表');
-- ----------------------------
-- SDS 抑郁自评量表
-- ----------------------------
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `scale_intro`, `scale_description`, `item_count`, `estimated_time`, `target_population`, `author`, `source`, `status`, `sort_order`, `create_by`, `create_time`, `remark`)
VALUES
('SDS', '抑郁自评量表', 'Self-Rating Depression Scale', 'emotion', '1.0',
'用于评定抑郁情绪的主观感受。',
'该量表包含20个题目采用4级评分用于评估个体的抑郁程度。标准分≥53分为抑郁分数越高抑郁程度越重。',
20, 10, '一般人群', 'Zung', '心理学量表专业机构', '0', 12, 'admin', NOW(), '国际通用抑郁量表');
-- ========================================
-- 第三部分:其他必填量表(暂时只创建量表基本信息)
-- ========================================
-- COPA-PI 罪犯个性分测验
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('COPA_PI', '罪犯个性分测验', 'Criminal Personality Inventory', 'personality', '1.0', 300, 40, '服刑人员', '0', 2, 'admin', NOW());
-- COPA-TCMI 罪犯犯罪心理结构变化状况分测验
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('COPA_TCMI', '罪犯犯罪心理结构变化状况分测验', 'Criminal Mind Structure Change', 'behavior', '1.0', 200, 30, '服刑人员', '0', 3, 'admin', NOW());
-- COPA-SCMI 罪犯心理结构状况分测验
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('COPA_SCMI', '罪犯心理结构状况分测验', 'Criminal Psychology Structure', 'personality', '1.0', 250, 35, '服刑人员', '0', 4, 'admin', NOW());
-- COPA-MPI 罪犯刑罚心理状况分测验
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('COPA_MPI', '罪犯刑罚心理状况分测验', 'Criminal Penalty Psychology', 'emotion', '1.0', 180, 25, '服刑人员', '0', 5, 'admin', NOW());
-- 罪犯暴力倾向量表
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('VIOLENT_TENDENCY', '罪犯暴力倾向量表', 'Violent Tendency Scale', 'behavior', '1.0', 50, 15, '服刑人员', '0', 6, 'admin', NOW());
-- 罪犯自杀倾向量表
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('SUICIDE_TENDENCY', '罪犯自杀倾向量表', 'Suicide Tendency Scale', 'emotion', '1.0', 40, 15, '服刑人员', '0', 7, 'admin', NOW());
-- MMPI 明尼苏达多相个性测查表
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('MMPI', '明尼苏达多相个性测查表', 'Minnesota Multiphasic Personality Inventory', 'personality', '1.0', 566, 60, '一般人群', '0', 8, 'admin', NOW());
-- 16PF 卡特尔十六种人格因素测验
INSERT INTO `psy_scale` (`scale_code`, `scale_name`, `scale_en_name`, `scale_type`, `scale_version`, `item_count`, `estimated_time`, `target_population`, `status`, `sort_order`, `create_by`, `create_time`)
VALUES ('16PF', '卡特尔十六种人格因素测验', '16 Personality Factors', 'personality', '1.0', 187, 45, '一般人群', '0', 9, 'admin', NOW());
SET FOREIGN_KEY_CHECKS = 1;
-- ========================================
-- 心理网站管理菜单配置
-- ========================================
-- 心理网站管理目录(如果还没有的话)
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
VALUES ('心理网站管理', 0, 5, 'psychology-website', NULL, 1, 0, 'M', '0', '0', '', 'guide', 'admin', NOW(), '心理网站管理目录');
-- 网站内容管理菜单
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '网站内容管理', menu_id, 1, 'content', 'psychology/website/content/index', 1, 0, 'C', '0', '0', 'psychology:website:content:list', 'documentation', 'admin', NOW(), '心理网站内容管理菜单'
FROM sys_menu WHERE menu_name = '心理网站管理' AND parent_id = 0 LIMIT 1;
-- 网站栏目管理菜单
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '网站栏目管理', menu_id, 2, 'category', 'psychology/website/category/index', 1, 0, 'C', '0', '0', 'psychology:website:category:list', 'tree', 'admin', NOW(), '心理网站栏目管理菜单'
FROM sys_menu WHERE menu_name = '心理网站管理' AND parent_id = 0 LIMIT 1;
-- 网站评论管理菜单
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '网站评论管理', menu_id, 3, 'comment', 'psychology/website/comment/index', 1, 0, 'C', '0', '0', 'psychology:website:comment:list', 'message', 'admin', NOW(), '心理网站评论管理菜单'
FROM sys_menu WHERE menu_name = '心理网站管理' AND parent_id = 0 LIMIT 1;
-- 网站内容管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '内容查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:website:content:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '网站内容管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '内容新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:website:content:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '网站内容管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '内容修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:website:content:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '网站内容管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '内容删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:website:content:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '网站内容管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '内容导出', menu_id, 5, '', '', 1, 0, 'F', '0', '0', 'psychology:website:content:export', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '网站内容管理' LIMIT 1;
-- 为管理员角色分配权限假设管理员角色ID为1
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 1, menu_id FROM sys_menu WHERE (menu_name LIKE '%网站%' OR menu_name LIKE '%心理网站%') AND menu_name != '心理网站管理';
-- ========================================
-- 绗簩閮ㄥ垎锛氳彍鍗曢厤缃甡n-- ========================================
-- ========================================
-- 心理测评系统菜单完整配置SQL
-- ========================================
USE ry_news;
SET NAMES utf8mb4;
-- ========================================
-- 1. 心理测评管理目录
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
VALUES ('心理测评管理', 0, 10, 'psychology', NULL, 1, 0, 'M', '0', '0', '', 'chart', 'admin', NOW(), '心理测评管理目录');
-- ========================================
-- 2. 量表管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表管理', menu_id, 1, 'scale', 'psychology/scale/index', 1, 0, 'C', '0', '0', 'psychology:scale:list', 'table', 'admin', NOW(), '量表管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 量表管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
-- ========================================
-- 3. 题目管理(隐藏菜单,通过量表管理页面进入)
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目管理', menu_id, 2, 'scale/item', 'psychology/scale/item', 1, 0, 'C', '1', '0', 'psychology:scale:item', 'form', 'admin', NOW(), '题目管理菜单(隐藏)'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 题目管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目查询', menu_id, 1, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目新增', menu_id, 2, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目修改', menu_id, 3, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目删除', menu_id, 4, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
-- ========================================
-- 4. 因子管理(隐藏菜单,通过量表管理页面进入)
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子管理', menu_id, 3, 'scale/factor', 'psychology/scale/factor', 1, 0, 'C', '1', '0', 'psychology:scale:factor', 'list', 'admin', NOW(), '因子管理菜单(隐藏)'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 因子管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子查询', menu_id, 1, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子新增', menu_id, 2, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子修改', menu_id, 3, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子删除', menu_id, 4, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
-- ========================================
-- 5. 测评管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '测评管理', menu_id, 4, 'assessment', 'psychology/assessment/index', 1, 0, 'C', '0', '0', 'psychology:assessment:list', 'edit', 'admin', NOW(), '测评管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 测评管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '测评查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '开始测评', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:start', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '删除测评', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
-- ========================================
-- 6. 报告管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '报告管理', menu_id, 5, 'report', 'psychology/report/index', 1, 0, 'C', '0', '0', 'psychology:report:list', 'document', 'admin', NOW(), '报告管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 报告管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '报告查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:report:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '报告管理' LIMIT 1;
-- ========================================
-- 7. 解释配置
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释配置', menu_id, 6, 'interpretation', 'psychology/interpretation/index', 1, 0, 'C', '0', '0', 'psychology:interpretation:list', 'config', 'admin', NOW(), '解释配置菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 解释配置按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
-- ========================================
-- 8. 用户档案管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '用户档案', menu_id, 7, 'profile', 'psychology/profile/index', 1, 0, 'C', '0', '0', 'psychology:profile:list', 'user', 'admin', NOW(), '用户档案菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 用户档案管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
-- ========================================
-- 9. 自定义问卷管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷管理', menu_id, 8, 'questionnaire', 'psychology/questionnaire/index', 1, 0, 'C', '0', '0', 'psychology:questionnaire:list', 'copy', 'admin', NOW(), '问卷管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 问卷管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
-- ========================================
-- 10. 危机预警管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '危机预警管理', menu_id, 9, 'warning', 'psychology/warning/index', 1, 0, 'C', '0', '0', 'psychology:warning:list', 'message', 'admin', NOW(), '危机预警管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 危机预警管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警处理', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:handle', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警解除', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:relieve', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
-- ========================================
-- 11. 预警规则配置
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警规则配置', menu_id, 10, 'warning/rule', 'psychology/warning/rule', 1, 0, 'C', '0', '0', 'psychology:warningRule:list', 'list', 'admin', NOW(), '预警规则配置菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 预警规则配置按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
-- ========================================
-- 12. 为管理员角色分配权限
-- ========================================
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 1, menu_id FROM sys_menu WHERE (menu_name LIKE '%心理测评%' OR menu_name LIKE '%量表%' OR menu_name LIKE '%题目%' OR menu_name LIKE '%因子%' OR menu_name LIKE '%测评%' OR menu_name LIKE '%报告%' OR menu_name LIKE '%解释%' OR menu_name LIKE '%档案%' OR menu_name LIKE '%问卷%' OR menu_name LIKE '%预警%' OR menu_name LIKE '%预警规则%') AND menu_name != '心理测评管理';
-- ========================================
-- 验证配置
-- ========================================
SELECT '心理测评系统菜单配置完成!' AS result;
SELECT COUNT(*) AS menu_count FROM sys_menu WHERE menu_name LIKE '%心理测评%' OR menu_name LIKE '%量表%' OR menu_name LIKE '%题目%' OR menu_name LIKE '%因子%' OR menu_name LIKE '%测评%' OR menu_name LIKE '%报告%' OR menu_name LIKE '%解释%' OR menu_name LIKE '%档案%' OR menu_name LIKE '%问卷%' OR menu_name LIKE '%预警%' OR menu_name LIKE '%预警规则%';
-- ========================================
-- 绗笁閮ㄥ垎锛氬垵濮嬪寲鏁版嵁锛堥噺琛ㄩ鐩拰閫夐」锛塦n-- ========================================
-- ========================================
-- 鑿滃崟閰嶇疆锛堜粠 psy_menu_complete_config.sql 鏁村悎锛塦n-- ========================================
USE ry_news;
SET NAMES utf8mb4;
-- ========================================
-- 心理测评系统菜单完整配置SQL
-- ========================================
USE ry_news;
SET NAMES utf8mb4;
-- ========================================
-- 1. 心理测评管理目录
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
VALUES ('心理测评管理', 0, 10, 'psychology', NULL, 1, 0, 'M', '0', '0', '', 'chart', 'admin', NOW(), '心理测评管理目录');
-- ========================================
-- 2. 量表管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表管理', menu_id, 1, 'scale', 'psychology/scale/index', 1, 0, 'C', '0', '0', 'psychology:scale:list', 'table', 'admin', NOW(), '量表管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 量表管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '量表删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:scale:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '量表管理' LIMIT 1;
-- ========================================
-- 3. 题目管理(隐藏菜单,通过量表管理页面进入)
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目管理', menu_id, 2, 'scale/item', 'psychology/scale/item', 1, 0, 'C', '1', '0', 'psychology:scale:item', 'form', 'admin', NOW(), '题目管理菜单(隐藏)'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 题目管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目查询', menu_id, 1, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目新增', menu_id, 2, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目修改', menu_id, 3, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '题目删除', menu_id, 4, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:item:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '题目管理' LIMIT 1;
-- ========================================
-- 4. 因子管理(隐藏菜单,通过量表管理页面进入)
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子管理', menu_id, 3, 'scale/factor', 'psychology/scale/factor', 1, 0, 'C', '1', '0', 'psychology:scale:factor', 'list', 'admin', NOW(), '因子管理菜单(隐藏)'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 因子管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子查询', menu_id, 1, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子新增', menu_id, 2, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子修改', menu_id, 3, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '因子删除', menu_id, 4, '', '', 1, 0, 'F', '1', '0', 'psychology:scale:factor:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '因子管理' LIMIT 1;
-- ========================================
-- 5. 测评管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '测评管理', menu_id, 4, 'assessment', 'psychology/assessment/index', 1, 0, 'C', '0', '0', 'psychology:assessment:list', 'edit', 'admin', NOW(), '测评管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 测评管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '测评查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '开始测评', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:start', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '删除测评', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:assessment:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '测评管理' LIMIT 1;
-- ========================================
-- 6. 报告管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '报告管理', menu_id, 5, 'report', 'psychology/report/index', 1, 0, 'C', '0', '0', 'psychology:report:list', 'document', 'admin', NOW(), '报告管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 报告管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '报告查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:report:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '报告管理' LIMIT 1;
-- ========================================
-- 7. 解释配置
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释配置', menu_id, 6, 'interpretation', 'psychology/interpretation/index', 1, 0, 'C', '0', '0', 'psychology:interpretation:list', 'config', 'admin', NOW(), '解释配置菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 解释配置按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '解释删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:interpretation:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '解释配置' LIMIT 1;
-- ========================================
-- 8. 用户档案管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '用户档案', menu_id, 7, 'profile', 'psychology/profile/index', 1, 0, 'C', '0', '0', 'psychology:profile:list', 'user', 'admin', NOW(), '用户档案菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 用户档案管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '档案删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:profile:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '用户档案' LIMIT 1;
-- ========================================
-- 9. 自定义问卷管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷管理', menu_id, 8, 'questionnaire', 'psychology/questionnaire/index', 1, 0, 'C', '0', '0', 'psychology:questionnaire:list', 'copy', 'admin', NOW(), '问卷管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 问卷管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '问卷删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:questionnaire:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '问卷管理' LIMIT 1;
-- ========================================
-- 10. 危机预警管理
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '危机预警管理', menu_id, 9, 'warning', 'psychology/warning/index', 1, 0, 'C', '0', '0', 'psychology:warning:list', 'message', 'admin', NOW(), '危机预警管理菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 危机预警管理按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警处理', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:handle', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警解除', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:relieve', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:warning:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '危机预警管理' LIMIT 1;
-- ========================================
-- 11. 预警规则配置
-- ========================================
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '预警规则配置', menu_id, 10, 'warning/rule', 'psychology/warning/rule', 1, 0, 'C', '0', '0', 'psychology:warningRule:list', 'list', 'admin', NOW(), '预警规则配置菜单'
FROM sys_menu WHERE menu_name = '心理测评管理' AND parent_id = 0 LIMIT 1;
-- 预警规则配置按钮权限
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则查询', menu_id, 1, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:query', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则新增', menu_id, 2, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:add', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则修改', menu_id, 3, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:edit', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
INSERT IGNORE INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `remark`)
SELECT '规则删除', menu_id, 4, '', '', 1, 0, 'F', '0', '0', 'psychology:warningRule:remove', '#', 'admin', NOW(), ''
FROM sys_menu WHERE menu_name = '预警规则配置' LIMIT 1;
-- ========================================
-- 12. 为管理员角色分配权限
-- ========================================
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`)
SELECT 1, menu_id FROM sys_menu WHERE (menu_name LIKE '%心理测评%' OR menu_name LIKE '%量表%' OR menu_name LIKE '%题目%' OR menu_name LIKE '%因子%' OR menu_name LIKE '%测评%' OR menu_name LIKE '%报告%' OR menu_name LIKE '%解释%' OR menu_name LIKE '%档案%' OR menu_name LIKE '%问卷%' OR menu_name LIKE '%预警%' OR menu_name LIKE '%预警规则%') AND menu_name != '心理测评管理';
-- ========================================
-- 验证配置
-- ========================================
SELECT '心理测评系统菜单配置完成!' AS result;
SELECT COUNT(*) AS menu_count FROM sys_menu WHERE menu_name LIKE '%心理测评%' OR menu_name LIKE '%量表%' OR menu_name LIKE '%题目%' OR menu_name LIKE '%因子%' OR menu_name LIKE '%测评%' OR menu_name LIKE '%报告%' OR menu_name LIKE '%解释%' OR menu_name LIKE '%档案%' OR menu_name LIKE '%问卷%' OR menu_name LIKE '%预警%' OR menu_name LIKE '%预警规则%';