feat: 高考志愿与定价分销链路更新(管理端/API/小程序)
- 新增高考志愿核心服务、模型、控制器与迁移脚本 - 同步管理端定价/分销/设置与小程序入口、历史、测试选择和支付逻辑 - 补充相关开发文档 Made-with: Cursor
This commit is contained in:
30
api/database/migrations/add_gaokao_core_tables.sql
Normal file
30
api/database/migrations/add_gaokao_core_tables.sql
Normal file
@@ -0,0 +1,30 @@
|
||||
-- 高考志愿:用户任务与表单档案(定价/订单/报告已统一至 PricingConfig + orders + test_results.testType=gaokao)
|
||||
-- 执行前请确认表前缀,以下以 mbti_ 为例
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `mbti_gaokao_user_profile` (
|
||||
`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
|
||||
`userId` BIGINT NOT NULL COMMENT '用户 ID',
|
||||
`tenantId` BIGINT NOT NULL DEFAULT 0 COMMENT '租户 ID',
|
||||
`entryStatus` TINYINT NOT NULL DEFAULT 0 COMMENT '入口/任务流:0未进入 1进行中 2已完成',
|
||||
`mbtiStatus` TINYINT NOT NULL DEFAULT 0 COMMENT 'MBTI 完成状态,0 未完成 1 已完成等',
|
||||
`pdpStatus` TINYINT NOT NULL DEFAULT 0 COMMENT 'PDP 完成状态',
|
||||
`discStatus` TINYINT NOT NULL DEFAULT 0 COMMENT 'DISC 完成状态',
|
||||
`formStatus` TINYINT NOT NULL DEFAULT 0 COMMENT '志愿表单,0 未填/未保存 1 已保存等',
|
||||
`analyzeStatus` TINYINT NOT NULL DEFAULT 0 COMMENT '综合分析:0未生成 1已生成 2失败',
|
||||
`lastAnalyzeAt` INT NULL DEFAULT NULL COMMENT '最近一次分析时间,Unix 时间戳',
|
||||
`latestReportId` BIGINT NULL DEFAULT NULL COMMENT '最近一份高考报告对应 mbti_test_results.id(testType=gaokao)',
|
||||
`name` VARCHAR(64) NOT NULL DEFAULT '' COMMENT '学生姓名,冗余自表单',
|
||||
`province` VARCHAR(32) NOT NULL DEFAULT '' COMMENT '生源省份,冗余自表单',
|
||||
`streamSubjects` VARCHAR(128) NOT NULL DEFAULT '' COMMENT '科类/选科,冗余自表单',
|
||||
`estimatedScore` INT NULL DEFAULT NULL COMMENT '估分',
|
||||
`formJson` JSON NULL COMMENT '志愿表单全量 JSON',
|
||||
`tagsJson` JSON NULL COMMENT '业务标签等 JSON',
|
||||
`createdAt` INT NOT NULL DEFAULT 0 COMMENT '创建时间,Unix 时间戳',
|
||||
`updatedAt` INT NOT NULL DEFAULT 0 COMMENT '更新时间,Unix 时间戳',
|
||||
PRIMARY KEY (`id`),
|
||||
UNIQUE KEY `uk_user` (`userId`),
|
||||
KEY `idx_tenant_status` (`tenantId`, `entryStatus`, `analyzeStatus`),
|
||||
KEY `idx_last_analyze_at` (`lastAnalyzeAt`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='高考-用户业务档案';
|
||||
|
||||
-- 已部署旧版迁移、仍存在独立高考表时,请线下执行 DROP 或见 migrate_gaokao_legacy_to_unified.sql / rollback_gaokao_core_tables.sql 说明
|
||||
@@ -0,0 +1,3 @@
|
||||
-- 可选:将旧版 mbti_gaokao_report 迁入 mbti_test_results(testType=gaokao)
|
||||
-- 执行前请备份数据库;按实际 MySQL 版本与 JSON 函数编写 INSERT…SELECT。
|
||||
-- 迁移完成后:用新 test_results.id 回写 mbti_gaokao_user_profile.latestReportId,再择机 DROP 旧高考业务表。
|
||||
4
api/database/migrations/rollback_gaokao_core_tables.sql
Normal file
4
api/database/migrations/rollback_gaokao_core_tables.sql
Normal file
@@ -0,0 +1,4 @@
|
||||
-- 回滚:仅删除高考用户档案表(新版迁移仅创建此表)
|
||||
-- 若库中仍有旧版 mbti_gaokao_report / mbti_gaokao_order 等表,请按需手动 DROP
|
||||
|
||||
DROP TABLE IF EXISTS `mbti_gaokao_user_profile`;
|
||||
Reference in New Issue
Block a user