703 lines
50 KiB
SQL
703 lines
50 KiB
SQL
-- =====================================================================
|
||
-- 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;
|