Просмотр исходного кода

fix(db): health_reports 补 report_format 列(迁移289)+ auto bump

Xiaogang Liao 2 недель назад
Родитель
Сommit
92be8c04e6

+ 4 - 0
cfc-backend/src/main/java/com/etotem/cfc/config/DatabaseInitializer.java

@@ -10264,5 +10264,9 @@ public class DatabaseInitializer implements CommandLineRunner {
         ensureColumn("health_report_drafts", "parse_error",
                 "VARCHAR(2000) DEFAULT NULL COMMENT '异步解析失败原因'");
         log.info("已添加 health_report_drafts 异步采集状态列 (parse_status/parse_method/parse_error)");
+
+        // 迁移289: health_reports 补 report_format 列(HealthReport 实体已含字段,但从未迁移至 DB,全字段 SELECT 报 Unknown column)
+        ensureColumn("health_reports", "report_format",
+                "VARCHAR(32) DEFAULT NULL COMMENT '报告格式: pdf/image'");
     }
 }

+ 1 - 0
cfc-backend/src/main/resources/schema.sql

@@ -1746,6 +1746,7 @@ CREATE TABLE IF NOT EXISTS health_reports (
     gut_age VARCHAR(32) COMMENT '肠道预测年龄',
     gut_type VARCHAR(50) COMMENT '肠型',
     file_url VARCHAR(500) COMMENT '报告文件URL',
+    report_format VARCHAR(32) DEFAULT NULL COMMENT '报告格式: pdf/image',
     status VARCHAR(20) DEFAULT 'active' COMMENT '状态: active/archived',
     remark TEXT COMMENT '备注',
     proxy_uploader_id BIGINT COMMENT '代上传人ID(规划师/营养师)',

+ 78 - 0
cfc-web/public/CHANGELOG-v1.0.md

@@ -4,6 +4,84 @@
 
 ---
 
+## v1.0.1284 (2026-09-03)
+
+### 新功能
+- 健康报告收集功能 - ReportCollectService + draft 草稿 + 小程序上报页面
+- 能量沙盘个人/全家切换移到右上角,单成员时弹提示引导添加
+- extend search to title+summary+tags; fix compile errors in FoodRecommendService and HealthReportController
+- 家庭运营增加优惠券列表和使用记录(后端/family-coupons + /family-coupon-usage,前端弹窗展示)
+- 管理端商品编辑页新增可选赠品配置区块
+- 优化谷禾菌群报告详情页展示与饮食推荐
+- 小程序商品详情赠品选择区 + checkout 透传 giftItemIds
+- createMultiItem 单商品路径支持赠品(抽取 processGifts 共享方法)
+- handlePaymentSuccess 追加赠品发放逻辑
+- create 流程注入赠品校验与 product_order_gifts 记录
+- 新增管理端赠品配置接口(/api/admin/product-gift/save + /list)
+- 新增 ProductGiftService(配置保存/查询逻辑)
+- 新增三张赠品表实体类与Mapper接口
+- 建三张赠品相关表迁移(product_gift_configs/items/order_gifts)
+
+### 其他
+- 知识中心-知识分类,修复视频上传异常问题
+- 知识中心-知识分类,修复视频上传异常问题
+- 知识中心-知识分类,修复视频上传异常问题
+- 修复视频上传异常问题
+- 优化修复
+- - FoodRecommendService: add missing import java.math.BigDecimal
+- - HealthReportController: remove undefined 'parsed' reference in buildPayloadFromLgData
+- 
+- 切换开关仅依赖 hasMultipleMembers(有 2+ 成员时显示),
+- familyUnlocked 仍作为 prop 保留,不影响 GateLock 门禁展示。
+- 
+- - child-index: loadData 中 getChildren() 改为 getFamilyMemberList({visibleOnly:true}) 一次调用,同步设置 familyMembersVisible,跳过后续 loadFamilyMembersVisible()
+- - parent-index: dashboard 成功路径同步设置 familyMembersVisible + _membersVisibleSet,降级路径合并 getFamilyMemberList+getChildren 为单次调用并派生 children
+- 
+- - 首页 index-home: checkMemberStatus 移入 loggedInInitDone 守卫,onLoad/onShow 用 _onLoadFired 防首次双发
+- - 首页 index-home: loadFamilyFeed 循环前过滤孩子成员,避免对家长发起 getTaskHistory
+- - 全页面: energy/hierarchy/share/survey-history/parent-index/join/notification/onboarding/address/cart/checkout/shop-index/daily-tasks/service-tasks/teacher-home/wealth-cf 统一 _onLoadFired 模式
+- - parent-index: dashboard 降级路径同步设置 familyMembersVisible,避免重复请求 getFamilyMemberList
+- - utils/api.js: 全局请求去重(同 URL+method+body 3 秒窗口复用 Promise),401 重放跳过去重
+- - utils/api.js: getChildren/getUserBadges/getGrowthReport/getTaskHistoryByCategory 等别名统一委托规范函数
+- - 新增 scripts/audit-duplicate-api-calls.js CI 审计脚本(0 error)
+- - AGENTS.md: 新增规则 1-4 + 4a/4b/4c(生命周期双发、同接口单封装、N+1 过滤、getChildren 废弃)
+- 
+- - 疾病风险内联展示并颜色区分(注意/低风险),修复详情页与风险页统计不一致
+- - 疾病风险页知识库入口改为 ? 图标放疾病名之前
+- - 菌群详情页修复分类 tab 过滤(中文 category 映射英文 key)
+- - 菌群风险分组(肥胖/抑郁/过敏等)改手风琴展示
+- - 饮食推荐页:去重标题、按推荐值分级背景色(<-30红/>30绿/每10一档)、去蛋白能量固定信息、增加食材搜索、复用知识库弹窗
+- - 成长页饮食推荐复用食材页,不传 reportId 取最新建议
+- 
+- feat(product-gift): 商品详情附带当前用户等级赠品配置
+- - 涵盖:数据库迁移、实体/Mapper、ProductGiftService、管理端接口、
+-   下单校验+写记录、支付成功发放、商品详情装配、小程序前端、管理端前端
+- 
+-   - 3张新表:product_gift_configs / product_gift_items / product_order_gifts
+-   - 与现有 product_gift_rules(赠送会员)完全独立
+-   - 赠品类型:商品 或 CF值,按会员等级配置,用户可多选
+-   - 下单时写入订单赠品记录(fulfilled=0),支付成功后发放
+- - 更新 PROJECT-OVERVIEW.md §4.2 电商与供应体系,记录新设计稿
+- 
+
+### Bug 修复
+- 补全 reportFormat 字段到 Payload DTO 和 HealthReport 实体,修复编译失败
+- self-check-result :key 移除字符串拼接表达式 'ma'+i,避免非 h5 平台编译警告
+- 移除能量沙盘切换开关的 familyUnlocked 门禁条件
+- 根治 family/member/list 与 tasks/history 重复调用——index-home loadFamilyFeed 改为只查第一个孩子、parent-index/child-index 合并 getChildren+loadFamilyMembersVisible 为单次 getFamilyMemberList
+- 根治重复API调用——首页合并 family/member/list 与 membership/my、全页面 onLoad/onShow 防双发 + 请求层 3 秒去重 + getChildren 废弃委托
+- processGifts 下单时复核赠品商品库存
+- 修复 toggleGift 后多余逗号语法错误
+- class 改用 _selected 状态字段,移除方法调用
+
+### 重构
+- 清理遗留项(未用注入/静默catch/Set去重/UUID导入/参数校验/Javadoc)
+
+### 文档
+- 商品可选赠品功能实施计划
+- 商品可选赠品功能设计稿(product-gift-selection-design)
+
+
 ## v1.0.1283 (2026-09-02)
 
 ### 新功能

+ 79 - 1
cfc-web/public/CHANGELOG.md

@@ -1,6 +1,6 @@
 # 更新日志
 
-> 当前版本: v1.0.1283
+> 当前版本: v1.0.1284
 
 ## 历史版本
 
@@ -8,6 +8,84 @@
 
 ---
 
+## v1.0.1284 (2026-09-03)
+
+### 新功能
+- 健康报告收集功能 - ReportCollectService + draft 草稿 + 小程序上报页面
+- 能量沙盘个人/全家切换移到右上角,单成员时弹提示引导添加
+- extend search to title+summary+tags; fix compile errors in FoodRecommendService and HealthReportController
+- 家庭运营增加优惠券列表和使用记录(后端/family-coupons + /family-coupon-usage,前端弹窗展示)
+- 管理端商品编辑页新增可选赠品配置区块
+- 优化谷禾菌群报告详情页展示与饮食推荐
+- 小程序商品详情赠品选择区 + checkout 透传 giftItemIds
+- createMultiItem 单商品路径支持赠品(抽取 processGifts 共享方法)
+- handlePaymentSuccess 追加赠品发放逻辑
+- create 流程注入赠品校验与 product_order_gifts 记录
+- 新增管理端赠品配置接口(/api/admin/product-gift/save + /list)
+- 新增 ProductGiftService(配置保存/查询逻辑)
+- 新增三张赠品表实体类与Mapper接口
+- 建三张赠品相关表迁移(product_gift_configs/items/order_gifts)
+
+### 其他
+- 知识中心-知识分类,修复视频上传异常问题
+- 知识中心-知识分类,修复视频上传异常问题
+- 知识中心-知识分类,修复视频上传异常问题
+- 修复视频上传异常问题
+- 优化修复
+- - FoodRecommendService: add missing import java.math.BigDecimal
+- - HealthReportController: remove undefined 'parsed' reference in buildPayloadFromLgData
+- 
+- 切换开关仅依赖 hasMultipleMembers(有 2+ 成员时显示),
+- familyUnlocked 仍作为 prop 保留,不影响 GateLock 门禁展示。
+- 
+- - child-index: loadData 中 getChildren() 改为 getFamilyMemberList({visibleOnly:true}) 一次调用,同步设置 familyMembersVisible,跳过后续 loadFamilyMembersVisible()
+- - parent-index: dashboard 成功路径同步设置 familyMembersVisible + _membersVisibleSet,降级路径合并 getFamilyMemberList+getChildren 为单次调用并派生 children
+- 
+- - 首页 index-home: checkMemberStatus 移入 loggedInInitDone 守卫,onLoad/onShow 用 _onLoadFired 防首次双发
+- - 首页 index-home: loadFamilyFeed 循环前过滤孩子成员,避免对家长发起 getTaskHistory
+- - 全页面: energy/hierarchy/share/survey-history/parent-index/join/notification/onboarding/address/cart/checkout/shop-index/daily-tasks/service-tasks/teacher-home/wealth-cf 统一 _onLoadFired 模式
+- - parent-index: dashboard 降级路径同步设置 familyMembersVisible,避免重复请求 getFamilyMemberList
+- - utils/api.js: 全局请求去重(同 URL+method+body 3 秒窗口复用 Promise),401 重放跳过去重
+- - utils/api.js: getChildren/getUserBadges/getGrowthReport/getTaskHistoryByCategory 等别名统一委托规范函数
+- - 新增 scripts/audit-duplicate-api-calls.js CI 审计脚本(0 error)
+- - AGENTS.md: 新增规则 1-4 + 4a/4b/4c(生命周期双发、同接口单封装、N+1 过滤、getChildren 废弃)
+- 
+- - 疾病风险内联展示并颜色区分(注意/低风险),修复详情页与风险页统计不一致
+- - 疾病风险页知识库入口改为 ? 图标放疾病名之前
+- - 菌群详情页修复分类 tab 过滤(中文 category 映射英文 key)
+- - 菌群风险分组(肥胖/抑郁/过敏等)改手风琴展示
+- - 饮食推荐页:去重标题、按推荐值分级背景色(<-30红/>30绿/每10一档)、去蛋白能量固定信息、增加食材搜索、复用知识库弹窗
+- - 成长页饮食推荐复用食材页,不传 reportId 取最新建议
+- 
+- feat(product-gift): 商品详情附带当前用户等级赠品配置
+- - 涵盖:数据库迁移、实体/Mapper、ProductGiftService、管理端接口、
+-   下单校验+写记录、支付成功发放、商品详情装配、小程序前端、管理端前端
+- 
+-   - 3张新表:product_gift_configs / product_gift_items / product_order_gifts
+-   - 与现有 product_gift_rules(赠送会员)完全独立
+-   - 赠品类型:商品 或 CF值,按会员等级配置,用户可多选
+-   - 下单时写入订单赠品记录(fulfilled=0),支付成功后发放
+- - 更新 PROJECT-OVERVIEW.md §4.2 电商与供应体系,记录新设计稿
+- 
+
+### Bug 修复
+- 补全 reportFormat 字段到 Payload DTO 和 HealthReport 实体,修复编译失败
+- self-check-result :key 移除字符串拼接表达式 'ma'+i,避免非 h5 平台编译警告
+- 移除能量沙盘切换开关的 familyUnlocked 门禁条件
+- 根治 family/member/list 与 tasks/history 重复调用——index-home loadFamilyFeed 改为只查第一个孩子、parent-index/child-index 合并 getChildren+loadFamilyMembersVisible 为单次 getFamilyMemberList
+- 根治重复API调用——首页合并 family/member/list 与 membership/my、全页面 onLoad/onShow 防双发 + 请求层 3 秒去重 + getChildren 废弃委托
+- processGifts 下单时复核赠品商品库存
+- 修复 toggleGift 后多余逗号语法错误
+- class 改用 _selected 状态字段,移除方法调用
+
+### 重构
+- 清理遗留项(未用注入/静默catch/Set去重/UUID导入/参数校验/Javadoc)
+
+### 文档
+- 商品可选赠品功能实施计划
+- 商品可选赠品功能设计稿(product-gift-selection-design)
+
+
 ## v1.0.1283 (2026-09-02)
 
 ### 新功能