-- ===================================================================== -- FIGS 教育管理模块 - 教培机构业务库表结构 -- 数据库: ry-vue-plus(与 RuoYi-Vue-Plus 共库) -- 字符集: utf8mb4 / utf8mb4_unicode_ci -- 设计理念:DDD 限界上下文划分 + 多租户隔离 -- 1) edu_staff_* 员工上下文(顾问/管家/辅导老师/文书老师) -- 2) edu_student_* 学生上下文(学生/家长/紧急联系人) -- 3) edu_package_* 课包上下文(课包SKU/价格策略) -- 4) edu_contract_* 合同上下文(合同主表/课包明细/课时余额) -- 5) edu_schedule_* 排课消课上下文(排课/签到/扣课时流水) -- 6) edu_dict_* 业务字典(角色/状态/学科/年级/课程类型) -- 7) edu_audit_* 操作审计 -- ===================================================================== SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; -- ===================================================================== -- 一、字典表(业务通用枚举) -- ===================================================================== DROP TABLE IF EXISTS `edu_dict`; CREATE TABLE `edu_dict` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `dict_type` varchar(64) NOT NULL COMMENT '字典类型(staff_role/subject/grade/course_type/... )', `dict_label` varchar(64) NOT NULL COMMENT '字典项显示名', `dict_value` varchar(64) NOT NULL COMMENT '字典项存储值', `sort_order` int DEFAULT 0 COMMENT '排序', `color` varchar(16) DEFAULT NULL COMMENT '标签颜色', `is_default` char(1) DEFAULT 'N' COMMENT '是否默认 N/Y', `status` char(1) DEFAULT '0' COMMENT '状态 0=启用 1=停用', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建人', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新人', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_type` (`tenant_id`, `dict_type`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='业务字典表'; -- ===================================================================== -- 二、员工上下文 staff -- ===================================================================== -- 2.1 员工主表:覆盖顾问/管家/辅导老师/文书老师,用 role 区分 DROP TABLE IF EXISTS `edu_staff`; CREATE TABLE `edu_staff` ( `id` bigint NOT NULL COMMENT '员工ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `user_id` bigint DEFAULT NULL COMMENT '关联系统用户ID(sys_user.user_id, 登录用)', `staff_no` varchar(32) NOT NULL COMMENT '员工工号', `name` varchar(64) NOT NULL COMMENT '员工姓名', `role` varchar(32) NOT NULL COMMENT '角色 SALES=课程顾问 HOUSEKEEPER=管家(学管) TUTOR=辅导老师 DOC_WRITER=文书老师', `phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `email` varchar(128) DEFAULT NULL COMMENT '邮箱', `wechat` varchar(64) DEFAULT NULL COMMENT '微信号', `gender` char(1) DEFAULT '0' COMMENT '性别 0=男 1=女 2=未知', `id_card` varchar(32) DEFAULT NULL COMMENT '身份证', `entry_date` date DEFAULT NULL COMMENT '入职日期', `leave_date` date DEFAULT NULL COMMENT '离职日期', `subject` varchar(32) DEFAULT NULL COMMENT '擅长学科(辅导老师用)', `title` varchar(64) DEFAULT NULL COMMENT '头衔(高级/资深/普通)', `max_students` int DEFAULT 0 COMMENT '最大带生数(管家上限)', `commission_rate` decimal(5,2) DEFAULT 0.00 COMMENT '提成比例(顾问用 0~1)', `dept_id` bigint DEFAULT NULL COMMENT '所属部门', `intro` varchar(1000) DEFAULT NULL COMMENT '简介', `avatar` varchar(500) DEFAULT NULL COMMENT '头像URL', `status` char(1) DEFAULT '0' COMMENT '状态 0=在职 1=离职 2=休假', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_no` (`tenant_id`, `staff_no`) USING BTREE, KEY `idx_tenant_role` (`tenant_id`, `role`, `status`) USING BTREE, KEY `idx_user` (`user_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工主表(顾问/管家/辅导老师/文书老师)'; -- 2.2 员工-学生关系(一对多,一个学生有 4 类员工各一名) DROP TABLE IF EXISTS `edu_staff_student`; CREATE TABLE `edu_staff_student` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `staff_id` bigint NOT NULL COMMENT '员工ID', `student_id` bigint NOT NULL COMMENT '学生ID', `staff_role` varchar(32) NOT NULL COMMENT '员工角色', `bind_time` datetime DEFAULT NULL COMMENT '绑定时间', `unbind_time` datetime DEFAULT NULL COMMENT '解绑时间', `is_primary` char(1) DEFAULT 'Y' COMMENT '是否主责 Y/N', `status` char(1) DEFAULT '0' COMMENT '状态 0=生效 1=失效', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_staff_student_role` (`tenant_id`, `staff_id`, `student_id`, `staff_role`) USING BTREE, KEY `idx_student` (`student_id`) USING BTREE, KEY `idx_staff` (`staff_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='员工-学生服务关系表'; -- ===================================================================== -- 三、学生上下文 student -- ===================================================================== -- 3.1 学生主表 DROP TABLE IF EXISTS `edu_student`; CREATE TABLE `edu_student` ( `id` bigint NOT NULL COMMENT '学生ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `student_no` varchar(32) NOT NULL COMMENT '学号', `name` varchar(64) NOT NULL COMMENT '学生姓名', `gender` char(1) DEFAULT '0' COMMENT '性别 0=男 1=女 2=未知', `birthday` date DEFAULT NULL COMMENT '出生日期', `id_card` varchar(32) DEFAULT NULL COMMENT '身份证号', `phone` varchar(20) DEFAULT NULL COMMENT '联系电话', `wechat` varchar(64) DEFAULT NULL COMMENT '微信号', `email` varchar(128) DEFAULT NULL COMMENT '邮箱', `school` varchar(128) DEFAULT NULL COMMENT '就读学校', `grade` varchar(32) DEFAULT NULL COMMENT '年级(字典 edu_dict.dict_value, dict_type=grade)', `target_school` varchar(128) DEFAULT NULL COMMENT '目标学校', `subjects` varchar(255) DEFAULT NULL COMMENT '学习科目,逗号分隔', `address` varchar(500) DEFAULT NULL COMMENT '家庭住址', `avatar` varchar(500) DEFAULT NULL COMMENT '头像URL', `source` varchar(32) DEFAULT NULL COMMENT '生源渠道(字典)', `level` varchar(32) DEFAULT NULL COMMENT '学员等级(普通/VIP/钻石)', `intent_level` varchar(16) DEFAULT NULL COMMENT '意向等级 A/B/C/D', `first_visit_at` datetime DEFAULT NULL COMMENT '首次到访时间', `enroll_at` datetime DEFAULT NULL COMMENT '报名时间', `tags` varchar(255) DEFAULT NULL COMMENT '标签,逗号分隔', `status` char(1) DEFAULT '0' COMMENT '状态 0=潜在 1=试听 2=已报名 3=结业 4=流失', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(1000) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_no` (`tenant_id`, `student_no`) USING BTREE, KEY `idx_tenant_status` (`tenant_id`, `status`) USING BTREE, KEY `idx_tenant_phone` (`tenant_id`, `phone`) USING BTREE, KEY `idx_tenant_name` (`tenant_id`, `name`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生主表'; -- 3.2 家长表(一对多:一个学生多个家长) DROP TABLE IF EXISTS `edu_student_parent`; CREATE TABLE `edu_student_parent` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `student_id` bigint NOT NULL COMMENT '学生ID', `relation` varchar(16) NOT NULL COMMENT '与学生关系 FATHER/MOTHER/GRANDPA/GRANDMA/OTHER', `name` varchar(64) NOT NULL COMMENT '家长姓名', `phone` varchar(20) NOT NULL COMMENT '联系电话', `wechat` varchar(64) DEFAULT NULL COMMENT '微信号', `email` varchar(128) DEFAULT NULL COMMENT '邮箱', `id_card` varchar(32) DEFAULT NULL COMMENT '身份证', `occupation` varchar(64) DEFAULT NULL COMMENT '职业', `is_primary` char(1) DEFAULT 'N' COMMENT '是否主联系人 Y/N', `receive_notice` char(1) DEFAULT 'Y' COMMENT '是否接收通知 Y/N', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_student` (`student_id`) USING BTREE, KEY `idx_tenant_phone` (`tenant_id`, `phone`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生家长表'; -- 3.3 紧急联系人 DROP TABLE IF EXISTS `edu_student_emergency`; CREATE TABLE `edu_student_emergency` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `student_id` bigint NOT NULL COMMENT '学生ID', `name` varchar(64) NOT NULL COMMENT '紧急联系人姓名', `relation` varchar(16) NOT NULL COMMENT '关系', `phone` varchar(20) NOT NULL COMMENT '联系电话', `remark` varchar(255) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_student` (`student_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学生紧急联系人'; -- ===================================================================== -- 四、课包上下文 course-package -- ===================================================================== -- 4.1 课包SKU主表(售卖单元) DROP TABLE IF EXISTS `edu_course_package`; CREATE TABLE `edu_course_package` ( `id` bigint NOT NULL COMMENT '课包ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `package_code` varchar(32) NOT NULL COMMENT '课包编码', `package_name` varchar(128) NOT NULL COMMENT '课包名称', `package_type` varchar(32) NOT NULL COMMENT '课包类型 EXPERIENCE=体验课 PACKAGE=课包 SINGLE=单课时 COURSE=全期', `subject` varchar(32) DEFAULT NULL COMMENT '学科', `grade` varchar(32) DEFAULT NULL COMMENT '适用年级', `total_hours` decimal(10,2) NOT NULL COMMENT '总课时(小时)', `lesson_count` int NOT NULL COMMENT '总课次', `valid_days` int DEFAULT 365 COMMENT '有效期(天)', `max_students` int DEFAULT 1 COMMENT '单次课最大上课人数 1=一对一', `list_price` decimal(12,2) NOT NULL COMMENT '挂牌价(元)', `sale_price` decimal(12,2) NOT NULL COMMENT '销售价(元)', `cost_price` decimal(12,2) DEFAULT 0.00 COMMENT '成本价(元)', `gift_hours` decimal(10,2) DEFAULT 0.00 COMMENT '赠送课时', `hours_per_lesson` decimal(6,2) DEFAULT 1.00 COMMENT '每课时小时数(消课用)', `description` varchar(2000) DEFAULT NULL COMMENT '课包说明', `cover_url` varchar(500) DEFAULT NULL COMMENT '封面图', `is_hot` char(1) DEFAULT 'N' COMMENT '是否热门 N/Y', `is_gift` char(1) DEFAULT 'N' COMMENT '是否赠送包 N/Y', `status` char(1) DEFAULT '0' COMMENT '状态 0=上架 1=下架', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `sale_start_at` date DEFAULT NULL COMMENT '售卖开始', `sale_end_at` date DEFAULT NULL COMMENT '售卖结束', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_code` (`tenant_id`, `package_code`) USING BTREE, KEY `idx_tenant_type_status` (`tenant_id`, `package_type`, `status`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课包SKU主表'; -- 4.2 课包价格策略(折扣/优惠) DROP TABLE IF EXISTS `edu_course_package_strategy`; CREATE TABLE `edu_course_package_strategy` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `package_id` bigint NOT NULL COMMENT '课包ID', `strategy_name` varchar(128) NOT NULL COMMENT '策略名', `strategy_type` varchar(32) NOT NULL COMMENT '类型 DISCOUNT=打折 REDUCE=减现 GIFT=加赠 CASHBACK=返现', `condition_type` varchar(32) DEFAULT NULL COMMENT '触发条件 AMOUNT/COUNT/NONE', `condition_value` decimal(12,2) DEFAULT NULL COMMENT '条件值', `discount_rate` decimal(5,2) DEFAULT 1.00 COMMENT '折扣率 0~1', `reduce_amount` decimal(12,2) DEFAULT 0.00 COMMENT '减现金额', `gift_hours` decimal(10,2) DEFAULT 0.00 COMMENT '加赠课时', `cashback_amount` decimal(12,2) DEFAULT 0.00 COMMENT '返现金额', `priority` int DEFAULT 0 COMMENT '优先级(数字越大越优先)', `start_at` datetime DEFAULT NULL COMMENT '生效开始', `end_at` datetime DEFAULT NULL COMMENT '生效结束', `status` char(1) DEFAULT '0' COMMENT '状态 0=启用 1=停用', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_package` (`tenant_id`, `package_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课包价格策略表'; -- ===================================================================== -- 五、合同上下文 contract -- ===================================================================== -- 5.1 合同主表 DROP TABLE IF EXISTS `edu_contract`; CREATE TABLE `edu_contract` ( `id` bigint NOT NULL COMMENT '合同ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `contract_no` varchar(32) NOT NULL COMMENT '合同编号(业务流水号)', `student_id` bigint NOT NULL COMMENT '学生ID', `contract_type` varchar(32) NOT NULL COMMENT '合同类型 ENROLL=报名续费 ADDON=补购 REFUND=退费 TRANSFER=转课', `parent_contract_id` bigint DEFAULT NULL COMMENT '原合同ID(续费/补购/退费时关联)', `sign_date` date NOT NULL COMMENT '签约日期', `effective_date` date DEFAULT NULL COMMENT '生效日期', `expire_date` date DEFAULT NULL COMMENT '到期日期', `total_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '合同总金额(应收)', `discount_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '优惠金额', `paid_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '实收金额', `refund_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '退费金额', `total_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '合同总课时', `used_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '已消耗课时', `remain_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '剩余课时', `gift_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '赠送课时(不计入应收)', `payment_method` varchar(32) DEFAULT NULL COMMENT '支付方式 CASH/WECHAT/ALIPAY/BANK/CARD', `payment_status` char(1) DEFAULT '0' COMMENT '支付状态 0=未支付 1=部分支付 2=已支付 3=已退费', `status` char(1) DEFAULT '0' COMMENT '合同状态 0=草稿 1=待生效 2=执行中 3=已结清 4=已退费 5=已转课 9=作废', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `sales_id` bigint DEFAULT NULL COMMENT '课程顾问ID(edu_staff.id)', `housekeeper_id` bigint DEFAULT NULL COMMENT '管家ID(edu_staff.id)', `sign_user_id` bigint DEFAULT NULL COMMENT '签约负责人ID(edu_staff.id)', `sign_location` varchar(255) DEFAULT NULL COMMENT '签约地点', `sign_image_url` varchar(1000) DEFAULT NULL COMMENT '合同扫描件URL', `description` varchar(2000) DEFAULT NULL COMMENT '合同说明', `signed_at` datetime DEFAULT NULL COMMENT '签约时间', `activated_at` datetime DEFAULT NULL COMMENT '激活时间', `finished_at` datetime DEFAULT NULL COMMENT '结清时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_no` (`tenant_id`, `contract_no`) USING BTREE, KEY `idx_tenant_student` (`tenant_id`, `student_id`) USING BTREE, KEY `idx_tenant_status` (`tenant_id`, `status`) USING BTREE, KEY `idx_tenant_sales` (`tenant_id`, `sales_id`) USING BTREE, KEY `idx_tenant_housekeeper` (`tenant_id`, `housekeeper_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='学员合同主表'; -- 5.2 合同课包明细(一个合同可包含多个课包) DROP TABLE IF EXISTS `edu_contract_package`; CREATE TABLE `edu_contract_package` ( `id` bigint NOT NULL COMMENT '明细ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `contract_id` bigint NOT NULL COMMENT '合同ID', `package_id` bigint NOT NULL COMMENT '课包ID', `package_name` varchar(128) NOT NULL COMMENT '课包名(快照)', `package_type` varchar(32) NOT NULL COMMENT '课包类型(快照)', `total_hours` decimal(10,2) NOT NULL COMMENT '购买课时', `used_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '已消耗', `remain_hours` decimal(10,2) NOT NULL COMMENT '剩余', `gift_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '赠送课时', `list_price` decimal(12,2) NOT NULL COMMENT '原价(快照)', `sale_price` decimal(12,2) NOT NULL COMMENT '成交价(快照)', `discount_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '优惠金额', `final_amount` decimal(14,2) NOT NULL COMMENT '明细金额', `strategy_id` bigint DEFAULT NULL COMMENT '使用的策略ID', `strategy_snapshot` varchar(2000) DEFAULT NULL COMMENT '策略快照JSON', `expire_date` date DEFAULT NULL COMMENT '本课包到期日', `status` char(1) DEFAULT '0' COMMENT '状态 0=正常 1=已转出 2=已退费', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_contract` (`tenant_id`, `contract_id`) USING BTREE, KEY `idx_tenant_package` (`tenant_id`, `package_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同课包明细'; -- 5.3 合同赠送课时明细(合同内单独的赠送,不走付费课包) DROP TABLE IF EXISTS `edu_contract_gift`; CREATE TABLE `edu_contract_gift` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `contract_id` bigint NOT NULL COMMENT '合同ID', `gift_type` varchar(32) NOT NULL COMMENT '赠送类型 HOURS=课时 LESSON_COUNT=课次', `gift_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '赠送课时', `gift_count` int NOT NULL DEFAULT 0 COMMENT '赠送课次', `used_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '已使用', `remain_hours` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '剩余', `reason` varchar(255) DEFAULT NULL COMMENT '赠送原因(活动/推荐/老带新)', `expire_date` date DEFAULT NULL COMMENT '到期日期', `status` char(1) DEFAULT '0' COMMENT '状态 0=正常 1=失效', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_contract` (`tenant_id`, `contract_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同赠送课时明细'; -- 5.4 合同续费/退费/转课 流水 DROP TABLE IF EXISTS `edu_contract_log`; CREATE TABLE `edu_contract_log` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `contract_id` bigint NOT NULL COMMENT '合同ID', `action` varchar(32) NOT NULL COMMENT '动作 CREATE/ACTIVATE/PAY/REFUND/TRANSFER/RENEW/EXPIRE/VOID', `amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '本次金额(正=收款/负=退款)', `hours_delta` decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '课时变动(正=增加/负=减少)', `ref_contract_id` bigint DEFAULT NULL COMMENT '关联合同ID(退费/转课/续费关联)', `operator_id` bigint DEFAULT NULL COMMENT '操作人(员工ID)', `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名', `reason` varchar(500) DEFAULT NULL COMMENT '原因', `attachments` varchar(2000) DEFAULT NULL COMMENT '附件JSON', `log_time` datetime DEFAULT NULL COMMENT '操作时间', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_contract` (`tenant_id`, `contract_id`) USING BTREE, KEY `idx_tenant_action` (`tenant_id`, `action`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同操作流水'; -- 5.5 合同缴费计划(分期付款时生成, 对标 edu_contract_milestone) DROP TABLE IF EXISTS `edu_contract_payment_plan`; CREATE TABLE `edu_contract_payment_plan` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `contract_id` bigint NOT NULL COMMENT '合同ID', `installment_no` int NOT NULL COMMENT '期次号 1/2/3', `plan_amount` decimal(14,2) NOT NULL COMMENT '本期应收金额', `plan_date` date NOT NULL COMMENT '本期应付日期', `paid_amount` decimal(14,2) NOT NULL DEFAULT 0.00 COMMENT '本期实收金额', `paid_date` date DEFAULT NULL COMMENT '实际收款日期', `payment_method` varchar(32) DEFAULT NULL COMMENT '本期支付方式 CASH/WECHAT/ALIPAY/BANK/CARD', `status` char(1) DEFAULT '0' COMMENT '状态 0=待收 1=已收 4=已作废', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_contract_no` (`tenant_id`, `contract_id`, `installment_no`) USING BTREE, KEY `idx_tenant_contract` (`tenant_id`, `contract_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='合同缴费计划(分期)'; -- ===================================================================== -- 六、排课消课上下文 schedule -- ===================================================================== -- 6.1 排课主表 DROP TABLE IF EXISTS `edu_lesson_schedule`; CREATE TABLE `edu_lesson_schedule` ( `id` bigint NOT NULL COMMENT '排课ID', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `schedule_no` varchar(32) NOT NULL COMMENT '排课单号', `student_id` bigint NOT NULL COMMENT '学生ID', `contract_id` bigint DEFAULT NULL COMMENT '合同ID(可选,排课时可不绑定)', `tutor_id` bigint NOT NULL COMMENT '辅导老师ID', `subject` varchar(32) NOT NULL COMMENT '学科', `lesson_type` varchar(32) NOT NULL COMMENT '课型 ONE_ON_ONE=1V1 SMALL_CLASS=小班 LARGE_CLASS=大班 EXPERIENCE=体验', `class_name` varchar(128) DEFAULT NULL COMMENT '班级名称(小班用)', `lesson_date` date NOT NULL COMMENT '上课日期', `start_time` datetime NOT NULL COMMENT '上课开始', `end_time` datetime NOT NULL COMMENT '上课结束', `duration_hours` decimal(6,2) NOT NULL COMMENT '本节课时长(小时)', `classroom` varchar(128) DEFAULT NULL COMMENT '教室/线上链接', `lesson_content` varchar(2000) DEFAULT NULL COMMENT '本次课内容', `homework` varchar(2000) DEFAULT NULL COMMENT '本次作业', `max_students` int DEFAULT 1 COMMENT '本课最大人数', `enrolled_count` int DEFAULT 0 COMMENT '已报名人数', `status` char(1) DEFAULT '0' COMMENT '状态 0=待上课 1=已签到 2=已消课 3=请假 4=取消 5=旷课', `check_in_at` datetime DEFAULT NULL COMMENT '签到时间', `check_out_at` datetime DEFAULT NULL COMMENT '下课时间', `consume_hours` decimal(8,2) DEFAULT 0.00 COMMENT '本次实际消课时', `consume_rate` decimal(5,2) DEFAULT 1.00 COMMENT '消课比例 体验=0.5/正课=1/1v1=2', `comment` varchar(2000) DEFAULT NULL COMMENT '课堂点评', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_no` (`tenant_id`, `schedule_no`) USING BTREE, KEY `idx_tenant_student_date` (`tenant_id`, `student_id`, `lesson_date`) USING BTREE, KEY `idx_tenant_tutor_date` (`tenant_id`, `tutor_id`, `lesson_date`) USING BTREE, KEY `idx_tenant_status_date` (`tenant_id`, `status`, `lesson_date`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='排课主表'; -- 6.2 排课-学生关联(小班课多人) DROP TABLE IF EXISTS `edu_lesson_student`; CREATE TABLE `edu_lesson_student` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `schedule_id` bigint NOT NULL COMMENT '排课ID', `student_id` bigint NOT NULL COMMENT '学生ID', `contract_id` bigint DEFAULT NULL COMMENT '扣课时使用的合同ID', `package_id` bigint DEFAULT NULL COMMENT '扣课时使用的课包ID', `hours_should` decimal(8,2) NOT NULL COMMENT '应扣课时', `hours_actual` decimal(8,2) NOT NULL DEFAULT 0.00 COMMENT '实扣课时', `consume_rate` decimal(5,2) DEFAULT 1.00 COMMENT '消课比例', `status` char(1) DEFAULT '0' COMMENT '状态 0=待上课 1=已签到 2=已消课 3=请假 4=取消 5=旷课', `check_in_at` datetime DEFAULT NULL COMMENT '签到', `check_out_at` datetime DEFAULT NULL COMMENT '下课', `reason` varchar(255) DEFAULT NULL COMMENT '请假/取消原因', `del_flag` char(1) DEFAULT '0' COMMENT '删除标志 0=存在 1=删除', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_schedule_student` (`tenant_id`, `schedule_id`, `student_id`) USING BTREE, KEY `idx_tenant_student` (`tenant_id`, `student_id`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='排课-学生关联表(消课流水前置)'; -- 6.3 课时消耗流水(核心账本) DROP TABLE IF EXISTS `edu_hours_log`; CREATE TABLE `edu_hours_log` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `log_no` varchar(32) NOT NULL COMMENT '流水号', `student_id` bigint NOT NULL COMMENT '学生ID', `contract_id` bigint DEFAULT NULL COMMENT '合同ID', `package_id` bigint DEFAULT NULL COMMENT '课包ID', `contract_package_id` bigint DEFAULT NULL COMMENT '合同课包明细ID', `gift_id` bigint DEFAULT NULL COMMENT '赠送ID(扣赠送课时时)', `schedule_id` bigint DEFAULT NULL COMMENT '排课ID', `lesson_student_id` bigint DEFAULT NULL COMMENT '排课-学生ID', `business_type` varchar(32) NOT NULL COMMENT '业务类型 CONSUME/PURCHASE/REFUND/TRANSFER_OUT/TRANSFER_IN/GIFT/EXPIRE/ADJUST', `direction` char(1) NOT NULL COMMENT '方向 - =扣减 + =增加', `hours` decimal(10,2) NOT NULL COMMENT '本次变动课时(正数)', `before_hours` decimal(10,2) NOT NULL COMMENT '变更前', `after_hours` decimal(10,2) NOT NULL COMMENT '变更后', `rate` decimal(5,2) DEFAULT 1.00 COMMENT '消课比例', `reason` varchar(500) DEFAULT NULL COMMENT '原因', `operator_id` bigint DEFAULT NULL COMMENT '操作人ID', `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名', `log_time` datetime DEFAULT NULL COMMENT '业务时间', `remark` varchar(500) DEFAULT NULL COMMENT '备注', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, UNIQUE KEY `uk_tenant_log_no` (`tenant_id`, `log_no`) USING BTREE, KEY `idx_tenant_student_biz` (`tenant_id`, `student_id`, `business_type`) USING BTREE, KEY `idx_tenant_contract` (`tenant_id`, `contract_id`) USING BTREE, KEY `idx_tenant_schedule` (`tenant_id`, `schedule_id`) USING BTREE, KEY `idx_tenant_time` (`tenant_id`, `log_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课时账本流水(双向)'; -- ===================================================================== -- 七、操作审计 -- ===================================================================== DROP TABLE IF EXISTS `edu_audit_log`; CREATE TABLE `edu_audit_log` ( `id` bigint NOT NULL COMMENT '主键', `tenant_id` varchar(20) DEFAULT '000000' COMMENT '租户ID', `business_type` varchar(32) NOT NULL COMMENT '业务模块 STUDENT/STAFF/PACKAGE/CONTRACT/SCHEDULE', `action` varchar(64) NOT NULL COMMENT '动作', `entity_id` bigint DEFAULT NULL COMMENT '业务实体ID', `entity_no` varchar(64) DEFAULT NULL COMMENT '业务单号', `before_json` text DEFAULT NULL COMMENT '变更前快照', `after_json` text DEFAULT NULL COMMENT '变更后快照', `diff_json` text DEFAULT NULL COMMENT '差异', `operator_id` bigint DEFAULT NULL COMMENT '操作人ID', `operator_name` varchar(64) DEFAULT NULL COMMENT '操作人姓名', `client_ip` varchar(64) DEFAULT NULL COMMENT '客户端IP', `operate_time` datetime DEFAULT NULL COMMENT '操作时间', `cost_ms` bigint DEFAULT NULL COMMENT '耗时ms', `success` char(1) DEFAULT 'Y' COMMENT '是否成功 Y/N', `error_msg` varchar(2000) DEFAULT NULL COMMENT '错误信息', `create_dept` bigint DEFAULT NULL COMMENT '创建部门', `create_by` bigint DEFAULT NULL COMMENT '创建者', `create_time` datetime DEFAULT NULL COMMENT '创建时间', `update_by` bigint DEFAULT NULL COMMENT '更新者', `update_time` datetime DEFAULT NULL COMMENT '更新时间', PRIMARY KEY (`id`) USING BTREE, KEY `idx_tenant_biz_entity` (`tenant_id`, `business_type`, `entity_id`) USING BTREE, KEY `idx_tenant_operator_time` (`tenant_id`, `operator_id`, `operate_time`) USING BTREE ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='业务审计日志'; -- ===================================================================== -- 八、初始数据:业务字典 -- ===================================================================== INSERT INTO `edu_dict`(`id`,`tenant_id`,`dict_type`,`dict_label`,`dict_value`,`sort_order`,`is_default`,`status`) VALUES (1,'000000','staff_role','课程顾问','SALES',1,'N','0'), (2,'000000','staff_role','管家(学管)','HOUSEKEEPER',2,'N','0'), (3,'000000','staff_role','辅导老师','TUTOR',3,'N','0'), (4,'000000','staff_role','文书老师','DOC_WRITER',4,'N','0'), (10,'000000','package_type','体验课','EXPERIENCE',1,'N','0'), (11,'000000','package_type','课包','PACKAGE',2,'N','0'), (12,'000000','package_type','单课时','SINGLE',3,'N','0'), (13,'000000','package_type','全期课程','COURSE',4,'N','0'), (20,'000000','contract_type','报名合同','ENROLL',1,'N','0'), (21,'000000','contract_type','续费合同','RENEW',2,'N','0'), (22,'000000','contract_type','补购合同','ADDON',3,'N','0'), (23,'000000','contract_type','退费合同','REFUND',4,'N','0'), (24,'000000','contract_type','转课合同','TRANSFER',5,'N','0'), (30,'000000','contract_status','草稿','0',1,'Y','0'), (31,'000000','contract_status','待生效','1',2,'N','0'), (32,'000000','contract_status','执行中','2',3,'N','0'), (33,'000000','contract_status','已结清','3',4,'N','0'), (34,'000000','contract_status','已退费','4',5,'N','0'), (35,'000000','contract_status','已转课','5',6,'N','0'), (36,'000000','contract_status','已作废','9',7,'N','0'), (40,'000000','payment_status','未支付','0',1,'Y','0'), (41,'000000','payment_status','部分支付','1',2,'N','0'), (42,'000000','payment_status','已支付','2',3,'N','0'), (43,'000000','payment_status','已退费','3',4,'N','0'), (50,'000000','lesson_type','一对一','ONE_ON_ONE',1,'N','0'), (51,'000000','lesson_type','小班课','SMALL_CLASS',2,'N','0'), (52,'000000','lesson_type','大班课','LARGE_CLASS',3,'N','0'), (53,'000000','lesson_type','体验课','EXPERIENCE',4,'N','0'), (60,'000000','schedule_status','待上课','0',1,'Y','0'), (61,'000000','schedule_status','已签到','1',2,'N','0'), (62,'000000','schedule_status','已消课','2',3,'N','0'), (63,'000000','schedule_status','请假','3',4,'N','0'), (64,'000000','schedule_status','已取消','4',5,'N','0'), (65,'000000','schedule_status','旷课','5',6,'N','0'), (70,'000000','student_status','潜在','0',1,'N','0'), (71,'000000','student_status','试听','1',2,'N','0'), (72,'000000','student_status','已报名','2',3,'Y','0'), (73,'000000','student_status','结业','3',4,'N','0'), (74,'000000','student_status','流失','4',5,'N','0'), (80,'000000','payment_method','现金','CASH',1,'N','0'), (81,'000000','payment_method','微信','WECHAT',2,'N','0'), (82,'000000','payment_method','支付宝','ALIPAY',3,'N','0'), (83,'000000','payment_method','银行卡','BANK',4,'N','0'), (84,'000000','payment_method','信用卡','CARD',5,'N','0'), (90,'000000','parent_relation','父亲','FATHER',1,'N','0'), (91,'000000','parent_relation','母亲','MOTHER',2,'N','0'), (92,'000000','parent_relation','爷爷/外公','GRANDPA',3,'N','0'), (93,'000000','parent_relation','奶奶/外婆','GRANDMA',4,'N','0'), (94,'000000','parent_relation','其他','OTHER',5,'N','0'), (100,'000000','hours_biz_type','购买','PURCHASE',1,'N','0'), (101,'000000','hours_biz_type','消课','CONSUME',2,'N','0'), (102,'000000','hours_biz_type','退费','REFUND',3,'N','0'), (103,'000000','hours_biz_type','转出','TRANSFER_OUT',4,'N','0'), (104,'000000','hours_biz_type','转入','TRANSFER_IN',5,'N','0'), (105,'000000','hours_biz_type','赠送','GIFT',6,'N','0'), (106,'000000','hours_biz_type','过期','EXPIRE',7,'N','0'), (107,'000000','hours_biz_type','手动调整','ADJUST',8,'N','0'), (297,'000000','payment_plan_status','待收','0',1,'Y','0'), (298,'000000','payment_plan_status','已收','1',2,'N','0'), (299,'000000','payment_plan_status','已作废','4',3,'N','0'); -- ===================================================================== -- 九、菜单与权限(注入 ruoyi 的 sys_menu) -- ===================================================================== -- 一级菜单:教务管理 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2000,'教务管理',0,5,'edu','Layout',1,0,'M','0','0',NULL,'education','1',NOW(),'教务管理目录') ,(2001,'学生管理',2000,1,'student','edu/student/index',1,0,'C','0','0','edu:student:list','user','1',NOW(),'学生管理菜单') ,(2002,'课包管理',2000,2,'package','edu/package/index',1,0,'C','0','0','edu:package:list','shopping','1',NOW(),'课包管理菜单') ,(2003,'合同管理',2000,3,'contract','edu/contract/index',1,0,'C','0','0','edu:contract:list','document','1',NOW(),'合同管理菜单') ,(2004,'排课消课',2000,4,'schedule','edu/schedule/index',1,0,'C','0','0','edu:schedule:list','calendar','1',NOW(),'排课消课菜单') ,(2005,'员工管理',2000,5,'staff','edu/staff/index',1,0,'C','0','0','edu:staff:list','peoples','1',NOW(),'员工管理菜单') ; -- 学生管理按钮 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2010,'学生查询',2001,1,'','',1,0,'F','0','0','edu:student:query','#',1,NOW(),''), (2011,'学生新增',2001,2,'','',1,0,'F','0','0','edu:student:add','#',1,NOW(),''), (2012,'学生修改',2001,3,'','',1,0,'F','0','0','edu:student:edit','#',1,NOW(),''), (2013,'学生删除',2001,4,'','',1,0,'F','0','0','edu:student:remove','#',1,NOW(),''), (2014,'学生导出',2001,5,'','',1,0,'F','0','0','edu:student:export','#',1,NOW(),''), (2015,'家长管理',2001,6,'','',1,0,'F','0','0','edu:student:parent','#',1,NOW(),''); -- 课包管理按钮 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2020,'课包查询',2002,1,'','',1,0,'F','0','0','edu:package:query','#',1,NOW(),''), (2021,'课包新增',2002,2,'','',1,0,'F','0','0','edu:package:add','#',1,NOW(),''), (2022,'课包修改',2002,3,'','',1,0,'F','0','0','edu:package:edit','#',1,NOW(),''), (2023,'课包删除',2002,4,'','',1,0,'F','0','0','edu:package:remove','#',1,NOW(),''), (2024,'课包上架',2002,5,'','',1,0,'F','0','0','edu:package:onSale','#',1,NOW(),''), (2025,'价格策略',2002,6,'','',1,0,'F','0','0','edu:package:strategy','#',1,NOW(),''); -- 合同管理按钮 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2030,'合同查询',2003,1,'','',1,0,'F','0','0','edu:contract:query','#',1,NOW(),''), (2031,'合同新增',2003,2,'','',1,0,'F','0','0','edu:contract:add','#',1,NOW(),''), (2032,'合同修改',2003,3,'','',1,0,'F','0','0','edu:contract:edit','#',1,NOW(),''), (2033,'合同删除',2003,4,'','',1,0,'F','0','0','edu:contract:remove','#',1,NOW(),''), (2034,'合同激活',2003,5,'','',1,0,'F','0','0','edu:contract:activate','#',1,NOW(),''), (2035,'合同退费',2003,6,'','',1,0,'F','0','0','edu:contract:refund','#',1,NOW(),''), (2036,'合同转课',2003,7,'','',1,0,'F','0','0','edu:contract:transfer','#',1,NOW(),''), (2037,'合同续费',2003,8,'','',1,0,'F','0','0','edu:contract:renew','#',1,NOW(),''), (2038,'合同导出',2003,9,'','',1,0,'F','0','0','edu:contract:export','#',1,NOW(),''); -- 排课消课按钮 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2040,'排课查询',2004,1,'','',1,0,'F','0','0','edu:schedule:query','#',1,NOW(),''), (2041,'新增排课',2004,2,'','',1,0,'F','0','0','edu:schedule:add','#',1,NOW(),''), (2042,'修改排课',2004,3,'','',1,0,'F','0','0','edu:schedule:edit','#',1,NOW(),''), (2043,'删除排课',2004,4,'','',1,0,'F','0','0','edu:schedule:remove','#',1,NOW(),''), (2044,'学生签到',2004,5,'','',1,0,'F','0','0','edu:schedule:checkIn','#',1,NOW(),''), (2045,'课后消课',2004,6,'','',1,0,'F','0','0','edu:schedule:consume','#',1,NOW(),''), (2046,'学生请假',2004,7,'','',1,0,'F','0','0','edu:schedule:leave','#',1,NOW(),''), (2047,'导出课表',2004,8,'','',1,0,'F','0','0','edu:schedule:export','#',1,NOW(),''); -- 员工管理按钮 INSERT INTO `sys_menu`(`menu_id`,`menu_name`,`parent_id`,`order_num`,`path`,`component`,`is_frame`,`is_cache`,`menu_type`,`visible`,`status`,`perms`,`icon`,`create_by`,`create_time`,`remark`) VALUES (2050,'员工查询',2005,1,'','',1,0,'F','0','0','edu:staff:query','#',1,NOW(),''), (2051,'员工新增',2005,2,'','',1,0,'F','0','0','edu:staff:add','#',1,NOW(),''), (2052,'员工修改',2005,3,'','',1,0,'F','0','0','edu:staff:edit','#',1,NOW(),''), (2053,'员工删除',2005,4,'','',1,0,'F','0','0','edu:staff:remove','#',1,NOW(),''), (2054,'员工导出',2005,5,'','',1,0,'F','0','0','edu:staff:export','#',1,NOW(),''), (2055,'学生分配',2005,6,'','',1,0,'F','0','0','edu:staff:assign','#',1,NOW(),''); SET FOREIGN_KEY_CHECKS = 1;