| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412 |
- -- 爱伴·AI之旅 训练营 数据库初始化脚本
- -- 数据库: cfc 同库 (zxyj) —— 训练营运营表 train_* 与 cfc 会员/活动/账本同库共存
- -- 训练营品牌:爱伴·AI之旅
- -- 课程等级:L0/L1/L2/L3/L4;其中 L0 = 「家立方-AI管家成长营」(首期课程)
- -- 课程表(L0~L4 课程主数据)
- CREATE TABLE IF NOT EXISTS train_course (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- level VARCHAR(20) NOT NULL COMMENT '课程等级:L0/L1/L2/L3/L4',
- name VARCHAR(100) NOT NULL COMMENT '课程名称(如 L0 = 家立方-AI管家成长营)',
- description VARCHAR(500) COMMENT '课程简介',
- status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/active/finished',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_level (level),
- INDEX idx_status (status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='训练营课程(L0/L1/L2/L3/L4)';
- -- 班次表
- CREATE TABLE IF NOT EXISTS train_class (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- activity_id BIGINT COMMENT '关联 cfc 活动 ID(activities.id,cfc 同库)',
- course_id BIGINT COMMENT '关联课程 ID(train_course.id,L0/L1/L2…)',
- name VARCHAR(100) NOT NULL COMMENT '班次名称',
- code VARCHAR(20) UNIQUE COMMENT '班级码(学员进班用)',
- time VARCHAR(100) COMMENT '培训时间描述',
- place VARCHAR(100) COMMENT '培训地点',
- capacity INT DEFAULT 20 COMMENT '容量',
- status VARCHAR(20) DEFAULT 'draft' COMMENT 'draft/active/finished',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_code (code),
- INDEX idx_activity_id (activity_id),
- INDEX idx_course_id (course_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班次';
- -- 学员用户表
- CREATE TABLE IF NOT EXISTS train_user (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- cfc_user_id BIGINT COMMENT 'cfc 统一会员 ID(users.id,cfc 同库)',
- openid VARCHAR(64) COMMENT '微信openid',
- phone VARCHAR(11) COMMENT '手机号',
- name VARCHAR(50) COMMENT '姓名',
- alumni_verify VARCHAR(50) COMMENT '校友身份校验: accepted/pending/rejected',
- invite_code VARCHAR(50) COMMENT '专属邀请码',
- grade VARCHAR(50) COMMENT '校友届别',
- department VARCHAR(50) COMMENT '院系',
- city VARCHAR(50) COMMENT '城市',
- family_struct VARCHAR(100) COMMENT '家庭结构',
- concern_book VARCHAR(20) COMMENT '最关心的账本: wealth/health/growth',
- role VARCHAR(20) DEFAULT 'student' COMMENT 'student/teacher/assistant/admin',
- class_id BIGINT COMMENT '所属班次ID',
- status VARCHAR(20) DEFAULT 'active' COMMENT 'active/blocked',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_openid (openid),
- INDEX idx_phone (phone),
- INDEX idx_class_id (class_id),
- INDEX idx_cfc_user_id (cfc_user_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员用户';
- -- 兼容存量库:为新版本新增的 cfc 关联列补列(列已存在时静默跳过)
- -- 下方语句由 DatabaseInitializer 逐条执行并容错,重复执行不报致命错误
- ALTER TABLE train_class ADD COLUMN activity_id BIGINT COMMENT '关联 cfc 活动 ID(activities.id,cfc 同库)';
- ALTER TABLE train_class ADD COLUMN course_id BIGINT COMMENT '关联课程 ID(train_course.id,L0/L1/L2…)';
- ALTER TABLE train_user ADD COLUMN cfc_user_id BIGINT COMMENT 'cfc 统一会员 ID(users.id,cfc 同库)';
- ALTER TABLE train_class ADD COLUMN start_at DATETIME COMMENT '课程开始时间(投屏计时基准,NULL=未开始)';
- -- 小组表
- CREATE TABLE IF NOT EXISTS train_group (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- class_id BIGINT NOT NULL COMMENT '班次ID',
- name VARCHAR(50) NOT NULL COMMENT '组名(含数字+钱/身体/孩子之一)',
- slogan VARCHAR(100) COMMENT '8字口号',
- qr_code VARCHAR(255) COMMENT '二维码',
- spokesperson_uid BIGINT COMMENT '路演发言人(话最少的人,不可更换)',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_class_id (class_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='小组';
- -- 组内成员表
- CREATE TABLE IF NOT EXISTS train_group_member (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_id BIGINT NOT NULL COMMENT '组ID',
- uid BIGINT NOT NULL COMMENT '学员ID',
- joined_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_group_id (group_id),
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组内成员';
- -- 分工表(三本账)
- CREATE TABLE IF NOT EXISTS train_assignment (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_id BIGINT NOT NULL COMMENT '组ID',
- uid BIGINT NOT NULL COMMENT '学员ID',
- book_type VARCHAR(20) NOT NULL COMMENT 'wealth/health/growth',
- role VARCHAR(20) DEFAULT 'expert' COMMENT 'expert/support',
- use_sample TINYINT DEFAULT 0 COMMENT '1=使用etotem脱敏样本',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/confirmed',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_group_book (group_id, book_type),
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='组内分工(三本账)';
- -- 成果上传表
- CREATE TABLE IF NOT EXISTS train_submission (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL COMMENT '学员ID',
- group_id BIGINT COMMENT '组ID',
- book_type VARCHAR(20) COMMENT 'wealth/health/growth',
- type VARCHAR(20) DEFAULT 'deep' COMMENT 'deep(深度产出)/taught(互教跑通)',
- files TEXT COMMENT '文件列表JSON: [{url,name}]',
- image TEXT COMMENT '核心产出截图(脱敏后)',
- sample_flag TINYINT DEFAULT 0 COMMENT '1=样本数据非本人',
- desensitized TINYINT DEFAULT 0 COMMENT '1=已确认脱敏',
- verified_by BIGINT COMMENT '助教/讲师ID',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/approved/rejected',
- reject_reason VARCHAR(255) COMMENT '退回原因',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_uid (uid),
- INDEX idx_group_id (group_id),
- INDEX idx_status (status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='成果上传';
- -- 教学卡表(互教5步教学卡)
- CREATE TABLE IF NOT EXISTS train_teaching_card (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- submission_id BIGINT COMMENT '关联成果ID',
- uid BIGINT NOT NULL,
- group_id BIGINT,
- book_type VARCHAR(20) COMMENT 'wealth/health/growth',
- steps TEXT COMMENT '5步教学卡内容JSON',
- image VARCHAR(255) COMMENT '教学卡照片',
- quality_score INT DEFAULT NULL COMMENT '教学卡质量分0-20',
- quality_by BIGINT COMMENT '评分人',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/approved/rejected',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='教学卡';
- -- 积分流水表
- CREATE TABLE IF NOT EXISTS train_score (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_id BIGINT COMMENT '组ID(可为空=个人分)',
- uid BIGINT COMMENT '学员ID',
- item VARCHAR(50) NOT NULL COMMENT '计分项:install/prep/find/upload/teach/roadmap_quality/roadmap/vote/help',
- points INT NOT NULL COMMENT '分值',
- by_uid BIGINT COMMENT '打分人(人工评分项)',
- remark VARCHAR(255) COMMENT '备注',
- ts DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_group_id (group_id),
- INDEX idx_uid (uid),
- INDEX idx_item (item)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='积分流水';
- -- 投票表(两轮)
- CREATE TABLE IF NOT EXISTS train_vote (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- class_id BIGINT NOT NULL,
- round INT NOT NULL COMMENT '1=我学会了(2票,不得投本组);2=最想抄走(1票,可投本组)',
- voter_uid BIGINT NOT NULL COMMENT '投票人',
- target_group_id BIGINT NOT NULL COMMENT '被投组ID',
- ts DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_class_round (class_id, round),
- INDEX idx_voter (voter_uid),
- INDEX idx_target (target_group_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='投票';
- -- 路演材料表
- CREATE TABLE IF NOT EXISTS train_roadmap (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_id BIGINT NOT NULL,
- proposition VARCHAR(20) COMMENT '命题A-E',
- files TEXT COMMENT '路演材料截图/文件',
- speaker_uid BIGINT COMMENT '发言人ID',
- score INT DEFAULT NULL COMMENT '讲师路演评分0-40',
- score_by BIGINT COMMENT '评分人',
- status VARCHAR(20) DEFAULT 'pending',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_group_id (group_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='路演材料';
- -- 装机打卡表
- CREATE TABLE IF NOT EXISTS train_checkin (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL,
- image VARCHAR(255) COMMENT 'WorkBuddy已安装登录截图',
- status VARCHAR(20) DEFAULT 'done' COMMENT 'done=已装机',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='装机打卡';
- -- 数据准备自检表
- CREATE TABLE IF NOT EXISTS train_prep_check (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL,
- wealth_data TINYINT DEFAULT 0 COMMENT '券商持仓',
- health_data TINYINT DEFAULT 0 COMMENT '体检或血压',
- growth_data TINYINT DEFAULT 0 COMMENT '孩子成绩或日程',
- has_none TINYINT DEFAULT 0 COMMENT '1=选了无',
- use_sample TINYINT DEFAULT 0 COMMENT '1=分配到etotem脱敏样本',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='数据准备自检';
- -- 7天行动计划表
- CREATE TABLE IF NOT EXISTS train_plan (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL,
- items TEXT COMMENT '4件事JSON: [补齐账本,固化3用法,第2条自动化,约etotem测评]',
- submitted_at DATETIME,
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/done',
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='7天行动计划';
- -- 卡券表
- CREATE TABLE IF NOT EXISTS train_coupon (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL,
- type VARCHAR(20) NOT NULL COMMENT 'L1/private/etotem',
- code VARCHAR(64) COMMENT '凭证码',
- status VARCHAR(20) DEFAULT 'unused' COMMENT 'unused/used/expired',
- trigger VARCHAR(50) COMMENT '触发来源: vote/finish/research/champion/teaching',
- granted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- used_at DATETIME,
- INDEX idx_uid (uid),
- INDEX idx_type (type)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='卡券';
- -- 测评兴趣调研表
- CREATE TABLE IF NOT EXISTS train_survey (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL,
- class_id BIGINT,
- interest VARCHAR(100) COMMENT 'interest_health/interest_growth',
- submitted_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='测评兴趣调研';
- -- 管理后台账号表
- CREATE TABLE IF NOT EXISTS train_admin (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- username VARCHAR(50) NOT NULL UNIQUE,
- password VARCHAR(128) NOT NULL COMMENT 'BCrypt加密',
- role VARCHAR(20) NOT NULL COMMENT 'admin(运营)/lecturer(讲师)/assistant(助教)',
- name VARCHAR(50) COMMENT '姓名',
- manage_group_ids VARCHAR(255) COMMENT '助教负责的组ID(逗号分隔)',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_username (username)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='管理后台账号';
- -- 审核日志表
- CREATE TABLE IF NOT EXISTS train_audit_log (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- action VARCHAR(100) NOT NULL COMMENT '操作',
- actor_uid BIGINT COMMENT '操作者',
- target_type VARCHAR(50) COMMENT '目标类型',
- target_id BIGINT COMMENT '目标ID',
- detail TEXT COMMENT '详情',
- ts DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_actor (actor_uid),
- INDEX idx_target (target_type, target_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='审计日志';
- -- 报名单表(报名/付费/裂变一期)
- CREATE TABLE IF NOT EXISTS train_enrollment (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT COMMENT '学员ID(登录后)',
- class_id BIGINT COMMENT '所选班次ID',
- name VARCHAR(50) COMMENT '姓名',
- phone VARCHAR(11) COMMENT '手机号',
- bring_laptop TINYINT DEFAULT 0 COMMENT '1=带电脑',
- data_ready VARCHAR(50) COMMENT '已备数据类别(逗号分隔)',
- top_problems TEXT COMMENT '最想解决的3个问题JSON',
- source VARCHAR(20) DEFAULT 'scene' COMMENT '来源:scene/invite',
- invite_code VARCHAR(50) COMMENT '邀请码(基于train_user.invite_code)',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/paid/confirmed/cancelled',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_uid (uid),
- INDEX idx_class_id (class_id),
- INDEX idx_status (status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='报名单';
- -- 支付订单表
- CREATE TABLE IF NOT EXISTS train_order (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- order_no VARCHAR(32) NOT NULL UNIQUE COMMENT '订单号',
- enrollment_id BIGINT COMMENT '关联报名单',
- uid BIGINT COMMENT '学员ID',
- class_id BIGINT COMMENT '班次ID',
- amount INT NOT NULL COMMENT '实付金额(分)',
- original_amount INT COMMENT '原价(分)',
- discount_amount INT DEFAULT 0 COMMENT '优惠(分)',
- pay_channel VARCHAR(20) DEFAULT 'wechat' COMMENT '支付渠道',
- status VARCHAR(20) DEFAULT 'unpaid' COMMENT 'unpaid/paid/refunded/failed/closed',
- pay_time DATETIME,
- wechat_txn_id VARCHAR(64) COMMENT '微信交易号',
- prepay_id VARCHAR(64) COMMENT '预支付ID',
- refund_amount INT DEFAULT 0 COMMENT '已退金额(分)',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_uid (uid),
- INDEX idx_class_id (class_id),
- INDEX idx_status (status),
- INDEX idx_enrollment_id (enrollment_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='支付订单';
- -- 转介绍关系表
- CREATE TABLE IF NOT EXISTS train_invite (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- inviter_id BIGINT NOT NULL COMMENT '邀请人(train_user.id)',
- invitee_id BIGINT COMMENT '被邀请人(train_user.id)',
- invite_code VARCHAR(50) COMMENT '邀请码',
- order_id BIGINT COMMENT '被邀请人的订单ID',
- successful TINYINT DEFAULT 0 COMMENT '1=被邀请人已完成付费',
- reward_status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/granted',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_inviter (inviter_id),
- INDEX idx_invitee (invitee_id),
- UNIQUE KEY uk_code_invitee (invite_code, invitee_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='转介绍关系';
- -- 课前资料包表(二期)
- CREATE TABLE IF NOT EXISTS train_course_material (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- class_id BIGINT COMMENT '班次ID(为空=通用资料)',
- title VARCHAR(100) NOT NULL,
- file_url VARCHAR(255) COMMENT 'PDF/附件URL',
- sort INT DEFAULT 0,
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_class_id (class_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='课前资料包';
- -- 班级投屏配置表(每班一条,按下述模块开关控制大屏显示)
- CREATE TABLE IF NOT EXISTS train_screen_config (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- class_id BIGINT NOT NULL COMMENT '班次ID',
- show_scoreboard TINYINT DEFAULT 1 COMMENT '1=显示小组积分榜',
- show_checkin TINYINT DEFAULT 1 COMMENT '1=显示签到情况',
- show_progress TINYINT DEFAULT 1 COMMENT '1=显示完课进度',
- show_group_progress TINYINT DEFAULT 1 COMMENT '1=显示小组进展矩阵(分工/任务/路演)',
- show_vote TINYINT DEFAULT 1 COMMENT '1=显示投票结果',
- show_material TINYINT DEFAULT 1 COMMENT '1=显示课程资料',
- show_banner TINYINT DEFAULT 1 COMMENT '1=显示公告横幅',
- show_timer TINYINT DEFAULT 1 COMMENT '1=显示课程进行时间',
- agenda VARCHAR(2000) COMMENT '课程环节JSON: [{"title":"开场","minutes":10},...]',
- current_step INT DEFAULT 0 COMMENT '当前环节序号(从0开始,助教切换)',
- banner VARCHAR(200) COMMENT '投屏公告',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- UNIQUE KEY uk_class_id (class_id)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='班级投屏配置';
- -- 团报订单表(FR-PAY-03:多学员一单 + 企业开票信息采集)
- CREATE TABLE IF NOT EXISTS train_group_order (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_no VARCHAR(32) NOT NULL UNIQUE COMMENT '团报单号',
- class_id BIGINT NOT NULL COMMENT '班次ID',
- leader_uid BIGINT NOT NULL COMMENT '发起人(train_user.id)',
- member_count INT DEFAULT 1 COMMENT '报名人数',
- unit_amount INT COMMENT '单价(分)',
- total_amount INT NOT NULL COMMENT '总金额(分)',
- order_id BIGINT COMMENT '关联支付订单(train_order.id)',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/paid/closed',
- invoice_title VARCHAR(200) COMMENT '发票抬头(企业名称)',
- invoice_tax_no VARCHAR(100) COMMENT '税号',
- invoice_email VARCHAR(100) COMMENT '电子发票接收邮箱',
- invoice_phone VARCHAR(50) COMMENT '收票人电话',
- invoice_type VARCHAR(20) COMMENT '普票/专票',
- pay_time DATETIME COMMENT '支付时间',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_class_id (class_id),
- INDEX idx_leader_uid (leader_uid),
- INDEX idx_status (status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='团报订单(多学员一单+开票)';
- -- 团报成员表(FR-PAY-03:一个团报单下的学员名单,支付成功后逐人生成报名单)
- CREATE TABLE IF NOT EXISTS train_group_order_member (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- group_order_id BIGINT NOT NULL COMMENT '团报单ID',
- name VARCHAR(50) NOT NULL COMMENT '学员姓名',
- phone VARCHAR(11) COMMENT '手机号',
- uid BIGINT COMMENT '对应学员ID(已注册则回填)',
- enrollment_id BIGINT COMMENT '支付成功后生成的报名单ID',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending/paid',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- INDEX idx_group_order_id (group_order_id),
- INDEX idx_uid (uid)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='团报成员';
- -- 学员案例表(FR-FISS-04:采集→脱敏→授权→回流)
- CREATE TABLE IF NOT EXISTS train_case (
- id BIGINT AUTO_INCREMENT PRIMARY KEY,
- uid BIGINT NOT NULL COMMENT '案例学员ID',
- class_id BIGINT COMMENT '班次ID',
- title VARCHAR(100) NOT NULL COMMENT '案例标题',
- summary TEXT COMMENT '脱敏后的案例内容(不含真实数据)',
- source_submission_id BIGINT COMMENT '来源成果(train_submission.id)',
- status VARCHAR(20) DEFAULT 'pending' COMMENT 'pending待授权/authorized已授权/rejected已拒绝/published已发布',
- consent_at DATETIME COMMENT '学员授权时间',
- created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
- updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
- INDEX idx_uid (uid),
- INDEX idx_status (status)
- ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='学员案例(采集/授权/回流)';
|