# v1.0 版本历史 [« 返回最新版本](CHANGELOG.md) --- ## v1.0.1405 (2026-09-13) ### Bug 修复 - 修复家庭成员列表 generationToLevel 负数字面量对象 key 导致的编译失败(-1/-2/-3 改字符串 key) ## v1.0.1404 (2026-09-13) ### Bug 修复 - 上传非PDF文件时采集链路提前拦截,避免PyPDF2 EOF错误 ### 其他 - 在collect()入口和detect()增加魔数预检,非PDF直接标记失败。 - ## v1.0.1403 (2026-09-13) ### Bug 修复 - 修复 savePrompt 更新时 version 为 null 导致 NPE,从数据库读取现有版本号 ### 新功能 - 系统提示词版本管理 - 修改前自动备份历史版本,支持查看版本列表与回滚 ## v1.0.1402 (2026-09-13) ### Bug 修复 - 移除后端重复reportId解析 + 前端getMyMembership防抖 - 修复 AI 聊天页模板多根元素与成员详情页重复 :memberId 属性导致的编译失败 ## v1.0.1401 (2026-09-13) ### Bug 修复 - healthcheck timeout 5s -> 10s(模型加载慢时避免误报 unhealthy) ## v1.0.1400 (2026-09-13) ### 样式 - report-confirm 补充报告快速分析浮层样式 ## v1.0.1399 (2026-09-13) ### 新功能 - report-confirm 新增报告快速分析浮层(支持 draftId) - 报告快速分析浮层扩展至报告确认页 - gut-flora-detail 新增报告快速分析浮层(支持 reportId/draftId) ## v1.0.1398 (2026-09-13) ### 新功能 - api.js reportQuickAnalyze 新增可选 draftId 参数 ## v1.0.1397 (2026-09-13) ### 新功能 - AIChatController 支持 draftId 参数的快速分析 - FamilyContextService 新增 buildContextFromDraft 支持草稿上下文 - 全部提示词迁移到Java后端可配置 ### Bug 修复 - 问卷超时调整 + 加载文案优化 - 恢复updateMember丢失的generationLevel/peerType透传,修正管理员权限判断 ### 其他 - - 问卷加载提示改为"AI正在根据双方情况生成问卷,请稍候(约需1-2分钟)..." - - 家庭成员添加页/列表页适配关系类型展示优化 - - - FamilyMemberService.updateMember修正权限判断:管理员可编辑所有成员(含关联账号),普通用户仅可编辑不可登录成员 - - - src/侧:问卷/舌诊prompt_template透传链路完整 - - DEFAULT_PROMPTS[analysis/recommend]升级为graph完整版,避免短版静默覆盖 - - health_plan_graph key分离为health_plan_graph/health_plan_graph_regenerate,与adapter.py解耦 - - 5处except回退分支加logger.warning可观测日志 - - 新增seed_system_prompts.sql:26条INSERT,含占位符契约注释 - ## v1.0.1396 (2026-09-13) ### 文档 - 修正实现计划(ObjectMapper注入、行号对齐、template插入位置) ### 新功能 - 对话 checkpointer 从 MemorySaver 改为 SQLite 持久化,重启不丢会话 ## v1.0.1395 (2026-09-13) ### Bug 修复 - remove duplicate BigDecimal import ## v1.0.1394 (2026-09-13) ### 新功能 - 每日打卡用 Redis SETNX 幂等,防止重复提交重复发积分 ### Bug 修复 - 修复 BeijingNutritionService 编译错误(恢复误删的 isWeekend 方法 + 补 BigDecimal import + 类闭合括号) ## v1.0.1393 (2026-09-13) ### 新功能 - 新增 RedisLockUtil 分布式锁,支付回调防并发重复处理 ## v1.0.1392 (2026-09-13) ### 新功能 - 排行榜改用 Redis Sorted Set,游戏积分榜+推荐榜双写降级 ## v1.0.1391 (2026-09-13) ### 新功能 - 启用 Spring Cache + RedisCacheManager,缓存系统配置与营养分类/品牌列表 - 商品类目分级与会员级别可见性(min_visible_level/level_order/shop_categories),管理端同步支持 ### 文档 - 报告快速分析扩展实现计划 ### 重构 - 多页面 v-for :key 统一改为索引绑定,删除冗余 getXxxKey 方法 ### Bug 修复 - 菌群报告详情补齐未呈现数据(性别/年龄/AI解读)并统一手风琴统计口径 - 报告上传从聊天选取支持图片/文件二选一,避免 type=all 默认停在图片 tab - 修复共餐配置页 script 结构损坏导致的编译失败(重复 onLoad、tipText 逃逸出 methods、括号错乱) ## v1.0.1390 (2026-09-13) ### 新功能 - 验证码改用 Redis 存储(TTL 5分钟,一次性),Redis 异常时回退数据库 - WechatService access_token 改用 Redis 缓存,多实例共享避免重复请求微信 ## v1.0.1389 (2026-09-13) ### 新功能 - RateLimitInterceptor 改为 Redis 滑动窗口限流,支持多实例共享并保留内存降级 ## v1.0.1388 (2026-09-13) ### 新功能 - 五维手动填分 + MBTI 完整体系(后端/小程序/管理端) ### 其他 - - MbtiController: MBTI 测评入口/提交/结果页 - - ManualDimensionScoreController: 家长手动填家庭成员五维分数(0-100) - - MbtiProfileController: 16型人格画像管理 - - 数据库: mbti_questions / mbti_results / mbti_profiles 三表 + 种子数据 - - 小程序: mbti-entry / mbti-test / mbti-profile / mbti-result / manual-score-entry 5页 - - Web管理端: MbtiProfiles.vue + mbti.js API - - 计划文档: docs/superpowers/plans/2026-09-10-manual-dimension-mbti-plan.md - ## v1.0.1387 (2026-09-13) ### 新功能 - 小程序「我的」页设置菜单新增「我的画像」入口 ### 其他 - - urls 映射添加 6 -> '/pages/profile/portrait-edit' - - 用户路径: 我的 -> 设置 -> 我的画像 -> portrait-edit.vue - ## v1.0.1386 (2026-09-13) ### Bug 修复 - 修复 DatabaseInitializer git 冲突标记残留及预存注释行 try{ bug,编译失败 ## v1.0.1385 (2026-09-13) ### 新功能 - 菜单管理图标字段改为可视化图标选择器(282个Element图标+搜索+清除) ## v1.0.1384 (2026-09-13) ### 新功能 - 菌群报告详情页重构 - 去掉疾病风险手风琴和病原菌入口,修复报告日期显示,新增报告总结描述 ## v1.0.1383 (2026-09-13) ### 文档 - add vendor order review spec, plan, and API reference entries - 登记DOA接口+统一能登录/不能登录用户口径规范 ### 重构 - clean up review logic (remove unused var, fix computed, add log separators) ### 新功能 - add vendor order review page and entry - add vendorId to order detail response for permission check - 新增doa-stage-detail详情页+实体memberUserId字段 - 新增doa-week-edit周计划复盘编辑页 - 新增doa-stage-create创建阶段页 - 新增doa-index家庭总览页 - 前端API封装+页面注册+挑战页双tab入口 - 新增DoaController(/api/doa 七接口) - 新增DoaService(创建阶段/家庭总览/详情/周计划/周复盘) - DoaStage新增memberUserId非表字段(为Task8代管详情准备) - 新增DoaStage/DoaGoal/DoaWeek实体与Mapper - 迁移314创建DOA三表(doa_stage/doa_goal/doa_week) ### Bug 修复 - 修复远程预存编译错误(BasicQuotaService/Collections import缺失)+ 迁移318花括号对齐 - 挑战页双tab改用doa-前缀类名避免类名冲突 - checkStageMemberPermission 空指针绕过同源修复 - 修复代管校验空指针绕过与 weekStart Locale 依赖 ### 其他 - 原条件直接跳过校验,非家庭成员可为任何成员(含可登录成员)创建阶段。 - 收紧为 isSelf = selfMemberId != null && equals(memberId),null 视为非本人, - 不可代管可登录成员。 - 2. weekStart():补 setFirstDayOfWeek(MONDAY),避免 en_US/C 等周日起始 - Locale 下 set(DAY_OF_WEEK, MONDAY) 使周日滚到下周,导致 week1 起点 - 晚于 stage.startDate。 - ## v1.0.1382 (2026-09-12) ### 新功能 - BASIC体验会员 (9.9元/月) 核心实现 ### 其他 - - 后端: BasicQuotaService/ActivationQuotaService + 4业务入口配额扣减 - - 定时任务: BasicQuotaScheduledTasks(月度刷新+到期提醒) - - Controller: BasicQuotaController + AdminBasicQuotaController - - 前端: QuotaProgressBar/UpgradeGuideModal组件 + 会员页/升级页BASIC支持 - - AI对话页集成配额显示和软引导 - - plan: BASIC体验会员实施计划(9.9元/月) ## v1.0.1381 (2026-09-12) ### Bug 修复 - 免费用户生成方案付费墙改为家庭会员或购买健康启航计划二选一,前端弹三选一引导购买后自动继续生成 ## v1.0.1380 (2026-09-12) ### 新功能 - 章鱼图成效录入支持发生时间(happened_at) ## v1.0.1379 (2026-09-12) ### 新功能 - 家庭邀请分享卡片(暖灶风格,500x400px canvas 生成 imageUrl) ### 文档 - 更新PROJECT-OVERVIEW.md新增DOA规格与数据表 - add DOA family goal implementation plan (tasks 1-11) - add DOA family goal design spec ## v1.0.1378 (2026-09-12) ### Bug 修复 - 审批加入时创建者切换家庭前置校验——原家庭仅一人免转让;多人时错误信息指向申请人并给转让指引 ## v1.0.1377 (2026-09-12) ### 其他 - - 删除 pages.json 中 market/index 和 market/detail 注册 - - 删除 api.js 中死代码:getPublicPackages、purchasePackage、getPackageByShareCode - - MarketController packages/* 和 share/* 接口标记 410 废弃 - (套餐购买已统一合并到组合商品 bundle 链路,走 /api/product/order/*) - 保留 MarketController plans/* 接口(计划管理仍在使用) - ## v1.0.1377 (2026-09-12) ### 文档 - 新增参考资料 ABC记录表 ## v1.0.1376 (2026-09-11) ### 新功能 - 章鱼图录入成效时支持关联关键人(多选+角色标记) ## v1.0.1375 (2026-09-11) ### 新功能 - 章鱼图成效类型改为系统自动计算(金额大/频次高/新成交) ## v1.0.1374 (2026-09-11) ### Bug 修复 - 迁移278-313抽出独立方法 runSystemMigrations,避免被 sys_menu 空表条件静默跳过 ### 其他 - 修复:将迁移278-313提取为独立方法 runSystemMigrations(),由 runMigrations() 无条件调用,确保每次启动都补齐生产库缺列。 - 生产库已手动 ALTER 补齐以下缺失列: - - resource_items: connection_type, priority, value_score, last_interaction_at, interaction_count - - health_report_drafts: file_hash - ## v1.0.1373 (2026-09-11) ### 其他 - 登录异常报错问题 ## v1.0.1372 (2026-09-11) ### Bug 修复 - 共餐配置保存改批量单次调用并修复双编码导致无法显示选中成员 ### 其他 - - 前端 meal-config.vue saveConfig 单次批量调用、不再二次 stringify、成功后 navigateBack - - DatabaseInitializer 迁移310 用 JSON_UNQUOTE 修复历史双编码 participant_member_ids - - 补充 API_REFERENCE.md /config/save 批量格式文档 - - 登录异常报错问题 ## v1.0.1371 (2026-09-11) ### Bug 修复 - DietMealConfigService 参数空值校验防 NPE(date_type/meal_type/participant_member_ids 必填) ### 其他 - 菌群报告解析成功 ## v1.0.1370 (2026-09-11) ### 新功能 - 系统提示词管理菜单 - 链路追踪 + LLM 可观测性(X-Request-ID trace_id + 日志落盘 + token 监控) ### 其他 - - Layout.vue 配置中心菜单新增「系统提示词」入口(perm: system:base) - - - cfc-langgraph RequestLogMiddleware 读取 trace_id 并写入日志 - - log_config.py 新增可选文件落盘(LOG_FILE 环境变量,默认关闭) - - llm/client.py 新增 LLM 调用监控(prometheus: 调用次数/耗时/token 用量) - ## v1.0.1369 (2026-09-11) ### Bug 修复 - 报告采集 prompt 缺少 agent 字段导致模型被覆盖 - 修复 ResourceService 中 PearlInteractionLogMapper 的 Bean 名冲突 ### 其他 - 导致推理被全局 primary agent(Sisyphus/ultraworker)覆盖, - 走 cursor-gateway/gpt-5.6 账户,返回 402 余额不足错误。 - 修复:在 prompt body 补加 body.put("agent", "report-collect"), - 确保每次推理都锁定到 report-collect agent,使用 agnes-2.5-flash。 - - 自动注入的 InteractionLogMapper Bean 默认名称 collision, - 启动时报 BeanNotOfRequiredTypeException。 - 修复:将字段名改为 pearlInteractionLogMapper,消除名称冲突, - 符合 AGENTS.md DI 规范(字段名与类型默认 Bean Name 一致)。 - ## v1.0.1368 (2026-09-11) ### 新功能 - 个人维度指标雷达图三层显示(实际值/人群位置/家庭占比) ### 其他 - - HealthDimensionController 新增 /api/dimension/radar-data 接口,一次性返回三组数据 - - DimensionScoreService/Impl 新增 calcPopulationScore/calcFamilyAverageScore 等 4 个方法 - - DatabaseInitializer 新增 seedMindActionWealthNorms(),向 health_norm_reference 插入 26 个心/行/富维度常模(4 年龄段 × 性别 all,P5-P95) - - 前端: - - RadarChart.vue 核心增强:新增 populationScores prop(蓝色虚线第三层)、familyScores(灰色虚线第二层)、图例区分 - - body-detail/wisdom-detail/energy/mind-detail/action-detail 5 个页面接入新接口,传递 scores/populationScores/familyScores - - utils/api.js 新增 getRadarData 封装 - - 效果:身/智/心/行 四维雷达图同时显示个人实际值、同龄同性 P50 人群位置、家庭成员平均分 - ## v1.0.1367 (2026-09-11) ### 新功能 - 饮食记录重设计 - 周历、食材预警、营养汇总、高频食材、当日记录、补打支持 ## v1.0.1366 (2026-09-11) ### Bug 修复 - gut-flora-foods-detail 成员 Tab 的 key 改为方法调用修复非 h5 警告 ### 其他 - 新增 getMemberKey(item) 方法统一生成成员 key(:class 内联表达式不受限未改) - ## v1.0.1365 (2026-09-11) ### 新功能 - 报告详情页新增快速分析浮层(免费版单次/付费版多轮) - api.js 新增 reportQuickAnalyze 封装 - 新增报告快速分析端点 /api/ai/report/analyze(免费版Redis每日1次+付费版多轮) - 引入 Redis 依赖与 RedisTemplate 配置(报告快速分析计数用) ### 其他 - - data quickAnalyze 状态对象(show/sending/messages/inputText/conversationId/usedToday) - - computed quickQuestions(3 个预设快捷问题) - - methods: openQuickAnalyze/closeQuickAnalyze/sendQuickQuestion/sendQuickAnalyze - - 模板:悬浮 FAB 按钮(仅 view 模式)+ 浮层(消息区/chips/输入框) - - 样式:fixed 定位 FAB + overlay + panel,flexbox 布局 - - - report/analyze:会员级别检查 + 免费版 Redis INCR 每日1次(fail-open)+ 免费版移除 conversationId 锁死多轮 - - 调 aiService.sendMessage(含记忆层+镜像),出参 stripTaskMarkers - ## v1.0.1364 (2026-09-11) ### Bug 修复 - meal-config 删除通配符选择器修复 WXSS 编译错误 ### 其他 - 其余元素已显式声明 box-sizing,删通配符无副作用 - ## v1.0.1363 (2026-09-11) ### 新功能 - 饮食推荐食材查询页重写 - 成员切换、状态标签、分数进度条、变化箭头、趋势图、按推荐值排序 ## v1.0.1362 (2026-09-11) ### Bug 修复 - 修复行维度页模板多根 + 章鱼图/珍珠图页面注册错位,恢复编译 ### 其他 - (提交 2b1fcdc96 引入的重复 /view 导致多根报错) - - pages.json 将 pearl-add-resource/octopus-add-effect/octopus-add-key-person - 从 pages/assessment 分包移到正确位置 pages/action-detail 分包 - (文件实际位于 action-detail,误注册导致 main.js 编译找不到页面) - ## v1.0.1361 (2026-09-10) ### Bug 修复 - 移除 pages/growth 分包残留的 growth-emotion-checkin 路由注册(页面已并入 mind-detail 情绪打卡),修复 HBuilderX 编译找不到文件 ## v1.0.1360 (2026-09-10) ### Bug 修复 - 移除不可行的会员订单归属校验 + 修复前端 add-effect 页面(toggleType/导入) ## v1.0.1359 (2026-09-10) ### 新功能 - 关键人拓展章鱼图全链路上线(替换旧章鱼图 + 成效/关键人/分析/拓展 + 三层Canvas) - 提醒列表页 + PearlController 5 接口补齐 + pages.json 路由修正 - 登记资源页 25 类连接类型分组选择器 - PearlDiagram 两层同心圆重构 + 父组件 overdueMap 集成 - 前端 API 方法与提醒页路由注册 - 每日定时生成互动提醒任务 - 新增 3 实体 + 3 Mapper(octopus_effect_record/octopus_key_person/octopus_effect_key_person) - ResourceService 25组聚合/互动/提醒/价值分 - ResourceItem 实体新增社会连接字段 - ConnectionType 枚举与互动/提醒实体 Mapper ### 文档 - API_REFERENCE 同步珍珠图 25 类与新增接口 ### 其他 - db: 迁移305-307 关键人拓展 3 表(octopus_effect_record/octopus_key_person/octopus_effect_key_person) ## v1.0.1358 (2026-09-10) ### 新功能 - 复用现有 TongueDiagnosisAgent 路由,补全视觉 LLM 实现走 LangGraph ### 其他 - - src/graphs/tongue: load_image 支持 data URL - - src/app.py: 移除与 app/api/tongue.py 冲突的死路由 - - AiGateway.analyzeTongue: 改 multipart 表单提交(file+user_id),解包 data - - AIService/TongueDiagnosisService: 传字节而非 base64 - - compose: image v7 - ## v1.0.1357 (2026-09-10) ### 文档 - 报告快速分析实现计划 + PROJECT-OVERVIEW 索引更新 ### 其他 - - 复用 aiService.sendMessage(含记忆层+镜像),LangGraph 零改动 - - 免费版 Redis INCR 每日 1 次 fail-open,付费版多轮 - ## v1.0.1355 (2026-09-10) ### 新功能 - 舌诊迁移至 LangGraph(glm-5 视觉模型),废弃 Dify 舌诊 ### 其他 - - llm/client: 新增 get_vision_llm() 复用网关 key,默认 glm-5(实测 MiniMax 后端 DNS 不可达) - - AiGateway: 新增 analyzeTongue(imageBase64) 调 LangGraph 舌诊 - - AIService.sendTongueDiagnosis: 改走 AiGateway,删除 Dify 调用 - - TongueDiagnosisService: parsePreview 读取 MultipartFile 转 base64 - - application.yml: 删除 dify.tongue-api-key 配置 - ## v1.0.1354 (2026-09-10) ### Bug 修复 - 戒备食材链路修复——caution-detail key 编译报错 + gut-flora 按报告主体传参 ### 其他 - 微信小程序模板编译器不支持,改为 getMemberKey(item) 方法调用 - - gut-flora-detail 戒备食材数量与戒备页跳转按报告 subjectId 传参, - 修复家长账号查询不到孩子推荐指数的问题 - ## v1.0.1353 (2026-09-10) ### Bug 修复 - 修复 tianpan 首页 loading-overlay 选择器丢失导致的 CSS 编译失败 ### 其他 - - 补回选择器,恢复正常编译(SyntaxError Unexpected }) - ## v1.0.1352 (2026-09-10) ### Bug 修复 - 修复健康报告解析入库失败(draftId 84 两个根因) ### 其他 - 防止 opencode 回退解析产出的超长 status 导致 'Data too long for column status' - - DatabaseInitializer 迁移307: health_gut_flora.bacteria_name 改为可空(LLM 偶发缺菌种名触发 NOT NULL 冲突) - - DatabaseInitializer 迁移308: health_indicators.status 放宽到 VARCHAR(100) - - schema.sql 同步 bacteria_name NULL + status VARCHAR(100) - ## v1.0.1351 (2026-09-10) ### Bug 修复 - 健康页推荐阅读增加更多入口,修复字段风险详情溢出 ### 其他 - - parent-index 推荐阅读区块增加'更多'入口 - - gut-flora-risks-detail 增加 content-inner 包裹修复 scroll-view 内容溢出 - - growth-main 饮食推荐入口回归 /pages/diet/index - - - 成长页心情记录入口跳转至 mind-detail 情绪打卡页并透传 memberId - - 情绪打卡页新增近期心情历史列表(/api/mind/checkin/list 前5条),兼容 Plutchik 与成长页情绪词表 - - 修复提交成功后跳转死链 /pages/mind/emotion-trend 与趋势页返回死链 /pages/mind/emotion-checkin - - 情绪趋势页支持 memberId 参数兜底与成长页情绪词表标签映射 - ### 新功能 - 情绪打卡合并成长页心情记录,支持近期心情历史查看 ## v1.0.1350 (2026-09-10) ### Bug 修复 - 修复 ContactHelpLogService Map.of() Java9+ 语法及 Comparator 类型推断问题 ## v1.0.1349 (2026-09-09) ### 新功能 - 关系三图——章鱼图(谁帮过我)/珍珠图(我有什么)/能力图(谁会什么) 全链路上线 ## v1.0.1348 (2026-09-09) ### Bug 修复 - 情绪识别 DeepFace 置信度归一化 + 权重预置 ### 其他 - - detector_backend 用 opencv(内置 Haar Cascade,无需额外 mediapipe 依赖) - - Dockerfile: 预置 DeepFace FER 权重到镜像(避开 GitHub 下载限速) - - docker-compose.yml: pin 镜像 v3 - - 新增 .dockerignore 加速构建 - ## v1.0.1347 (2026-09-09) ### Bug 修复 - 修复 onLoad/onShow 生命周期双发 guard 变量名对齐规范 - 修复删除推荐码后 logout 方法合并错误 ### 新功能 - 新建 team-tree 页面 + pages.json 注册 + API_REFERENCE 更新 - 新增我的推荐人卡片与团队层级入口 - 新增 getTeamConsumption、getMyReferrer、getTeamTree - 删除富页面推荐码横条 - 新增 /api/commission/team/consumption、/my-referrer、/team/tree 接口 - 实现 getTeamTree 树形扁平数据(含 memberConsumption、myCfEarnedFromMember) ### 其他 - - 注册 team-tree 到 pages/profile root - - 更新 API_REFERENCE.md 新增 4.21 扩展说明及 3 个新接口 - - 修复 wealth/index.vue 删除推荐码后 logout 语法错误 - ### 重构 - getTeamList memberConsumption 对齐 getTeamTree 使用 Integer 类型 ## v1.0.1346 (2026-09-09) ### 新功能 - 新用户引导页强化 - 从痛点切入强调'看见和了解' - 报告编辑页支持成员选择/重选/解绑 + 删除重算维度 ### 其他 - - OnboardingGuide: 家长端新增第1步痛点开场'你真的了解孩子的状态吗?',子步骤强调'五维沙盘看见全家''小任务大改变''心愿墙看得见努力';孩子端新增'你的每一点成长,都被看见' - - 首页Hero/登录页: slogan统一改为痛点钩子'孩子的情绪、习惯、能力,你真的看见了吗?',sub-slogan强化痛点叙事'情绪低落没察觉、习惯变化没注意、能力短板没发现——问题爆发才着急。先看见,先了解,不等问题发生。' - - - /report/edit 移除 subjectId 必填,支持 null(解绑)/ 0(不变)/ 正值(绑定或切换) - - updateReportFromPayload 按 subjectId 语义重算维度分: - * 正值:绑定或切换成员,重算新成员 + 原成员(含食材推荐) - * null:解绑,重算原成员(移除报告影响) - * <=0:保持不变(子页面局部编辑不触碰绑定) - - deleteReport 删除后重算原绑定成员的维度分(含食材推荐) - - 新增 FoodRecommendService 注入(@Lazy 打破循环依赖) - 前端: - - report-detail.vue saveEdit 未选成员传 null(解绑),面板加「不绑定成员」选项 - - gut-flora-detail.vue draft 模式补成员选择面板 + doConfirm 传 subjectId - 行为:未选成员 → 报告不纳入任何用户/家庭维度计算;选中 → 纳入并重算;删除 → 重算 - ## v1.0.1345 (2026-09-09) ### 新功能 - 知识中心改名知识分享 + 卡片显示阅读次数总时长 - 实现 getMyReferrer 获取我的直推人信息 - 实现 getTeamConsumption 团队消费统计(按 referral_tree level 聚合,fulfillStatus=completed) - 注入 ProductOrderMapper、ReferralTreeMapper 到 CommissionService ### 其他 - - article-center/index.vue: 导航栏标题/注册标题改为知识分享,卡片 footer 新增 ⏱ 总时长 - - discover/index.vue: 区块标题改为知识分享,推荐卡片 meta 新增 👁 阅读次数 + ⏱ 总时长 - - 新增 formatDuration() 前端格式化:<60分钟显示分钟,≥1小时显示小时+分钟 - ### Bug 修复 - 修复预存编译错误(HealthReportDraft 重复字段、DatabaseInitializer 缺 logger) ## v1.0.1344 (2026-09-09) ### 文档 - 团队层级树实现计划(13 Tasks,后4+前7) ## v1.0.1343 (2026-09-09) ### 新功能 - 菌群详情页标签增加分类数量统计,列表人群/检出/丰度/正常单行展示 ### 其他 - Co-authored-by: Sisyphus - ## v1.0.1342 (2026-09-09) ### 文档 - 修正团队层级设计 - 订单状态字段/树响应字段/UI实现 - 团队层级树与推荐关系可视化设计文档 ### 其他 - - 树响应 nodes[] 新增 memberConsumption、myCfEarnedFromMember 字段 - - 根节点('我')不包含在 nodes 数组中 - - 更新 UI 实现代码片段(无根节点、flex column-reverse、L1为起点) - - audit 通过(0 error) - - - 更新 PROJECT-OVERVIEW.md 记录 - - 涵盖:富页面去推荐码、我的页面推荐人卡片+团队入口、树形页面从下往上生长、团队消费额分级统计(默认3级可配)、直推成员消费/CF明细、4个后端接口新增/扩展 - - audit 通过(0 error) - ## v1.0.1341 (2026-09-09) ### Bug 修复 - 首页分享卡片去掉不存在的 imageUrl 避免空白 ### 其他 - 改为不指定 imageUrl,微信自动截取当前页面截图作缩略图。 - ## v1.0.1340 (2026-09-09) ### 文档 - 同步天盘接口文档 ### Bug 修复 - recalibrate接口补充权限检查 - 上传报告支持聊天记录选取图片,移除从文件夹选取入口 - family-members 移除多余括号修复编译错误 ### 新功能 - 新增家庭传统命理页面+入口卡片 - 天盘首页canvas节点标注生肖灵数+成员弹窗增强 - 扩展天盘服务支持五维基础分展示和重算接口 - 新增五维基础分计算服务FamilyMemberDimensionBaseScoreService - 新增五维基础分表及迁移305 ## v1.0.1339 (2026-09-09) ### 新功能 - 新增5个认知测试页面 + 自测提交API ### 其他 - - CognitiveService.submitSelfTestScore() 支持无档案时自动建表 - - 前端新增 5 个认知测试页:逻辑推理/感知觉/记忆力/空间思维/加工速度 - - 训练中心入口新增 5 个测试卡片 - - 健康页面 tab 顺序调整为:健康/认知/财富/社会性/心理 - ## v1.0.1338 (2026-09-09) ### 文档 - 更新天盘设计——五维基础分改为落库+重算接口 - 家庭天盘传统文化+五维基础分设计文档 ## v1.0.1337 (2026-09-09) ### 新功能 - 情绪识别接入 DeepFace (LangGraph + 后端接口) ### 其他 - - cfc-backend: 新增 EmotionRecognitionController(文件上传/URL 两种方式) - - cfc-backend: AiGateway 新增 analyzeEmotion / analyzeEmotionByUrl 方法 - - docs: 新增舌诊情绪识别技术选型报告,更新 API_REFERENCE.md - ## v1.0.1336 (2026-09-08) ### 新功能 - 报告解析迁移到 LangGraph - 新增 LangGraphReportParseService ### 其他 - - ReportCollectService: 已知类型解析改走 langgraph_script,空回退 opencode - - ReportFingerprintService: 脚本缺失日志降为 debug - ## v1.0.1335 (2026-09-08) ### Bug 修复 - 统一文章/商品/活动页海报入口按钮为「生成海报」胶囊样式 ### 新功能 - ReportCollectService 大改 + 五维维度白名单校验(DimensionCodes) ### 其他 - - DimensionCodes: 五维维度码白名单校验,防止 JSON 路径注入导致 500 - - ActivityService/ProductService/ArticleService/TaskService/ContentRecommendService: 相关适配改动 - ## v1.0.1334 (2026-09-08) ### 新功能 - 互动记录支持照片/视频/音频附件上传及多项优化 ### 其他 - 后端 interaction_logs 加 photo_urls/video_url/audio_url 列,迁移303) - - 互动记录:修复保存失败(fromMemberId==toMemberId 后端拒绝,改为 - 当前用户发起/toMemberId=选定成员,互动对象列表过滤本人) - - 家庭成员页:列表隐藏当前登录用户(filteredMembers) - - 成员选择进入记录互动时隐藏互动对象选择器,默认选定的成员 - - relation-detail 互动记录入口修正路由(family→action-detail) - - 报告上传:合并 DAN 与健康报告上传页,指纹自动识别类型,取消手动 - 选择报告类型/维度,新增从聊天/拍照/文件夹三种上传方式 - - 推荐人绑定:bindReferralIfNotSelf 防自邀打扰(缓存本人邀请码, - 邀请码==本人时静默跳过),登录/分享/新用户流程接入 - - 家庭邀请冷启动识别 token/familyInviteCode 参数,放行落地页 - - user-edit 新用户流程:家庭身份选择置顶、提交申请/跳过悬浮底部 - - invite/join 先初始化登录状态再校验家庭邀请 - - 录入页面 & 深层分享参数兜底 & 会员升级等文案微调 - - - user-edit.vue: 3个提交按钮加 :disabled,saveUserInfo/submitTeacherInfo/joinFamilyAction 加 early-return 守卫 - - audit script: 守卫白名单补充 _pageShown,修复 report-list.vue 误报 ERROR - - 登录异常报错问题 ### Bug 修复 - LoginResultDTO 补 phone 字段修复编译错误 - 登录/资料页防重复提交 + 修复重复调用审计 ## v1.0.1333 (2026-09-08) ### Bug 修复 - 家庭成员管理页过滤本人、展示与当前用户的关系标签 ### 其他 - - family-members.vue: 成员数/空态改用 filteredMembers - - UserService.getVisibleMembers: 查询 viewerFm,为 parent 源成员补算 relativeLabel(丈夫/妻子/儿子/女儿等) - ## v1.0.1332 (2026-09-08) ### 新功能 - 成长页跳转带 memberId + 食材页分类/排序/溢出修复 - 健康报告食材推荐接口支持 memberId 查询孩子视角 ### 其他 - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ## v1.0.1331 (2026-09-08) ### 文档 - 新增运营方略(1+N矩阵)与同类账号探索报告 - 品牌定位与竞品依据 - 新增官方号搜索收割内容第一批 - 5篇用户视角SEO布局 - 发布指南新增内容创作第一原则 - 讲用户想听的(4信号源+主语转换法+自检清单) ## v1.0.1330 (2026-09-08) ### 新功能 - 成员被邀请走时原家庭付费会员权益合并到邀请人家庭 ## v1.0.1329 (2026-09-08) ### Bug 修复 - AiGateway 超时分离 - connect 快速失败 + read 覆盖 LLM 推理耗时 - 会员升级自动发JOIN券/用户列表倒序/商品券支付可选/兑换提醒移至支付 ### 其他 - - application.yml: 新增 python.read-timeout-ms: 120000 - - 前端 api.js: request 支持 timeout 选项(不混入 query),问卷接口加 130s 超时 - - grantFamilyJoinCoupons 发放 JOIN 赠券(幂等防重), 记录发券结果 - - AdminController /users: 无 sort 参数时默认 orderByDesc(createdAt) 倒序 - - CouponService.toCouponVO: 补 productId 字段, 前端可按商品匹配券 - - checkout.vue: ownedCoupons/availableCoupons 对 PRODUCT 券按当前商品 - productId 匹配(原来一刀切过滤非 ALL 券导致商品券选不到); 新增 - affordableExchangeCoupons - CF 不足时不再显示兑换提醒 - - product-detail.vue: 移除商品页积分兑换优惠券区块, 兑换提醒移至支付时 - (无对应券+CF 足够才提示) - ## v1.0.1328 (2026-09-07) ### Bug 修复 - 修复已绑定推荐人重复提示与新用户信息补充页问题(boundInviteCode防重+新用户流程隐藏浠宝福宝选择+家庭身份选择回显) ## v1.0.1327 (2026-09-07) ### 新功能 - 登录后首页接入新手引导(成长礼包进度条+首次登录3步引导浮层+添加成员引导) ### 其他 - 登录异常报错问题 ## v1.0.1326 (2026-09-07) ### Bug 修复 - 修复邀请码解析失败导致分享推荐人无法绑定 ### 其他 - 前端 7 处却按对象取 res.data.referralCode/code,恒为空导致分享 path - 拼不出 inviteCode,新用户打开无码注册后无推荐人。新增 - extractReferralCode 统一解析(兼容字符串/对象),并修正 share-mixin - 默认分享 path 死路径 /pages/index/index -> /pages/index-home/index。 - - 菌群检测问题 ## v1.0.1325 (2026-09-07) ### Bug 修复 - 管理端接口权限加固 - 用户/孩子/任务模板端点校验平台角色 ### 其他 - - /users /users/create /users/{id} 等 13 个管理端点加 @RequestAttribute role/roles 校验 - - 防止匿名或 C 端角色越权调用管理接口 - ## v1.0.1324 (2026-09-07) ### Bug 修复 - 分享文章/小程序冷热启动捕获邀请码,新用户注册登录后自动绑定推荐人 ## v1.0.1323 (2026-09-06) ### Bug 修复 - 首次注册完善信息页移除会员提醒并放开全部补充字段 ### 其他 - - 会员锁定提示加 !isNewUserFlow 条件,注册流程不再推送开通会员 - - 移除所在地区对新用户的必填星号,所有字段保持可选 - ## v1.0.1322 (2026-09-06) ### Bug 修复 - FamilyMember.memberType 标记 @TableField(exist=false) 不落库 ### 其他 - - DatabaseInitializer: 补充生产库对账记录(member_type 手工 ALTER 说明) - ## v1.0.1321 (2026-09-06) ### Bug 修复 - 未登录点分享内容不再弹登录失效 + 新用户注册后绑定推荐人 ### 其他 - - user-edit 新用户流程保存后消费 inviteCode 绑定推荐人,修复注册后推荐人丢失 - ## v1.0.1320 (2026-09-06) ### 文档 - 新增小红书运营方略 - 人群拓展与内容策略 + 运营知识库(营销逻辑/品牌升级/科学种草实战) ## v1.0.1319 (2026-09-06) ### 新功能 - 登录前首页重构 - 首屏呈现平台定位/价值主张/三步上手引导 ## v1.0.1318 (2026-09-06) ### Bug 修复 - 操作日志列表排序生效 + 搜索框高度调整 ### 其他 - - UserOperationLogService.queryLogs 加 sortSpecs 参数,显式 SortUtil.applySort - (不再依赖 SortContext ThreadLocal 时序,确保排序可靠生效) - - OperationLogs.vue 搜索表单加 size=small 统一高度 - ## v1.0.1317 (2026-09-06) ### Bug 修复 - 落地页按格式分流校验邀请令牌与短邀请码 ### 其他 - 按格式分流:32位hex走 validateInvitation,否则走 validateFamilyCode。 - ## v1.0.1316 (2026-09-06) ### 新功能 - 首页 Next Best Action 引导条 - 解决首屏'不知道该干啥' ## v1.0.1315 (2026-09-06) ### 文档 - 补充家庭成员切换/回收箱接口文档 ### 新功能 - 新增主动退出与回收箱回收接口 - 邀请切换改为单成员切换语义并接入非微信限制 - 实现成员切换/退出/回收核心逻辑 - 新增收回家庭人口券方法支持成员被踢出时回收 - 迁移300为family_members添加status列支持回收箱 ## v1.0.1314 (2026-09-05) ### 新功能 - onboarding读取侧完整迁移——getProgress读tasks表+claim自动发放+模板种子数据 ## v1.0.1313 (2026-09-05) ### Bug 修复 - TaskService 注入 UserService 加 @Lazy 打破循环依赖 - OnboardingService 注入 TaskService 加 @Lazy 打破循环依赖(userService↔onboardingService↔taskService) - 修正 DatabaseInitializer 候选记录第3条迁移编号引用(298→299) - 清理 DatabaseInitializer 排查残留注释(PROBE)与迁移294重复日志行 ### 其他 - 导致应用启动失败 APPLICATION FAILED TO START,加 @Lazy 打破 - ## v1.0.1312 (2026-09-05) ### Bug 修复 - 清理 DatabaseInitializer 迁移299残留垃圾行 + npm 构建版本更新 ## v1.0.1311 (2026-09-05) ### 新功能 - 商品详情页迁移至 discover-detail + 微信订单中心商品明细 ### 其他 - - 后端: PaymentService 支持微信订单中心商品明细(goods_detail)展示 - - 活动/会员/商品订单支付描述优化(用真实名称替代固定文案) - ## v1.0.1310 (2026-09-05) ### 文档 - 用户身份标识 userId/memberId 使用指南(rebase 带入的远程文档) - 统一任务系统实施完成,更新项目全景索引 ### 新功能 - 前端统一任务中心——tasks.vue聚合进度型任务,daily-tasks.vue重定向 - FamilyContextService AI任务查询改查tasks表(source_type=ai) - 一次性迁移——growth_task DAILY定义迁入admin_task_templates(旧表只读保留) - 新人引导复用任务模板+落tasks表(source_type=onboarding,顺序链前置解锁) - GrowthTask DAILY/AI任务迁入TaskService(tasks表统一执行),旧Service委托+废弃 - CreateTaskDTO支持source_type/is_daily_progress/target_value透传 - admin_task_templates新增onboarding_sequence字段(新人引导复用任务模板) - tasks表新增is_daily_progress/target_value字段,source_type扩展(统一任务系统) ## v1.0.1309 (2026-09-05) ### 文档 - 添加测评案例与参考资料 PDF(吴一墨/廖云泽菌群检测、方案) ### 其他 - - manifest.json: 移除 lazyCodeLoading 配置 - - - - join.vue: onLoad 解析邀请 token(含 scene invite= 前缀),被邀请用户跳转 user-edit 完善家庭身份并提交加入申请 - - login.vue: 登录完成后检测待处理家庭邀请,直接跳转 user-edit 续接流程 - 后端: - - CommissionService: 新增 bindReferrerByUserId 幂等绑定方法(已有推荐人忽略),抽取 applyReferralSideEffects 复用副作用 - - FamilyJoinRequestService: 审批通过后绑定平台推荐人为邀请人的上级推荐人(仅 token 路径、已有推荐人不动、邀请人无推荐人则跳过、失败不阻断审批) - - 新增 FamilyJoinRequestServiceReferrerBindTest 5 用例覆盖需求规则 - - - CircleService/CirclePostService: 待审核成员查询、成员审批逻辑 - - circles.vue: 圈子列表页完善(待审核审批交互) - - circle-feed.vue: 圈子动态页增强 - - parent-index.vue: 圈子排名改为先取圈子列表再查排名 - - api.js: 新增 getPendingCircleMembers / approveCircleMember - - docs/analysis: 圈子功能分析文档 - ### Bug 修复 - 切 Tab 返回时同步 currentRole 登录态 - 家庭邀请分享流程修复 + 平台推荐人绑定规则(需求) ### 新功能 - 圈子成员待审核审批 + 圈子排名接入首页(前后端) ## v1.0.1308 (2026-09-05) ### Bug 修复 - Critical 修复——isSwitchable 设置 + ProfileHeader 走新切换流程 - 退出切换密码校验失败时补充用户提示 ### 重构 - switchToChildWithCheck 文案与注释对齐 member 语义 - children 表下线,ChildMapper 标注废弃,AccountCleanup 迁移至 family_members - role=child 判断清理(历史兼容注释 + InviteCard role 改为 parent) - FamilyMemberStrip 切换入口仅对不可登录成员开放 - 切换视图统一 member 语义,退出切换接入密码校验 ### 新功能 - 存量 role=child 账号强制迁移为成员模型(迁移298) - 切换入口确认提示 + 退出切换统一密码校验 - 恢复退出切换接口 switch-back-verify(带密码校验) - 新增切换保护密码设置接口 set-switch-password - phoneLogin 复用无 openid 的预留成员用户并补 openid - addMember 同步创建无 openid 的 user 记录(不可登录成员) - switchToMember 仅允许切换不可登录成员 - FamilyMemberVO 新增 isSwitchable 字段 - FamilyMember 新增 memberType 成员类型字段与可切换判定 ### 文档 - executorType/creatorType/memberType 业务字段注释统一为『非登录用户』语义 - 成员模型重构——清理孩子/child角色定义实现计划 ## v1.0.1307 (2026-09-05) ### Bug 修复 - 修复选择规划师页调用available-guides缺少packageId报错 ### 其他 - packageId 缺失报错,且返回字段 guideId/nickname 与页面模板 id/name 不匹配)。 - 改用后端已有的 /api/health-plan/available-teachers 接口,返回 id/name/isBound - 等字段,与页面模板完全匹配。api.js 新增 getAvailableTeachers(familyId) 封装。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1306 (2026-09-05) ### Bug 修复 - 最终审查6项修复——废弃旧方法/修正迁移296/补充状态机测试/更新注释 - cancelPlan级联清理方案未完成任务 - purchasePackage补幂等复用并生成任务,消除active空壳 ### 测试 - 统一任务生成器幂等/生成/级联清理单元测试 ### 新功能 - 迁移296/297修正存量健康/认知训练方案任务source_type - 认知训练方案任务补设source_type=training_plan可溯源 - 健康方案任务source_type改为health_plan,消除与plan的ID域冲突 - 状态机收敛generated→active,confirm改走applyAndActivate - 新增统一任务生成器generateTasksFromTemplate ### 重构 - activate改用统一任务生成器,删除重复模板生成逻辑 ## v1.0.1305 (2026-09-04) ### 新功能 - 迁移295补齐task_plan_instances审核/确认/激活列 - 后台全部列表页支持点击列头排序 ### 其他 - - SortInterceptor 从缓存 body 读 sort 写入 SortContext(原只读 URL query, - 前端发 body 永远读不到),激活代码库 307 处已有 SortUtil.applySort 无参调用 - 前端: - - SortMixin 补 onSortToggle 方法(修复 20 个文件 onSortToggle is not a function) - - SortMixin 新增 reloadAfterSort,兼容 loadList/loadData/loadTasks/loadPlans - 四种加载函数名,解决点击表头不刷新问题 - - 107 个列表页接入 SortMixin(admin/teacher/nutritionist/root 各模块) - - 3 个位置参数 API 封装(guidePackage/guideTask/teacherMessage)加可选 sort 参数 - 跳过:配置页/详情页/组件/仪表盘/树形表等非列表页(23 个) - ## v1.0.1304 (2026-09-04) ### 文档 - 方案转任务统一设计 + 实现计划(source_type拆分 + 统一生成器 + 状态机收敛) ### 其他 - - CommissionService/UserService: 用户不存在场景补充 warn 日志 - - DatabaseInitializer: 生产库对账候选风险记录(注释) - - AGENTS.md: 环境区分说明(测试库 vs 生产库) - - cfc-web: 版本号 1.0.1300 + CHANGELOG 更新 - ## v1.0.1303 (2026-09-04) ### 文档 - 新增 xhs-daily-report 计划文档 - 新增小红书便秘腹泻帐号起号方案与计划 - 新增小红书内容 D33/D34 与发布检查清单 ### 新功能 - 日报采集点赞/收藏/分享字段,统计未回复评论数 - 长任务进度上报与无限等待,bot 接入进度回调 ### Bug 修复 - 修复家长成员VO缺少memberId/name字段,导致生成方案页面无法正确识别家长成员 ## v1.0.1302 (2026-09-04) ### 文档 - 统一任务系统实现计划(9任务:数据层/服务层/迁移/前端) ## v1.0.1301 (2026-09-04) ### 文档 - 统一任务系统设计规格(多套任务体系合并为单表 tasks) ### 新功能 - 调研页多成员 tab 页签样式 + 进入问卷时初始化当前成员表单 ## v1.0.1300 (2026-09-04) ### 新功能 - 美化方案制定页 - 目标输入框加大、下一步按钮缩小、空成员跳转成员管理页 ## v1.0.1298 (2026-09-04) ### 新功能 - 合并重复的文章列表页为知识中心,统一入口到 article-center ### 其他 - 废弃 mind-extra/articles 和 mind-detail/articles,6 处入口重定向并删除注册 - ## v1.0.1297 (2026-09-04) ### Bug 修复 - moveSortOrder 排序方向与 getFeatured 对齐(published_at DESC) ### 新功能 - 文章推荐排序——精选顺序可定义(sort_order + 上移/下移) ### 其他 - - getFeatured/getPublicList 改按 sort_order ASC 排序 - - toggleFeatured 设为精选时追加队尾,不抢占既有顺序 - - 新增 POST /api/admin/articles/move 上移/下移 + 全局重编号 - - 管理端 ArticleManage 精选行显示上移/下移 + 序号徽章 - ## v1.0.1296 (2026-09-04) ### 文档 - 文章推荐排序实现计划 ### 新功能 - 后台家庭成员改为仅区分管理员/成员 ### 其他 - - AdminController.getFamilyMembers 返回统一 members 列表(合并 family_members + users 家长),保留 parents/children 兼容字段 - - 新增 setMemberAdminRole 接口:设/撤管理员,users 来源成员自动建记录持久化角色 - - Families.vue 查看成员弹窗合并为单一列表 + 角色标签/操作按钮 - ## v1.0.1295 (2026-09-04) ### 文档 - 文章推荐排序实现计划 ### Bug 修复 - 修复4个后台列表页点击排序失效,清理2个页面的死SortMixin代码 ### 其他 - 导致 AdminRecipe、AdminCoupon、AdminAssessmentOrder、AdminTask、 - AdminSubscription 五个接口排序不生效。 - 后端修复(5个文件): - - AdminRecipeController / AdminCouponController / AdminSubscriptionController: - 从@RequestBody读sortSpecs,调用SortUtil.applySort(wrapper, sortSpecs, null) - - AdminRecipeController / RecipeService:新增listByMealType(mealType, sortSpecs)重载, - 原无参方法保留供MealRecommendService调用 - - AdminController.getTasks() / getAssessmentOrderList():同模式替换SortUtil.applySort(wrapper) - - CouponService:新增listAll(sortSpecs)重载,使用QueryWrapper+SortUtil - 前端修复(2个文件): - - AssessmentOrders.vue / SubscriptionManagement.vue: - 移除死SortMixin(无排序触发逻辑),清理sort-header/sort-tag CSS - ## v1.0.1294 (2026-09-04) ### Bug 修复 - 移除 HealthReport 重复的 reportFormat 字段,修复 Lombok 编译失败 - 登录页改浅色背景深色文字单页布局,首页移除主动健康闭环与五维能量区块 ### 文档 - 文章推荐排序(精选顺序可定义)设计规格 ## v1.0.1293 (2026-09-04) ### 文档 - 文章推荐排序(精选顺序可定义)设计规格 ### Bug 修复 - 迁移290修正(6表21列) + 迁移292 health_status 补 member_id 成员级归档 - 迁移290修正 - 实体补@TableField列名映射 + schema同步 + auto bump ## v1.0.1289 (2026-09-04) ### Bug 修复 - 迁移290 批量补齐12表33列真实缺列(防Unknown column)+ auto bump ### 样式 - 右上角个人/全家切换按钮更醒目(渐变胶囊+阴影+放大) ### 其他 - redesign: 重构登录前首页与登录页,引入主动健康闭环×五维框架 ### 新功能 - 个人/全家切换移到控件右上角,替换原徽章文案 - 首页能量沙盘个人/全家切换始终显示,成员<2时点全家弹提示引导添加 ### 文档 - 添加 log-to-human 团队级技能文档 ## v1.0.1288 (2026-09-04) ### 样式 - 右上角个人/全家切换按钮更醒目(渐变胶囊+阴影+放大) ## v1.0.1287 (2026-09-04) ### 其他 - redesign: 重构登录前首页与登录页,引入主动健康闭环×五维框架 ## v1.0.1286 (2026-09-03) ### 新功能 - 个人/全家切换移到控件右上角,替换原徽章文案 ### 文档 - 添加 log-to-human 团队级技能文档 ## v1.0.1285 (2026-09-03) ### 新功能 - 首页能量沙盘个人/全家切换始终显示,成员<2时点全家弹提示引导添加 ## v1.0.1284 (2026-09-03) ### Bug 修复 - health_reports 补 report_format 列(迁移289)+ auto bump ## v1.0.1284 (2026-09-03) ### Bug 修复 - health_reports 补 report_format 列(迁移289)+ auto bump ## 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) ### 新功能 - 饮食推荐幂等保存(同日同mealType更新)+ 前端配套 + bump ### Bug 修复 - 移除 ProductEdit.vue 中误粘贴的 AI 规划 Markdown 文本,修复构建失败 - 健康报告列表删除按钮改为左滑出现,修复未注册组件导致按钮显示在行上方 ## v1.0.1282 (2026-09-02) ### Bug 修复 - 饮食推荐查询改为 selectList 避免 NPE + auto bump version - 会员中心等级列表/统计/升级记录N+1三处修复 - 废弃旧套餐支付链路,修复组合商品 bundle 部分扣减 bug - 修复最终审查问题(幂等唯一索引兜底 + NPE判空 + delete参数校验 + 前端路由/时间格式) - CfCommissionServiceTest 改调生产 CfReferralService.matchRateTier(注入 mock Mapper,消除 test-the-copy 反模式) - PromotionTierService.refreshRate 无匹配时重置 tier 为 R0 - 修复 CfCommissionService.getSysBps 空 catch 违反规格 - 修复推荐树 level 倒置 + referral_tree 唯一键改为 (parent_id, child_id) 联合 ### 其他 - (listMembershipLevels/getMembershipStats 走拦截器返回已解包 {code,data}, - 误按裸 axios 判定 res.data.code) 导致等级配置列表永远为空、统计卡不更新 - - StatsController: freeCount 查询 .or() 位置错误导致恒为 0,改为嵌套 and(w->eq.or.isNull) - - upgrade-records 后端批量填充 userName,消除前端逐条调 user/search 的 N+1 请求 - - 删除测试中引用不存在方法 getAdvicesForLowScores 的死桩,恢复 testCompile - - - PackagePurchaseController.createOrder/getOrder:返回 410 标记废弃 - 保留 getPackagePrice/getAvailableGuides(测评链路 VirtualPayService 复用) - - 删除 PackagePaymentService + PackagePaymentServiceInterface(已无调用方) - - ProductOrderService.handlePaymentSuccess 加 @Transactional, - 修复 bundle 多子商品库存扣减部分失败残留(原子性保障) - - PackagePaymentController /wechat params 空格路径 bug 修复 - - 清理前端废弃 API createPackageOrder 及对应测试用例 - - 优化修复 - 优化修复 - 优化修复 ### 文档 - API 文档补充 CF 分佣/转让/阶梯配置接口 + 单元测试 - 修正任务1 schema.sql 同步为两张新表(cf_rate_tier/cf_transfer_record) ### 新功能 - 小程序推广中心切换到 CF 分佣接口(团队规模/比例/流水/钱包) - 管理端 CF 返佣阶梯配置接口(list/save/delete) - CF 成员间转让接口(同家庭校验 + 双账本 + 流水) - 用户查询接口(团队规模/返佣比例/CF汇总/流水) - 全部订单结算迁移到 CfCommissionService(统一 CF 值分佣),废弃旧佣金调用 - 推荐绑定物化推荐树 + 团队规模全层级统计 + 阶梯比例刷新(替代 promotion_tier_config) - CfCommissionService 统一分佣核心(双返/只返推荐人/同家庭上溯/阶梯比例) - CfReferralService 推荐树物化 + 全层级团队规模 + 阶梯比例匹配 - PlatformPointsService.earn 增加 (ref_type, ref_id) 幂等去重 - 新增 cf_rate_tier 与 cf_transfer_record 实体/Mapper - 数据库迁移:cf_rate_tier/cf_transfer_record 建表 + promotion_tier 精简 + coupon 加 family_id ## v1.0.1281 (2026-09-02) ### 其他 - 内容: 评论通知相关收尾 - opencode_client 过滤纯空白回复; listener 转发消息到 opencode 会话生成回复; vbs 注释编码修正 - 内容: 评论通知改造: 评论数增量检测+读取新评论+opencode生成针对性回复建议, 无新增不推送; 修复 xhs_feishu/opencode_client import 时劫持 stdout 导致输出关闭 - 内容: 评论通知按笔记生成针对性回复建议 - 内容: 评论通知加回复建议 + 三张整页截图 + 字段顺序修正 - 内容: 三张整页截图(首页/笔记/账号概览) + 评论通知改简洁文本 + 字段顺序修正 - 内容: 修正笔记列表字段顺序(阅读/评论/点赞/收藏/分享) - 内容: 添加评论检测脚本和启动脚本 - 内容: 修复数据采集双周期 + 截图上传 + 近30日tab点击等待 - 内容: 修复数据采集近7日/近30日双周期 + 截图上传修复 - 内容: 添加机器人启动脚本(bat/vbs)供计划任务调用 - 内容: 修复机器人reply接口多余receive_id_type参数 - 内容: 小红书数据机器人双向监听(飞书长连接WebSocket版) - 内容: 修复日报脚本运营文案目录路径计算 - 内容: 小红书创作者中心每日日报采集与飞书推送模块 ## v1.0.1280 (2026-09-02) ### 文档 - 饮食页面换一批/生成食谱端到端修复实现计划 ### 其他 - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### 新功能 - 前端生成食谱/换一批取值修复 + 添加食材弹窗搜索 - 生成食谱使用所选食材+共餐参与者,归一化LangGraph菜单 - 换一批seed生效 + 食材搜索接口 ### Bug 修复 - 修复知识库弹窗长文本超出右边界 ## v1.0.1279 (2026-09-02) ### 新功能 - 美化菌群报告疾病风险页并补充疾病知识库,手风琴标题去掉有效保留异常/共 ## v1.0.1278 (2026-09-01) ### 文档 - 修正实现计划占位(getEffectivePpoint 签名/转让幂等键/家庭券库独立Controller) ## v1.0.1277 (2026-09-01) ### Bug 修复 - 迁移编号 269 与 sleep_record 冲突,重编号为 278 ### 新功能 - 优惠券全链路改为家庭维度 ### 其他 - - 6条发放路径全部改为发到家庭(Admin/JOIN/POPULATION/PERIODIC/EXCHANGE/CF_EXCHANGE) - - CouponService 内部改为读 family_coupon,保留 API 路径与响应字段不变 - - AdminCouponController 新增 /issue-family,/issue 改为 familyIds - - 家庭管理页新增发放优惠券弹窗,批量发放与发券记录改为家庭维度 - ## v1.0.1276 (2026-09-01) ### Bug 修复 - 修复 P1-2 自检上下文在 Pydantic 层被静默丢弃 ### 文档 - CF值分佣体系重构实现计划(cfclub分支) ### 其他 - - T1 数据库迁移(cf_rate_tier/cf_transfer_record 建表 + promotion_tier 精简 + coupon family_id) - - T2 新实体/Mapper(CfRateTier / CfTransferRecord) - - T3 PlatformPointsService.earn 幂等补丁 - - T4 CfReferralService(推荐树物化 + 全层级团队规模 + 阶梯匹配) - - T5 CfCommissionService 统一分佣核心 - - T6 推荐绑定物化 + PromotionTier 精简 + refreshRate 刷等级比例 - - T7 7 处订单结算迁移点切换 - - T8 旧佣金体系废弃标记 - - T9 用户查询接口(团队规模/比例/流水/汇总) - - T10 CF 转让接口 - - T11 优惠券绑定家庭 + 家庭券库 - - T12 管理端阶梯配置接口 - - T13 小程序推广中心前端改造 - - T14 测试与 API 文档更新 - ## v1.0.1275 (2026-09-01) ### Bug 修复 - 会员中心补listMembershipLevels导入 - 修复等级配置表加载ReferenceError, 等级标签补PREMIUM - 用户管理会员等级下拉改为后台动态加载5级, 优惠券管理等级选项同步动态化 ## v1.0.1274 (2026-09-01) ### 新功能 - CF值分佣体系重构设计(cfclub分支) ### 其他 - 设计范围: - - 全部订单统一走 CF 值分佣,废弃旧佣金体系 - - 纯团队规模阶梯分佣(cf_rate_tier 动态可配置) - - 同家庭互推上溯到第一个非同家庭引荐人 - - 返佣返个人 CF 钱包,兑换优惠券挂家庭 - - 新增 CfCommissionService + cf_transfer_record - - 用户可查团队规模与返佣比例 - - 订单迁移点 7 处 + 前端改造方案 - ## v1.0.1273 (2026-09-01) ### 新功能 - 中间页展示自检趋势 AI 解读(P1-1) - 结果页改 AI 解读 + 生成计划按钮 + 问问AI(P0-1/P0-2/P1-2) - 新增 generateSelfCheckPlan/getSelfCheckTrendAnalysis API - AIChat sendMessage 支持 selfCheckId 注入上下文(P1-2) - 新增 /generate-plan + /trend-analysis 接口 + HealthPlanService.generateFromSelfCheck - 新增 MemberChipPicker 多选成员选择组件,修复 health-plan-summary 缺失组件编译失败 ### Bug 修复 - 删除 WuxingSourcingService 死 import ## v1.0.1272 (2026-09-01) ### 新功能 - 清理 WuxingSourcingService 静态表 + submitSelfCheck 接 AI ## v1.0.1271 (2026-09-01) ### 新功能 - AiGateway 新增 generateSelfCheckAdvice/generateSelfCheckTrend - WuxingSourcingAdviceVO 改造为 AI 建议 VO + SelfCheckAnalysisService - 新增 self_check 路由模块并注册到 main - 新增 self_check_trend_graph 趋势分析实现 - 新增 self_check_analysis_graph + llm.client 薄包装 ### 文档 - PROJECT-OVERVIEW 添加 AI 集成实现计划索引 - 五维自检 AI 结合 P0+P1 实现计划 - PROJECT-OVERVIEW 添加 AI 集成规格索引 - 五维自检 AI 集成 P0+P1 设计稿(纯AI建议+计划生成+趋势+Chat注入) - 优惠券全链路改为家庭维度设计文档 ### Bug 修复 - 迁移编号 273/274 → 276/277,避开并发 dan_report/users 迁移占用 ## v1.0.1270 (2026-08-31) ### 其他 - 优化修复 ## v1.0.1269 (2026-08-31) ### Bug 修复 - 登录前健康页去掉五维自检上方五个功能卡片,首页登录按钮去掉协议提示 ## v1.0.1268 (2026-08-31) ### Bug 修复 - 修复 preferences.wxml 编译错误 - :key 移除带字符串参数的方法调用,避免 data-event-opts 解析失败 ## v1.0.1267 (2026-08-31) ### 新功能 - 家庭邀请新流程(短邀请码落地页 + 首登绑定邀请人)+ 分享补邀请码/朋友圈 ## v1.0.1266 (2026-08-31) ### Bug 修复 - 重命名迁移编号 269/270 → 273/274,避免与 run() 主流程 innate portrait 迁移冲突 ## v1.0.1265 (2026-08-31) ### 其他 - Co-authored-by: Sisyphus - ### 新功能 - 支持 retake 参数获取轮换题库 ## v1.0.1264 (2026-08-31) ### 新功能 - 会员中心等级配置添加编辑功能 ### 其他 - - 新增编辑弹窗,支持修改等级名称/描述/价格/上限/开关/权限 - - 后端已有 /api/admin/membership/level/update 接口 - ## v1.0.1263 (2026-08-31) ### 新功能 - 首页入口显示自检总分 + 跳转中间页 - 注册 self-check-entry 页面;结果页「重新自检」改跳中间页 - 新增自检中间页 self-check-entry.vue - 新增 getSelfCheckStatus 和 ignoreSelfCheck API 方法 - 新增 /status 和 /ignore 接口;/questions 支持 retake 参数 - Service 层抽题/状态/忽略/计分改造 ### Bug 修复 - 修复 pickQuestions 回退补题条件取反 + 清理 questionMap 死代码 ## v1.0.1262 (2026-08-30) ### 新功能 - 新增 self_check_ignores 表和 question_ids_json 列(迁移269/270) - 能量沙盘支持我的/全家本地切换,后端一次返回个人+全家数据 ### 文档 - 五维自检15天复检周期实现计划 - 五维自检规格自检修复 + 更新 PROJECT-OVERVIEW 索引 - 五维家庭自检15天复检周期+首页分数+题目轮换设计 ### 其他 - - wuxing-sandbox 新增 personalData prop,个人模式优先取指定成员数据,切换视角零请求 - - 首页/家长/孩子三个页面缓存两份数据,onSandboxViewChange 本地切换不再重新请求 - - 成员移出家庭后恢复到其自建家庭(families.creator_id),family-members 文案改为删除成员 - ## v1.0.1261 (2026-08-30) ### 新功能 - 会员中心改为三个 Tab 页(等级配置/升级记录/会员维护) ## v1.0.1260 (2026-08-30) ### Bug 修复 - 手风琴异常统计口径改为白名单 ### 其他 - - 原来 'status !== '正常'' 会将未知/英文状态误判为异常(如 PHYLUM/CLASS 等层级行的空 status) - - _cssForStatus 增加中英文双语言映射,与 report-confirm 保持一致 - ### 文档 - DAN报告按类型分别处理实施计划 - 记录DAN报告按类型分别处理实施计划 ### 新功能 - DAN报告详情页复用blocks渲染器,按类型分别展示 - DAN报告详情接口按类型重算blocks(历史数据生效) - DAN报告按category分组组装blocks(类型分别处理) ## v1.0.1259 (2026-08-30) ### 新功能 - 肠道菌群报告/健康报告列表/首页优化 ### 其他 - - 报告日期仅显示 yyyy-MM-dd,去掉时间部分 - - 指标名称前添加 '?' 知识库按钮,点击弹出说明 - - 补全缺失数据:shannonIndex 徽章、healthRating 评级行、指标单位 unit、症状 symptoms - - 修复报告解读框死代码:后端返回 reportInterpretation.gutAgeAssessment - - 健康报告列表 (report-list.vue): - - 滑动删除功能修复:移除组件层 @click 冲突,仅用 #right slot 实现左滑出现删除 - - 点击卡片正常跳转详情 - - 首页 (index-home/index.vue): - - 新增 onShareAppMessage/onShareTimeline 分享配置 - - 后端 HealthReportService: - - getReportDetail 新增 reportInterpretation 字段,基于 gutAge/gutType 生成评估文案 - ## v1.0.1258 (2026-08-30) ### Bug 修复 - 菌群报告异常指标统一红色显示 ### 其他 - ## v1.0.1257 (2026-08-30) ### 新功能 - 用户管理列表新增会员级别和推荐人列,编辑支持修改推荐人 ### 其他 - - 列表新增 referrerName 列(通过searchUsers解析referrerId显示推荐人名称) - - 编辑弹窗新增推荐人下拉选择(远程搜索昵称/手机号/ID) - - 新增 resolveReferrerNames 批量解析方法,loadUsers后自动调用 - - 防止编辑旧格式报告(菌X构成/中文level)时原样写回脏数据 - - getReportDetail: 读回时加 normalizeGutFloraRead 后处理, - 一次性兼容归一化前入库的历史数据(无需迁移脚本) - - normalizeFloraLevel 的 category 参数保持传入以维持语义完整性 - 至此方案A覆盖完整主链路: - 上传/确认入库(write)✅ - 编辑保存(write)✅ - 再次查看展示(read)✅ - ### Bug 修复 - 修复编辑路径与读路径的菌群分类归一化缺口 ## v1.0.1256 (2026-08-30) ### Bug 修复 - 修复最终审查发现 - progressPercent/loading死代码/样式细节 - 菌群分类层级表归一化 category/level 与前端对齐 ### 重构 - 重新设计会员中心页面 - 消除所有 levelCode 空值访问风险 ### 其他 - - 所有表格数据源使用 safeLevels/safeMaintainUsers 过滤,杜绝 undefined.levelCode - - 升级路径用 el-tag 路径样式展示 - - 权限详情对话框重构为 el-descriptions 布局 - - 空状态用统一 .empty-state class - - loadOverview 合并 getMembershipStats + /api/admin/membership/overview 两次请求 - - - 后端 normalizeFloraLevel:'门/纲/目/科/属/种' → PHYLUM/CLASS/ORDER/FAMILY/GENUS/SPECIES - - 新增 HealthGutFlora.LEVEL_PHYLUM 常量(北京报告特有门级) - - 前端 gut-flora-species-detail.vue 新增 '菌门' tab 及 PHYLUM 映射 - - 修复募极/北京格式分类层级在前端 taxonomy 标签页显示为空的问题 - ## v1.0.1255 (2026-08-30) ### 样式 - 饮食偏好调研 暖灶暖橙主题样式 ### 新功能 - 饮食偏好调研 Step2口味偏好+Step3健康目标chip交互 - 饮食偏好调研 重构为3步引导问卷 - 数据层+进度条+Step1忌口过敏 ## v1.0.1254 (2026-08-30) ### 文档 - 修复饮食偏好调研计划 :key 表达式违规 - 改方法调用 getChipKey ### 其他 - redesign: 重写登录前首页与登录页,清晰传达产品价值 ## v1.0.1253 (2026-08-30) ### Bug 修复 - 修复健康报告列表非菌群报告无法进入详情页 ### 其他 - - 原 tongue 分支指向废弃页 tongue-index(会重定向到上传页);未知类型分支路径 /pages/body/health-report 不存在导致 navigateTo 失败 - - nutrition-profile.vue: 修正 /pages/body/health-report 错误路径为 /pages/body-detail/health-report - ## v1.0.1252 (2026-08-30) ### 新功能 - 共餐配置页暖灶主题美化 - 删除查看我的测评方案入口及相关跳转逻辑 ### 其他 - - pages/health/report-confirm.vue: 删除报告确认后的 planId 跳转至 health-plan-summary 逻辑 - - pages/health/report-detail.vue: 删除报告入库后的 planId 跳转至 health-plan-summary 逻辑 - ## v1.0.1251 (2026-08-30) ### 其他 - 优化修复 ## v1.0.1250 (2026-08-30) ### 文档 - 饮食偏好调研页面重新设计 实现计划(3任务:数据层+Step1/Step2+Step3/暖灶样式) - 修正饮食偏好调研规格——移除死代码systemGoals区块 - 饮食偏好调研页面重新设计 设计文档(3步引导问卷+暖橙主题+补全mustEat/cookingMethods) ### 新功能 - .coupon.non-member-could-claim-membership-coupon ## v1.0.1249 (2026-08-30) ### 文档 - 会员中心重设计+用户管理会员功能扩展 设计文档与实现计划 - 先天画像体系实现完成 - 更新API文档与项目概览 ### 新功能 - 小程序先天画像轨迹页+心维度首页入口+补create接口 - 小程序先天画像API封装+页面注册+报告页 - 管理端先天画像权重配置+数字能量配置页 + 路由菜单 - 管理端先天画像配置Controller(来源权重+数字能量详细配置+缓存失效) - 先天画像innate_portrait_graph LangGraph + API路由 - AiGateway generateInnateReading 真实HTTP实现 - calcInnateScore 可配置权重+数字能量参与 - calcInnateScore 支持可配置权重+数字能量参与+缓存失效 - 先天画像4个接口(portrait/reading/numsoul/trajectory) ## v1.0.1248 (2026-08-29) ### 新功能 - 完善健康启航计划(199会员打卡21天)三大核心功能 ### 其他 - - 新增 generatePurchasePayParams() 虚拟支付下单参数生成 - - 新增 HQ 前缀订单发货/退款/iOS退款问询回调处理 - - 新增 /api/purchase/pay-params 接口获取支付参数 - - 支付成功自动发放 300 CF 基础奖励 - 2. ChallengeService 补充 streakDays 返回 - - getChallengeProgress() 新增返回 streakDays 字段 - - 前端闯关进度页可直接展示连续打卡天数 - 3. 打卡自动同步闯关进度机制 - - 新增 ChallengeService.syncStreakProgress() 方法 - - 集成到 DailyCheckinService/EmotionCheckinService/FinanceCheckinService - - 打卡完成自动更新 streak_3days/streak_7days/streak_21days 任务进度 - ## v1.0.1247 (2026-08-29) ### Bug 修复 - 会员费虚拟支付开关最终审查修复 - 强制出站HTTPS使用TLSv1.2 - 规避微信边缘终止TLSv1.3握手导致code2Session偶发失败 - 会员维护弹窗等级下拉增加safeLevels过滤 - 防御levels含null/undefined导致白屏 ### 其他 - - 新增 null 缺省虚拟支付路由测试 - - 新增 PaymentServiceORDRoutingTest 覆盖 ORD/PO/其他前缀回调路由 - - 简化 orderNo 断言为 startsWith - - 移除 pay.vue else 分支重复 orderNo 赋值 - - - DatabaseInitializer迁移268为coupon表加status列, schema.sql同步 - - CouponService所有用户侧查询/领取/使用/兑换/自动发放过滤停用券 - - PointsExchangeService/FamilyPlatformPointsService兑换入口加停用校验 - - AdminCouponController新增POST /api/admin/coupon/toggle-status - - CouponManagement.vue修复假状态列+新增停用/启用按钮 - - coupon.js新增toggleCouponStatus封装 - ### 新功能 - InnatePortraitService 先天画像聚合服务 + AiGateway generateInnateReading stub - 优惠券停用/启用功能 - 新增status字段+迁移268+toggle-status接口+管理端按钮 ## v1.0.1246 (2026-08-29) ### 新功能 - pay.vue 支持 payType 分流,新增普通微信支付路径 - handleWechatNotify 增加 ORD 前缀路由到会员开通回调 - Controller 改为调用 createOrderWithPayType,支持 openid 参数 - 优化免费会员家庭挑战创建流程 ### Bug 修复 - trial 分支改调 createOrderWithPayType,返回 payType=none ### 其他 - - openCreateModal 细分场景: - - 免费会员且仅 1 成员(自己) -> 引导先添加孩子 (showAddChildPrompt) - - 其他成员不足 -> 通用添加成员引导 (showMemberPrompt) - - 新增 goToAddChild:直接跳转到添加孩子页面 - - 提示文案明确告知:免费会员只能添加 1 位孩子,挑战创建后可切换到孩子身份同意参与 - ## v1.0.1245 (2026-08-29) ### Bug 修复 - Native支付关联买家userId + 恢复公告列表接口 ### 其他 - - NoticeController: 恢复 /api/notices/list 接口(原410废弃) - ### 新功能 - 数字能量计算器 NumSoulCalculator + 单元测试 - 先天画像Mapper和DTO - 先天画像3个实体类(来源权重/报告缓存/数字能量配置) - 迁移270-272 创建先天画像三张新表(来源权重/报告缓存/数字能量配置) ## v1.0.1244 (2026-08-29) ### Bug 修复 - 打破 MembershipService↔VirtualPayService 循环依赖 ### 其他 - 在启动期强制互相实例化导致 Spring Boot 2.7 拒绝启动(循环依赖默认禁止)。 - 解决方案:在 MembershipService 的 VirtualPayService 注入点加 @Lazy, - 启动期注入代理,运行时才解析真实 bean,打破循环。 - 参考:Spring 5.3 的 ResourceElement 支持 lazyLookup,与 @Resource 兼容。 - ## v1.0.1243 (2026-08-29) ### Bug 修复 - 小程序前端 GET 请求全部改为 POST + 成长打卡页美化与自动返回 ### 其他 - - 前端: 7 处 GET→POST (api.js, service-tasks/chat/execution/rating/invite.vue) - - 成长打卡页美化 (diet/exercise/sleep/emotion-checkin.vue): - * 统一卡片式布局、导航栏、表单/标签/媒体工具栏/提交按钮样式 - * 打卡成功后 800ms 自动 navigateBack 回成长页 - ## v1.0.1242 (2026-08-29) ### 文档 - 会员费虚拟支付开关实现计划 ### Bug 修复 - 菌群报告手风琴加有效/异常指标数量 ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1241 (2026-08-29) ### 文档 - 更新 PROJECT-OVERVIEW 规格索引 - 会员费虚拟支付开关设计文档 ### Bug 修复 - sleep_record 时间列改TIME类型 + 新增迁移269(幂等) 同步schema.sql - 睡眠打卡时间字段改Date+自定义反序列化器解析HH:mm修复java.sql.Time解析失败 - 测评方案列表familyId三路回退(查询参数/JSON body/JWT)修复缺参500 - 北京营养分析totalCount改Long写入并用Number读取修复ClassCastException - JWT白名单改路径边界匹配防止verify-password被前缀放行 + 补登录必需拦截 - 菌群报告页圆环折行、quick-nav 显示关注数、饮食推荐走 /api/health/foods、菌群详情页标签折行 ### 其他 - - 2) gut-flora-foods-detail.vue: loadData 改用 getHealthFoods(reportId),不再依赖 report 详情里的 foods+KB 合并。 - 3) gut-flora-species-detail.vue: tabs 从 scroll-view scroll-x 改为 flex-wrap 折行(无横向滚动);默认 tab 从 core 改为 all(避免页面没内容)。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1240 (2026-08-29) ### 新功能 - 优化家庭挑战创建流程,增加成员数量前置校验和友好提示 ### 其他 - - submitForm 新增客户端校验:选择成员 < 2 时阻止提交并提示友好信息 - - 新增 goToAddMember 方法:引导用户前往家庭成员页添加成员 - - 避免后端 500 错误'家庭挑战至少需要2名成员参与'直接暴露给用户 - ## v1.0.1239 (2026-08-29) ### Bug 修复 - 统一文章/商品/活动推广分享邀请人参数 + 兼容旧分享链接 - 五维自检未传familyMemberId时自动解析为当前用户本人 ### 其他 - - 三个详情页: onLoad 显式处理 inviteCode + 海报二维码 scene 带 &ref= 邀请码 - - promotion/index.vue: onShareAppMessage 带上 inviteCode=分享码(与 invite.vue 一致) - - 按 userId 修改 memberLevel(含 LIFETIME 置空到期时间)与 referrerId, - 等级变化写入 MemberUpgradeRecord(upgradeType=admin) - - 用 LambdaUpdateWrapper 显式 SET,修复 referrerId 清除(null)不生效的 bug - - MembershipCenter.vue 新增「会员维护」卡片:搜索用户 → 修改等级/推荐人 - - 修复会员中心打不开:loadLevels/loadUpgradeRecords 过滤 null 元素, - 所有表格 scoped slot 加空值保护(row 为 null 时不再抛 TypeError) - - 根因:submitSelfCheck/submitSubDimensionCheck 直接存储 dto.familyMemberId, - 前端提交问卷时不传该字段,导致自检记录与返回VO的 familyMemberId 为 null, - 前端 joinMicroAction 无法拿到 memberId。 - 修复:familyMemberId 为空时,按 userId 自动解析用户本人对应的家庭成员(注册时已自动创建)。 - ### 新功能 - 后台会员维护功能 - 修改会员等级/推荐人 + 修复会员中心打不开 ### 文档 - 先天画像体系实现计划(7阶段15任务,含数字能量TDD与权重替换改造) - 修复先天画像设计规格5处缺陷(复用calcInnateScore/数字能量mind_base/权重替换/报告表职责/配置表关系) - 星座/八字/数字能量引入心维度先天画像体系设计 ## v1.0.1238 (2026-08-28) ### Bug 修复 - 恢复健康方案组件原貌,移除远程误加的FamilyMemberStrip成员条 ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1237 (2026-08-28) ### Bug 修复 - 修复最终审查3处Minor偏差(副标题人数/nav-icon-wrap重复/status-accepted暖蓝) - 移除食谱页未使用的 iconCls 死代码 - 生成食谱按钮文字改白色(修复样式覆盖冲突) ### 新功能 - 食谱推荐页暖灶主题美化 - 共餐配置页暖灶主题美化 - 饮食首页菜篮/导航/趋势暖灶主题化 - 饮食首页今日餐桌主视觉(暖灶主题) - add scrollbar to rich editor text containers ### 文档 - 共餐食谱美化实现计划(暖灶主题) - 共餐食谱设计文档自检修正(数据一致性/确定性) - 共餐&食谱页面美化设计文档(暖灶·家的味道) ## v1.0.1236 (2026-08-28) ### Bug 修复 - 修复 assessment-plan 分包页面缺失导致编译崩溃,补充 list/detail 页面并修正接口路径 ## v1.0.1235 (2026-08-28) ### Bug 修复 - 补交健康/测评方案管理页面,修复部署构建找不到路由组件 ### 其他 - ## v1.0.1234 (2026-08-28) ### 新功能 - 规划师端健康方案管理页 + v1.0.1233 版本升级 ## v1.0.1233 (2026-08-28) ### 文档 - 登记生成方案标准内容格式实现计划(PROJECT-OVERVIEW 🟢 已实施) ### Bug 修复 - 健康方案 submitPlan 补 tasks 字段 + regenerate 更新 tasks - 海报扫码进入文章/活动详情页解析 scene 参数,修复参数错误 - 首页自检卡跳转改为五维自检页 self-check ### 新功能 - 规划师端健康方案结构化任务条目编辑 - 支持分享到朋友圈(onShareTimeline) ### 其他 - 优化修复 - 优化修复 - Co-authored-by: Sisyphus - - 优化修复 - 优化修复 ## v1.0.1232 (2026-08-28) ### Bug 修复 - 共餐配置页修复页面溢出、选中态醒目、添加按钮唯一化 - /api/health/foods 未传 reportId 时返回当前用户最新报告食材 ### 其他 - - 选中项加橙色 ✓ 角标 + 强化高亮(粗边框/外发光/头像变色) - - 改用 mealGroups 计算属性,去除模板内 isMemberSelected 方法调用 - - 3 个餐次添加按钮收敛为唯一入口,点击跳转成员管理页 - - - 未指定 reportId 时按当前登录用户查最新报告食材,返回当前最适合的推荐 - - 修复食材查询页空数据问题 - ## v1.0.1231 (2026-08-28) ### 新功能 - 方案任务生成优先读 tasks + 正则兜底 + 懒加载回填 - 方案 section 重生成返回 {content, tasks} 结构化 - 健康方案生成 Pydantic 校验 + 正则兜底提取 tasks - 健康方案 prompt 追加 tasks 输出契约 - 健康方案 tasks 模型(PlanTask + section.tasks) - 方案激活按模板包批量拆任务并兼容childId双域 - 成长计划列表接口与childName组装 - 方案制定支持多成员分别调研-health_status加member_id字段+修复只保存不生成bug ### 样式 - health_plan.py 文件末尾补充换行符 ### 测试 - 主链路E2E脚本与黑盒自测脚本 ### 其他 - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### 文档 - 四模块链路黑盒测试方案与自测报告 ### Bug 修复 - 方案管理页补齐plan接口函数修复白屏 - 文章创建更新防检测超时-受限超时并fail-open - 全局参数校验友好化-空参格式错误返回400 - 知识库查询删除接口契约对齐请求体并容错 - 活动提交审核业务异常转400提示并支持退回草稿 - 供应商保存兼容新旧字段契约并校验必填 - 勋章创建自动生成badgeId避免唯一键500 - 方案管理列表支持admin全量查看并按家庭筛选 ## v1.0.1230 (2026-08-28) ### 文档 - 生成方案标准内容格式实现计划(LangGraph tasks + Java 懒加载回填 + 前端任务编辑) - 生成方案标准内容格式设计(planJson tasks 单一事实源 + Pydantic 校验 + 懒加载回填 + 规划师任务编辑UI) ### Bug 修复 - 首页'再次了解'回跳调研页未加载内容 ## v1.0.1229 (2026-08-28) ### 文档 - 生成方案标准内容格式设计(planJson tasks 单一事实源 + Pydantic 校验 + 懒加载回填 + 规划师任务编辑UI) ### 新功能 - 菌群报告统一走个性化详情页并支持任意类型通用组装 ### 其他 - - ReportBlockAssembler.assembleWithTemplate 无模板时对任意报告类型默认调用通用组装(评分+风险+指标+菌种),不再只支持 gut_flora - - 确认入库与编辑保存两处改传 reportType,走 assembleWithTemplate 模板驱动+默认兜底 - 前端: - - report-list / health-main / report-upload / report-confirm 的 gut_flora 跳转统一到 gut-flora-detail 个性化页 - - gut-flora-detail 新增内嵌 draftId 模式(解析→确认入库/放弃),修复评分圆环字段错位 bug(兼容 balanceScore 等新键),saveEdit 载荷改标准嵌套结构 - BREAKING CHANGE: 肠道菌群报告详情页由通用 report-detail 切换为个性化 gut-flora-detail,入口 URL 与参数(draftId 支持)变更 - ## v1.0.1228 (2026-08-27) ### 新功能 - 五维沙盘个人/全家视角切换 + 食物表字段扩展 + 忽略报告解析临时文件 ## v1.0.1227 (2026-08-27) ### 其他 - 修改体验版地址 ## v1.0.1226 (2026-08-27) ### 其他 - 修改体验版地址 ## v1.0.1225 (2026-08-27) ### 其他 - 健康报告上传-解析-生成方案-分解任务-打卡,完成链路流程 - 修改小程序的开发环境 - 修复编译报错 - 修复编译报错 ## v1.0.1224 (2026-08-26) ### Bug 修复 - 五维成员详情页导航路径修复 + 财富维度成员详情页补齐 ## v1.0.1223 (2026-08-25) ### Bug 修复 - 全局异常处理器捕获 ClientAbortException,避免连接中断时二次抛异常 ## v1.0.1222 (2026-08-24) ### 新功能 - 小程序新增画像编辑页(portrait-edit.vue+api封装+pages注册) - Java 4个对话端点注入portrait_prompt(chat/coach/butler/nutrition) - Python侧画像prompt注入(4个graph+nutrition端点) ## v1.0.1221 (2026-08-23) ### 新功能 - 用户画像数据层+PortraitService(迁移263+实体+接口+Controller) ### Bug 修复 - ensure member IDs are always strings for WeChat mini-program event system ### 其他 - - Template expressions pass raw numbers, causing type mismatch in indexOf - - Always convert to String() in isMemberSelected, toggleMember, loadExecutors - - Prevent double loadExecutors with synchronous _executorsLoading flag - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1220 (2026-08-23) ### 文档 - 对齐 TabBar 重设计为实际实现(4Tab+中间⭐扇形菜单) ### 其他 - - 行跳转:pages/index-home/index→pages/action-detail/index - - 四维跳转路径:pages/X/index→pages/X-detail/index - - 健康Tab:pages/health/index→pages/health-main/index(5子Tab+雷达图) - - 同步更新技术方案、边界情况、实施状态表 - - PROJECT-OVERVIEW v2.8→v2.9 - ## v1.0.1219 (2026-08-23) ### Bug 修复 - energy_daily_limit迁移编号255改258避免撞号 - 全局异常处理兜底路径参数类型转换错误 - 恢复被误删的套餐模板列表接口 /package/templates ### 其他 - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ## v1.0.1218 (2026-08-23) ### 文档 - 用户画像 prompt 拼装实现计划 - 用户画像 prompt 拼装设计规范 ### Bug 修复 - 后端添加405处理器兼容旧GET请求 - 修复中文CSS类名WXSS编译错误及公告接口更新 - body-detail/index.vue 中文CSS类名导致WXSS编译错误 ## v1.0.1217 (2026-08-23) ### Bug 修复 - 修复报告列表不返回数据 ### 其他 - 修复三层: - 1. JwtInterceptor: user.family_id 为空时从 family_members 表反查用户所属家庭 - 2. HealthReportService.getFamilyReports: 优先通过家庭所有成员(subject_id/user_id) - 反查报告,兼容报告表 family_id 未填充的历史数据,再补充按 family_id 匹配并去重 - 3. HealthReportController.listReports: 无家庭信息时返回空列表而非报错 - ## v1.0.1216 (2026-08-23) ### Bug 修复 - 打破 memberSubscriptionService↔butlerService 循环依赖 - @Lazy 注入 ## v1.0.1215 (2026-08-23) ### 新功能 - rewrite plan creation flow to 3 steps with embedded questionnaire - 家庭加入申请改为邀请人审批模式,谁分享的卡谁确认 ### 其他 - - Embed health-status-form fields inline in step 2 (体征/血脂/疾病史/药物/补充) - - Auto-load existing health data via getHealthStatus on page load - - Add saveAndGenerate to save form then call generateHealthPlan - - Step 3 shows plan preview with two paths: edit/confirm OR select planner service - - Create teacher-service.vue: planner service selection page (纯线上/可联系 types) - - Register teacher-service.vue in pages.json - - Preserve viewMode/planDetail for viewing existing plans - - Preserve all section editing (regenerate/confirm) and plan submission logic - - Follow WeChat Mini-Program constraints: no optional chaining, no CSS Grid, no :key expressions - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - approve/reject 权限改为邀请人(须仍为目标家庭成员),旧数据无邀请人由家庭管理员兜底 - - approve 通过后刷新家庭通关解锁,与 /accept 直加路径一致 - - getPendingRequests 改按邀请人查询,控制器去掉 familyId/admin 校验,透传 token - - 迁移262: family_join_requests 添加 inviter_user_id 列 + idx_inviter 索引 - - 前端:join.vue 文案改等待邀请人确认+进入回显待确认申请+取消申请按钮 - - family-members.vue 新增加入申请审批区块(同意/拒绝),按邀请人过滤 - - 同步 API_REFERENCE.md 与 api.js 注释语义 - - 内容: D32扩展财商内容+封面文字修复 ## v1.0.1214 (2026-08-23) ### 其他 - 内容: D32富维度发布准备完成 ## v1.0.1213 (2026-08-23) ### 其他 - 内容: D28-D31小红书发布准备完成;指南: 图片规格改为9:16+imagefree_gen.py ## v1.0.1212 (2026-08-23) ### Bug 修复 - diet_preferences 补齐 must_eat 列(迁移251d) ## v1.0.1211 (2026-08-23) ### 新功能 - 健康报告列表支持 size 参数 - 健康主页仅取最近3条,报告列表页返回全部 - 北京菌群报告解析 - PdfParseService新增北京格式解析 + langgraph parse-typed/detect-type端点 ### Bug 修复 - 健康报告列表仅返回最近3条 - 小程序健康页只展示3条,避免多余数据传输 - 问卷提交前校验模板已加载 + 邀请码scene兼容裸token格式 - 迁移修正 - finance_checkins.child_id允许NULL+补齐type列(251c) + 维度权重迁移表名修正去重(233) + 移除已稳定的profile/report_template/social_circle迁移 - 参数校验与错误处理强化 - 控制器参数判空/可选 + MultipartException处理 + 异常语义化 - 请求日志中间件重构为纯ASGI - 避免BaseHTTPMiddleware消费body导致POST死锁 ### 文档 - 菌群计划文档回填实施状态并记录偏差①修复 ### 其他 - - 头部实施状态、文件结构表、Task 10/11 注记、Task 16 期望值(3→4) 同步更新 - - PROJECT-OVERVIEW 条目更新为 health 分包 4 页架构齐备 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - pages.json:growth 分包移除注册,health 分包新增(risks-detail 之后) - - gut-flora-detail 主页 goToFoods() 跳转同步更新 - - 功能不变(筛选+排序+编辑+知识库营养数据合并);E2E 无路径断言无需变更 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ### 重构 - 菌群食物推荐页迁移至计划路径 gut-flora-foods-detail ## v1.0.1210 (2026-08-23) ### 文档 - 登记管家自选与健康教练接口文档 ### 新功能 - 报告详情优化-新增payload按需加载接口,blocks渲染器增加知识库?查询 ## v1.0.1209 (2026-08-23) ### 文档 - 更新健康启航计划CF奖励设计——每日4任务×225CF+里程碑7200CF ## v1.0.1208 (2026-08-23) ### 新功能 - 管理端分配管理与停接开关页面 - 健康教练欢迎语个性化与我的管家入口 - 小程序管家选择页与接口封装 - 健康教练graph按coach_id路由人格prompt - 健康教练对话注入教练人格标识 - 管理端分配管理与停接开关接口 - 邀请令牌复用同家庭有效令牌,组件邀请入口改跳成员管理页 - includeFamily响应增加members字段,支持单次调用同时获取成员列表与家庭信息 ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### Bug 修复 - ensureFamily改为静默兜底,移除误导性的家庭创建成功提示 - 家庭成员编辑页合并为单次member/list调用,移除onLoad前端建家庭逻辑 - 登录成功时将familyId持久化到userInfo缓存,避免页面误判无家庭而重复创建 ## v1.0.1207 (2026-08-23) ### 新功能 - 家庭端管家自助选择接口 - ButlerService新增管家浏览/查询/自助绑定方法 ### Bug 修复 - member toggle + race condition + generate string data - 移除打卡页navigationStyle:custom,恢复原生导航栏标题和返回按钮 ### 其他 - - Prevent onLoad + onShow double-load race with _executorsLoaded flag - - Only loadExecutors in onLoad when not in planId/viewMode path - - Handle generateHealthPlan API returning data as markdown string (typeof check) - - Reset selectedMemberIds and userGoal in reCreate() - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1206 (2026-08-23) ### 新功能 - 新增butler_assignments实体与Mapper - butler_profiles 新增accepting停接开关列 - Web管理端购买记录管理 ### 文档 - 总览登记AI健康教练人格分化与管家自助选择条目 ## v1.0.1205 (2026-08-23) ### 新功能 - 报告列表支持家庭维度查询+成员过滤,健康页不再传memberId ## v1.0.1204 (2026-08-23) ### 新功能 - 添加续费页和闯关进度页 ## v1.0.1203 (2026-08-23) ### 文档 - 新增AI健康教练人格分化与管家自助选择设计规格 - 健康启航计划实现计划 ### 其他 - Co-authored-by: Sisyphus - ### 新功能 - 添加购买页和API封装 - 付费墙拦截+前端API+页面注册 - 健康启航计划后端核心 ## v1.0.1202 (2026-08-22) ### 其他 - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### 文档 - API参考文档补全13个Controller共65+接口及废弃状态更新 ### Bug 修复 - 废弃接口返回410及补充@Deprecated注解(Family/Butler/Notice) - childId→familyMemberId 引用统一(19处TaskService) ### 新功能 - energy daily limit 数据库持久化 - 新增DimensionDailyLimit表及Controller读写 ## v1.0.1201 (2026-08-22) ### 文档 - 新增财富功能重构计划与设计方案 ### Bug 修复 - games/list.vue 移除错误编辑导致的孤儿view标签 ## v1.0.1200 (2026-08-22) ### 重构 - 合并重复接口-删除死代码GuidePackageController,统一所有接口为POST ## v1.0.1199 (2026-08-22) ### Bug 修复 - 修复多根元素及语法错误(games/list, gut-flora-detail, action-detail, api.js) ## v1.0.1198 (2026-08-22) ### Bug 修复 - 修复 f048448e3 移除nav-bar导致的45个页面模板view标签不平衡 ### 其他 - - 删除了根但保留了对应的 - - 删除了nav-bar的打开标签但保留了 - 导致模板出现多根元素或孤立,HBuilderX编译报错: - 'Element is missing end tag' / 'Multi-root element found' / 'Root element expected' - 修复方式: 删除所有孤立的标签(共45个文件) - ## v1.0.1197 (2026-08-22) ### 文档 - 更新健康启航计划——体验期内升级享199元抵扣 ## v1.0.1196 (2026-08-22) ### 文档 - 更新健康启航计划——CF值1CF=0.01元,全勤19900CF抵199元 ### Bug 修复 - use beam_size=1 + vad_filter for faster STT inference - delay first kb_sync by 120s, increase gunicorn timeout to 600s ### 新功能 - add voice input button to AI chat page - add AiGateway.transcribe + /api/ai/transcribe endpoint - integrate STT into diet/exercise check-in pages - add sttTranscribe API utility for speech-to-text - add STT endpoint with faster-whisper base model ## v1.0.1195 (2026-08-22) ### 新功能 - 完整圈子社交功能-创建/加入/动态Feed/点赞评论 ## v1.0.1194 (2026-08-22) ### 文档 - 新用户付费转化产品设计——健康启航计划 ## v1.0.1193 (2026-08-22) ### Bug 修复 - 新用户无孩子时静默跳过能量概览请求,避免弹出memberId为空提示 ## v1.0.1192 (2026-08-22) ### Bug 修复 - 修复 health 模块模板多根元素错误 ## v1.0.1191 (2026-08-22) ### 新功能 - 新增报告模板管理 & 采集训练器 ### 其他 - - 新增 report_template 表,支持按报告类型配置固定展示块 + 自由显示 - - ReportBlockAssembler 集成模板逻辑:优先按 fixedBlocks 顺序渲染,未覆盖指标自动追加 - - 自学习生成类型时自动创建空模板(isActive=0) - - report_unknown_upload 新增 annotation 列(管理员标注训练数据) - 前端: - - ReportTemplateManage.vue:模板列表 + 可视化编辑器(固定块增删/排序、自由显示开关、实时预览) - - ReportCollectorTrainer.vue:聚类列表 + 报告标注 + LLM解析预览 + 模板渲染预览 - - 路由 & 菜单:报告解析系统下新增「报告采集训练」「报告模板管理」 - 文档:更新 API_REFERENCE.md,新增报告模板接口说明 - ## v1.0.1190 (2026-08-22) ### 新功能 - 身体调研加饮食偏好 + 食材档案清真/素食标识 ### 其他 - - 提交问卷时自动同步到 diet_preferences 表(absoluteAvoid/mustEat/religiousDiet) - - 迁移254: diet_preferences 新增 must_eat 列 - - 迁移253: foods 新增 diet_type 列(清真/halal/素食/vegan 标识) - - Food/DietPreferences 实体及 DTO 同步更新 - ## v1.0.1189 (2026-08-22) ### Bug 修复 - 修复食材数据未显示-响应路径修正为res.data,合并重复API调用 ## v1.0.1188 (2026-08-21) ### 新功能 - Web管理端 — 用户画像列表与详情查看 ## v1.0.1187 (2026-08-21) ### 新功能 - 小程序画像页 — 五维指标+推荐内容展示 - 方案生成时自动注入用户画像数据 ## v1.0.1186 (2026-08-21) ### 新功能 - 打卡和任务完成后自动触发画像重算 ## v1.0.1185 (2026-08-21) ### 新功能 - 解析loading改为旋转动画+三阶段轮播文案,提升用户感知 - 添加C端和B端画像API控制器 - 实现画像读取服务和规则推荐引擎 - 实现画像计算服务 — 五维指标聚合+增量写入 ## v1.0.1184 (2026-08-21) ### Bug 修复 - 补回疾病风险卡片模板 - 修正Task状态值、Product状态值、删除死代码RULES块、修复PointsLog查询语法 - 补充肠道菌群卡片CSS样式 - mind-detail/index 删除孤立多余闭合花括号 - login.vue 删除 return 对象尾随逗号 + report-detail 给 .food-item 补闭合花括号 - 修复饮食推荐页面右侧溢出-添加box-sizing和width约束 - 统一首页和成长页面今日任务标题命名 - 修复行页面能量沙盘数值不显示问题 - tasks表加parent_task_id列(购买任务→每日使用子任务链)+ schema同步 - health_plans补updated_at/审核字段列,修复selectById Unknown column - 打卡弹窗金额/备注输入框高度不足 — 增加padding和min-height - 打卡页隐藏原生导航栏,修复双标题 —— navigationStyle: custom 仅保留页面内标题 - 重新制定时重置viewMode,修复页面空白问题 - 修复打卡页面双标题、输入框过小、睡眠页多余功能、心情页样式缺失 - 修复微信登录 invalid code (40029) —— 不再 onLoad 预取 login code,改为点击授权时实时获取 - 任务列表标题列支持排序,孩子ID改为显示用户名 - health-main 移除已删除报告入口 + growth-emotion-checkin 添加照片上传 - 系统提示词INSERT列数不一致 + 知识库embedding TPM重试 + tags_str类型修复 - action-detail/wealth/wisdom-detail 修复 :key 表达式 - 方案任务设置repeatType=daily,幂等检查限定当天deadline - 健康方案成员选择选中状态增强 - 心情打卡同步情绪日记—checkinDate 空值兜底为当天 - 健康方案重做限制改为每日一次 - 修复报告方案链路与报告详情折叠展示 - 健康方案查看页+报告日期格式 - 保单管理页居中+控件高度 - 移除 report-upload 自定义导航栏,使用原生导航栏避免双标题 - confirmText 改为4字以内,移除debug日志和红色横幅 - AiGateway 缺少 @PostConstruct import 导致编译失败 - 财商打卡页居中+控件高度 - 容器宽度约束+input padding增大 - 解决 merge 冲突 - health-main/index-home 合并冲突 & AiGateway 保留 - 同步远端重构合并 + 保持 :key 修复与 trial 环境地址 - pages.json 删除多余右花括号修复 JSON 语法 - 健康主页身维度雷达图改用真实API数据 - 内联弹窗逻辑到 pickFile/takePhoto,消除方法调用链断裂问题 - 移除所有页面中的PageBanner组件,消除双层标题 - 迁移249 file_record补file_type/description列,修复Unknown column错误 - 允许 cfc.iwintrue.com 访问后端 API - 责任声明勾选改方法调用+箭头函数消除this丢失隐患 - 修复行页面FamilyEnergyBar标签断裂导致模板文本裸露 - 修复行页面FamilyEnergyBar标签断裂导致模板文本裸露 - 修复行页面FamilyEnergyBar标签断裂导致模板文本裸露 ### 新功能 - 创建画像实体类和Mapper接口 - 创建画像快照表和歷史表迁移脚本 - 身页面新增疾病风险卡片 - 身页面新增疾病风险卡片 - 身页面新增肠道菌群指标卡片 - 饮食推荐页面重新设计-修复居中/溢出/快捷入口不可点并全面美化 - 身/心/智页面重构 — 去七维/快捷/精准营养,改指标卡片 - 调研任务创建时自动生成AI调研模板 - 购物任务联动-cart/order 动作自动加购/下单 - 方案审核流程优化 — 用户可选规划师或系统自动出方案 - 规划师方案维护功能 — 前端审核页面 + 路由 + API - 方案维护功能 — 规划师审核发布流程 - 体脂秤图片采集接入报告上传流程 - checkin 页面合并远端 UI 改进 + 保留 getPhotoKey 修复 - 体脂秤图片数据采集器 — 修复 Java 8 兼容性问题 - 体脂秤图片数据采集器 - 任务系统升级-行为调度中心前端(动作联动/两阶段/填写式完成) - 任务系统升级-行为调度中心后端(前置任务/频率任务/两阶段/填写式完成) - 健康方案页重写为多步骤结构化编辑流程 - 评论自动回复脚本 comment_reply.py——CDP 驱动,click 修复与残缺选择器修复 - 新增 D26/D27/D28 文章稿、推流试验稿及内容草稿 - 照片自动情绪识别 — 后端 AI 调用 + 前端真实 API - 照片自动情绪识别 — Dify AI 图像分析 + 前端接入 - HealthPlan后端重构 - planJson/status字段+regenerate-section接口 - 首页区块顺序调整为 1-2-9-7-8-5-6-4-3-10-11 - 健康方案生成工作流重构 - LangGraph结构化方案+Java对接 - LLM推送数据PII脱敏(智能脱敏) - 心情打卡同步到情绪日记 - 新增 SystemPrompt 管理功能 + web 品牌与产品素材 - 健康现状档案 v2 — 疾病史两源预置清单分类多选+确诊时间,用药开始年月自动计算时长 - 疾病史:DISEASE_PRESETS(10项) → DISEASE_GROUPS(8组54项,★菌群源),分类折叠多选,★角标说明 - 确诊时间:年月选择器(fields=month, end限当前月),存 diagnosedAt(yyyy-MM) - 用药:startDate年月 + durationText自动计算(<12月→X个月, ≥12→X年),记不清可手动兜底 - 后端零变更(JSON列透传),v1旧数据({name,note}/{name,time})回显兼容 - 新增 computed.selectedNames + 17 个 CSS 类 - DAN 测评报告专用详情页 - 智行富三页强项与提升卡片-认知/关系/财富强弱项标记 - 心身智三页肠脑轴卡片-情绪/认知指标过滤+身体异常告警 - 肠脑轴指标过滤+异常指标告警-认知/情绪分类+身体异常指标端点 - 首页健康漏斗重构 — 了解区自测卡 + 四段式区块重排 - 今日任务和报告上传移至推荐阅读上方,推荐商品移到底部 ### 其他 - - 展示疾病名称、风险值、等级标签(高风险红/需注意黄) - - gut-flora 接口确认已为 POST,无需修改 - - - 展示疾病名称、风险值、风险等级(高风险红/需注意黄) - - gut-flora 接口已为 POST,无需修改 - - - 前端 body-detail 页面新增🦠肠道菌群区块:有报告时显示指标明细,无报告时引导上传 - - 显示菌群名称、丰度值、状态(正常/偏高/偏低)及摘要提示 - - 心/智页面已有肠脑轴数据展示,无需改动 - - - 新增指标卡片展示:体脂率/BMI/血压/血糖/步数/睡眠(身)、情绪稳定性/焦虑/开放性(心)、感知力/专注力/记忆力(智) - - 后端新增 POST /api/health/indicators 接口,按domain+memberId返回最新指标值 - - DatabaseInitializer迁移252:seed body/mind/wisdom指标定义27条 - - 各维度首页加载对应domain指标数据,点击卡片跳转详情 - - - 新增 loadEnergyOverview 方法调用 getEnergyOverview API - - WuxingSandbox 组件传递 :dimensions/:totalEnergy/:totalHealthIndex 属性 - - 修复 sortedDimensions 因 dimensions 为空导致 point-energy 始终显示 0 的问题 - - 对齐 child-index.vue 页面的正确用法 - - - schema.sql tasks表同步parent_task_id列定义 - - - schema.sql同步: health_plans CREATE TABLE补reviewed_by/reviewed_at/review_comment/teacher_id/updated_at - - - step===1 && !viewMode → false(Step1不渲染) - - viewMode && planDetail → false(查看模式也不渲染) - - 页面空白 - 同时补充editing和sectionFeedback重置。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - 睡眠打卡:移除照片上传和录音功能(不需要) - - 心情打卡:补全所有缺失的基础样式,修复布局混乱 - - - 新增 teacher-select.vue 规划师选择页,调用 /api/health/plan/available-teachers - - 新增 HealthPlan.teacherId 字段 + DatabaseInitializer 迁移251 - - 新增 getAvailableTeachers 接口(已绑定+同团队+全量规划师) - - submitPlan 根据 needTeacher 决定状态:pending_review/published - - listPendingReviewPlans 支持按 teacherId 过滤 - - 会导致 code2Session 返回 40029 invalid code。login.vue 改为与 - invite/join.vue 一致的模式:getPhoneNumber 中实时 uni.login 获取新 code。 - - - cfc-web: 新增 api/healthPlan.js 接口封装 - - cfc-web: TeacherDashboard 快捷入口新增「健康方案审核」 - - cfc-web: router 新增 /teacher-health-plan-review 路由 - - cfc-frontend: health-plan-summary.vue 更新状态展示和成功提示 - 后端已有 c4744618,本次为前端配套 - - - DatabaseInitializer: 迁移250 新增审核字段,status枚举扩展 pending_review/published/rejected - - HealthPlanService: 新增 listPendingReviewPlans/updatePlanContent/approveAndPublish/rejectPlan 方法 - - HealthPlanServiceImpl: savePlan 默认 pending_review 状态,审核通过后生成任务 - - HealthPlanController: 新增 /pending-review/{list,update,approve,reject} 四个端点 - 流程: 用户生成方案 → draft/pending_review → 规划师编辑 → 审核通过(published) → 自动生成任务 - - - report-upload.vue: 新增体脂秤入口卡片 + goBodyFatScale/uploadBodyFat 方法 - - bodyfat-confirm.vue: 新建指标确认页(可编辑数值 + 绑定成员 + 保存) - - utils/api.js: 新增 saveBodyFatMetrics API - 后端: - - HealthReportController: 新增 /report/bodyfat-upload(图片上传+AI识别)+ /report/bodyfat-save(保存指标) - - BodyFatScaleService: 图片→DeepSeek-VL OCR→提取指标→存 indicator_values - - DatabaseInitializer: 注释废弃的 seedFullRegionData() 调用 - - pom.xml: source/target 改为 1.8(适配当前 JDK 环境) - - application.yml: 新增 deepseek.vision-* 配置 - - 账户权限分离 - - 修复 ArrayNode/ObjectNode 类型不匹配 - - 修复 String.isBlank() → trim().isEmpty() - - 修复 var → 显式类型声明 - - 编译验证通过 - - - 调用 DeepSeek-VL 视觉模型 OCR 提取体脂秤指标(体重/BMI/体脂率/肌肉量等) - - 自动创建 indicator_definitions + 保存 indicator_values(source_type=body_fat_scale) - - 新增 AdminBodyFatScaleController: - - POST /api/admin/bodyfat-scale/images/list — 列出图片 - - POST /api/admin/bodyfat-scale/images/analyze — 单张分析预览 - - POST /api/admin/bodyfat-scale/save — 手动保存指标到成员 - - POST /api/admin/bodyfat-scale/batch — 批量处理多张图片 - - application.yml 新增 bodyfat-scale.image-dir 和 deepseek.vision-* 配置 - - - 缺口:无前置任务/频率单一/购物零联动/require_input 无强制/无 start 两阶段 - - 设计:action_type 声明式联动、TaskEngine 集中判定、task_executions 执行记录、三阶段实施路径 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - tasks.vue 今日任务:按 actionType 渲染按钮文案(开始游戏/专注/填写/阅读/报名/购物),locked 灰态+解锁提示,start_required 先开始再完成,require_input 弹填写面板提交内容 - - create-task.vue 新增联动动作/两阶段/填写式开关+商品ID配置,重复设置扩展隔天/每月,补全 repeatTypeLabel/actionTypeLabel computed - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - 新增 task_executions 执行记录表(started/finished 两阶段落库)+ focus_sessions.task_id - - DatabaseInitializer 迁移248:ensureColumn 幂等 + CREATE TABLE IF NOT EXISTS - - TaskService:completeTask 前置校验/填写强校验/两阶段校验/最短时长校验,完成后解锁后置任务;新增 startTask(pending→in_progress 并记录 execution) - - TaskController 新增 POST /api/tasks/{id}/start;complete 支持 content/contentType - - RepeatTaskGenerator 重构为频率分派:hourly/daily/every_other_day/weekly/monthly,每小时 cron 扫描,兼容旧 repeatType - - CreateTaskDTO/CompleteTaskDTO 透传新字段 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - AiGateway.java: 日志消息更新 - - AIChatController.java: 注释和方法引用更新 - - ContextApiController.java: Javadoc 更新 - - ButlerController.java: Operation summary 更新 - - MealRecommendController.java: 变量名 difyResp→langgraphResp - - KnowledgeBaseController.java: 依赖注入名更新 - - DifySyncService → LanggraphSyncService(类名/方法名同步) - - DanKnowledgeBaseService.java: 依赖引用更新 - - AGENTS.md: AI集成说明更新 - - PROJECT-OVERVIEW.md: 历史条目中DifySyncService→LanggraphSyncService - - - 新增 EmotionRecognitionResult DTO(情绪列表+moodWeather) - - AIService.sendEmotionRecognition(): 调用 Dify 情绪识别 Workflow - - EmotionCheckinService.analyzeEmotionFromImage(): 解析结构化结果 - - EmotionCheckinController: POST /api/mind/checkin/emotion/recognize - - application.yml: dify.emotion-api-key 配置项(空=mock模式) - 前端: - - analyzeEmotion() 改为真实 API 调用(上传+识别两步) - - 识别结果自动填充 aiResult,支持 applyAiTags 应用标签 - - 提交时复用已上传的 photoUrl,避免重复上传 - - - AIService.sendEmotionRecognition(): 调用 Dify 情绪识别 Workflow,支持 mock 兜底 - - EmotionCheckinService.analyzeEmotionFromImage(): 解析结构化情绪列表 - - EmotionCheckinController: 新增 POST /api/mind/checkin/emotion/recognize - - application.yml: 新增 dify.emotion-api-key 配置项 - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - - FamilyContextService: 用户/孩子姓名脱敏 - - AiGateway.chat/generateQuestionnaire/generateMenu/generateHealthPlan: 入口脱敏 - - AIService: sendNutritionMessage/sendTongueDiagnosis/runWorkflow/enrichInputsWithMemory/mirrorConversation/getContext/requestSummaryAsync: 入口脱敏 - - 化名映射: userId+salt→SHA-256→固定化名, 保证AI可识别同一用户 - - - 幂等检查加 deadline 日期窗口过滤,避免历史任务阻塞当天生成 - - RepeatTaskGenerator 每天凌晨5点可正确识别并再生方案任务 - - - cfc-backend/AGENTS.md:新增接口前三步检查流程(复用→修改→新增)+ 废弃接口 410 处理 - - - AGENTS.md:接口规范补充「新增接口前查阅文档」和「废弃接口处理」 - - cfc-backend/AGENTS.md:新增接口前三步检查流程(复用→修改→新增) - - 废弃接口统一标记 410 + @Deprecated - - - 标注已废弃接口(7 处,返回 410) - - 列出待清理废弃接口清单 - - 新增接口检查清单与流程 - - - 勾选圆圈 36rpx->44rpx,未选时透明打勾文字(不显示),选中时橙色填充✓ - - 步骤标题行加已选人数 badge(橙色胶囊标签) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - - DailyCheckinService.createCheckin 在 moodScore 有值时自动同步到 emotion_checkin 表 - - upsert 逻辑:今日已有记录则更新,否则新建 - - moodScore 1-10 → moodWeather 映射(sunny/cloudy/rainy/stormy) - - 同步失败不影响主流程 - - - localStorage key 改为按日期(yyyy-M-d)记录 - - 提示文案同步更新 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - Web 管理端: systemPrompt.js API + SystemPromptManagement.vue 管理页 - - cfc-langgraph: requirements_frozen.txt 依赖冻结 - - web/img: 品牌/产品/引用源图片素材(cert/diagram/product-intro/products/ref) - - axonhub: AxonHub LLM 网关配置(compose+config) - - docs: web 品牌方向计划文档 - 未追踪 uploads/(临时 json 结果) 不入库 - - - HealthPlanServiceImpl 修复任务行正则,编号行任务可正常生成 - - report-detail 移除饮食推荐,肠道菌群/疾病风险/益生菌种/分类/病原菌改为折叠展示 - - cfc-langgraph 增强 PDF 报告解析(营养/药敏/氨基酸/症状字段)、rag 检索与向量化 - - schema.sql 补充新表;DatabaseInitializer/AIService/Layout 相关调整 - - - 会员限制:付费年度家庭会员不限次,非付费会员每月仅可重新制定一次(localStorage 记录) - - health-main: goPlanSummary 传 planId;报告日期格式化为 yyyy-MM-dd - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - 后端 DanReportUploadVO 增加 result 字段,getDetail 返回关联的 DanAssessmentResult 分数 - - 更新 4 处入口跳转:report-list、mind-detail、wisdom-detail、health-main - - - insurance-add .form-input height 80rpx->88rpx 增大触控区 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - '同意并继续'(5字) 导致 showModal 静默失败,弹窗不出现。 - 改为 '同意继续'(4字),同时移除所有 debug 代码。 - - - .form-input padding 16rpx->22rpx, font-size 26rpx->28rpx 提升触控体验 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - debug: 加 try-catch+fail+complete 跟踪 uni.showModal 是否执行 - - 疾病史:DISEASE_PRESETS(10项) → DISEASE_GROUPS(8组54项★菌群源),分类折叠多选,★角标说明,已选区设确诊时间(年月选择器) - - 用药:startDate年月 + durationText自动计算,记不清手动兜底 - - 后端零变更(JSON列透传),v1旧数据回显兼容 - - 7个任务:常量/数据模型/模板/逻辑/用药/保存/验证提交,含完整代码与验证命令 - - - action-detail: 新增关系强项与提升卡片,基于关系六维分数标记,空态引导关系问卷 - - wealth: 新增财富强项与提升卡片,基于财富四维分数标记 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - v2 重设计(基于调研补齐): - - 疾病史:菌群报告病症风险(20项 PdfParseService 白名单)+ 互联网统计常见病(约40项,附患病率/出处/年份)两源合并去重约50项,分类折叠多选;未列出的保留自定义补充兜底 - - 每条疾病新增确诊时间(年月选择器 yyyy-MM) - - 用药:每药一条保留,新增开始服药日期→自动计算已服时长,记不清时用时长文本兜底 - - 无 DDL 变更(disease_history/medications 为 JSON 字符串列,结构变化在 JSON 内部) - - 旧数据兼容:{name,note}/{name,time} 回显置空不报错 - - - 删除独立的 ReportStatsController,消除同路径下双 Controller 冲突 - - 所有接口路径不变,前端调用无需修改 - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - - - wisdom-detail: 新增肠胃与认知卡片,含认知指标(谷氨酸/多巴胺/色氨酸等)+引导上传 - - body-detail: 新增指标告警卡片,疾病风险(非低风险)+营养素/氨基酸异常(仅异常项) - - api.js: 新增 getGutCognitionIndicators/getBodyAbnormalIndicators - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - MindController: /api/mind/neurotransmitters 只返回情绪相关指标(血清素/多巴胺/GABA/色氨酸) - - WisdomGutController(新): /api/wisdom/gut-cognition 认知指标(谷氨酸/多巴胺/色氨酸/丁酸等) - - HealthReportController: /api/health/report/body-abnormal 疾病风险+营养/氨基酸异常(仅异常项) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - chartIsEmpty 和 currentScores 均改用 bodyData - - 与其他四维度(智/心/行/富)统一走后端API模式 - - - 新增 goSelfTest 方法 + selfTestTitle/selfTestSub 计算属性(有数据→再次了解·得分;无数据→引导文案) - - 新增 .self-test-* 样式(复用 health-main 视觉,边距对齐首页 30rpx) - - 未登录态 discover-container 零改动 - - 设计文档同步:PageBanner 已由 07d897a1 全局移除,① 了解区仅自测卡;补充 sandboxData 判定说明 - - 新增实现计划 docs/superpowers/plans/2026-08-18-homepage-health-funnel.md - - - - 清理遗留的「品牌头部」注释 - - 保留pages.json中配置的导航栏标题作为唯一标题 - - debug: 加 console 跟踪 report-upload 点击事件链路 - 目的是定位 @click 事件是否真正触发到 methods - - - ensureAgreed/startPick/uploadAndGoConfirm 内 var self=this 全部改为箭头函数 - - 修复某些情况下点击上传按钮无反应的问题 - - - - 修复报错,以及升级JDK - 修复报错,以及升级JDK - 修复报错,以及升级JDK ### 文档 - 用户画像与推荐系统实现计划 - 添加体脂秤参考资料图片 - 任务系统升级为行为调度中心-整体设计文档 - 将开发规范中 Dify 引用统一改为 LangGraph - AGENTS.md 新增评论自动回复工具章节,修正 click 触发方式 - 文章钩子追踪清单更新——D26/D27 发布记录与已兑现预告 - API 参考文档纳入开发规范 - 将 API 参考文档纳入开发规范 - 新增 API_REFERENCE.md 索引条目 - 新增后台接口参考文档 - 健康现状档案 v2 实现计划 — 疾病史两源预置清单+确诊时间+服药时长 - 健康现状档案 v2 设计 — 疾病史两源预置清单+确诊时间+服药时长 - 新增参考资料目录文件 - 学生评估PDF、方案docx/pdf、融资规划书PPT - 首页健康漏斗设计/计划状态同步为已实施 - 首页重构 — 主动健康漏斗设计(方案A:了解→发现→改变) ### 重构 - 首页能量沙盘解锁改判任一维度能量值>0 - 合并 ReportStatsController 到 StatsController,统一 /api/stats 路径 - 移除管理端AI问卷场景配置与LangGraph qna模块 - 删除13个意图/旅程/问卷页面与组件 - 移除首页/我的页意图弹层与旅程卡引用 - 移除api.js中AI问卷/意图/问题域API封装 - 删除AI问卷与画像全部13个文件 - 移除RecommendationController画像推荐端点 - 移除AiGateway动态问卷/画像方法 - 移除AI问卷数据库迁移(229/231)与schema四表定义 - 上传报告入口统一为 ReportUploadCard 组件 ### 性能优化 - 合并两次成员接口调用为一次 - 合并两次成员接口调用为一次 ## v1.0.1182 (2026-08-21) ### 新功能 - 创建画像实体类和Mapper接口 - 创建画像快照表和歷史表迁移脚本 - 身页面新增疾病风险卡片 ### Bug 修复 - 修正Task状态值、Product状态值、删除死代码RULES块、修复PointsLog查询语法 ### 其他 - - 展示疾病名称、风险值、等级标签(高风险红/需注意黄) - - gut-flora 接口确认已为 POST,无需修改 - ## v1.0.1181 (2026-08-21) ### 新功能 - 身页面新增疾病风险卡片 ### 其他 - - 展示疾病名称、风险值、风险等级(高风险红/需注意黄) - - gut-flora 接口已为 POST,无需修改 - ## v1.0.1180 (2026-08-21) ### Bug 修复 - 补充肠道菌群卡片CSS样式 ## v1.0.1179 (2026-08-21) ### 新功能 - 身页面新增肠道菌群指标卡片 ### 其他 - - 前端 body-detail 页面新增🦠肠道菌群区块:有报告时显示指标明细,无报告时引导上传 - - 显示菌群名称、丰度值、状态(正常/偏高/偏低)及摘要提示 - - 心/智页面已有肠脑轴数据展示,无需改动 - ## v1.0.1178 (2026-08-21) ### Bug 修复 - mind-detail/index 删除孤立多余闭合花括号 ### 文档 - 用户画像与推荐系统实现计划 ## v1.0.1177 (2026-08-21) ### Bug 修复 - login.vue 删除 return 对象尾随逗号 + report-detail 给 .food-item 补闭合花括号 ## v1.0.1176 (2026-08-21) ### Bug 修复 - 修复饮食推荐页面右侧溢出-添加box-sizing和width约束 ## v1.0.1175 (2026-08-21) ### Bug 修复 - 统一首页和成长页面今日任务标题命名 ## v1.0.1174 (2026-08-21) ### 新功能 - 饮食推荐页面重新设计-修复居中/溢出/快捷入口不可点并全面美化 ## v1.0.1173 (2026-08-21) ### 新功能 - 身/心/智页面重构 — 去七维/快捷/精准营养,改指标卡片 ### 其他 - - 新增指标卡片展示:体脂率/BMI/血压/血糖/步数/睡眠(身)、情绪稳定性/焦虑/开放性(心)、感知力/专注力/记忆力(智) - - 后端新增 POST /api/health/indicators 接口,按domain+memberId返回最新指标值 - - DatabaseInitializer迁移252:seed body/mind/wisdom指标定义27条 - - 各维度首页加载对应domain指标数据,点击卡片跳转详情 - ## v1.0.1172 (2026-08-21) ### Bug 修复 - 修复行页面能量沙盘数值不显示问题 - tasks表加parent_task_id列(购买任务→每日使用子任务链)+ schema同步 - health_plans补updated_at/审核字段列,修复selectById Unknown column ### 其他 - - 新增 loadEnergyOverview 方法调用 getEnergyOverview API - - WuxingSandbox 组件传递 :dimensions/:totalEnergy/:totalHealthIndex 属性 - - 修复 sortedDimensions 因 dimensions 为空导致 point-energy 始终显示 0 的问题 - - 对齐 child-index.vue 页面的正确用法 - - - schema.sql tasks表同步parent_task_id列定义 - - - schema.sql同步: health_plans CREATE TABLE补reviewed_by/reviewed_at/review_comment/teacher_id/updated_at - ## v1.0.1171 (2026-08-21) ### Bug 修复 - 打卡弹窗金额/备注输入框高度不足 — 增加padding和min-height - 打卡页隐藏原生导航栏,修复双标题 —— navigationStyle: custom 仅保留页面内标题 ## v1.0.1170 (2026-08-20) ### 新功能 - 调研任务创建时自动生成AI调研模板 - 购物任务联动-cart/order 动作自动加购/下单 ## v1.0.1169 (2026-08-20) ### Bug 修复 - 重新制定时重置viewMode,修复页面空白问题 ### 其他 - - step===1 && !viewMode → false(Step1不渲染) - - viewMode && planDetail → false(查看模式也不渲染) - - 页面空白 - 同时补充editing和sectionFeedback重置。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1168 (2026-08-20) ### Bug 修复 - 修复打卡页面双标题、输入框过小、睡眠页多余功能、心情页样式缺失 ### 其他 - - 睡眠打卡:移除照片上传和录音功能(不需要) - - 心情打卡:补全所有缺失的基础样式,修复布局混乱 - ## v1.0.1167 (2026-08-20) ### 新功能 - 方案审核流程优化 — 用户可选规划师或系统自动出方案 ### 其他 - - 新增 teacher-select.vue 规划师选择页,调用 /api/health/plan/available-teachers - - 新增 HealthPlan.teacherId 字段 + DatabaseInitializer 迁移251 - - 新增 getAvailableTeachers 接口(已绑定+同团队+全量规划师) - - submitPlan 根据 needTeacher 决定状态:pending_review/published - - listPendingReviewPlans 支持按 teacherId 过滤 - ## v1.0.1166 (2026-08-20) ### Bug 修复 - 修复微信登录 invalid code (40029) —— 不再 onLoad 预取 login code,改为点击授权时实时获取 ### 其他 - 会导致 code2Session 返回 40029 invalid code。login.vue 改为与 - invite/join.vue 一致的模式:getPhoneNumber 中实时 uni.login 获取新 code。 - ## v1.0.1165 (2026-08-19) ### 新功能 - 规划师方案维护功能 — 前端审核页面 + 路由 + API ### 其他 - - cfc-web: 新增 api/healthPlan.js 接口封装 - - cfc-web: TeacherDashboard 快捷入口新增「健康方案审核」 - - cfc-web: router 新增 /teacher-health-plan-review 路由 - - cfc-frontend: health-plan-summary.vue 更新状态展示和成功提示 - 后端已有 c4744618,本次为前端配套 - ## v1.0.1164 (2026-08-19) ### Bug 修复 - 任务列表标题列支持排序,孩子ID改为显示用户名 ### 新功能 - 方案维护功能 — 规划师审核发布流程 ### 其他 - - DatabaseInitializer: 迁移250 新增审核字段,status枚举扩展 pending_review/published/rejected - - HealthPlanService: 新增 listPendingReviewPlans/updatePlanContent/approveAndPublish/rejectPlan 方法 - - HealthPlanServiceImpl: savePlan 默认 pending_review 状态,审核通过后生成任务 - - HealthPlanController: 新增 /pending-review/{list,update,approve,reject} 四个端点 - 流程: 用户生成方案 → draft/pending_review → 规划师编辑 → 审核通过(published) → 自动生成任务 - ## v1.0.1163 (2026-08-19) ### 新功能 - 体脂秤图片采集接入报告上传流程 ### 其他 - - report-upload.vue: 新增体脂秤入口卡片 + goBodyFatScale/uploadBodyFat 方法 - - bodyfat-confirm.vue: 新建指标确认页(可编辑数值 + 绑定成员 + 保存) - - utils/api.js: 新增 saveBodyFatMetrics API - 后端: - - HealthReportController: 新增 /report/bodyfat-upload(图片上传+AI识别)+ /report/bodyfat-save(保存指标) - - BodyFatScaleService: 图片→DeepSeek-VL OCR→提取指标→存 indicator_values - - DatabaseInitializer: 注释废弃的 seedFullRegionData() 调用 - - pom.xml: source/target 改为 1.8(适配当前 JDK 环境) - - application.yml: 新增 deepseek.vision-* 配置 - ## v1.0.1162 (2026-08-19) ### 其他 - 账户权限分离 - 修复报错,以及升级JDK - 修复报错,以及升级JDK - 修复报错,以及升级JDK ## v1.0.1161 (2026-08-19) ### Bug 修复 - health-main 移除已删除报告入口 + growth-emotion-checkin 添加照片上传 ### 文档 - 添加体脂秤参考资料图片 ### 新功能 - checkin 页面合并远端 UI 改进 + 保留 getPhotoKey 修复 ## v1.0.1160 (2026-08-19) ### 新功能 - 体脂秤图片数据采集器 — 修复 Java 8 兼容性问题 ### 其他 - - 修复 ArrayNode/ObjectNode 类型不匹配 - - 修复 String.isBlank() → trim().isEmpty() - - 修复 var → 显式类型声明 - - 编译验证通过 - ## v1.0.1159 (2026-08-19) ### 新功能 - 体脂秤图片数据采集器 ### 其他 - - 调用 DeepSeek-VL 视觉模型 OCR 提取体脂秤指标(体重/BMI/体脂率/肌肉量等) - - 自动创建 indicator_definitions + 保存 indicator_values(source_type=body_fat_scale) - - 新增 AdminBodyFatScaleController: - - POST /api/admin/bodyfat-scale/images/list — 列出图片 - - POST /api/admin/bodyfat-scale/images/analyze — 单张分析预览 - - POST /api/admin/bodyfat-scale/save — 手动保存指标到成员 - - POST /api/admin/bodyfat-scale/batch — 批量处理多张图片 - - application.yml 新增 bodyfat-scale.image-dir 和 deepseek.vision-* 配置 - ## v1.0.1158 (2026-08-19) ### 文档 - 任务系统升级为行为调度中心-整体设计文档 ### 其他 - - 缺口:无前置任务/频率单一/购物零联动/require_input 无强制/无 start 两阶段 - - 设计:action_type 声明式联动、TaskEngine 集中判定、task_executions 执行记录、三阶段实施路径 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - tasks.vue 今日任务:按 actionType 渲染按钮文案(开始游戏/专注/填写/阅读/报名/购物),locked 灰态+解锁提示,start_required 先开始再完成,require_input 弹填写面板提交内容 - - create-task.vue 新增联动动作/两阶段/填写式开关+商品ID配置,重复设置扩展隔天/每月,补全 repeatTypeLabel/actionTypeLabel computed - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - 新增 task_executions 执行记录表(started/finished 两阶段落库)+ focus_sessions.task_id - - DatabaseInitializer 迁移248:ensureColumn 幂等 + CREATE TABLE IF NOT EXISTS - - TaskService:completeTask 前置校验/填写强校验/两阶段校验/最短时长校验,完成后解锁后置任务;新增 startTask(pending→in_progress 并记录 execution) - - TaskController 新增 POST /api/tasks/{id}/start;complete 支持 content/contentType - - RepeatTaskGenerator 重构为频率分派:hourly/daily/every_other_day/weekly/monthly,每小时 cron 扫描,兼容旧 repeatType - - CreateTaskDTO/CompleteTaskDTO 透传新字段 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ### 新功能 - 任务系统升级-行为调度中心前端(动作联动/两阶段/填写式完成) - 任务系统升级-行为调度中心后端(前置任务/频率任务/两阶段/填写式完成) ## v1.0.1157 (2026-08-19) ### 新功能 - 健康方案页重写为多步骤结构化编辑流程 ## v1.0.1156 (2026-08-19) ### 文档 - 将开发规范中 Dify 引用统一改为 LangGraph ### 其他 - - AiGateway.java: 日志消息更新 - - AIChatController.java: 注释和方法引用更新 - - ContextApiController.java: Javadoc 更新 - - ButlerController.java: Operation summary 更新 - - MealRecommendController.java: 变量名 difyResp→langgraphResp - - KnowledgeBaseController.java: 依赖注入名更新 - - DifySyncService → LanggraphSyncService(类名/方法名同步) - - DanKnowledgeBaseService.java: 依赖引用更新 - - AGENTS.md: AI集成说明更新 - - PROJECT-OVERVIEW.md: 历史条目中DifySyncService→LanggraphSyncService - ## v1.0.1155 (2026-08-19) ### 新功能 - 评论自动回复脚本 comment_reply.py——CDP 驱动,click 修复与残缺选择器修复 - 新增 D26/D27/D28 文章稿、推流试验稿及内容草稿 ### 文档 - AGENTS.md 新增评论自动回复工具章节,修正 click 触发方式 - 文章钩子追踪清单更新——D26/D27 发布记录与已兑现预告 ## v1.0.1154 (2026-08-19) ### 新功能 - 照片自动情绪识别 — 后端 AI 调用 + 前端真实 API ### 其他 - - 新增 EmotionRecognitionResult DTO(情绪列表+moodWeather) - - AIService.sendEmotionRecognition(): 调用 Dify 情绪识别 Workflow - - EmotionCheckinService.analyzeEmotionFromImage(): 解析结构化结果 - - EmotionCheckinController: POST /api/mind/checkin/emotion/recognize - - application.yml: dify.emotion-api-key 配置项(空=mock模式) - 前端: - - analyzeEmotion() 改为真实 API 调用(上传+识别两步) - - 识别结果自动填充 aiResult,支持 applyAiTags 应用标签 - - 提交时复用已上传的 photoUrl,避免重复上传 - ## v1.0.1153 (2026-08-19) ### 新功能 - 照片自动情绪识别 — Dify AI 图像分析 + 前端接入 ### 其他 - - AIService.sendEmotionRecognition(): 调用 Dify 情绪识别 Workflow,支持 mock 兜底 - - EmotionCheckinService.analyzeEmotionFromImage(): 解析结构化情绪列表 - - EmotionCheckinController: 新增 POST /api/mind/checkin/emotion/recognize - - application.yml: 新增 dify.emotion-api-key 配置项 - ## v1.0.1152 (2026-08-19) ### Bug 修复 - 系统提示词INSERT列数不一致 + 知识库embedding TPM重试 + tags_str类型修复 ## v1.0.1151 (2026-08-19) ### Bug 修复 - action-detail/wealth/wisdom-detail 修复 :key 表达式 ### 重构 - 首页能量沙盘解锁改判任一维度能量值>0 ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1150 (2026-08-19) ### 新功能 - HealthPlan后端重构 - planJson/status字段+regenerate-section接口 ## v1.0.1149 (2026-08-19) ### 新功能 - 首页区块顺序调整为 1-2-9-7-8-5-6-4-3-10-11 - 健康方案生成工作流重构 - LangGraph结构化方案+Java对接 - LLM推送数据PII脱敏(智能脱敏) ### 其他 - - - FamilyContextService: 用户/孩子姓名脱敏 - - AiGateway.chat/generateQuestionnaire/generateMenu/generateHealthPlan: 入口脱敏 - - AIService: sendNutritionMessage/sendTongueDiagnosis/runWorkflow/enrichInputsWithMemory/mirrorConversation/getContext/requestSummaryAsync: 入口脱敏 - - 化名映射: userId+salt→SHA-256→固定化名, 保证AI可识别同一用户 - - - 幂等检查加 deadline 日期窗口过滤,避免历史任务阻塞当天生成 - - RepeatTaskGenerator 每天凌晨5点可正确识别并再生方案任务 - ### Bug 修复 - 方案任务设置repeatType=daily,幂等检查限定当天deadline ## v1.0.1148 (2026-08-19) ### 文档 - API 参考文档纳入开发规范 - 将 API 参考文档纳入开发规范 ### 其他 - - cfc-backend/AGENTS.md:新增接口前三步检查流程(复用→修改→新增)+ 废弃接口 410 处理 - - - AGENTS.md:接口规范补充「新增接口前查阅文档」和「废弃接口处理」 - - cfc-backend/AGENTS.md:新增接口前三步检查流程(复用→修改→新增) - - 废弃接口统一标记 410 + @Deprecated - ## v1.0.1147 (2026-08-19) ### 文档 - 新增 API_REFERENCE.md 索引条目 - 新增后台接口参考文档 ### 其他 - - 标注已废弃接口(7 处,返回 410) - - 列出待清理废弃接口清单 - - 新增接口检查清单与流程 - ## v1.0.1146 (2026-08-19) ### Bug 修复 - 健康方案成员选择选中状态增强 ### 其他 - - 勾选圆圈 36rpx->44rpx,未选时透明打勾文字(不显示),选中时橙色填充✓ - - 步骤标题行加已选人数 badge(橙色胶囊标签) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1145 (2026-08-18) ### Bug 修复 - 心情打卡同步情绪日记—checkinDate 空值兜底为当天 ### 其他 - ## v1.0.1144 (2026-08-18) ### 新功能 - 心情打卡同步到情绪日记 ### 其他 - - DailyCheckinService.createCheckin 在 moodScore 有值时自动同步到 emotion_checkin 表 - - upsert 逻辑:今日已有记录则更新,否则新建 - - moodScore 1-10 → moodWeather 映射(sunny/cloudy/rainy/stormy) - - 同步失败不影响主流程 - ## v1.0.1143 (2026-08-18) ### Bug 修复 - 健康方案重做限制改为每日一次 ### 其他 - - localStorage key 改为按日期(yyyy-M-d)记录 - - 提示文案同步更新 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1142 (2026-08-18) ### 新功能 - 新增 SystemPrompt 管理功能 + web 品牌与产品素材 ### 其他 - - Web 管理端: systemPrompt.js API + SystemPromptManagement.vue 管理页 - - cfc-langgraph: requirements_frozen.txt 依赖冻结 - - web/img: 品牌/产品/引用源图片素材(cert/diagram/product-intro/products/ref) - - axonhub: AxonHub LLM 网关配置(compose+config) - - docs: web 品牌方向计划文档 - 未追踪 uploads/(临时 json 结果) 不入库 - ## v1.0.1141 (2026-08-18) ### Bug 修复 - 修复报告方案链路与报告详情折叠展示 ### 其他 - - HealthPlanServiceImpl 修复任务行正则,编号行任务可正常生成 - - report-detail 移除饮食推荐,肠道菌群/疾病风险/益生菌种/分类/病原菌改为折叠展示 - - cfc-langgraph 增强 PDF 报告解析(营养/药敏/氨基酸/症状字段)、rag 检索与向量化 - - schema.sql 补充新表;DatabaseInitializer/AIService/Layout 相关调整 - ## v1.0.1140 (2026-08-18) ### 新功能 - 健康现状档案 v2 — 疾病史两源预置清单分类多选+确诊时间,用药开始年月自动计算时长 - 疾病史:DISEASE_PRESETS(10项) → DISEASE_GROUPS(8组54项,★菌群源),分类折叠多选,★角标说明 - 确诊时间:年月选择器(fields=month, end限当前月),存 diagnosedAt(yyyy-MM) - 用药:startDate年月 + durationText自动计算(<12月→X个月, ≥12→X年),记不清可手动兜底 - 后端零变更(JSON列透传),v1旧数据({name,note}/{name,time})回显兼容 - 新增 computed.selectedNames + 17 个 CSS 类 ## v1.0.1139 (2026-08-18) ### Bug 修复 - 健康方案查看页+报告日期格式 ### 其他 - - 会员限制:付费年度家庭会员不限次,非付费会员每月仅可重新制定一次(localStorage 记录) - - health-main: goPlanSummary 传 planId;报告日期格式化为 yyyy-MM-dd - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1138 (2026-08-18) ### 新功能 - DAN 测评报告专用详情页 ### 其他 - - 后端 DanReportUploadVO 增加 result 字段,getDetail 返回关联的 DanAssessmentResult 分数 - - 更新 4 处入口跳转:report-list、mind-detail、wisdom-detail、health-main - ## v1.0.1137 (2026-08-18) ### Bug 修复 - 保单管理页居中+控件高度 ### 其他 - - insurance-add .form-input height 80rpx->88rpx 增大触控区 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1136 (2026-08-18) ### Bug 修复 - 移除 report-upload 自定义导航栏,使用原生导航栏避免双标题 ### 其他 - ## v1.0.1135 (2026-08-18) ### Bug 修复 - confirmText 改为4字以内,移除debug日志和红色横幅 ### 其他 - '同意并继续'(5字) 导致 showModal 静默失败,弹窗不出现。 - 改为 '同意继续'(4字),同时移除所有 debug 代码。 - ## v1.0.1134 (2026-08-18) ### Bug 修复 - AiGateway 缺少 @PostConstruct import 导致编译失败 ## v1.0.1133 (2026-08-18) ### Bug 修复 - 财商打卡页居中+控件高度 - 容器宽度约束+input padding增大 ### 其他 - - .form-input padding 16rpx->22rpx, font-size 26rpx->28rpx 提升触控体验 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1132 (2026-08-18) ### 其他 - debug: 加 try-catch+fail+complete 跟踪 uni.showModal 是否执行 ## v1.0.1131 (2026-08-18) ### 文档 - 健康现状档案 v2 实现计划 — 疾病史两源预置清单+确诊时间+服药时长 ### 其他 - - 疾病史:DISEASE_PRESETS(10项) → DISEASE_GROUPS(8组54项★菌群源),分类折叠多选,★角标说明,已选区设确诊时间(年月选择器) - - 用药:startDate年月 + durationText自动计算,记不清手动兜底 - - 后端零变更(JSON列透传),v1旧数据回显兼容 - - 7个任务:常量/数据模型/模板/逻辑/用药/保存/验证提交,含完整代码与验证命令 - ## v1.0.1130 (2026-08-18) ### 新功能 - 智行富三页强项与提升卡片-认知/关系/财富强弱项标记 ### 其他 - - action-detail: 新增关系强项与提升卡片,基于关系六维分数标记,空态引导关系问卷 - - wealth: 新增财富强项与提升卡片,基于财富四维分数标记 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - v2 重设计(基于调研补齐): - - 疾病史:菌群报告病症风险(20项 PdfParseService 白名单)+ 互联网统计常见病(约40项,附患病率/出处/年份)两源合并去重约50项,分类折叠多选;未列出的保留自定义补充兜底 - - 每条疾病新增确诊时间(年月选择器 yyyy-MM) - - 用药:每药一条保留,新增开始服药日期→自动计算已服时长,记不清时用时长文本兜底 - - 无 DDL 变更(disease_history/medications 为 JSON 字符串列,结构变化在 JSON 内部) - - 旧数据兼容:{name,note}/{name,time} 回显置空不报错 - ### 文档 - 健康现状档案 v2 设计 — 疾病史两源预置清单+确诊时间+服药时长 ## v1.0.1129 (2026-08-18) ### 重构 - 合并 ReportStatsController 到 StatsController,统一 /api/stats 路径 ### 其他 - - 删除独立的 ReportStatsController,消除同路径下双 Controller 冲突 - - 所有接口路径不变,前端调用无需修改 - ## v1.0.1128 (2026-08-18) ### Bug 修复 - 解决 merge 冲突 - health-main/index-home 合并冲突 & AiGateway 保留 ## v1.0.1127 (2026-08-18) ### Bug 修复 - 同步远端重构合并 + 保持 :key 修复与 trial 环境地址 ## v1.0.1126 (2026-08-18) ### 重构 - 移除管理端AI问卷场景配置与LangGraph qna模块 - 删除13个意图/旅程/问卷页面与组件 - 移除首页/我的页意图弹层与旅程卡引用 - 移除api.js中AI问卷/意图/问题域API封装 - 删除AI问卷与画像全部13个文件 - 移除RecommendationController画像推荐端点 - 移除AiGateway动态问卷/画像方法 - 移除AI问卷数据库迁移(229/231)与schema四表定义 ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1125 (2026-08-18) ### 性能优化 - 合并两次成员接口调用为一次 ### 其他 - ## v1.0.1124 (2026-08-18) ### 性能优化 - 合并两次成员接口调用为一次 ### 其他 - ## v1.0.1123 (2026-08-18) ### 文档 - 新增参考资料目录文件 - 学生评估PDF、方案docx/pdf、融资规划书PPT ## v1.0.1122 (2026-08-18) ### 新功能 - 心身智三页肠脑轴卡片-情绪/认知指标过滤+身体异常告警 - 肠脑轴指标过滤+异常指标告警-认知/情绪分类+身体异常指标端点 ### 其他 - - wisdom-detail: 新增肠胃与认知卡片,含认知指标(谷氨酸/多巴胺/色氨酸等)+引导上传 - - body-detail: 新增指标告警卡片,疾病风险(非低风险)+营养素/氨基酸异常(仅异常项) - - api.js: 新增 getGutCognitionIndicators/getBodyAbnormalIndicators - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - MindController: /api/mind/neurotransmitters 只返回情绪相关指标(血清素/多巴胺/GABA/色氨酸) - - WisdomGutController(新): /api/wisdom/gut-cognition 认知指标(谷氨酸/多巴胺/色氨酸/丁酸等) - - HealthReportController: /api/health/report/body-abnormal 疾病风险+营养/氨基酸异常(仅异常项) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1121 (2026-08-18) ### Bug 修复 - pages.json 删除多余右花括号修复 JSON 语法 ## v1.0.1120 (2026-08-18) ### Bug 修复 - 健康主页身维度雷达图改用真实API数据 ### 其他 - - chartIsEmpty 和 currentScores 均改用 bodyData - - 与其他四维度(智/心/行/富)统一走后端API模式 - ## v1.0.1119 (2026-08-18) ### 文档 - 首页健康漏斗设计/计划状态同步为已实施 ### 新功能 - 首页健康漏斗重构 — 了解区自测卡 + 四段式区块重排 ### 其他 - - 新增 goSelfTest 方法 + selfTestTitle/selfTestSub 计算属性(有数据→再次了解·得分;无数据→引导文案) - - 新增 .self-test-* 样式(复用 health-main 视觉,边距对齐首页 30rpx) - - 未登录态 discover-container 零改动 - - 设计文档同步:PageBanner 已由 07d897a1 全局移除,① 了解区仅自测卡;补充 sandboxData 判定说明 - - 新增实现计划 docs/superpowers/plans/2026-08-18-homepage-health-funnel.md - ## v1.0.1118 (2026-08-17) ### 文档 - 首页重构 — 主动健康漏斗设计(方案A:了解→发现→改变) ## v1.0.1117 (2026-08-17) ### Bug 修复 - 内联弹窗逻辑到 pickFile/takePhoto,消除方法调用链断裂问题 ### 其他 - ## v1.0.1116 (2026-08-17) ### Bug 修复 - 移除所有页面中的PageBanner组件,消除双层标题 ### 其他 - - 清理遗留的「品牌头部」注释 - - 保留pages.json中配置的导航栏标题作为唯一标题 - ## v1.0.1115 (2026-08-17) ### 其他 - debug: 加 console 跟踪 report-upload 点击事件链路 - 目的是定位 @click 事件是否真正触发到 methods - ## v1.0.1114 (2026-08-17) ### Bug 修复 - 迁移249 file_record补file_type/description列,修复Unknown column错误 ## v1.0.1113 (2026-08-17) ### 重构 - 上传报告入口统一为 ReportUploadCard 组件 ## v1.0.1112 (2026-08-17) ### Bug 修复 - 允许 cfc.iwintrue.com 访问后端 API ## v1.0.1111 (2026-08-17) ### Bug 修复 - 责任声明勾选改方法调用+箭头函数消除this丢失隐患 - 修复行页面FamilyEnergyBar标签断裂导致模板文本裸露 ### 其他 - - ensureAgreed/startPick/uploadAndGoConfirm 内 var self=this 全部改为箭头函数 - - 修复某些情况下点击上传按钮无反应的问题 - ### 新功能 - 今日任务和报告上传移至推荐阅读上方,推荐商品移到底部 ## v1.0.1110 (2026-08-17) ### 新功能 - 列头排序增强 — 单列循环 + 多列组合排序 ### 其他 - - sort.css: 新增 sort-index badge 样式(绿色升序/橙色降序) - - 9个管理页面列头直接显示排序序号badge - - Foods.vue: 清理重复方法定义 - ## v1.0.1109 (2026-08-17) ### Bug 修复 - 请求超时提升至60s + 复制新建按钮loading态 ### 其他 - - ArticleEdit 复制并新建按钮加 loading 防重复点击 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - mind-detail/mind-extra 列表摘要 stripHtml 清理,避免富文本标签直接展示 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - AI 自动标签生成改为 taskExecutor 异步执行,不阻塞 HTTP 响应 - - AdminArticleController.create 捕获业务异常返回 Result.error - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ### 新功能 - 文章详情mp-html富文本渲染 + 列表摘要去HTML标签 - 文章创建幂等检查 + AI标签生成异步化 ## v1.0.1108 (2026-08-17) ### 新功能 - 统一AI接口走Java后端,删除前端直连LangGraph ### 其他 - - 前端4个AI函数改为直连Java /api/ai/*路由 - - 删除langgraphRequest适配层及LANGGRAPH_BASE_URL配置 - - 后端:systemPoints/CF值命名统一,PointsService方法重命名为awardCfPoints/deductCfPoints/getCfPointsBalance - - 前端ProfileHeader.vue:系统积分改显示为CF值 - ## v1.0.1107 (2026-08-17) ### Bug 修复 - 心理测评DAN部分改为'人格、情绪、自我概念和自驱力测评' ## v1.0.1106 (2026-08-17) ### 新功能 - 认知测评与心理测评补充说明双培强基DAN测评 ## v1.0.1105 (2026-08-17) ### 新功能 - 上传报告页新增认知测评、心理测评、情绪打卡三种类型说明 ## v1.0.1104 (2026-08-17) ### 新功能 - 小程序 AI 请求统一走 Java 后端 ### 其他 - - 前端 4 个 AI 函数改为直连后端 /api/ai/* 路由 - - 删除 langgraphRequest() 适配层及 LANGGRAPH_BASE_URL/DIFY_BASE_URL 配置 - ## v1.0.1103 (2026-08-17) ### 新功能 - 首页能量沙盘门禁引导卡 - 未测评时显示GateLock (sandbox-gate) - 能量沙盘门禁改家庭级判据 - 任一成员做过五维自检即解锁 (sandbox-gate) ### 其他 - - gate-lock SELF_CHECK 按钮文案对齐五维基础能量检测 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - EnergyController.sandbox 个人视角改用家庭级判据 + selfCheckGateOrFallback 内置兜底 gate(无种子时前端 GateLock 也能渲染引导按钮) - - getUserUnlockStatus 个人沙盘锁定标志同步家庭级,与 /api/energy/sandbox 一致 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1102 (2026-08-17) ### Bug 修复 - 修复组件引用路径与打卡页 :key 表达式 ## v1.0.1101 (2026-08-17) ### 新功能 - 里程碑置顶,打卡记录→任务中心,健康报告状态卡片,四种打卡页面支持照片/文字/语音 - 小程序 AI 请求统一走 Java 后端 ### 其他 - - 前端 4 个 AI 函数改为直连后端 /api/ai/* 路由 - - 删除 langgraphRequest() 适配层及 LANGGRAPH_BASE_URL/DIFY_BASE_URL 配置 - ## v1.0.1100 (2026-08-17) ### 新功能 - 增加健康问卷确认步骤 ### 其他 - - 步骤条新增第3步「健康问卷」 - - Step2「生成方案」改为「下一步」至健康问卷步骤 - - Step3健康问卷:已填写则带出摘要确认,未填写引导去填写 - - Step4确认方案:原Step3内容,regenerate返回Step3 - - 新增healthStatusSummary computed解析健康数据摘要 - - 新增parseLipidText/parseNameList/parseMedText/formatTime辅助方法 - - 新增goFillQuestionnaire跳转健康问卷表单页 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1099 (2026-08-16) ### 新功能 - 报告上传页移除检测服务商品列表,改为上传报告类型说明 ## v1.0.1098 (2026-08-16) ### 新功能 - add 记账打卡 tracking item to daily progress - replace service grid with insurance policy list - add 推广收益 icon to achievement grid, navigate to wealth center - linked SKU 已选区补充关联商品详情跳转入口 - 适配 linked SKU - 选择时动态更新商品信息,下单/加购转发至关联商品 - ProductSkuEditor 双模式(规格变体/关联商品)+ ProductPicker 组件 - 购物车/下单 linked SKU 转发到关联商品 - 管理端商品选择器 API /api/admin/product/linked/list - specMap 扩展返回 linked 商品摘要,库存为0/已下架不显示 - ProductSkuService 创建/更新支持 linked SKU,跳过 specs 校验 - ProductSku 新增 linkedProductId/label 字段,迁移247 ### 文档 - SKU 关联商品选择器实施计划 8 Tasks - fix 循环关联歧义 — 明确 1 层限制 - SKU 关联商品选择器设计文档 — linked_product_id + label 模型,不迁移存量 ### Bug 修复 - LANGGRAPH_BASE_URL 改为 https://ai.etotem.com.cn(微信小程序强制 HTTPS) ## v1.0.1097 (2026-08-16) ### 新功能 - 专项调研页适配 v2 契约 - 按 code 拉取问卷 + 提交选项 id (survey-rework) - 专项调研重设计 v2 - 统一问卷契约 + 内置默认问卷 (survey-rework) ### 其他 - - flow-intro.vue:surveyTemplateId 取值修正(后端返回平铺字段,兼容嵌套 surveyTemplate.id) - - api.js:新增 getProblemSurveyQuestions(code) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - submit 改读 surveyTemplateId(兼容旧 templateId),answers 统一 [{questionId, optionIds}](兼容旧 Map/[{questionText, optionTexts}]) - - ProblemDomainController.list 补平铺 surveyTemplateId 字段(修复 flow-intro 透传断链) - - 迁移248:survey_templates 内置 3 个问题域问卷种子(空表才插入)+ problem_domains 未绑定才绑定,幂等 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1096 (2026-08-16) ### Bug 修复 - 迁移248创建health_report_edit_logs表,修复表不存在错误 ## v1.0.1095 (2026-08-16) ### Bug 修复 - 补充移除剩余3处 AI 字样 ### 其他 - - AIFloatingAvatar → FloatingAvatar, AITaskCard → TaskCard 组件重命名 - - 政策文档中 AI 相关描述替换为中性表述 - - 29 个文件,1398 行变更 - ## v1.0.1094 (2026-08-16) ### 新功能 - 旅程 stage 3/4 推进 + 购买→方案关联校验 (P1) ### 其他 - - PackageLogisticsController:物流状态非 none → 推进旅程 stage=4(试剂盒已发/样本已收) - - ProblemPackageController.confirm:确认方案前校验套餐已购买(paid/pending 订单),打通购买→方案关联 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - wealthChildLegacy(119) → wealthAltruism 利他贡献题(分享经验帮助他人) - ### Bug 修复 - 自测问卷财富子维度题目对齐利他创富四维模型 ## v1.0.1093 (2026-08-16) ### Bug 修复 - ProductEdit.vue 修复 editorConfig 初始化被挤出 created() 导致的构建失败 ## v1.0.1092 (2026-08-16) ### 其他 - Revert "feat(web): 批量添加列表页分页+排序+横向滚动(109文件)" - - - 方案保存后后端 savePlan() 自动调用 generateDailyTasksFromPlan() - - 生成每日 Task(sourceType=plan, sourceId=plan.id) - - 修复前:方案内容未入库,后端任务生成链从未触发 - ### Bug 修复 - 方案保存后自动触发每日任务生成链路 ## v1.0.1091 (2026-08-16) ### 其他 - Revert "feat(web): 批量添加列表页分页+排序+横向滚动(109文件)" - ## v1.0.1090 (2026-08-16) ### 新功能 - 富维度重构为利他创富四子维度模型(能力/利他/CF值/素养) ### 其他 - - 家长:能力25% + 利他30% + CF值35% + 素养10% - - 孩子:学业25% + 利他30% + 积分35% + 素养10% - - 新增 mapper 注入:FamilyPlatformBalanceMapper(CF值)、ReferralTreeMapper(邀请人数)、GuideMapper(服务商资质) - - DTO:新增 wealthSkill/wealthAltruism/wealthFx 共用字段,旧字段兼容保留 - - 前端:WealthSubScores.vue、wealth/index.vue、health-main/index.vue 全部适配 4 子维度 - - pages.json:移除不存在的 intent-quiz 页面引用 - ## v1.0.1089 (2026-08-16) ### 新功能 - 方案确认改调生成任务接口 (P0) - 方案确认生成会员任务 + 补全会员校验绕过路径 (P0) ### 其他 - - api.js:新增 confirmProblemPlan 封装 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - TaskPlanService.generatePlanTasks:plan items 生成可执行任务,打通 ProblemCompletionService 发奖链路 - - TaskController:complete-minigame / batch-complete 补 checkMemberOnly - - GuideFamilyTaskController:单个/批量审核补会员校验 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### 文档 - 功能分析定义表(按会员等级梳理,含前置关卡) ## v1.0.1088 (2026-08-16) ### 新功能 - 批量添加列表页分页+排序+横向滚动(109文件) - 商品编辑-线上服务者简化为服务商下拉选择 - 健康报告列表增加报告人/报告日期/上传日期 ### 其他 - - 67 个页面添加 sortable="custom" 列排序 - - 12 个 teacher/nutritionist/service 页面添加 el-pagination 分页 - - PlanManagement.vue 样板参考实现 - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### Bug 修复 - 恢复 CHANGELOG 至 v1.0.1087(修复 stash 冲突时误取旧版本) - 方案制定页成员选中效果加强-粗边框投影+头像变色+圆形对勾徽章 ## v1.0.1087 (2026-08-15) ### Bug 修复 - 清理菜单管理页残留冲突标记 - 迁移247 user_intents补skip_count/last_skip_at列,修复Unknown column错误 ### 新功能 - 菜单编辑改用树形选择器作为上级菜单 ### 其他 - - 新增 treeData computed:递归展平菜单树,带 padding 缩进 - - 新增 currentLabel computed:选中后显示面包屑路径(如 系统配置 > 基础管理 > 用户管理) - - 新增 excludedIds computed:编辑模式下自动排除自身及所有子孙节点,防循环引用 - - 新增 selectParentNode 方法:点击树节点设置 parentId - - 添加 parent-hint 提示条:显示当前选中上级路径或'顶级菜单' - ### 样式 - 副标题文案调整 ## v1.0.1086 (2026-08-15) ### 新功能 - 通知模板通道多选加公众号选项 (W3) - 通知五通道模型 - 公众号通道 + 通道抽象 (W3) ### 其他 - - 提示文案:小程序内为内置通道,短信/微信/公众号/电话需接入外部接口后生效 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - NotificationChannel 接口 + NotificationMessage DTO - - 5 通道实现: - - InAppNotificationChannel 内置写库 - - Sms/Wechat/Gzh/Phone 外部通道预留 stub(enabled 配置开关 + 日志,TODO 接入网关) - - NotificationDispatchService 统一分发入口:读模板 → 占位符替换 → 按 channels 多选分发 - - DanReportUploadService / ProblemCompletionService 改走分发服务(移除硬编码/模板辅助方法) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1085 (2026-08-15) ### 新功能 - 单入口问卷弹窗 + 首页跳转修正 ### 其他 - - 以后再说调用 /api/user-intent/skip 记录skipCount,最多3次 - - B类跳转改为 /pages/health/ai-questionnaire(原指向domain-list) - - handleIntentClose 移除旧 intent_skipped 存储标记 - - 后端skip接口、user_intents.skip_count列均已就绪 - ## v1.0.1083 (2026-08-15) ### Bug 修复 - ArticleCategory.vue 修复 el-dialog 标签缺失导致属性裸奔 ### 新功能 - 意图问卷入口 + 跳过提醒机制 ### 其他 - - UserIntent实体新增skipCount/lastSkipAt字段 - - 新增POST /api/user-intent/skip 接口记录跳过次数 - - 迁移243: user_intents表添加skip_count和last_skip_at列 - 前端: - - 新增pages/health/intent-quiz.vue意图问卷入口页(三选一:随便看看/先了解自己/解决问题+以后再说) - - health-main新增showIntentReminder状态,跳过1-2次后显示提醒横幅 - - 跳转逻辑:A类→返回浏览 / B类→AI问卷 / C类→问题域选择 - 设计说明: - - 所有用户从统一入口开始(intent-quiz页面) - - 随便看看用户点击以后再说,记录skipCount,最多提醒3次 - - 先了解自己/解决问题用户直接进入AI智能问卷或问题域选择 - ## v1.0.1082 (2026-08-15) ### Bug 修复 - 报告详情页异常数量修复 + 指标自组装异常统计补齐 - 修复动态菜单子菜单名称为空、无子菜单的一级菜单展开箭头问题 ### 其他 - 仅 high/low/abnormal/偏高/偏低/异常/缺乏/不足/注意/高风险 计入异常数 - - assembleBlocksFromPayload 生成 indicator 块时携带 abnormalCount - - report-blocks-renderer indicator 块标题行显示异常数量 - - - 模板: el-submenu 增加 children.length > 0 条件(无子节点时不渲染展开箭头) - - key/index: 补充 id 兜底,避免 path 为空时的渲染异常 - ## v1.0.1081 (2026-08-15) ### 新功能 - 商品详情页展示套餐包含明细 - 商品编辑页支持套餐类型及套餐组成配置 - ProductService.detail返回套餐商品组成 - ProductDTO新增bundleItems套餐组成字段 - 迁移246创建product_bundle_items表(套餐商品组成明细) ### 文档 - 商品套餐管理功能实现计划 ## v1.0.1080 (2026-08-15) ### 文档 - 更新 PROJECT-OVERVIEW.md v2.8 — SKU价格单位统一分 + 规格选择响应式修复 (7 Tasks 已完成) - SKU价格统一分单位+规格按钮修复 实现计划 - SKU规格价格统一分单位 + 详情页规格按钮响应式修复设计文档 ### Bug 修复 - 详情页规格选择用/,按钮始终可点 - ProductSkuEditor 价格显示/输入采用元,提交采用分 (×100) - 迁移245 product_skus存量价格×100(元→分),sys_config幂等标记 - 购物车项单价有SKU时用规格价,修复购物车显示商品价而非规格价 - ProductSku/ProductSkuDTO 价格字段 BigDecimal(元)→Integer(分),统一价格单位 ## v1.0.1079 (2026-08-15) ### 文档 - 商品套餐管理功能设计文档(建表/管理端配置/小程序展示) ## v1.0.1078 (2026-08-15) ### 新功能 - 我的页面新增当前意图展示与重新选择入口 ### 重构 - 统一家庭成员接口迁移到 getFamilyMemberList,修复 quick-survey :key 警告 ### 其他 - - api.js 新增 getFamilyMemberList 唯一入口,移除 getFamilyMembers/getVisibleFamilyMembers/listFamilyMembers 废弃导出 - - 迁移 24 处调用点(8 getFamilyMembers + 13 getVisibleFamilyMembers + 3 listFamilyMembers) - - quick-survey.vue 3 处 :key 表达式改为方法调用 - - api.test.js 测试同步更新 - ## v1.0.1077 (2026-08-15) ### 新功能 - 报告详情直入编辑模式取消返回列表页 ### 其他 - - cancelEdit: directEdit 时 uni.navigateBack() 返回报告列表/卡片页,等同原生返回 - - enterEditMode: 重置 directEdit,view 内点编辑后取消仍回 view 模式 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1076 (2026-08-15) ### Bug 修复 - 报告详情/确认页被检测人选择面板始终列出全部成员 ### 其他 - ## v1.0.1075 (2026-08-15) ### 新功能 - 改版v1 通知入首页动态 (W3) - 改版v1 通知模板管理页 (W3) - 改版v1 通知模板管理 (W3) ### 其他 - - 未读通知优先显示(isRead=0 在前) - - 使用 parseDate 解析时间(遵守小程序日期解析规范) - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - 新增 NotificationTemplateManage.vue 管理页 - - 类型/标题/内容模板/推送通道(小程序内/短信/微信/电话)/状态 - - 通道多选 + 占位符提示 {domainName} {reward} - - 路由注册 notification-template-manage - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - - - 新增 AdminNotificationTemplateController (/api/admin/notification-template list/save/delete) - - DanReportUploadService / ProblemCompletionService 改为从模板表读取文案 - - report_ready / reward_granted 支持 {domainName}/{reward} 占位符 - - 表不存在/停用/无记录时回退默认文案 - - schema.sql 同步 notification_templates 建表 - Ultraworked with [Sisyphus](https://github.com/OhMyOpenCode) - Co-authored-by: Sisyphus - ## v1.0.1074 (2026-08-15) ### 新功能 - 家庭成员接口统一兼容字段 ### 其他 - - FamilyMemberService 新增 listMembersWithFamily() 支持 includeFamily 模式 - - - 批量替换 controller/service 中 Long.valueOf(map.get().toString()) 模式 - - 修复 4 个 CRLF 文件的全行替换噪声(改用 perl 保留行尾符) - - 前端 request() 过滤空字符串 ID 字段,防止空 ID 传后端 - ### Bug 修复 - 统一 Long 参数安全解析,修复空字符串导致 NumberFormatException ## v1.0.1073 (2026-08-15) ### 新功能 - 报告列表与健康首页点击 gut_flora 报告直达编辑模式 - 报告详情页支持 mode=edit 参数直入编辑模式 ### 其他 - 拼接 mode=edit 参数,跳过查看模式过渡页。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - 仅 reportType=gut_flora 生效,draft 流程不受影响。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1072 (2026-08-15) ### Bug 修复 - 移除21天科学减重/28天血糖平稳套餐种子数据自动插入 - 移除 health-plan-summary onLoad 中残留的 loadFamilyReports 调用 ### 其他 - Co-authored-by: Sisyphus - ## v1.0.1071 (2026-08-15) ### Bug 修复 - ProfileMenu 组件导入路径修正 ### 其他 - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - ### 新功能 - 报告列表支持多选软删除 + 点击行直达编辑页 - 报告编辑页路由 + 归档/编辑 API 封装 - 新增报告批量归档接口 POST /report/archive-batch - sales/index.html 产品介绍分类挂载减重套餐卡片 (4→5篇) - 新增家庭科学减重套餐产品介绍页 + Agnes生成产品封面图 ## v1.0.1070 (2026-08-15) ### 新功能 - 方案保存后自动生成每日任务(P0-3后端) ## v1.0.1069 (2026-08-15) ### Bug 修复 - 修复6处:key表达式警告 ## v1.0.1068 (2026-08-15) ### Bug 修复 - 心理雷达图改用10维完整数据(大五+自驱力+情绪稳定性+自我概念) ### 其他 - - EmiReportService.toDTO() 解析 DanAssessmentResult.structuredAnalysis JSON 提取自驱力三维度及自我概念;emotionStability = (emotionScore+resilienceScore+stressCopingScore+selfAwarenessScore)/4 - - 心理雷达图扩展为10维:开放性/尽责性/外向性/宜人性/神经质/自主性/胜任感/归属感/情绪稳定性/自我概念 - - 家庭平均数据同步使用10维字段计算 - - mind-detail页面的emiData.driveAutonomy等字段现在也能正确获取到数据 - ## v1.0.1067 (2026-08-15) ### Bug 修复 - 心理雷达图改用大五人格5维(与mind-detail保持一致) ### 其他 - - scores: opennessScore/conscientiousnessScore/extraversionScore/agreeablenessScore/neuroticismScore - - avgScores: 同样使用大五人格字段计算家庭平均 - ## v1.0.1066 (2026-08-15) ### 其他 - Co-authored-by: Sisyphus - ## v1.0.1066 (2026-08-15) ### Bug 修复 - health-plan-summary 成员列表 wx:key 表达式改用方法调用 ### 其他 - Co-authored-by: Sisyphus - ## v1.0.1065 (2026-08-15) ### 新功能 - 首页新增今日任务卡片 daily-task-card + 聚合接口封装 - 新增今日任务聚合服务 DailyOverviewService + 只读接口 POST /api/daily-task/overview - 改版v1 B类轻问卷(F16) + 首页定向内容(F17) - 改版v1 问题域管理页 (W1) - 改版v1 管理端问题域CRUD (W1) ### 其他 - - daily-task-card.vue 自带 onShow 拉取刷新,四分组渲染 + 全部完成空态 + 失败重试 - - index-home 挂载到 JourneyCard 与 WuxingSandbox 之间(登录态容器内,未登录不显示) - - 遵从小程序限制:无 ?. 可选链、:key 用方法调用 - - - DailyOverviewService 纯只读,复用现有 healthCheckin/financeCheckin/emotionCheckin/growthTask/task/articleReading/assessment/danReport 查询 - - DailyTaskController memberId 回退链:请求体 memberId → currentMemberId - - 单元测试 DailyOverviewServiceTest + DailyTaskControllerTest(@SpringBootTest + @MockBean) - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - ## v1.0.1064 (2026-08-15) ### 文档 - 统一家庭成员列表接口规范到 AGENTS.md - 今日任务首页卡片+只读聚合接口实施计划 - 修正每日任务设计文档测评路由指向 results 页 - 每日任务首页卡片+只读聚合接口设计文档 ### 其他 - - - Task1 聚合服务 + Task2 接口 POST /api/daily-task/overview + Task3 前端卡片 + Task4 首页集成 - - 引用签名已对照实际代码自检(checkinDate/hasTodayRecord 等) - - (仅小程序接入 + /api/daily-task/overview 只读聚合接口) - - PROJECT-OVERVIEW.md: 新增实施计划条目 - ## v1.0.1063 (2026-08-15) ### Bug 修复 - report-detail.vue 前端自动从 payload 组装展示块,适配不同报告类型 ### 其他 - ## v1.0.1062 (2026-08-15) ### 新功能 - 雷达图对接真实数据 + 新增财富标签 + 显示家庭成员平均数据 - 场景3减肥套餐主线 — 打卡返积分+产品数据+报告自动出方案 ### 其他 - - 心理维度: 调用 /api/emireport/latest 获取个人EMI报告(情绪/抗压/自我认知/社会适应/大五综合) - - 社会性维度: 调用 /api/family/relationship/scores 获取家庭关系质量评分 - - 财富维度: 新增Tab, 调用 /api/energy/sandbox 获取五维能量数据 - - RadarChart 增加 :avgScores 属性显示家庭成员平均值(灰色虚线) - - 无数据时显示解锁引导文案 - - 后端新增 /api/emireport/family 接口返回家庭所有孩子EMI报告 - - Co-authored-by: Sisyphus - - 1. 当 report_blocks 表无数据时,blocks 为空数组,页面显示'暂无报告内容'。 - 新增 payload 回退展示区:当 blocks 为空但 payload 有数据时,展示综合评分、健康指标、疾病风险。 - 2. 编辑按钮 hasRiskBlocks 条件始终为 false(检查 block.riskLevel 而非 items 内 level), - 导致编辑按钮永不显示。改为 isGutFlora 条件即可,blocks 为空时按钮文案变为'查看完整数据 ›' - ### Bug 修复 - DietPreferencesController 处理 familyMemberId 为 null 时优雅降级 - report-detail.vue 缺少 blocks 时展示 payload 回退内容 ## v1.0.1061 (2026-08-15) ### Bug 修复 - 方案制定页面修复-移除\\ue601\乱码/双重标题/Step1改为选人 ### 其他 - Co-authored-by: Sisyphus - ## v1.0.1060 (2026-08-15) ### Bug 修复 - health-plan-summary onShow函数体缺}闭合 ### 新功能 - 报告审核确认时将食材推荐入库 ### 其他 - - saveFoodSuitability() 将 FoodItem 写入 report_food_suitability 表 - - 自动匹配 foodId(精确+模糊匹配 foods 表) - - schema.sql 同步 report_food_suitability 表定义 - ## v1.0.1059 (2026-08-15) ### Bug 修复 - 统一 memberId 回退链 currentChildId → currentMemberId → userId - 菌群知识库文章接口 + 分页拉取 + LangGraph timeout 修复 ### 其他 - - health-main, growth-main, survey-history, survey-questionnaire - - diet/index, diet/preferences, diet/records, diet/record-detail - - api.js getDietPreferences 支持传 data 参数 - 回退链统一: currentChildId → currentMemberId → userId - - - 修复性别取值非法(空串/微信码 0/1/2 处理) - - 修复 SurveyController submit NPE(templateId 判空) - - 修复 FoodRecommendController userId/foodId 空串 NPE - - 修复 AdminArticleController toggleFeatured NPE - - 修复 AdminNoticeController LambdaQuery 参数类型 - - 修复 AdminPurchaseFieldController Map→实体 ClassCastException - - 修复 DietMealConfigController @RequestParam→@RequestBody - - 修复 FamilyInviteController scene 改为 JSON 格式 - - 修复 HealthExercise/SleepController memberId 空串 NPE - - 修复 hasRole roles null 保护 - - LangGraph: java_client timeout 10s→120s, get_microbiome_articles 分页 - - LangGraph: microbiome_loader.py fetch_articles 分页+timeout 120s - - 导入 809 篇菌群知识库文章到 microbiome_article 表 - ## v1.0.1058 (2026-08-15) ### Bug 修复 - 显式依赖 logback-classic 避免生产环境 NoClassDefFoundError: ThrowableProxy - 推荐阅读/商品改用首页组件并移到底部,恢复饮食推荐 ### 其他 - 官网文案微调:子女传承→代际传承,科学育儿→精准管理 - - 成长百科区:科学育儿·从了解开始 → 精准管理·从了解开始 - - 百科描述同步为全家人视角,不再仅针对孩子 - - - 推荐阅读: 内联 rec-card → ArticleBookshelf 组件(合并 healthArticles+growthArticles) - - 推荐区块移至页面底部(DimensionActivities 之后) - - 恢复被 b725d6883 删掉的饮食推荐 action-card 入口卡片 - - 清理: 移除旧推荐样式、productList API 调用、healthProducts/growthProducts 死代码 - - 兼容: goToArticle/goToProduct 支持对象参数(组件 emit 传入) - ## v1.0.1057 (2026-08-15) ### 新功能 - 改版v1 C类前端 - 首页旅程集成(F1) + 分包注册 - 改版v1 C类前端 - 问题流/通知共8页面(F4-F11) - 改版v1 C类前端 - 意图选择弹层(F2) + 旅程进度条(F3) - 改版v1 C类前端 - 接口封装(F13) + 会员任务角标(F12) ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - 1. getReportDetail 传参传了对象 {reportType, reportId},但函数签名只接受单个 reportId,导致后端 NumberFormatException - 2. blocks 取 self.report.blocks 但后端返回 blocks 在 res.data 层级,导致空数组显示'暂无报告内容' - ### Bug 修复 - 改版v1 C类调研提交 - 修正旅程阶段映射(3→2) - report-detail.vue 修复传参错误导致400及blocks获取层级错误 ## v1.0.1056 (2026-08-14) ### 新功能 - 北京菌群报告解析集成——指纹检测+表格提取+统一输出 ### 其他 - - pdfplumber表格提取SCFA/核心菌属/营养代谢/抗生素/毒性物质 - - 统一输出结构:两种报告类型产出相同字段集 - - 标准报告北京特有字段保持空默认值 - ## v1.0.1055 (2026-08-14) ### 新功能 - 管理后台菜单管理页面(树形CRUD+角色授权弹窗)与动态侧边栏 - 后端菜单管理接口(树查询/CRUD/移动/角色授权/用户菜单) - 新增菜单管理表结构(sys_menu/sys_role_menu)与数据库迁移+种子数据 ## v1.0.1054 (2026-08-14) ### Bug 修复 - 成长页功能修复(基于干净基线重建) - 标题 今日干预进度→今日成长 - 移除 今日打卡/本周调研 items、饮食推荐卡片 - 饮食检查改用 getHealthMealList(/api/health/meal/list) - 推荐商品改用 productList({page:1,size:6}) 修复空列表 - 快捷按钮 4 列 flex 布局(progress-grid) - 保留 tracking-tabs 记录区与成长记录卡 ## v1.0.1053 (2026-08-14) ### 文档 - 新增公众号数据驱动优化指南(基于后台分析) ## v1.0.1052 (2026-08-14) ### Bug 修复 - 删除api.js末尾重复的getExerciseList/getSleepList声明 - 修复编译错误——函数声明+key表达式 ### 其他 - - ai-questionnaire/result: :key表达式改为方法调用 - - health-status-form.vue: :key表达式改为方法调用 - ## v1.0.1051 (2026-08-14) ### 新功能 - 成长页今日干预进度对接真实 API(运动/睡眠/连续打卡) ## v1.0.1050 (2026-08-14) ### 新功能 - 菜单管理全量初始化 + Layout动态加载 - 移植报告PDF菌群表与食物推荐表解析 ### 其他 - - admin_menu种子数据从18条扩展至100+条,覆盖全部现有菜单项 - 家庭运营/任务中心/审核中心/商城营销/知识中心/活动管理/ - 健康饮食/报告解析/家庭服务/业务管理/测评咨询/系统配置/菜单管理 - 前端: - - Layout.vue新增fetchMenu()方法,启动时从/api/admin/menu/tree加载菜单 - - buildMenuItems()将树形结构转换为el-menu所需格式 - - 接口失败时降级使用硬编码菜单(向后兼容) - - 菜单管理页可实时修改左侧导航 - - - pages.json: ai-questionnaire分包path去重(重复root前缀) - - action/body/mind-detail: 删除},)残留JS语法错误 - - - 移植 _parse_bacteria_table/_parse_phylum_tables/_parse_taxonomy_levels - - parse_report_pdf 接入菌群检出详细列表(11分组)与个体化食物推荐表 - - Java 端 convertLgFloraList/convertLgFoodList 解析 LangGraph snake_case 输出 - ### Bug 修复 - 修复编译错误——编码损坏+分包路径+JS语法 ## v1.0.1049 (2026-08-14) ### 新功能 - 菜单管理全量初始化 + Layout动态加载 - 改版v1 会员任务标记(B20-22) + 问卷过滤(B23) + 内容标签过滤(B24) - 改版v1 C类接口 - 问题域/用户意图/通知/专项调研/套餐/物流 + 会员校验 + 报告钩子 + CF奖励 - 菜单管理全量初始化 + Layout动态加载 ### 其他 - - admin_menu种子数据从18条扩展至100+条,覆盖全部现有菜单项 - 家庭运营/任务中心/审核中心/商城营销/知识中心/活动管理/ - 健康饮食/报告解析/家庭服务/业务管理/测评咨询/系统配置/菜单管理 - 前端: - - Layout.vue新增fetchMenu()方法,启动时从/api/admin/menu/tree加载菜单 - - buildMenuItems()将树形结构转换为el-menu所需格式 - - 接口失败时降级使用硬编码菜单(向后兼容) - - 菜单管理页可实时修改左侧导航 - - - 原迁移表名写错为 task,导致 tasks 表从未补列 - - 生产 DB 已直连 ALTER 添加(TINYINT DEFAULT 0)即时生效 - - 官网首页品牌定位改造:切换为「一个人的主动,一家人的健康」+ 家庭精准生活方式管理 - - head meta/og/title/keywords 重新定位 - - JSON-LD SoftwareApplication/Organization/FAQPage 同步 - - Hero 区 badge/主标题/描述/CTA 全部替换 - - About 区 desc + 企业使命 - - 概念区收尾追加 slogan 句 - - 产品区 desc + 精准健康卡桥接代谢主线 - - 五维 subtitle + 身卡 desc 桥接 - - FAQ 首答重写 + 新增 2 条 - 保留:主动健康核心理念、五维体系(身·智·富·行·心)、五行相生相克概念解释 - - - admin_menu种子数据从18条扩展至100+条,覆盖全部现有菜单项 - 家庭运营/任务中心/审核中心/商城营销/知识中心/活动管理/ - 健康饮食/报告解析/家庭服务/业务管理/测评咨询/系统配置/菜单管理 - 前端: - - Layout.vue新增fetchMenu()方法,启动时从/api/admin/menu/tree加载菜单 - - buildMenuItems()将树形结构转换为el-menu所需格式 - - 接口失败时降级使用硬编码菜单(向后兼容) - - 菜单管理页可实时修改左侧导航 - ### Bug 修复 - 迁移237 表名修正 task→tasks(member_only 列) ### 文档 - add D17-D22 article drafts and D25 note - 数据看板分页抓取26篇完整数据,发布指南更新为25篇完整复盘并新增数据文件 ## v1.0.1048 (2026-08-14) ### Bug 修复 - 迁移237 表名修正 task→tasks(member_only 列) ### 其他 - - 原迁移表名写错为 task,导致 tasks 表从未补列 - - 生产 DB 已直连 ALTER 添加(TINYINT DEFAULT 0)即时生效 - - 官网首页品牌定位改造:切换为「一个人的主动,一家人的健康」+ 家庭精准生活方式管理 - - head meta/og/title/keywords 重新定位 - - JSON-LD SoftwareApplication/Organization/FAQPage 同步 - - Hero 区 badge/主标题/描述/CTA 全部替换 - - About 区 desc + 企业使命 - - 概念区收尾追加 slogan 句 - - 产品区 desc + 精准健康卡桥接代谢主线 - - 五维 subtitle + 身卡 desc 桥接 - - FAQ 首答重写 + 新增 2 条 - 保留:主动健康核心理念、五维体系(身·智·富·行·心)、五行相生相克概念解释 - ## v1.0.1047 (2026-08-14) ### 新功能 - 改版v1 会员任务标记(B20-22) + 问卷过滤(B23) + 内容标签过滤(B24) ## v1.0.1046 (2026-08-14) ### 文档 - add D17-D22 article drafts and D25 note - 数据看板分页抓取26篇完整数据,发布指南更新为25篇完整复盘并新增数据文件 ## v1.0.1045 (2026-08-14) ### 新功能 - 改版v1 C类接口 - 问题域/用户意图/通知/专项调研/套餐/物流 + 会员校验 + 报告钩子 + CF奖励 ## v1.0.1044 (2026-08-14) ### 新功能 - 菜单管理全量初始化 + Layout动态加载 ### 其他 - - admin_menu种子数据从18条扩展至100+条,覆盖全部现有菜单项 - 家庭运营/任务中心/审核中心/商城营销/知识中心/活动管理/ - 健康饮食/报告解析/家庭服务/业务管理/测评咨询/系统配置/菜单管理 - 前端: - - Layout.vue新增fetchMenu()方法,启动时从/api/admin/menu/tree加载菜单 - - buildMenuItems()将树形结构转换为el-menu所需格式 - - 接口失败时降级使用硬编码菜单(向后兼容) - - 菜单管理页可实时修改左侧导航 - ## v1.0.1043 (2026-08-14) ### 新功能 - 当前状态调研健康现状档案 — 后端+前端+LangGraph 全链路 ### 其他 - 前端: 档案页 health-status-form.vue + pages.json 注册 + 健康主页入口 - 出方案: health-plan-summary.vue 读取健康现状+饮食偏好, 未填弹窗提醒, 随请求传参 - AI: adapter._to_langgraph_context 提取 inputs.health_status/diet_preferences - chat_graph.llm_call 注入健康现状/饮食偏好到 SystemMessage (prompt 上下文) - DI: @Resource, 统一 @PostMapping, JWT userId, upsert 语义 - ## v1.0.1042 (2026-08-14) ### 新功能 - 小程序画像报告页接入推荐卡片 ### 其他 - - 推荐卡片: 类型图标 + 标题 + 描述 + 匹配分 - - loadRecommendations() 在 loadReport finally 中调用 - - api.js: 新增 getProfileRecommend 接口 - ## v1.0.1041 (2026-08-14) ### 新功能 - 改版v1数据层 - problem_domains/user_intents/user_notifications 三表 + task.member_only + package_orders物流字段 ### Bug 修复 - 修复合并冲突残留 ## v1.0.1040 (2026-08-14) ### 新功能 - 小程序画像报告页接入推荐卡片 ### 其他 - - api.js: 新增 getProfileRecommend 接口 - - 推荐卡片: 类型图标 + 标题 + 描述 + 匹配分 + 徽章 - ## v1.0.1039 (2026-08-14) ### 新功能 - 画像驱动推荐系统(补全) ### 其他 - 移除冗余的 article_dimension_mapping/activity_dimension_mapping 表 - - 迁移231: member_profile_dimension 表 - - 迁移232: recommendation_logs 追加 recommend_type 字段 - - 迁移233: 历史 Article/Activity dimension_weights JSON → dimension_weights 表 - - ProfileDimensionService: 画像同步 + key→dimension_code 关键词映射 - - ProfileRecommendService: 加权匹配算法(基础得分+需求加成) - - RecommendationController: POST /api/recommend/profile 端点 - - AiQuestionnaireService.finish() 接入 syncFromProfile - - RecommendationLog 实体新增 recommendType 字段 - ## v1.0.1038 (2026-08-14) ### 新功能 - 画像驱动推荐系统(阶段1-2) ### 其他 - - 迁移232: recommendation_logs 追加 recommend_type 字段 - - 迁移233: Article/Activity 维度映射一次性迁移脚本 - - schema.sql 同步新增三张表 + ALTER TABLE - - Entity: MemberProfileDimension / ArticleDimensionMapping / ActivityDimensionMapping - - Mapper: 三个对应 Mapper 接口 - - ProfileDimensionService: 画像同步 + key→dimension_code 关键词映射(body/mind/wisdom/action/wealth) - - ProfileRecommendService: 加权匹配算法(基础得分+需求加成20分) - - RecommendationController: 新增 POST /api/recommend/profile 端点 - - AiQuestionnaireService.finish() 末尾接入 syncFromProfile - - RecommendationLog 实体新增 recommendType 字段 - ## v1.0.1037 (2026-08-14) ### 文档 - 修订画像推荐设计文档(修正维度编码+补充映射规则+澄清边界) ## v1.0.1036 (2026-08-14) ### 新功能 - 新增后台菜单管理功能 ### 其他 - - 新建 AdminMenu 实体/Mapper/Service/Controller - - 迁移230: admin_menu表 + 18条默认菜单种子数据 - - schema.sql同步新增admin_menu建表DDL及INSERT - - 接口: POST /api/admin/menu/tree|list|add|edit|delete/{id}|sort - 前端: - - 新增 admin/MenuManage.vue 树形表格+增删改弹窗 - - router/index.js 注册 /menu-manage 路由(system:menu权限) - ## v1.0.1035 (2026-08-14) ### 文档 - 小程序改版设计+分阶段实施计划(需求驱动·逐步解锁,C类问题域闭环优先) ## v1.0.1034 (2026-08-14) ### 文档 - 用户画像驱动推荐系统设计文档 ## v1.0.1033 (2026-08-14) ### Bug 修复 - 恢复 f18dd86e 误删为 0 字节的 710 个文件内容(来源 c975fa82,docs/tests/ppt-output/cfc-langgraph 等) ## v1.0.1032 (2026-08-13) ### 新功能 - 福宝/浠宝AI助手会员专属 + 7X24成长教练权益 ### 其他 - - 迁移229: membership_benefits新增GROWTH_COACH权益(FAMILY/PREMIUM) - - MembershipService.canUseFeature: FAMILY/PREMIUM新增mascot_ai功能开关 - - schema.sql同步新增GROWTH_COACH种子行 - 前端: - - ai/chat.vue: onLoad新增getMyMembership检查,FREE用户重定向会员升级页 - - user-edit/user-edit.vue: 解锁mascot选择区(FAMILY/PREMIUM可见),FREE用户显示升级提示 - - article-detail.vue: startQuiz前检查会员状态,FREE用户跳转升级 - - membership/benefits.vue: 新增7X24小时成长教练权益条目 - ## v1.0.1031 (2026-08-13) ### 新功能 - 小程序逐题对话问卷页 + 画像展示页 - AI 问卷场景配置管理页 - 控制器 — /api/ai-questionnaire/* 会话与场景端点 - 服务层 — 场景 CRUD + start/answer/finish 会话编排 + AiGateway 扩展 - 数据层 — ai_q_scene/session/profile 表 + 迁移 + 实体/Mapper - /api/v1/qna/advance + /profile 端点与路由注册(LLM 不可用降级 fallback/空画像) - 动态问卷引擎核心(schemas/prompts/decide_next/generate_profile) ### Bug 修复 - 从 git 历史恢复最小可运行集(config/rag/llm/middleware) - 恢复官网首页并修正 geo-faq 链接指向 ### 文档 - AI动态问卷引擎实施计划(8任务:LangGraph恢复/主流程/端点/种子/工具/AI网关/控制器/前端) - AI 动态问卷引擎设计 + LangGraph 开发规范 - 当前状态调研健康现状档案实现计划 - 当前状态调研健康现状档案设计 ### 其他 - - 架构: Java 会话管理 + LangGraph 无状态推理引擎(/api/v1/qna/advance + /profile) - - 数据库: ai_q_scene / ai_q_session / ai_q_profile 三表 + 迁移 - - 规范: AI 服务统一走 LangGraph(AiGateway 熔断调用),写入根/后端 AGENTS.md - - - web/index.html: geo-faq 专题链接由根目录修正为 articles/ 子目录(8e945bd0 移动后遗留死链) - - web/logo.png: 恢复被清空的 logo(22KB) - - web/cf.jpg: 恢复被删除的首页 hero 图(45KB) - ## v1.0.1030 (2026-08-13) ### 新功能 - 五维页面统一子维度呈现组件 ### 其他 - - 子维度评分卡片:标签+描述+分数+等级徽章+进度条 - - 支持 accentColor 自定义主题色 - - 分数分级:≥80 优秀/≥60 良好/<60 待提升 - - 身/智/心/行/富五个详情页面统一接入 - - 财富页新增子维度评分表(在原有水滴组件下方) - - 各页面保留原雷达图,新增统一子维度卡片区 - ## v1.0.1029 (2026-08-13) ### 新功能 - 成长页面四大打卡功能完整实现 ### 其他 - - 修复饮食打卡检查接口(从 /api/diet/record/daily 改为 /api/health/meal/list) - - 修复心情打卡缺少 memberId 参数问题 - - 统一 4 类打卡状态检查使用 createdAt/checkinDate 日期比较 - - 修复 :key 表达式编译警告(report-blocks-renderer, gates) - - 移除今日打卡/本周调研快捷按钮,新增睡眠记录 - - 移除饮食主页/饮食推荐独立卡片 - ## v1.0.1028 (2026-08-13) ### 重构 - 心维度子维度命名优化 ### 其他 - - EMI四个子维度(情绪管理/抗压能力/压力应对/自我认知)合并为'情绪稳定性'综合指标 - - 后端新增 emotionStability 字段 = (emotion+resilience+coping+selfAwareness)/4 - - 前端雷达图展示统一使用'情绪稳定性'标签 - ## v1.0.1027 (2026-08-13) ### 重构 - 五维页面通俗化改造,让普通人也能看懂 ### 其他 - - 身:'七维健康图' → '健康指标',加'身体健康各项指标'说明 - - 智:'情绪商数/心理韧性/神经质' → '情绪管理/抗压能力/情绪稳定性' - - 富:'认知雷达' → '学习能力评估',加'找出可以提升的方向'说明 - - 行:'家庭关系图谱' → '家庭关系','关系域评估' → '关系质量' - - 心:'成长溪流' → '财富成长',加'看到每月的成长变化'说明 - 新增得分解读卡片: - - 每个维度页新增'健康/情绪/学习/关系/财富解读'卡片 - - 80分以上绿色✅,60-80分黄色⚠️,60分以下红色❗ - - 配一句话建议:保持/关注/改善 - 其他: - - 修复 FamilyMemberStrip 双 v-if 语法错误 - - 新增 .section-sub 和 .score-explain-card 样式 - ## v1.0.1026 (2026-08-13) ### 新功能 - 五维页面新增个人/家庭视图切换 ### 其他 - - 个人视图:展示选中家庭成员的维度能量和流水 - - 家庭视图:展示全家该维度平均能量,隐藏成员切换条 - - 切换时调用 /api/energy/sandbox?view=family 加载家庭聚合数据 - - 新增 .view-toggle / .toggle-btn 样式(半透明胶囊按钮) - ## v1.0.1025 (2026-08-13) ### 新功能 - 成长页运动/睡眠/心情记录真实化 + 修复饮食记录判断bug ## v1.0.1024 (2026-08-13) ### 新功能 - 新增五维能量统一总览页 ### 其他 - * 展示全家/个人五维能量条 + 雷达图 - * 成员切换(全家总览/其他家庭成员) - * 点击维度卡片跳转对应详情页 - - pages.json 注册 energy/index 路由 - - npm run build 通过 - - - 生产库已直连 ALTER 添加(DECIMAL(10,2)),列类型与代码迁移对齐 - - schema.sql 合并重复的 points_multiplier 定义 - ### Bug 修复 - products.points_multiplier 列类型统一为 DECIMAL(10,2) ## v1.0.1023 (2026-08-13) ### Bug 修复 - 修复FileRecord实体缺fileType/description字段 + DatabaseInitializer迁移228 ### 其他 - - DatabaseInitializer迁移228:file_record表添加file_type和description列 - - 修复DatabaseInitializer方法结尾括号错位导致的编译错误 - ## v1.0.1022 (2026-08-13) ### 新功能 - OSS文件管理后台 + 标签系统 + 11K文件回写file_record - 通关奖励真实发放(CF值+能量)+管理端关卡列表分页 ### 文档 - 补写实施计划 - 恢复被清空内容+状态更新为全部完成+追加后续修复记录 ### 其他 - - refreshFamilyGates 增加 triggerUserId 重载, 4处钩子(FiveDimensionSelfCheck/FamilyInvite/FamilyMembers/ProductOrder)传入触发用户 - - 前端文案统一: 小程序 gate-lock/gates + 管理端 gates 的'积分'改为'CF值' - - AdminUnlockGateController.list 分页(selectPage, page/size 参数) - - cfc-web: getUnlockGateList 透传分页参数 + gates.vue 加 el-pagination - ## v1.0.1021 (2026-08-13) ### 新功能 - 结算页支持CF值直接兑换优惠券 ### 其他 - - CouponService.listUnownedExchangeable:查用户未拥有的有效兑换券 - - checkout.vue:加载CF余额+可兑换券,兑换按钮直接调exchangeCouponByCf - - 兑换成功后自动移入已拥有列表,刷新余额 - - 产品详情页已有CF值提示(pointsMultiplier>1时) - ## v1.0.1020 (2026-08-13) ### 新功能 - nutrition_product 增加成份/配料表(ingredients)字段及后台管理展示 ### 其他 - - schema.sql: nutrition_product 建表同步 ingredients TEXT 列, suitable_for 升级为 TEXT - - DatabaseInitializer: 新增迁移228(ingredients 列 + suitable_for MODIFY), 幂等 - - cfc-web: NutritionProducts 列表/详情展示成份配料表 - - 数据已通过独立脚本提交至京东云 RDS 生产库(zxyj) - ## v1.0.1019 (2026-08-13) ### 新功能 - 完成优惠券兑换闭环 + 兑换记录表 ### 其他 - 校验优惠券 → 家庭/单券日限次检查 → 扣家庭池CF → 发券 → 落记录 - - 新增 FamilyPlatformExchangeRecord 实体/Mapper - - schema.sql + 迁移227 建 family_platform_exchange_record 表 - - 兑换记录表含 userId/familyId/couponId/cfCost/status/redeemCode - - npm run build + mvn compile 通过 - ## v1.0.1018 (2026-08-13) ### 新功能 - 家庭CF值体系完善 ### 其他 - - 修复confirmReceive CF计算:改用totalAmount(原价)而非moneyAmount - - 新增FamilyPlatformBalanceController(balance/logs/exchange-coupon) - - FamilyPlatformPointsService新增exchangeCouponByCf方法 - 前端: - - 商品详情页展示'购此商品可得X CF值' - - 新增家庭CF值页面(余额+流水+兑换优惠券) - - 财富页增加'家庭CF值'入口 - - api.js新增family-platform相关接口 - ## v1.0.1017 (2026-08-12) ### 新功能 - 家庭平台积分池后端实现 ### 其他 - - 新增 FamilyPlatformPointsService(家庭维度CF值服务) - - ProductOrderService.confirmReceive 挂点:floor(实付/100)×points_multiplier 发放家庭池 - - WithdrawalService 改走家庭池(freeze/confirmWithdraw/unfreeze) - - products 表新增 points_multiplier 字段(默认1.00) - - DatabaseInitializer 迁移226 - - 修复测试编译问题 - - mvn compile + npm run build 通过 - ## v1.0.1016 (2026-08-12) ### Bug 修复 - 导入全量全国省市区数据到 streets 表(31省/369市/2813区) ## v1.0.1015 (2026-08-12) ### 新功能 - 康美日记706产品导入+新字段(价格/销量/来源/图片)+搜索分页 ### Bug 修复 - 关卡页与报告渲染组件 :key 改为方法调用,消除非h5平台编译告警 - stable_token重试失败时回退常规token接口 - 成长页推荐卡片 :key 改为方法调用,修复非h5平台编译告警 - 成长页成长回看改名为成长记录,追踪标签移除调研 - 报告上传改走 JD Cloud OSS,LangGraph 解析支持远程 URL ### 其他 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - saveUploadFile 仍写本地磁盘,LangGraph 容器读不到文件(400 文件不存在)。 - 修复: - 1. HealthReportController 注入 StorageService,uploadOnly/uploadReport/ - parsePreview 改用 storageService.storeFile → 文件上传到京东 OSS - 2. parseByDraftId/parsePreview 对远程 OSS URL 直接传 URL 给 LangGraph, - 本地路径才用 getFilePath(); 本地 Java fallback 用 getFilePath 下载 - 3. 删除不再使用的 saveUploadFile/resolveUploadFilePath 私有方法 - 4. LangGraph report_parse.py 的 file_path 支持 http(s) URL,自动下载到 - 临时文件后解析(不依赖共享 volume 时序) - ### 文档 - 明确商品积分仅按现金实付部分计算 - 家庭平台积分(CF值)体系设计文档 ## v1.0.1014 (2026-08-12) ### 新功能 - kmdiary product sync scripts ## v1.0.1013 (2026-08-12) ### 其他 - update: sync latest from remote (web articles + langgraph config) ## v1.0.1012 (2026-08-12) ### Bug 修复 - ProductPpointManage排序列头+sortableColumns+sort-tag位置修正 ## v1.0.1011 (2026-08-12) ### 新功能 - rebuild cfclub with essential project files ## v1.0.1010 (2026-08-12) ### Bug 修复 - 移除报告审核 Tab 及相关路由 - 迁移227 product_skus.id 升级为 BIGINT - RegionController 移除硬编码数据,改用 StreetService 读取 DB 全量省市区数据 - 迁移226 products 添加 growth_category 列 - 迁移225 articles 添加 growth_category 列 - 成长页推荐只调用一次API,前端按growth_category分组显示 - 推荐接口移除 growth_category 过滤,直接取精选内容 - GrowthRecommendationService 修复 getCategory 调用错误 - 报告详情行距优化、富维度商品封面图URL修复、智维度功能区间距调整 - 修复成就页分包注册路径,健康/成长页移除家庭成员选择条 - LangGraph 容器挂载宿主机上传目录替代命名卷 - getFamilyEnergySandbox 兼容新返回格式,避免16个旧页面崩溃 - 图片路径替换为京东云OSS URL - 自驱力/自我概念/成长型思维解析改为嵌套Map+中文key的structuredAnalysis真实结构 - 修正 UserController 变量重复声明 - UserController 编译错误 - 修复 getPointsBalance 方法和 log 引用 - 修复测试编译错误和 FoodService 列名映射错误 - 修复 EnergyControllerTest 编译错误 - SortUtil 修复 LambdaQueryWrapper 类型不兼容问题 - 雷达图销毁后停止初始化重试 + 成长页定期调研改名成长回看并防御空项点击 - 我的页面isLoggedIn改为data+onShow赋值,修复登录后仍显示登录前视图 - NutritionProductService 字段名冲突导致 Bean 注入失败 - 补全 FileRecord 实体和 Mapper(JdCloudStorageService 依赖) - 雷达图标签边界约束 + 底部留白防tabbar遮挡 + 五维卡片标题单行 + 移除闭环图 - diet/record/daily, survey/status, survey/history memberId 为空时优雅降级 - 移除公告分类(27篇文章+68个chunk) - HealthReportControllerTest 适配 listReports 方法签名变更 - LangGraphAdmin.vue 修复 ES6 spread 语法兼容 webpack4 - 报告列表接口不强制 memberId——未传时回退到家庭报告列表 - 修复测试编译错误——适配 controller 方法签名变更(增加 @RequestAttribute 参数) - HealthDimensionControllerTest 适配 history 方法签名变更 - LangGraph管理页全屏布局 + 健康检查修复 - LangGraph健康检查修复Java后端状态显示 - LangGraph管理页全屏布局 + Java后端健康检查修复 - 修复重置用户密码接口请求体参数丢失 - data 改为 data: { password } - 天盘页面 routeDone 路由错误修复 - 导航工具加锁防重复跳转、修复 canvas 混合 API 用法 - TeacherLoginTest 适配 roles 改为 List - 健康/成长页不传memberId + 后端自动解析当前用户memberId JwtInterceptor对所有角色设置currentMemberId/familyMemberId - 无 memberId 时跳过健康/成长页数据请求,避免后端 400 空字符串解析错误 - User.roles 改为 List 修复修改角色反序列化错误 - 健康/成长页 memberId 为空修复 - getReportList 传 selectedMemberId、onShow 顺序调整、FamilyMemberStrip 绑定 @select 事件 - 权限不足时跳403而非/,避免无限循环导致栈溢出 - 修复 4Tab 编译错误 - 补回 wealth/index.vue 缺失的 service-item v-for 和 serviceList 数据; 修复 report-detail.vue 和 report-blocks-renderer.vue 的 :key 表达式改为方法调用 - JwtConfig 兼容短密钥,避免 WeakKeyException - LangGraph管理页改造 + 新增health/coach/generate端点 - 修复预存编译错误(DanshopSyncService引用 + 缺失File/FileOutputStream import) - 移除维度页未使用的LoginGuideCard import - 修正指标异常计数与展示不一致 - 修复 parse 读取文件路径重复拼接 uploadBaseDir - 健康报告上传改用 upload-only 接口 - 删除DanshopSync stub + 实现EnergyService占位方法 + PdfReport用PDFBox渲染 + AiGateway新增generateHealthPlan - 迁移208 health_gut_flora.detection_rate 列扩容 - 后台管理列表页统一显示用户名而非用户ID - 移除 @Slf4j 注解,改用显式 Logger 避免编译错误 - CouponService 改用显式 Logger 替代 @Slf4j,修复编译错误 - 健康报告页修复 - memberId兜底、移除自定义导航、指标状态标签、文案优化 - 清理残留成长档案文案 (DimensionIntroCard + profile-main) - health tab getReportList 空 memberId → 从 store/storage 取当前用户ID - AdminController 补 @Slf4j + 修复 AdminNoticeController LambdaQueryWrapper 写法 - AdminNoticeController LambdaQueryWrapper eq方法参数类型错误 - 富维度 banner 配色改为琥珀金 - 推荐服务商品状态改 on_shelf 修复 dimension-products 空数组; feat(frontend): 推荐阅读三列书封比例/推荐商品自加载/会员级别样式 - getOrderCounts 接口路径错误导致 404 - growth-main 移除活动维度参数 - home-detail 移除任务维度参数 - member-detail 移除任务维度参数 - index-home 移除维度参数 - wisdom 成员详情页移除维度参数 - wisdom-detail 成员详情页移除维度参数 - mind-detail 成员详情页移除维度参数 - body-detail 成员详情页移除维度参数 - action 成员详情页移除维度参数 - mind 成员详情页移除维度参数 - body 成员详情页移除维度参数 - DimensionTasks 移除维度参数自加载 - DimensionActivities 移除维度参数自加载 - DimensionArticles 移除维度参数自加载 - DimensionProducts 移除维度参数自加载 - 推荐商品接口支持空 dimensionCode 返回全量 - 添加家庭成员数量校验 - 任务分配需≥2人/挑战需≥2参与者/互动双方不能同一人 - createOrder 透传 couponId(会员优惠券此前未生效) - modifyColumnToText 跳过不存在的表,消除启动日志WARN - unify section headers + quick bar + task shortcuts; fix(tab-bar): center button position; fix(backend): ClassCastException in purchase field save - 修复DBI启动日志WARN(RENAME语法+不存在表/列的迁移) - 管理员登录兼容 BCrypt 密码验证 + 新管理员密码用 BCrypt - 家庭成员邀请改为小程序原生分享 - 完善信息页面移除 hasFamily 门控 — 老用户编辑时始终显示表单 - 修复我的页面主包引用分包组件导致内容不显示 - adjust position of heart icon and update tab icons - growth tab 空态不刷新 — hasFamily 加入 children/records 判断 - TabBar 分包冲突 + 自定义TabBar不显示修复 - 缩小推荐商品卡片尺寸 - 能量沙盘调整顺序 - 心在最上,顺时针身智富行 - 修复邀请流程 - 传递familyRole、改用小程序分享 - 创建家庭时自动将创建人加入为家庭成员(修复空心家庭问题) - 修复 UserService 中 createJoinRequest 调用 - 修复 createJoinRequest 调用参数 - 修复邀请流程 - 保存familyRole、修复轮询逻辑 - 修复 RequestBodyCachingFilter 编译问题 - FamilyMemberStrip centerMemberId watcher 加 immediate + 清理重复 .action-header 样式 - pairwise VO 补齐 isSpouse 与 lastInteractionAt(修复成员详情页 action-sheet 关系标签和上次填写时间显示) - 修正 parseDate import 语法(named export) - 移除多余的 String 构造函数调用 - 修复 Java 8 兼容性问题 - readAllBytes 改用 readStream - 将 Java 11 HttpClient 改为 RestTemplate 兼容 Java 8 - LangGraph 管理页面使用原生 fetch 避免 axios 拦截器问题 - 迁移192 verification_codes.type 添加默认值 - LangGraph 管理页面使用独立 axios 实例避免 CORS 和响应格式问题 - 处理生产日志错误(foods.report_id/score + 知识库JSON + DBI迁移112) - 修复测试编译与 getTemplates 断言;补充肠道菌群解析参考脚本 - 修复 diet/index.vue 运行时错误 - 饮食首页改造——原生导航栏+空数据弹窗+未配置共餐降级 - 家庭成员扇形展开 - fan-wrap 改 fixed 修复成员错位+不可点击; 半径 280→220rpx - 修复 FamilyChallengeService.getTemplates 数组越界 Index 7 out of bounds - 修正身页面饮食入口路径 - 迁移180/181 health_reports.health_report_drafts 缺列修复 - 首页家庭挑战区块增加管理入口跳转 challenge-manage - 修复 FamilyControllerTest 编译错误 - 废弃接口测试改为无参断言 410 - FamilyMemberStrip fan-wrap 改 v-if 不再遮挡五维页点击; diet :key 表达式改方法调用 - 修复家庭FAB按钮点击失效 + 位置上移 - 恢复添加家庭成员页保存按钮 - 统一 SKU specs 存库为数组格式,修复规格名丢失 - 已登录用户富页面误显'请先登录'的会话过期修复 - 修复 HealthReport 预存编译错误 - HttpServletRequest import / reportMapper 变量名 / remark 字段缺失 - 修复 ContentSharePoster 分享海报 String 属性收到 null 告警 - 修复商品详情页会员身份加载与详情图片显示 - 修正 profile-page.vue 中 Profile* 组件的 import 路径 - 修正 profile-page.vue 移动后的相对路径 import - 后端身份参数改从JWT推导,不再信任客户端传入 - 移除前端身份参数传递——前端只传memberId,不传userId/familyId/childId - 将 tabbar 入口页移至 pages/tabs/ 消除与分包 root 的路径冲突 - 修复 meal.py 语法错误 - 修复 tabbar 路径与分包 root 冲突导致的 HBuilderX 编译失败 - 修复路由前缀重复问题 - 修复行/身页面 hasFamily 误判导致 FamilyEmptyState 覆盖内容区 - pages.json 修复 diet 分包错位导致的 JSON 语法错误(HBuilderX 编译失败→白板) - 修复pages.json饮食分包位置错误 + 饮食模块config引用改为config.js - 修复 FamilyEmptyState 误显示 - 28处 hasFamily 守卫改为数据优先判断 - 修复编译错误(类型不匹配) - 多控制器支持 familyId 为空 + WeChat token 过期重试 + 服务/产品改进 - 打卡请求失败时补充错误提示 - 家庭挑战打卡每日限次 + memberId 归属校验 - 商品海报分享未携带封面图(coverImage 未转完整 URL) - 移除无家庭时的创建或加入家庭弹窗(5001 仅拒绝请求) - 分享海报封面图按原比例绘制(contain 居中),不再拉伸变形 - 报名弹窗点击家庭成员/添加报名人即关闭(.self 修饰符在 mp-weixin 被丢弃,改用 @click.stop) - 活动报名弹窗重复导致点击家庭成员关闭弹窗 - checkout.vue methods 间缺逗号语法错误 - 库存流水列表显示商品名称 - 商品详情页移除会员价展示 - 报告确认页 :key 表达式改为方法调用(微信小程序兼容) - 修复orderService.ship参数不匹配+添加进价字段(purchase_price)到products/product_skus/inventory_inbound_items(迁移177)+同步schema.sql - 服务商/家长端页面日期解析改用 parseDate(iOS 兼容) - 商城页面日期解析改用 parseDate(iOS 兼容) - 奖励/个人中心页面日期解析改用 parseDate(iOS 兼容) - 推广/会员页面日期解析改用 parseDate(iOS 兼容) - 家庭/成长/身体页面日期解析改用 parseDate(iOS 兼容) - 活动/任务/孩子页面日期解析改用 parseDate(iOS 兼容) - 测评/心智页面日期解析改用 parseDate(iOS 兼容) - 健康/饮食维度页日期解析改用 parseDate(iOS 兼容) - 组件日期解析改用 parseDate(iOS/HarmonyOS 兼容) - 打卡/活动详情/推广/结算页 fixed 元素移出 scroll-view(iOS 兼容) - 迁移174 product_skus添加min_stock_alert列+同步schema.sql(SKU库存预警) - 迁移173 创建库存管理4张表(inventory_transactions/counting_records/inbound_orders/inbound_items)+ 同步schema.sql - 安全加固——SQL日志/密钥外部化/BCrypt限流/后台防重 - 迁移172 products添加min_stock_alert列+同步schema.sql(库存管理功能遗漏) - Controller gutFlora 入库补全 taxonomy+pathogen 8 列表 (对齐 Service); 确认页新增 taxonomy 分类组成 + 病原菌 + 益生菌种区块(采到啥显示啥) - gender枚举校验+MindFortuneController空值防御 - UserService.updateUserInfo: gender 仅接受 male/female,修复 Data truncated 错误 - FortuneServiceImpl: generatePlaceholderFortune/getFamilyFortune 添加 familyId 空值校验 - MindFortuneController: 三个端点添加 familyId 空值检查,返回友好提示 - make LangGraph URL configurable via @Value + app.yml (IMPORTANT-3) + overview key normalization (BLOCKING-1) + Docker deployment TODO comment - normalize Chinese→English overview keys in ReportParseAgent (BLOCKING-1) - add audit logging for family_id/user_id + trailing newline - register report_parse router in main.py (missing include_router) - 心维度页面 loadHealthAlerts/loadMilestones 移除残留 familyId 存储读取(后端已 JWT 派生) - add raise_for_status to expose real LLM HTTP errors - 心维度页面 milestones/health-alerts 传入实际 familyId 替代 {} 对象 - MindFortuneController 添加 userId 为空检查(过期JWT被设为匿名用户时抛出'用户不存在') - detect_format 兜底分支改为返回 inline(修复同义反复) - compose 显式覆盖 JAVA_CONTEXT_URL 指向宿主机 9082,修复容器内 chat load_context 回调 Java 失败 - DatabaseInitializer.initializeDatabase() xzyj→zxyj 数据库名拼写错误 - 问卷推理超时防护 — gunicorn timeout 60→300s + ChatOpenAI timeout=180/max_retries=1 - 问卷生成服务接入旧入口 — src 路由重构为 router + LLM env 兼容 + healthcheck 修复 - GraphState 补 _prompt 字段 + 测试 mock 目标修正为模块内引用 - schema.sql 移除重复的 guide_commissions CREATE TABLE 空壳行(导致 initializeTables 正则匹配合并成畸形 SQL) - 迁移166 payment_orders添加group_no/period_no列(会员拆单支付) - 修复图片上传 URL 语法错误,清理认知测评/成长报告重复接口定义,修正注释乱码 - 修复健康报告上传 URL 语法错误,首页宫格替换为记录互动/家庭天盘/成员管理,清理重复的 getChildOverview 定义 - 迁移165 virtual_goods_config添加goods_price列(会员道具价格,用于拆单判断) - controller parameter signatures, test compilation fixes - 迁移163 为family_challenge添加creator_id列(原迁移158在runMigration100死代码中从未执行) - 修复WXSS中文类名编译错误 + 恢复getPublicConfig函数 - resolve duplicate exports in api.js and syntax errors in report-upload.vue - 补全打卡系统缺失的 schema.sql 建表 + 迁移 + 小程序前端打卡功能 - 购物车结算页传递SKU信息到下单 - 防重复提交整改——补齐唯一约束/统一订单号/修复竞态/批量前端守卫 - 上报健康报告页加载即崩溃 - 移除未实现的 getPublicConfig 调用 - _roundRect arcTo missing parameter in ContentSharePoster - 去掉指标项上的状态文字标签,只保留颜色 - discardReportDraft传参修复 - 对象改为直接传draftId - FamilyMemberStrip 编辑资料补全 nickname/gender/phone/birthday query 参数 - 迁移155-157 创建 interaction_logs/questionnaire_snapshots/questionnaire_responses 三张缺失表 - report-upload member selector + api.js dead code removal + comment mojibake restoration - extractInlineNamesFromRegion substring 越界保护 - 补充PDF解析缺失指标 - 菌群层级表/致病菌/其它重要菌属/病原菌属 - 商品SKU规格specs字段保存失败 - 维度首页推荐阅读补传 dimensionCode,与知识中心一致 - 商城首页/搜索页商品价格显示放大100倍(漏除100) - activity 详情/列表封面拼接 API_BASE_URL - call applyDisplayState for guests so displayStatus/registrationStatus are always populated - 邀请接口相关修复 - 微信安全检测改用stable_token接口避免'not latest'冲突 - 商品详情页修复 — 封面轮播、字段映射修正、按钮等大 - CORS放行111.228.6.214; 实现/article/updated-since增量查询接口 - 家庭地址编辑与区域匹配页面消除 $http 引用并接入真实接口 - 地址选择器改用标准 API 封装 - 修复省市选择控件无法使用 - 行Tab页推荐阅读修复 - coverImage补传 + actionArticles过滤修正(indexArticles而非articles) - 心/智/行首页推荐阅读补传 coverImage 修复封面图不显示 - 推荐商品组件移除五维权重徽章展示 - 新建商品维度权重默认值未初始化导致保存失败 - 首次登录创建家庭后跳转到带底部TabBar的行首页 - self-check 页面 :style 空对象 {} 改用字符串避免 WXML 编译错误 - 移除 DatabaseInitializer 残留冲突标记行 - 修复生产构建失败 - 修复 Playwright addInitScript 单参数传参 bug + 远程 E2E 测试套件 - PaymentService 微信支付V3解密用原始API密钥而非SHA-256哈希 - 商品详情原生分享补上 setShareInfo - 分享路径带商品ID和邀请码 - resolve merge conflict in tap-water-pollution.html (accept upstream version) - 圈子页无 childId 时跳过请求, 后端 memberId 空串防御 - 修复 discover 500 与 my-circles 400 - ActivityControllerTest 适配活动模块升级后的接口签名 - 上传存储路径统一 upload.base-dir - 修复 transferTo 相对路径落盘失败与 /uploads URL 404 - VirtualGoodsConfig.save() 重命名 saveConfig() 避免 saveOrUpdate 递归 StackOverflow - 会员接口匿名访问返回 FREE 空数据 + getMemberLevel 查询 LIMIT 1 - 修复成员条移除后不刷新 + 可见成员列表字段缺失 - 迁移151 growth_records 补齐学校/年级7列 - 修复 Unknown column 'school' - List.of 替换为 Arrays.asList 兼容 Java 8 - 完善 PDF 解析服务 - 支持 inline 格式、Kangxi 部首归一化、指标去重、白名单过滤 - 迁移148 payment_orders.user_coupon_id 兜底添加 - globalData.currentChildId 替换为 uni.getStorageSync('currentChildId'),修复孩子视角切换数据失效 - getApp().globalData.baseUrl/apiBase 替换为 config.API_BASE_URL,修复 uploadFile invalid url 与图片加载 - 消除开发者工具告警 - getSystemInfoSync 弃用替换为 getWindowInfo, 修复 article-center articles prop 非数组类型错误 - 修复 ArticleBookshelf relatedDimensions 数组拆分崩溃与 switchTab 非 TabBar 路由系统错误 - FamilyRelationGraph 力导向模拟增加动能收敛检测, 布局稳定后自动停止避免永续占用主线程 - add missing goodsCategory API to fix empty product list on shop index page - offerId 改为支付应用ID并按官方 camelCase JSON 串重建 signData 签名 - 统一商城首页路径并修复 switchTab 非 TabBar 跳转 - 维度权重保存移除 CAST(? AS JSON) — MariaDB 不兼容 - interaction/add 修复 familyId 为空报错——后端按 userId 自动解析 - 生成海报二维码必须登录 — 拦截 anonymous 流量反复触发 access_token 'not latest' - 开通会员页改用 getMembershipPlans 获取实际配置价格 - 未登录时跳过邀请码请求与维度商品展示守卫 - GlobalExceptionHandler, ErrorLoggingFilter, migration102 call, article_admin_status, ContentRecommendService - wangEditor v5 上传图片改用customInsert+限制5M+错误提示 - 图片上传multipart大小限制+微信安全检测超过1M跳过 - 文章详情页封面图和正文图片拼接 API_BASE_URL,修复未登录时相对路径图片加载失败 - 新建商品时显示SKU维护入口 - wangEditor 初始化配置提前到 created 生命周期 - 更新VirtualPayServiceTest发货推送断言为handleVirtualPaySuccess路由 - 修复外部提交引入的语法错误,恢复小程序构建 - 虚拟支付Task4评审修复 sessionKey防序列化泄露/发货推送幂等/缺参ack/签名断言 - AI/promotion/vendor/parent pages use API_BASE_URL for uploaded images - upload/meal/points pages use API_BASE_URL for uploaded images - index/product/detail pages use API_BASE_URL for uploaded images - activity/guide pages use API_BASE_URL for uploaded cover images - order pages use API_BASE_URL for uploaded order cover images - shop core pages use API_BASE_URL for uploaded product images - product/discover pages use API_BASE_URL for uploaded cover images - article pages use API_BASE_URL for uploaded cover images - base config/components use API_BASE_URL for uploaded image URLs - WechatService 用 StreamUtils.copyToByteArray 替代 readAllBytes,兼容 Java 8 编译 - 富文本编辑器图片上传路径和网络图片弹窗被遮挡 - ErrorLoggingFilter 捕获链式异常并记录500日志; DimensionWeightController 参数校验; GlobalExceptionHandler 兜底异常处理 - 五维首页为你推荐商品区改为使用公开接口数据, 未选孩子也能显示 - simplify payment QR instruction text - set gut testing price to ¥1,314 - update payment QR instructions for WeChat browser users - DatabaseInitializer 清理 — 修正 modifyColumnToText 表名、移除已删表的残留迁移 - skip OAuth2 JSAPI flow, use Native QR code directly for WeChat browser - show contact info in QR payment popup - sync ProductOrder for admin order management - ArticleBookshelf 书籍横向排列 — scroll-view 内包 inline-flex 容器 - show product info in payment popup, auto-close on success - missing braces in JS, add backend QR code endpoint, use backend QR code instead of external API - add CORS origin for www.cf-club.com, fix QR code display, add diagnostic filter - 文章列表点击直接进入详情页,未登录也可阅读公开文章 - 统一移除RecommendedSection的v-if条件 - 统一五维首页推荐组件 — 顺序为活动→商品→阅读→推荐 - getOAuth2Url 用 String 重载的 URLEncoder.encode,兼容 Java 8 编译 - add payment endpoints to JWT exclude list - fix fallbackNativePay syntax error, center order form modal - 重绘底部tab身图标,更简洁的弯曲胳膊造型 - ContentRecommendService 商品/活动推荐改用 dimension_weights JSON 列查询 - add /upgrade-records route alias to MembershipController - promotion模板缺少闭合标签 - promotion模板多根元素 + 内联赋值 - RecommendedSection无数据时显示空状态而非隐藏整个组件 - 重新绘制底部tab身图标,更清晰的弯曲胳膊造型 - DimensionProductList使用attached生命周期在uni-app中不触发 - recommend-mixin传参字段名与后端DTO不匹配 - family-members弹窗关闭内联表达式 - 健康报告上传失败时 console 输出错误详情 - 后台活动权重维度code与标准五维体系不一致导致新活动小程序端不显示 - add missing List import in ActivityController and DB migrations for dimension_code/family_scope columns - circle接口空字符串解析Long报NumberFormatException - 富页登录按钮因重复CSS规则min-height:80vh位置偏高 - article-detail auto-merge遗留重复方法 - article-detail内联表达式导致data-event-opts编译错误 - 未登录可浏览商品/活动/文章详情 + 富页面预登录内容 - 统一活动详情页,删除 discover-detail 重复文件 - 补充ActivityDTO缺失字段 requireRegistration/requireCheckinReview/memberPrice/feedbackDimensions - resolve 6 backend compilation errors - article-detail模板结构错误 — template作容器/多余闭合标签/tag无匹配end - override ejs to 3.1.10 to fix critical CVE in webpack-bundle-analyzer - ContentRecommendService NPE when type is null - replace Map.of() with HashMap for Java 8 compatibility - recommend-mixin.js 导入路径多一层目录 - ContentRecommendService select() incompatibility, ProductRecommendationService bean injection conflict - 登录合规整改 - 跳过登录入口、静默授权、协议措辞 - remove WeChat branding from login page per review guideline - promotion try无catch语法错误 + 创建缺失的member-detail分包页面 - parameterize JSON_EXTRACT dimension_weights queries to prevent SQL injection - OCR finding - DimensionActivities CSS flex overflow - resolve OCR findings - AIService workflowId URL + EnergyService parent role filter - 财商打卡页内联表达式导致data-event-opts编译错误 + 修复模板编译器recyclableRender未定义 - add sendWorkflow and getTodayTasks(Long) overload, pull remote changes - 推荐商品和活动价格显示到分 - allow tracking screenshots in web/articles/ via .gitignore - 智首页六维认知雷达图无数据时也显示人群平均值 - 身首页七维雷达图无数据时也显示人群平均值 - 关系图连线映射交换 — 信任度→颜色(低红高绿),沟通度→线形 - 关系图连线视觉映射调整 — 粗细/颜色/虚线 + 无数据默认黑色 - payment.wxss 多余逗号导致编译错误 - EnergyService 修复 JSONObject.getInt -> getIntValue 和 executeAward 缺少 totalAmount 参数 - ActivityEdit/ArticleEdit full scroll, action tab no auto-select, timeout 800ms - edit page scrolling, action tab blank screen, SKU specs save - 推荐活动和推荐商品显示实际价格而非'登录查看价格' - ProductEdit card layout, sales page add leaky-gut/pancreatitis articles - remove required:true from dimensionCode prop in DimensionActivities/Products - el-main添加overflow-y:auto使内容区可滚动,解决长表单被截断问题 - replace template literal fallback with computed props for WXML compat - add null defaults for dailyFortune and dominantElement props - add currentChildId guard and fix getMyCircles params - add iOS date parsing fallback for Java format - 商品编辑页el-card__body增加overflow-y:auto使表单可滚动,保存按钮可见 - member pricing display, wisdom/body page layout, :key expr in FamilyTianpanCard, remove FamilyRelationGraph - add membership_levels seed data and period-specific pricing keys - add mind/alert/active and mind/traditional/mirror to public paths - verify-password 400 error — replace broad /api/auth/ public path with explicit list - empty purchasedIds causing NOT IN () SQL syntax error - 8 test failures — entity fixes + test param alignment - Product entity column mapping + test param fixes - add migrations 126-132 with ensureColumn for column alignment - add 9 missing tables (migrations 117-125) + fix JwtInterceptor familyId + fix test emotion childId - 商城升级提示文案通用化 - '开通家庭会员'改为'开通付费会员' - move migrations 105/106 into runMigrations() — they were in dead code migration102() - resolve P0-1/2/2b/3/5/6 test bugs + P0-4 DB migration for growth_records - migration 106 add growth_records missing columns (family_member_id/school info) - restore tab-wisdom icons from earliest valid version (faedcc33) - year_month reserved word quoting + products.min_quantity migration - 修复 stats-report-flow.md Mermaid 虚线连接语法错误(-:- → -.-) - 修复 promotion_tier 表列名映射——teamSize1st→team_size_1st - decode tab-wisdom PNG icons from base64 to binary - 梳理慢性病文章因果措辞——炎症不再作为唯一病因 - schema.sql 补充 4 个 butler 表定义 - key 表达式改为方法调用,修复小程序非 H5 平台编译警告 - 修复growth-record-flow.md Mermaid语法错误 - remove broken image refs in gut-microbiota-testing.html - replace {param} with :param in mermaid node text to fix syntax error in v11.12.1 - replace bare
with
in mermaid flow diagrams to fix syntax error in v11.12.1 - goDiscoverCircles 跳转到 discover 首页(原路径 /pages/discover/circles 不存在) - add products.min_quantity migration to runMigrations() - remove invalid shape:box from all mermaid classDef - update article count from 2→1 after turmeric article removal - 报告日期/综合评分仅文件上传后显示,ping文件Ping重置日期评分 - 改进ensureColumn错误处理+添加迁移104/103验证日志 - correct activity flow diagram with proper business rules - 补充缺失的default-avatar.png,统一路径 - tianpan_daily_fortune表添加8个缺失字段修复Unknown column错误 - prioritize K8 (8-plate, 37900元), fix 20-year cost analysis, update certifications placeholder - DimensionProductList activeChildId为空时跳过渲染 - 推荐阅读数据补充dimensionWeights和likes字段 - P2/P3 article fixes - 快捷入口对齐action页原版样式和funcList - 行TabBar章鱼图+联系人导入,顺序对齐原计划 - unify 活性氢→分子氢 terminology across sales pages and infographic - unify terminology - 活性氢→分子氢, 磷脂配比→天然基底油, refine descriptions - remove dead link to deleted turmeric_rewritten.html - 行TabBar登录态数据加载对齐action页(孩子/能量/任务/活动/商品/文章) - products表添加min_quantity列(迁移103)+ schema.sql同步 - restore article reading timer + recordRead积分发放 + fix response code - recapture UKPDS 16 and DPP study reference screenshots - update microplastic and tap-water sales pages - update article content - update WHO PDF link to IRIS archive, restore ref-18 CAS card - 去掉行TabBar页的redirectTo,登录态内容内联渲染,保持底签可见 - 文章编辑页内容过长时无法滚动到底部 - 闭合rating.vue模板中缺失的view标签,修复编译报错 - add 300+ missing CSS rules to diabetes.html - correct gut-microbiome-damage.jpg path in cancer.html and diabetes.html feat: add missing reference screenshots (turmeric marketplace, nature figures) - 修复 createMultiItem 中 minQuantity 产品级校验注入位置错误 - move Hallmarks screenshot to content area, fix container nesting - 修复cardio-cerebro.html中ref-screenshot图片路径(/img→../img) - 替换cancer_ref3截图源,补全三篇文章ref-shot img标签 - 恢复行首页redirectTo;修复CircleRanking WXML编译错误;新增plans占位页 - 行首页登录后保持TabBar;家庭挑战任务移至身页面 - 用evidence-inline替换cancer/diabetes/osteoporosis断链截图 - 添加真实DOI参考文献到3篇geo-faq文章,修复导航链接路径 - 为8篇独立文章补充footer CSS样式 - resolve subpackage path conflict in pages.json - 修复肠脑轴图/页脚/参考文献/证据截图 - fix encoding corruption from directory rename and restore UTF-8 - Fix: - 修正图片引用路径并替换缺失的参考截图 - rename pages/index to pages/home and update all references - 修正 cancer/cardio-cerebro 路径引用 - 修正子目录路径引用,添加 turmeric 文章 - remove stale RelationshipTypes route referencing deleted component - add throws Exception to test methods calling preHandle - add missing MockHttpServletRequest import - resolve compilation errors - Java 8 var removal + type casts - fix 405 POST→GET redirect, RecommendedFeed items ref, and unhandled rejections - PROJECT-OVERVIEW §2.3 家庭成员体系状态 🚧→✅(4/4 全部完成) - remove dead getRelationshipTypes API after P0-001 backend removal - extend postinstall-fix.js to also patch HBuilderX bundled remove-scoped.js - revert to @vue/cli-service v4 + patch remove-scoped.js via postinstall - Fix: - fix syntax error in parent-index.vue - loadAlerts + handleDismissAlert - restore @vue/cli-service v5, remove PostCSS config files - Fix: - restore @vue/cli-service to v5 to fix WeChat DevTools compile error - use ES module default-export for generationLevel constants - @keyframes 从 scoped 移到非 scoped 样式块,修复 vue-cli-plugin-uni 编译错误 - point develop env to cfc.etotem.com.cn; extract deep selector to non-scoped style for HBuilderX compat - replace >>> deep selector with ::v-deep for postcss compat - fix hash operator precedence, use floorMod for negative-safe index - use setFontSize in renderLegacy for WeChat compat, add _destroyed lifecycle guard - 联系电话 010-86461234 → 010-58733188 - ensure .vue resolution in webpack - 修复 uni-app 小程序编译兼容性问题及运行优化 - align MemorySaver import path and pin dependency upper bounds - restore file encoding to UTF-8 (was corrupted by PowerShell ANSI default) - 添加 tab-wisdom 图标文件,修复 gitignore 顺序 - add tab-wisdom icons (temporary - copied from tab-mind) - add wx:key to v-for loops in RecommendedFeed and parent-index to suppress WXML warnings - pages.json tabBar icons corrected - wisdom uses tab-wisdom, wealth uses tab-wealth - FamilyMemberCard roleBadgeColor use this.member instead of bare member - 运势接口Mybatis错误 - 添加@Select注解修复Invalid bound statement + 表结构对齐 - add fallback when navigateBack has no pages in stack - parent-index wx:for 添加 wx:key 消除 WXML 运行时警告 - extract_full_report_v5.py - report interpretation content no longer truncated - FamilyFortuneMapper.selectByFamilyAndDate 添加 @Select SQL 注解 - 智首页渲染层FLOW_DEPTH错误 + web baseURL/401提示修复 + 页面and组件完善 - 每日运势接口(/api/mind/fortune) 400 错误修复 - 移除无效 request body - isLoggedIn computed → data property to fix login state reactivity - FamilyRelationGraph 组件兼容性修复 - 修正小程序requestAnimationFrame错误 - normalize Kangxi radicals in Java service - add CAG candidate genera for full coverage - move floating migrations into runMigrations(), fix brace balance - add 4 missing genera + fix Kangxi radical chars - 开发环境跳过 auto-login 避免启动时 10s 超时错误 - 修复支付页订单金额显示为0元 - 修复体检报告详情页小程序编译失败 - add wx:key to v-for placeholder loop in DimensionArticles - SKU编辑器适配Map类型specs + enabled Boolean转1/0 - 新增findByProductIdAll供管理端SKU列表(无enabled过滤) - ProductSkuDTO specs类型从List改为Map - resolve login API 405 and logo 404 on /admin/ deployment - clean bacteria names (remove Chinese prefix) + add 3 missing genera - product-detail 移除 memberPrice 价格回退 - update test to match new BindController signatures - resolve @RequestAttribute familyId 400 error by resolving via MembershipService - replace @RequestAttribute("familyId") with - 商品图片上传两项关键修复 - 商品图片上传两项关键修复 - probiotic species-level extraction (22 items), inline format timeout - inline format bacteria table timeout - skip truly compressed format, 朱评估报告 now completes - bacteria table inline parsing, pathogen tables, antibiotic dedup, harmful/other bacteria expansion - FamilyRelationGraph 齿轮/+号/高度自适应被误回退,重新实现 - comprehensive extraction fixes - Kangxi radicals, inline fallback, amino acid boundary, taxonomy levels - 移除活动菜单项 + MembershipCenter 改用本地axios - 管理端API请求方法修复 — PUT/DELETE统一改用POST - 文件存储调用方适配 — upload→store、移除原始文件IO逻辑 - 文件存储重构 — 可配置上传目录、MIME类型校验、delete方法 - comprehensive bacteria table & indicator extraction fixes - 非管理员登录避免死循环 — teacher 直接进 /teacher-dashboard - AdminArticleController.create 修复ArrayList强转String — visibility/visibleTo/articleType字段可能为JSON数组 - 修复循环依赖 + ProductOrder重复字段 + QrCodeService静态调用 - navigateBack instead of deleted plans page - add ProductService.getById() to resolve pre-existing compile error - break circular dependency between HealthReportService and DimensionScoreServiceImpl - remove duplicate closing brace in CSS - 解决 git stash 合并冲突残留标记(body/index, gut-index, report-list) - user delete soft-delete + ActivityProvision entity + DAN execution service - class 绑定改用预计算/内联表达式,避免方法调用 - 修复管理端多处模板标签闭合并将本地开发接口指向 127.0.0.1:9082 代理 - 完善Canvas渲染逻辑 - 修复小程序编译错误和完善商品下单流程 - 添加 getWealthDetail 到 api.js(富维度详情 API) - 迁移40 ALTER ENUM前先UPDATE非法role值,避免Data truncated错误 - FamilyTianpanCard 修复多余闭合括号导致编译失败 + Canvas动画改用setTimeout兼容小程序 - SKU specs Map正确序列化为JSON + 审核中心滚动容器统一 - 修复拖动时按比例分配算法,首维度多分配问题 - ArticleManage分页onPageChange未接收页码参数; 增加每页条数选择器 - 活动列表滚动容器统一用overflow:auto消除分页导致的宽度抖动 - 修复身页面编译错误 - 商品组件导入路径和天盘卡片语法 - 活动管理列表横向滚动 + 查询条件间距调大 - PackageAudit getPackageList/reviewPackage函数缺失修复; 修复后端reject用params传递reason - ActivityReview overflow-x:auto 修复横向滚动 - showDialog处理object规格+update移除productId避免400 - approveGuide 中 username 字段为 null 时使用 teacher_{userId} 兜底; fix(web): ArticleAudit 接口名/参数修正 + GuideAudit 分页 - 创建规划师admin时phone为null导致username为空 - ProductSkuDTO 适配 specs 字段 String→Object 变更 - sku.getSpecs() 返回非String类型时类型转换保护 - normalizeSpecsToJson 参数类型改为 Object 适配 specs 字段变更 - 审核中心10个页面添加横向滚动+filter-bar美化 - 修复规划师审核列表数据显示问题 - ProductSku create() sku_code NOT NULL 缺失自动生成默认值 - SupplyHierarchy change-requests systemId 改为可选 + ((Number)→Long.valueOf) 解析修复 - 修正管理端4个API路径+2个分页兼容 - ProductAudit 兼容 records 分页格式 - 修正7个小程序API路径错误(article/supplier/messages/upload/families) - 移除无对应路由的文章审核侧边栏项 - 退出切换改用 switchBackVerify 原子接口,修正密码校验逻辑 - 迁移guides表添加university和education_system列(修复GuideService查询报错) - 创建 GuideFamilyListController - /api/guide/family/list 端点 - 修复 createFamily API 路径错误 - body page radar chart display issue - entire chain: dimension data -> score validation -> canvas render -> visual display - SupplySettlementService/Controller ((Number)→.toString()) 修复ClassCastException - ProductService 添加 getById 方法,SupplierProductController 编译错误 - SupplySystemController @RequestParam→@RequestBody 修复400错误 - schema.sql 同步补充 79 张缺失表的 CREATE TABLE 定义 - add dimension_weights column to products table (migration 89) - DatabaseInitializer 显式声明 Logger 替代 @Slf4j 注解,避免 Lombok 处理异常 - add dimension_weights column to activities table (migration 88) - CommissionRecord 添加 family_id 字段 + CommissionService createCommissionRecord 集成 familyId - CommissionService 编译错误 - 补充 familyId 字段和 L2 调用参数 - move familyId declaration before use - resolve Spring MVC ambiguous mapping conflicts from PostMapping unification - 代码规范修复 — @Autowired→@Resource + Result泛型补全 - 后端稳定性 — catch块日志/空值处理/PostMapping统一/管家stub - 金融安全修复 — payment绕过/验证码stub/积分兑换/教师端点/类型转换 - 迁移87: articles表添加content_type/difficulty_level/dimension_ids/dimension_weights字段 - 迁移86: product_orders表添加purchase_info字段(OrderTimeoutCancelTask) - 调整 pages/profile/index 在 tabBar 中的位置并移除 customTabBar 配置 - 同步 pages/wealth/index 路径与远程一致 - 修复 Recipes.vue el-dialog 开始标签丢失 - missing SubscriptionBenefitLog import + column comparison in ButlerService - remove extra closing braces at end of DatabaseInitializer - 修复 pages.json tabBar 富页面注册缺失 + 维度权重前端修改 - resolve merge conflicts in package.json, CHANGELOG.md, .last_build_commit - add missing closing brace for export default in Detail.vue — fixes build error - resolve merge conflicts in cfc-web build files - 二维码分享功能统一收敛 — 新增通用 QR 后端接口 + 修复三处前端 QR 生成 - PpointService null date handling + adminList keyword filter; ProductPpointManage effectiveDate→startDate field name fix - resolve ambiguous mapping /api/recommend/dimension-products - remove duplicate from RecommendationController - SupplyManageController detail/update/delete robust id parsing - api.js repurchase-reminders GET→POST + click tracking - 添加 dify.callback-secret 配置 + 管理端多页面优化 - break circular dependency CircleService↔CircleMatchService with @Lazy - 修复DatabaseInitializer编译错误 - ProductController spec map JSON.parseArray type inference for Java 8 - CartService 回填 skuId + wisdom 阅读统计条件优化 - restore family member menu + auto-derive generationLevel + add birth/preference form fields - 退款流程5项修复 (ISSUE-007~011) - 拆分 v-if 条件提高可读性 - ArticleManage table 添加 max-height 防止溢出 - 修复前后端数据流5个关键bug - 待退款队列可见性 + 退款到帐中状态 + 防重复审核 - body index simplify childId checks use || '' fallback - FamilyRelationGraph 修复单成员家庭显示重复的问题 - 补充迁移79(pending_refund.order_type/order_no) + 修复TianpanDailyFortune import - add missing FamilyRelationGraph to mind page - 删除body页face多余的修复模板多根元素错误 - 修复E2E-TEST-SCENARIOS.md section12编码乱码 - 鏇存柊 playwright 閰嶇疆 + 鏂板娴嬭瘯鏂囦欢 (consignee/health-report/teacher-dashboard/publish-dimension-articles) - add updateTier(Long, String, String) overload to match call in PromotionTierEvalService - 七维健康图无个人数据时返回默认值 65 - 身/心维度页推荐文章添加dimensionCode过滤 - 修复退款失败 - package_orders表缺少user_coupon_id列 - add missing PpointService for CommissionService compilation - specs字段规范化为合法JSON避免MySQL JSON列报错 - resolve getPlanDetail duplicate declaration and clean up assessment controllers - getTrendStats send {} to avoid axios stringify undefined - 用原生 button @click 替换 el-button 绕过组件事件问题 - knowledge layout — wrap body, add status filter dropdown - el-link 点击事件改用 .native 修饰符 - 注册 Element UI Link 组件使变更日志可点击 - AdminArticleController 空字串转Long抛NumberFormatException - 系统状态卡片增加变更日志入口与服务器运行监控 - convert content-bearing VARCHAR columns to TEXT to prevent Data too long errors - show family relation graph card even with single member - connect after-sales request and product order refund flows - restore DatabaseInitializer encoding and fix ActivityController tests - 修复 numsoul_config 种子数据语法错误(缺失引号和逗号) - improve health report scoring and add admin report list - add role-based permission checks to activity endpoints - 补齐个人信息保存缺失的 idCard/mascot 映射 - repair playwright baseURL, add test scripts and lockfile - resolve merge conflict in DatabaseInitializer, add mascot to UpdateUserDTO - normalize time format to YYYY-MM-DD HH:mm:ss across admin pages - complete scroll wrapper for all 59 pages with fixed=right columns - revert error-throwing, keep auto-create for unidentified users - prevent auto-create user when openid not found and no phoneCode - wechatLogin use real code2Session API instead of mock openid - validate openid before WeChat prepay - reject phone-prefixed/mock openid (resolves PARAM_ERROR 无效的openid) - add missing wangEditor Toolbar component to enable rich text editing - add overflow:auto scroll wrapper to all 58 pages with fixed=right columns - admin UI improvements - action dropdown, scroll, labels, confirm dialogs - guard loadHealthDimensions on activeChildId + debug logs - add table overflow scroll to admin pages - CSS grid violations, teacher API null guards, progress fallback, improved changelog parser - add null/undefined guards in TeacherDashboard loadStats - replace grid with flexbox in Dashboard quick actions + today stats - guard null userId in ArticleService.recordRead to prevent creator_id NOT NULL error - redesign ContactImport - support WeChat contacts import & fix picker modal issue - ISSUE-007 SupplySystemService.create() validate adminId - fix FamilyMemberService.addMember DTO compatibility for generationLevel/peerType - map generationLevel/peerType to relationshipTypeKey for RelationshipType lookup, set generation/isSpouse on FamilyMember entity. - resolve ProductEdit.vue rebase conflict + cleanup supply entities - migration 36-37 — family_members generation/is_spouse columns - admin edit pages and CHANGELOG updates - add GenerationLevel enum and family member entity updates - PaymentService testMode mock + WeChat JSAPI payer.openid - resolve 5 UI bugs across CFC mini-program - CORS - add PrivateNetwork header + explicit allowedOrigins - points_log表添加family_member_id列(迁移35,修复家庭能量计算报错) - align supply distribution system with spec — member management, period-based settlement, 3-page frontend - FamilyRelationGraph 完善 + login/family-dashboard 页面更新 - add dan_assessment_results missing columns - familyMember/EMI/Big Five/snapshot fields - relationship_types.capability_role 添加默认值 - 迁移33 供应商分销体系(4新表+product_orders 3列) - health_reports补subject_id列 + 迁移32供商体系表(4张新表+product_orders 3列) - HealthEnergyConfig.vue 全角括号导致前端构建失败 - add deliveryMethod/rejectReason/categoryId/distributionSystemId mappings - ProductEdit field alignment - 多页面综合修复 + 后端关系质量/能量同步 + 前端组件完善 - 后端: DatabaseInitializer/RelationshipQualityController/DimensionEnergySyncService - 前端组件: ContactImport/DimensionActivities 完善 - 页面: action/body/mind/wisdom/discover/health 各维度更新 - splash.vue 删除 - 新增 HealthEnergyConfig.vue 管理端页面 - router/Layout 同步更新 - resolve rebase conflicts + update tests/docs - resolve .last_build_commit conflict - ProductEdit wangeditor 生产构建错误 — 改用 @wangeditor/editor-for-vue Vue组件替换programmatic API - product order stock check by product type (physical only) - resolve merge conflicts and sync build artifacts - create cart table migration and sync to schema.sql - add relationship score column migrations for family_members table - add require_registration, require_checkin_review, energy_penalty_unregistered migrations for activities table - add role_override column migration for family_members table - add default_role column migration for relationship_types table - add remaining child-specific column migrations for family_members table - activities表添加审核相关字段迁移(迁移25) - package.json 版本更新 - add id_card column migration for family_members table - resolve ArticleService.java merge conflict (autoGenerateTags + submitForReview/withdraw/reDraft) - 活动创建后弹窗提供继续添加/返回列表/直接发布选项 + 表单必填校验 - TabTransition 默认 true 确保首次渲染即出现,消除页面框架闪现 - 首次进入首页时 TabTransition 不应展示(由 splash overlay 覆盖) - DimensionWeightPicker 拖动时按比例重新分配维持100% - 环境配置更新 - action/index.vue 集成 WuxingSandbox 能量沙盘 - index.vue 闪屏逻辑优化 + api.js 中文注释编码修复 - DatabaseInitializer 添加 family_member_id 和 role_override 列迁移 - E2E tests for deployed admin at cfc.iwintrue.com/admin - relationship_types 迁移 default_role → capability_role - 后端+前端全面修复 - ArticleService/EnergyService/DimensionArticles/FamilyRelationshipSection及多页面完善 - ArticleService: getAdminList 返回值修复 - EnergyService: getEnergyOverview 能量概览补全 - DimensionArticles: 修复文章组件 - FamilyRelationshipSection: 完善关系管理组件 - 多页面: action/mind/wisdom-detail/promotion 等页面更新 - FamilyMemberVO/Service + family-members.vue 完善 - 后端全面修复 - 实体字段、Controller参数、Service方法补齐 + DTO新增 \n- 修复字段类型不匹配(Long/Integer/String)\n- 补齐缺失的 import/方法/参数\n- 修改 @PostMapping 路由统一\n- 新增 Cart/CartItemDTO/SystemConfig 相关实体和Service\n- 重命名 ChildNutritionProfileService -> FamilyMemberNutritionProfileService\n- 修复测试用例 - createUser — unique openid + try-catch exception handling - 测试编译错误修复 - ArticleService.getAdminList 参数补齐 + update 方法参数类型修正 - 修复编译错误(重复字段 + 缺失import + 参数不匹配) - update deployment script and admin router/activity api - add auto-migration for articles audit fields in DatabaseInitializer - create missing HealthDimensionsSection component - DimensionArticles & FamilyRelationGraph show empty state - uncomment ALTER TABLE for article audit fields in schema.sql - DimensionProducts always shows section with empty state - resolve Bean name collision between GuideActivityService and ActivityService - wisdom index radar chart - loadCognitiveReport race condition - call loadCognitiveReport() inside loadChildren's .then callback, - resolve API naming conflict for activity guide endpoints and WXML :class compatibility - connect article-center entry from discover page + profile menu - 修复退出登录遮罩冲突, 添加beforeunload防护 - correct article publish path in v8 final test - add article publish path endpoint + product_skus table auto-init - 修复退出登录确认框不显示、文章编辑页刷新弹出浏览器提示 - fix body goMoreProducts URL - was wrongly set to type=activity instead of type=product by rebase auto-merge - always show more button in DimensionActivities, fix goMoreActivities URLs with type param - 修复Controller单元测试编译错误 - 修复集成测试编译错误(适配生产API签名变更) - DailyCheckinService.updateCheckin改为Map参数,deleteCheckin增加userId参数 - 修复NEW-01/02/03运行时API错误 - login redirectTo + goMoreActivities/Products URLs with type filters - fix all tab pages - empty navigation methods, wrong paths, bad query params for goMoreActivities/goMoreProducts - remove DimensionProducts section from body page, fix goMoreProducts navigation - goShop navigates to correct product pages instead of broken action/index - relationship_types enabled 修复 + 清理 body/index.vue 冗余产品链接 - DatabaseInitializer: 启动时修复 enabled=NULL 的种子数据 - schema.sql: relationship_types INSERT 补上 enabled 列 - body/index.vue: 删除菌群检测产品链接区块, showTabTransition=true, 移除废弃方法 - RelationshipPicker.vue: 组件增强 - DimensionActivities.vue: 组件增强 - small adjustment in ArticleManage.vue - repair broken tag in mall.vue, CSS rename and normLevel fix in cognitive-report, small adjustments to add-member and ProfileMenu - testMode flag skips private key loading - Login.vue success路径补上this.守卫 - 修复后台登录成功后的崩溃bug (防止重复提交 + catch块防御) - 移除所有UTF-8 BOM - api.js + 3个shop页面 - PaymentService添加@Lazy解决循环依赖 - 心页快捷入口从一行改为两行布局 - GrowthTaskManagement import path and function names - add resolvedAt to EmotionAlertVO in toVO() mapping in both services - add resolvedAt field to EmotionAlertVO - make crisis hotline clickable in PsychCrisisBanner via uni.makePhoneCall - add emotion_checkin missing columns (moodScore, stressLevel, arousalLevel, sleepHours, sleepQuality, energyLevel) - resolve schema migration gate, controller NPE, auth check, WeChat template message support - 修复编译错误 - ActivityRegistrationService toList(), ProductOrder/TrialMembership缺失字段, DanshopSyncService BOM - ISSUE-001 ProductService.shelve() 状态检查 & ISSUE-003 AdminController.createUser() 缺省值 - 修复管理端侧边栏菜单滚动问题 - 修复report-survey微信小程序finally不兼容问题 - 修复文章发布500错误,补充detail接口及relatedDimensions类型转换 - List.of()→Collections.emptyList() (JDK8兼容) - 解决ambiguous mapping冲突(List.of改Collections+删除productList/productReview重复端点) - 调整tabBar顺序为行心身智富(五行相生) - 移除 date-picker value-format 避免 400 - Danshop迁移到cfc-backend + coupons/upgrade模板修复 - 修复energyMapForGraph缺wisdomScore + 添加返回首页快捷按钮 - resolve merge conflict + upgrade.vue template root element - add .pillar-card to scroll-reveal observer selector - restore and fix pre-existing test files for Java 8 compatibility - improve FIRST_TASK onboarding trigger to use task child ID - HealthDimensionScore/HealthDataSourceRecord 新表字段匹配 - use PDDocument.load() instead of deprecated Loader class - 修复小程序登录后首页状态不更新 + TabBar图标缺失 - FAQ精简为11个核心问题,修正文不对题;新增销售文案页 sales.html - 全站理念统一——精准健康方案→精准健康,SEM/FAQ/百科/策略同步 - 精准健康方案→精准健康 - 修正产品理念——健康档案/成长档案为容器,菌群/DAN测评为实际内容 - remove danLevel field call causing compilation error and add PdfParseServiceTest (10 tests) - add missing memberType and danLevel fields to FamilyMemberVO - 修复 Profile 子组件 import 路径 - Core function 识别诊断→科学识别 desc -3chars, 跟踪执行+5chars, 成果检验+5chars; enhance 菌群检测+精准健康; stats in about section - Move stats into about section; enhance 成长规划/菌群检测/精准健康 descriptions - Revamp about section into 企业使命/愿景/价值观; remove 40,000+ stats - Center QR code image - QR code 200px desktop, 160px mobile - correct media query placement - QR code to 200px; tighten role descriptions - Reduce QR code size to 100px (from 180px) - hero按钮统一蓝底黑字,消除点击困惑 - 营养健康模块5项缺陷修复 - 统一平台运营图标尺寸与对齐方式 - refactor profile.vue into 6 components + remove duplicate loadRewards - resolve git conflict markers in router/index.js and fix Layout.vue computed syntax - add monthActiveDays to /api/stats/child/overview - unify all order ops to DanShop API - convert totalAmount fen→yuan before passing to payment page - unify DanShop order operations — cancel/confirm/pay now route to DanShop API not CFC - 修复首页10个实现问题(主页风险修复计划) - pre-login entry flow - fix page order, remove stale resetTabBar, fix goShop nav, add auto-login refresh - 根据登录状态显示/隐藏TabBar(未登录跳转发现页) - ProductOrderController 使用 @RequestAttribute 读取用户ID - ProductService.decreaseStock 改用原子 UPDATE 防止超卖 - 数据库 schema 加 UNIQUE 约束 + 时间戳默认值 + 平台商品 vendor_id 置空 - 修复登录限制和密码重置逻辑 - 修复Task.java缩进和duration字段一致性 - 批量操作添加用户认证和所有权检查 - 修复SfmsDataSourceConfig配置前缀不匹配,去掉hikari层级 - 批量修复API路由冲突和权限控制 - 修复数据库迁移SQL语法错误和测试用例 - 修复预存的编译错误(DTO类型不匹配,status值) - 修复预存的编译错误并添加Service接口规范 - 注册teacher目录页面到pages.json - 修复tasks.vue和添加SchemaSyncHandler - 优化RewardService和pages.json路由配置 - 修复跨Controller路由冲突(RewardWishlistController+TaskReminderController) - 批量修复GET→POST迁移导致的路由冲突(TeacherController+UserController) - 修复ParentController路由冲突(getParentWishlist路径改为wishlist/list) - 修复TaskTemplatePackageController路由冲突(getPackageItems路径改为item-list) - 统一处理参数校验异常返回 - 补充createChild必填字段校验 - 修正测试基类元素解析契约 - 修复UserService.createChild空指针异常 - 统一前后端API为POST请求(安全迁移) - 修复AdminController类型转换异常和数据库迁移缺失 - tasks表child_id字段改为可空,支持parent任务 - rewards表child_id字段允许NULL,修复模板奖励插入失败问题 - 修复profile.vue模板格式 - 切换孩子模式时检查孩子数量并引导添加 - 优化手机号输入体验,11位自动触发检查 - 修复孩子端导航返回逻辑及移除TabBar游戏入口 - 修复RewardWishlistController API映射冲突 - 添加admin_task_templates表teacher_id字段迁移 - 修复TaskTemplatePackageController API映射冲突 - 修复GuideController与GuideFamilyTaskController API路径冲突 - 修复GuideController与BindInviteController API路径冲突 - 修复schema.sql中ALTER TABLE重复执行错误 - 修复数据库迁移重复执行错误 - 修复Java 8编译兼容性问题 - 修复小程序登录流程和用户编辑页跳转 - 修复Controller层userId获取方式及多个API端点 ### 其他 - - 生产库 id/product_id 为 INT,实体为 Long,插入超出 INT 范围的 id 报错 - - 生产 DB 已直连 ALTER(即时生效) - - - Product 实体已含字段,生产库缺列,商品列表分页查询报错 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 同步补列 - - - Article 实体已含字段,生产库缺列,getFeatured 精选查询报错 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 同步补列 + 解决 unlock_gates/microbiome_article 冲突 - - - 后端: AI自动分类接口 /api/growth/articles/products/ai-classify - - 前端: growth-main 新增推荐文章和推荐商品卡片 - - 前端: api.js 新增 getGrowthRecommendations() - - - 后端: GrowthRecommendationService 推荐查询 + AI分类 - - 后端: GrowthController /api/growth/recommendations + /ai-classify - - 前端: growth-main 新增推荐文章+推荐商品板块 - - - gut-flora-caution-detail → pages/growth/caution-detail - - gut-flora-foods-detail → pages/growth/foods-detail - - growth-main 新增戒备/饮食推荐行动卡片(戒备有数据时显示) - - 更新 gut-flora-detail.vue 跳转链接 - - - profile-main: 新增购物车(角标99+封顶)与收货地址入口 - - profile-main: 移除功能入口网格, 设置改为菜单项放退出登录上方 - - profile-main: loadOrderCounts 修正字段映射(pending/paid/shipped/refunding) - - profile-main: 补充 loadCartCount 方法定义 - - order-list: onLoad 支持 status 参数, 我的订单五宫格点击直达对应状态列表 - Ultraworked with [Sisyphus](https://github.com/oh-my-open-code/oh-my-open-code) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - /data/cfc-uploads/ 文件,导致解析时报「文件不存在」。 - 修复:将 langgraph-data:/data 拆分为两层挂载: - - /data/cfc-uploads → bind mount 宿主机路径(共享上传文件) - - langgraph-data:/data/chroma_db → 独立命名卷(chroma 向量数据持久化) - - - report-confirm.vue 去除 onLoad 重复的 draftId/memberId 赋值,draftId 模式自动跳转详情页 - - report-upload.vue 上传草稿后跳转详情页 - - 新增健康报告编辑日志(HealthReportEditLog + Mapper + 建表迁移) - - 报告服务/区块组装/排序工具相关后端增强 - - - 前端: 新建 gut-flora-caution-detail.vue 页面,倒序展示 indexScore < 0 的食材 - - 前端: gut-flora-detail.vue 新增'食材戒备'入口卡片(有戒备食材时显示) - - 前端: api.js 新增 getFoodCautionList() - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - BeijingNutritionService.analyzeGutFlora: 按功能分类聚合菌属 - (丁酸盐生产者/黏液屏障/蛋白质发酵者/SCFA/产气菌/益生菌等) - - 计算 Prevotella/Bacteroides 比值推断饮食模式 - - 组合风险模型(IBD/代谢/肠易激/神经-肠轴) - - 益生菌补充指导 - - POST /api/nutrition/beijing/analysis - 前端: - - gut-flora-detail.vue 新增分析卡片(功能维度评估/PB比值/饮食模式/风险/益生菌) - - api.js 添加 getGutFloraAnalysis - - Ultrawwork with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - 后端: SortInterceptor + SortUtil 全量支持 - - 支持单击设主排序、Shift+Click追加、双击切换方向,最多3列组合 - - - 新增 SortUtil.applySort(wrapper) 自动注入 ORDER BY - - 批量 patch 110+ 个 controller/service 文件 - - 解决方案,平台承诺未经授权不向第三方提供报告内容。未勾选时点击上传 - 卡片会弹出确认弹窗,用户同意后自动勾选并继续选文件流程。 - Closes: 报告上传用户隐私声明需求 - - Co-authored-by: Sisyphus - - - 后端: AdminFoodController 解析前端 sort 数组传入 Service - - 前端: 列头点击排序(单击设主排序,Shift+Click追加,Ctrl+Click切换方向) - - 前端: 排序徽章显示当前排序链,最多支持3列组合排序 - - 前端: 排序列高亮 + 方向图标 - - - DietRecordService: getDailySummary/getWeeklyTrend 增加 userId 参数 + resolveMemberId 反查当前用户自己的 family_members 记录 - - SurveyController: 移除 status/history/submit 的缺少成员ID 报错 - - SurveyServiceImpl: resolveMemberId 兜底,submit 时仍无法确定则抛业务异常返回 400 - - - 11个分类: 蔬菜58、水果42、水产品35、肉类27、干果15、豆类14、主食14、蛋类7、乳制品6、汤3、快餐3 - - 字段: name, category, energy_kj, protein, fat, carbs, fiber, starch, cholesterol - - SQL: docs/superpowers/specs/food_seed_data.sql (可直接执行) - - 数据库已有 UNIQUE INDEX idx_name(name) 防重复 - - Co-authored-by: Sisyphus - - - 新增月度引导语(12个月差异化文案) - - 💧金色主题样式 - 健康页(health-main)登录前: - - 新增五维闭环体系可视化(身/心/智/行/富环形图) - - 相生关系: 身→智→富→行→心→身 - - 相克关系: 身克富·智克行·富克心·行克身·心克智 - - 五维介绍卡片(点击跳转对应维度页) - 成长页(growth-main)登录前: - - 同构五维闭环体系(绿色主题区分) - - 替换原理念卡位置,内容更丰富 - - 保留原登录后逻辑不变 - - - 品牌定位语'科学管理全家健康数据' - - 痛点卡: 指标正常≠健康 + 孩子反复生病文案 - - 4宫格功能预览(报告/认知测评/心理测评/智能方案) - - 15题五维健康自检入口 - - LoginGuideCard 升级版 - 成长页(growth-main)登录前: - - 品牌定位语'看见改变正在发生' - - 理念卡: 记录不是目的,看见改变才是 - - 脱敏案例展示(小明3个月前后对比) - - 4宫格功能预览(打卡/调研/里程碑/家庭挑战) - - LoginGuideCard 升级版 - - 原登录后逻辑不变 - - - pages.json 注册 pages/action-detail/index 页面 - - custom-tab-bar dimMap.action 从首页改为 /pages/action-detail/index - - - monitoring.py: Java后端检查由GET /api/改为POST /api/admin-auth/login-by-password - - monitoring.py: LLM检查由ainvoke改为abatch(max_tokens=1)加速 - - .env.production: JAVA_BASE_URL改为172.17.0.1(Docker桥接网关) - - (Java后端所有接口均为POST,GET返回404) - - .env.production: JAVA_BASE_URL由远程IP改为172.17.0.1(Docker桥接网关) - (Java后端运行在同服务器宿主机,Docker容器通过桥接网络访问) - - - parent-index.vue: 去掉自动选中children[0],默认显示自己,用户从FamilyMemberStrip选择后设置selectedChild - - 后端: HealthSleep/Water/Exercise/DailyCheckin/HealthDimension 五个Controller添加@RequestAttribute('currentMemberId')回退 - - 前端: sleep/water/exercise/daily-checkin/diet 五个健康页,child角色不从storage取currentChildId - - - 理念依据:《家的算法》书稿(测量先行→最小输入→循环→反馈→系统升级) - - 主线硬门禁:家庭级判据,任一成员完成五维自检解锁全家沙盘 - - 增值关卡:下单菌群检测/DAN测评(无前置依赖,可先于主线完成) - - 软引导:微行动/打卡里程碑/复测趋势,推荐不锁死 - - 管理端完整配置页:开关/顺序/奖励/条件,数据驱动 - - 同步更新 PROJECT-OVERVIEW.md 功能表与文档索引 - - - 表格高度自适应,无固定 max-height - - Java后端健康检查由 /health 改为 /api/(返回401=正常需认证) - - 组件详情展示 detail 字段而非 code - - - 健康页登录前新增痛点卡、功能预览、五维自测入口 - - 成长页新增登录前内容(理念卡+示例展示+功能预览+LoginGuideCard) - - 所有内容来自《家的算法》书稿(book/目录) - - 登录后内容保持不变 - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - LoginResultDTO.roles: String → List - - UpdateUserDTO.roles: String → List - - UserService: 移除 parseRoles/joinRoles,直接使用 List - - EnergyService: 简化 parent 角色检查 - - SupplyManageController: 直接使用 List.contains() - - DataMigrationService: 使用 Arrays.asList() - - ServiceRoleApplicationServiceImpl: 保留 JSON 序列化(独立表字段) - - 形成 '/dashboard → / → /dashboard → …' 无限循环。 - 改为 next('/403') 直接跳 403 页面,终止循环。 - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - 低于 JWT HMAC-SHA 要求的 256 位。新增自动扩展逻辑: - - SHA-256 哈希扩展(密钥>=256位时直接使用原密钥) - - 字节填充回退 - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - 移除功能测试面板(quickTests) - - API端点列表高度 500→700px - - 日志面板高度 250→600px - - 状态判定改为只看LLM/ChromaDB,Java后端因内外网隔离不作为降级依据 - - 刷新间隔从30s改为60s - 后端: - - adapter.py 新增 POST /api/v1/health/coach/generate 端点 - - 接收 {familyId, memberIds, dimensions, goal},调用 health_coach_graph - - 修复 Java 后端 HealthPlanServiceImpl 调用端点 404 问题 - 部署: - - 新增 deploy.sh 脚本(rsync同步 + docker-compose重启 + 健康检查) - - - 前端 profile.vue: loadUserInfo 按14个字段计算个人信息完整度 profileProgress, 修复一直显示0/14的问题 - - 后端: users/consignees 表新增 province/city/district/street 字段(迁移211 + schema.sql同步) - - UserService.updateUserInfo: 保存地区后自动创建/更新同名同手机号联系人, 共享地区数据 - - ConsigneeService.save: 联系人姓名手机号与当前用户一致时, 反向同步地区回用户 - - - 步骤指示器 + 卡片式报告选择 - - 需求输入区改为标准表单,非对话样式 - - LangGraph 调用逻辑不变(aiSendMessage),仅前端 UI 改造 - - 方案结果以普通卡片展示,任务列表支持执行人修改 - - - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法 - - report-confirm.vue 确认后跳转 health-plan-summary - - 重写 health-plan-summary.vue: - - 选择全家已有报告(含其他家人) - - AI 对话式输入需求,返回方案内容 - - 自动解析任务列表,支持修改执行人 - - 确认后批量创建任务单 - - - 后端 HealthReportService 新增 getFamilyReports(familyId) 方法 - - report-confirm.vue 确认后跳转 health-plan-summary - - 重写 health-plan-summary.vue: - - 选择全家已有报告(含其他家人) - - AI 对话式输入需求,返回方案内容 - - 自动解析任务列表,支持修改执行人 - - 确认后批量创建任务单 - - (未知文本一律算异常),而 _cssClass/statusText 用白名单映射(未知显示正常), - 导致分组标题'X 项异常'把样式正常的指标计入异常数。 - 改为与 _cssClass 一致的白名单判定(仅 high/low/abnormal/偏高/偏低/异常/ - 缺乏/不足/注意/高风险 计异常),并补齐 _cssClass/statusText 的'异常'中文键。 - - parse/parse-preview 读取时又拼一次 uploadBaseDir,形成 - /data/cfc-uploads/data/cfc-uploads/uploads/... 的重复路径导致文件找不到。 - 新增 resolveUploadFilePath 兼容绝对/相对两种历史格式,两处读取统一走该方法。 - - 前端 uploadReportOnly 仍调旧路由命中一体化 uploadReport(返回详情无 draftId), - 导致上传成功但 res.data.draftId 为空、不跳转确认页且 toast 显示 message=success。 - 修正 URL 为 /api/health/report/upload-only。 - - - 新增SurveyTemplate/SurveyRecord实体 + Mapper + SurveyService - - 新增SurveyController(小程序端status/active/submit/history) - - 新增AdminSurveyController(管理端save/list/delete/ai-generate) - - AI生成调研题目调用LangGraph,失败回退本地fallback - - 前端小程序:新增survey-questionnaire/survey-history页面 - - 重构growth-main为干预中心(今日干预进度卡+持续追踪Tab+里程碑+定期调研) - - 前端api.js新增调研API,pages.json注册新页面 - - Web管理端:新增SurveyTemplates.vue(CRUD+AI生成)+ survey.js API - - 修复getSurveyStatus命名冲突(旧report-survey重命名为getReportSurveyStatus) - - 同步更新schema.sql + PROJECT-OVERVIEW.md - - - VARCHAR(50)→VARCHAR(255),源数据(菌种检出率描述)可能超过50字符 - - 生产 DB 已直连 ALTER(即时生效) - - schema.sql 新增 health_gut_flora 表 DDL - - - CouponGrantLog/DanExecution/CfValueManage/MembershipCenter/PendingRefund/ButlerAudit/ServiceRoleApplications/supply-system/Detail/HealthReportAudit: 新增resolveUserNames方法,通过searchUsers API将userId解析为用户名显示 - - - 在线测评(dimension-questionnaire.vue)扩展:cognitive/mental/relationship三套题库(各8题)+dim参数路由 - - 方案汇总页(health-plan-summary.vue)新建:生成表单+结果展示+历史列表 - - 后端:health_plans表+HealthPlan实体/Mapper/Service/Controller(4端点) - - 数据库迁移207:health_plans表 - - 前端API:generateHealthPlan/saveHealthPlan/getHealthPlanList/getHealthPlanDetail - - pages.json注册health-plan-summary页面 - - PROJECT-OVERVIEW更新 - - Co-authored-by: Sisyphus - - - 成长Tab: 移除重复体征记录入口,保留每日打卡等8项执行层入口 - - 全局改名: 成长档案 → 成长记录 (15个文件: 页面文本/导航标题/注释) - - 导航修复: mind-detail和wealth的TabBar页跳转改用nav.goPage; child-index/child-detail goToGrowth改用switchTab - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - Co-authored-by: Sisyphus - - - ArticleBookshelf 组件: 书册横滑改四列网格, 显示4篇文章 - - index-home: 推荐阅读移到推荐商品下方, 推荐商品请求数量 2->4 - - FamilyMemberStrip: 无 props 用法时自我加载可见家庭成员 - - UserService: 家庭成员列表按 userId 去重(创建者双表记录) - - - 8 个不存在的表(user_operation_log/daily_health_checkin等)不再产生噪声 - - → 改用 tableExists() 前置检查 + RENAME TABLE(无 IF EXISTS) - - 修复 1 处 CHANGE COLUMN min_quantity(列已不存在时报错) - → 改用 columnExists() 前置检查,不存在则跳过 - - 新增 tableExists() + columnExists() 辅助方法 - - 不影响业务,仅消除启动日志噪声 - - - 移除 dead code: 无意义的 empty-tip 视图 - - 移除无用 import: generateFamilyInviteQrCode - - onInvite 使用 uni.share type=5(小程序原生卡片分享),不再依赖 QR 图片 - - 分享卡片带标题+家庭名,被邀请人直接打开 invite/join 页面 - - 🛒 购物车 (pages/shop/cart/cart) 快捷入口。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - 当 store familyId 为空时显示 FamilyEmptyState(暂无数据)。 - 编辑个人资料不应依赖是否有家庭,改为老用户 (isNewUserFlow=false) 始终显示表单。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - - 移除 FamilyEnergyBar(沙盘已含能量信息) - - 移除 DimensionTasks/圈子模块,移入功能入口 - - 新增 3列功能入口网格(对齐健康/成长页 grid-3col) - - 移除未登录态五维全景幸福矩阵 - - 重构结构:Banner → FamilyMemberStrip → 沙盘 → 网格 → 挑战 → 推荐 - - 清理冗余 JS 数据/方法/API调用和 CSS 样式 - - 导致 ProfileHeader/Badges/Growth/Menu 加载失败,页面仅显示内联个人信息卡片。 - 将 4 个 Profile 组件复制到全局 components/ 目录,并更新两处 import 路径。 - Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) - Co-authored-by: Sisyphus - - pages/health/index → pages/health-main/index - pages/growth/index → pages/growth-main/index - pages/profile/profile → pages/profile-main/profile - - 更新 nav.js, custom-tab-bar, pages.json 等 10 处引用 - - main.js 添加 custom-tab-bar 显式注册(强制构建编译) - - pages.json 4个Tab页添加 usingComponents 引用 custom-tab-bar - - 修复 checkout.vue ES6 简写方法语法错误 - - - 五维 index 页移入分包: mind→mind-detail, body→body-detail, wisdom→wisdom-detail, wealth分包 - - 新建 custom-tab-bar: 4Tab + 中间⭐按钮 + 五维半屏浮层, 规划师5Tab不变 - - 新建 pages/health/index.vue 健康Tab页(报告/测评/打卡概览) - - 增强 pages/growth/index.vue 为方案执行中心(待办/功能入口) - - 新建 utils/nav.js 统一导航工具 - - 替换 switchTab 引用为 nav.goPage/navigateTo - - 活动推荐移至成长页, 健康页新增科普文章推荐 - - profile 显示完整菜单(showServices=true) - - - 旧版 INSERT 未携带 type 字段,DB 列 NOT NULL 无默认值导致插入失败 - - 使用 MODIFY COLUMN 添加 DEFAULT 'login'(向后兼容,无需改代码) - - 直连生产 DB ALTER 已执行(下次服务重启 DBI 迁移幂等跳过) - - - 迁移191: foods 添加 report_id/score 列 - - 直连生产 DB ALTER 已执行 - - 修复 菌属-食材映射 JSON 解析失败: - - DB 顶层为 JSON Array 但代码期望 Map,加载时包装为 {_list: [...]} - - 消费端兼容两种形态 - - 修复 迁移112 日志等级: - - Duplicate column 已存在是幂等预期,log.error → log.warn - - 避免误报 - - - report_parse API 对接报告类型注册表 - - 新增 test_auto_tag 自动标注测试 - - report_unknown_cluster/report_unknown_upload/report_parser_import 五表 - - 新增 ReportParserController + ReportParserAdminController - - 新增 5 entity + 5 mapper + 3 service(ReportFingerprintService/ - ReportImportService/ReportParserDispatchService) - - schema.sql 同步 5 张新表定义 - - - addIngredient/removeIngredient/addFood 方法缺少 var self = this - - 2. 前端:无菌群报告/无推荐食材时弹窗引导上传报告 - 3. 后端:generateIngredientList 未配置共餐时降级为查询 - 家庭全部成员,而非返回空列表 - - 导致 ArrayIndexOutOfBoundsException: Index 7 out of bounds for length 7 - - 改为指向正确的饮食模块首页 /pages/diet/index - - - 修复 Unknown column 'is_living_together'(family_members, 迁移174已生效但DBI嵌套错误未触发) - - 修复嵌套 try/catch 结构(迁移178/180 误嵌在迁移179 catch 内) - - 迁移号校正:178→180, 180→181(diet 模块占用了原 178-181 编号) - - health_reports 新增 proxy_uploader_id / proxy_upload_note / ai_analysis - - health_report_drafts 新增 remark - 生产 DB 已直连 ALTER(无需等下次重启) - - - - - product-detail.vue: 详情页按会员身份展示 - 非会员显示普通价+加入会员享会员价链接,会员显示会员价+原价划线;去掉底部栏价格 - - 修复远端合并引入的编译错误: HealthReportController缺import、HealthReportService的reportMapper笔误、HealthReportDraft实体补remark字段 - - revert(frontend): 撤销 tabbar 4Tab 重构, 恢复 5维TabBar(行心身智富) - revert(frontend): 撤销分包重命名 -pkg, 恢复为 health/growth/profile - revert(frontend): 撤销 tabbar 入口页移至 pages/tabs/ 的改动 - 改为 v-if="!fanOpen"(默认常驻),且背景由透明边框改为实心半透明 - rgba(249,115,22,0.25)。该层绝对定位 72rpx 与 .fab-avatar 完全重合、 - DOM 顺序在后且未设 pointer-events: none,常驻覆盖在 FAB 按钮上层, - 拦截所有点击,导致家庭成员扇形无法展开。 - - .fab-pulse 增加 pointer-events: none,点击穿透到按钮本体 - - FAB 位置从 bottom: 33.33% 上移至 bottom: 45%(黄金分割位下移后过于靠下) - Reviewed-by: Sisyphus - - (