|
|
@@ -10935,6 +10935,7 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
createReportTransferRequestsTable();
|
|
|
addProductMinDiscountLevel();
|
|
|
backfillMembershipLevelOrder();
|
|
|
+ removeReportUploadQuota();
|
|
|
|
|
|
createProductDimensionMappingTable();
|
|
|
createProductRecommendationLogTable();
|
|
|
@@ -11039,8 +11040,7 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
"('BASIC', 'AI_CHAT_LITE', 'AI健康顾问(限3次/月)', '每月3次AI健康顾问问答', '🤖', '#DBEAFE', 1), " +
|
|
|
"('BASIC', 'REPORT_READING_LITE', '报告解读(限1次/月)', '每月1次体检/测评报告AI解读', '📊', '#FCE7F3', 4), " +
|
|
|
"('BASIC', 'GROWTH_PLAN_LITE', '基础成长计划', '创建成长计划但模板有限', '📋', '#FEF3C7', 3), " +
|
|
|
- "('BASIC', 'ASSESSMENT_QUOTA_LITE', '测评预约(限1次)', '每月可预约1次测评', '📝', '#E0E7FF', 8), " +
|
|
|
- "('BASIC', 'REPORT_UPLOAD_LITE', '健康报告上传(限2份/月)', '每月可上传2份健康报告', '📄', '#FEF9C3', 9)");
|
|
|
+ "('BASIC', 'ASSESSMENT_QUOTA_LITE', '测评预约(限1次)', '每月可预约1次测评', '📝', '#E0E7FF', 8)");
|
|
|
log.info("迁移316: 已初始化BASIC会员权益列表");
|
|
|
} catch (Exception e) {
|
|
|
// 已存在,忽略
|
|
|
@@ -11798,4 +11798,22 @@ log.info("迁移298: 已为无 openid 的 child 账号补齐 family_members 记
|
|
|
log.warn("迁移351: 顺延 membership_levels.level_order 失败: {}", e.getMessage());
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ // 迁移352: 健康报告上传改为对所有登录用户免费无限,移除 REPORT_UPLOAD 配额与 BASIC 权益文案
|
|
|
+ private void removeReportUploadQuota() {
|
|
|
+ try {
|
|
|
+ int deletedBenefits = jdbcTemplate.update(
|
|
|
+ "DELETE FROM membership_benefits WHERE level_code = 'BASIC' AND benefit_code = 'REPORT_UPLOAD_LITE'");
|
|
|
+ log.info("迁移352: 已移除 BASIC 权益 REPORT_UPLOAD_LITE({} 行)", deletedBenefits);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("迁移352: 移除 REPORT_UPLOAD_LITE 权益失败: {}", e.getMessage());
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ int deletedUsage = jdbcTemplate.update(
|
|
|
+ "DELETE FROM basic_quota_usage WHERE quota_type = 'REPORT_UPLOAD'");
|
|
|
+ log.info("迁移352: 已清理 REPORT_UPLOAD 配额记录({} 行)", deletedUsage);
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.warn("迁移352: 清理 REPORT_UPLOAD 配额记录失败: {}", e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|