Skip to content

Story 1.3: 完善社区树洞核心功能 ​

字数
2524 字
阅读时间
11 分钟

Status ​

Draft

Story ​

As a 用户, I want 在安全的社区环境中分享我的想法和获得支持, so that 我能够获得同伴支持并减少孤独感。

Acceptance Criteria ​

  1. AC1: 支持匿名发帖,包含文字、图片、标签选择
  2. AC2: 实现抱抱、评论等基础互动功能
  3. AC3: 集成风险识别算法,自动标记高风险内容
  4. AC4: 支持内容举报和审核机制
  5. AC5: 实现个性化内容推荐和关注功能

Tasks / Subtasks ​

  • [ ] Task 1: 实现匿名发帖功能 (AC: 1)

    • [ ] 开发发帖编辑器,支持富文本编辑
    • [ ] 实现图片上传和管理功能
    • [ ] 添加标签选择和自定义标签功能
    • [ ] 实现匿名/化名切换机制
    • [ ] 开发草稿保存和续写功能
  • [ ] Task 2: 构建风险识别系统 (AC: 3)

    • [ ] 集成AI内容风险分析算法
    • [ ] 实现情绪温度条和风险评估
    • [ ] 开发风险等级分类(R1-R4)
    • [ ] 添加实时风险扫描和预警
    • [ ] 实现高风险内容的自动干预
  • [ ] Task 3: 开发互动功能模块 (AC: 2)

    • [ ] 实现抱抱功能和计数统计
    • [ ] 开发评论系统,支持嵌套回复
    • [ ] 添加收藏功能和收藏管理
    • [ ] 实现点赞和分享功能
    • [ ] 开发互动通知系统
  • [ ] Task 4: 建立内容审核机制 (AC: 4)

    • [ ] 实现用户举报功能
    • [ ] 开发审核工作台和流程
    • [ ] 添加内容状态管理(草稿/审核中/已发布/已归档)
    • [ ] 实现违规内容处理机制
    • [ ] 建立审核记录和审计日志
  • [ ] Task 5: 实现个性化推荐系统 (AC: 5)

    • [ ] 开发用户兴趣分析算法
    • [ ] 实现基于标签的内容推荐
    • [ ] 添加关注功能和关注管理
    • [ ] 开发热门话题和趋势展示
    • [ ] 实现个性化内容流
  • [ ] Task 6: 完善数据模型和服务层 (AC: 1, 2, 3, 4, 5)

    • [ ] 设计和实现forum_posts数据库集合
    • [ ] 创建forum_reactions互动数据集合
    • [ ] 扩展forum.js服务,支持完整社区功能
    • [ ] 实现数据归一化和缓存机制
    • [ ] 完善Mock数据和测试场景
  • [ ] Task 7: 实现treeholeModeration云函数 (AC: 3, 4)

    • [ ] 实现主要内容审核逻辑
    • [ ] 集成风险识别算法
    • [ ] 添加举报处理和状态管理
    • [ ] 实现审核工作台API
    • [ ] 添加错误处理和日志记录
  • [ ] Task 8: 集成现有功能验证 (Integration Verification)

    • [ ] 验证与treeholeModeration云函数的协作
    • [ ] 测试与今天页社区动态卡的集成
    • [ ] 确认论坛数据正确写入forum_posts数据库集合
    • [ ] 测试高并发情况下的系统稳定性
    • [ ] 验证风险识别的准确性和及时性
  • [ ] Task 9: 编写单元测试和集成测试

    • [ ] 为发帖功能编写测试用例
    • [ ] 为风险识别算法编写测试
    • [ ] 编写互动功能测试
    • [ ] 创建审核机制测试
    • [ ] 添加性能和负载测试

Dev Notes ​

Previous Story Insights ​

基于前两个故事的情绪打卡和AI建议系统,本故事需要将社区功能与情绪状态深度集成,实现完整的心理健康支持闭环。

Data Models ​

forum_posts集合设计 [Source: docs/页面文档/页面-树洞.md#数据需求]

  • 主要字段:
    • post_id: string - 帖子唯一标识
    • user_id: string - 用户标识(匿名化处理)
    • content: string - 帖子内容
    • tags: array - 标签数组
    • mood_thermometer: number - 情绪温度(1-10)
    • risk_level: string - 风险等级(R1-R4)
    • anonymity_mode: string - 匿名模式(anon/pseudonym)
    • status: string - 帖子状态

forum_reactions互动集合 [Source: docs/页面文档/页面-树洞.md#数据需求]

  • 主要字段:
    • reaction_id: string - 互动唯一标识
    • post_id: string - 关联帖子ID
    • user_id: string - 用户标识
    • reaction_type: string - 互动类型(hug/comment/favorite/share)
    • content: string - 互动内容(评论时使用)

risk_signals风险信号集合 [Source: docs/功能文档/功能-树洞发帖与草稿自检.md#数据需求]

  • 主要字段:
    • signal_id: string - 信号唯一标识
    • target_type: string - 目标类型(post/comment)
    • target_id: string - 目标ID
    • risk_score: number - 风险评分
    • risk_level: string - 风险等级
    • processed: boolean - 是否已处理

API Specifications ​

服务层接口扩展 [Source: miniprogram/services/forum.js]

  • fetchFeed(params) - 获取帖子列表,支持筛选和排序
  • publishPost(params) - 发布帖子,包含风险自检
  • getPostDetail(postId) - 获取帖子详情
  • getPostComments(params) - 获取评论列表
  • submitComment(params) - 提交评论
  • toggleInteraction(params) - 互动操作(抱抱、收藏)
  • moderateContent(params) - 内容审核
  • fetchDrafts(params) - 获取草稿列表

云函数接口 [Source: cloudfunctions/treeholeModeration/index.js]

  • action: 'assessRisk' - 评估内容风险
  • action: 'moderateContent' - 内容审核
  • action: 'processReport' - 处理举报
  • action: 'getRecommendations' - 获取推荐内容
  • action: 'updatePostStatus' - 更新帖子状态

Component Specifications ​

发帖编辑器组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]

  • 富文本编辑器支持
  • 图片上传和预览
  • 情绪温度条选择器
  • 标签输入和管理
  • 风险自检提示

帖子卡片组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]

  • 帖子摘要展示
  • 情绪状态可视化
  • 互动统计显示
  • 风险等级标识
  • 快速操作按钮

互动面板组件 [Source: docs/页面文档/页面-树洞.md#核心业务组件]

  • 抱抱功能和计数
  • 评论输入和显示
  • 收藏和分享按钮
  • 举报功能入口

File Locations ​

新增/修改文件位置 [Source: CLAUDE.md#模块结构图]

  • 前端页面:miniprogram/pages/treehole/index.js - 树洞Tab主逻辑
  • 分包页面:miniprogram/packages/community/ - 社区功能分包
  • 服务层:miniprogram/services/forum.js - 社区服务(已存在,需大幅扩展)
  • 云函数:cloudfunctions/treeholeModeration/index.js - 树洞审核(需要完整实现)
  • 组件:miniprogram/components/post-editor/, miniprogram/components/post-card/ - 社区组件(新增)
  • 数据库:forum_posts, forum_reactions, risk_signals 集合(新增)

Testing Requirements ​

测试策略 [Source: CLAUDE.md#测试策略]

  • 风险识别算法测试:各种风险场景的识别准确性
  • 发帖功能测试:包括匿名机制和内容安全
  • 互动功能测试:抱抱、评论、收藏等功能
  • 审核机制测试:举报处理和内容状态管理
  • 性能测试:高并发情况下的系统稳定性

Technical Constraints ​

安全和隐私要求 [Source: docs/prd.md#技术约束和集成要求]

  • 所有用户输入必须验证和过滤
  • 匿名机制需要确保用户身份安全
  • 风险识别需要及时准确,避免误判
  • 内容审核需要遵循相关法规要求

性能要求 [Source: docs/prd.md#非功能需求]

  • 系统响应时间必须在2秒内完成基础操作
  • 支持至少1000并发用户
  • 数据库查询响应时间小于500ms
  • 风险识别需要在发帖时实时完成

内容安全要求

  • 集成微信内容安全接口
  • 建立敏感词过滤机制
  • 实现人工审核工作流
  • 遵循社区规范和法律法规

Integration Strategy ​

AI风险识别集成 [Source: docs/功能文档/功能-树洞风险提示与温和守护.md]

  • 集成Dify工作流进行风险分析
  • 实现多级风险评估和响应机制
  • 与SOS系统联动,处理高风险事件
  • 建立风险信号记录和追踪

情绪数据关联

  • 与情绪打卡数据关联,提供个性化支持
  • 基于情绪状态推荐相关内容
  • 支持从情绪状态快速发帖求助
  • 实现情绪趋势分析和预警

Testing ​

Testing Standards ​

测试文件位置 [Source: CLAUDE.md#测试策略]

  • 单元测试:miniprogram/services/__tests__/forum.test.js
  • 云函数测试:cloudfunctions/treeholeModeration/__tests__/index.test.js
  • 组件测试:miniprogram/components/__tests__/post-*.test.js
  • 集成测试:__tests__/integration/treehole-workflow.test.js
  • 风险识别测试:__tests__/integration/risk-detection.test.js

测试框架和模式

  • 使用Jest进行单元测试
  • 模拟AI风险识别API进行隔离测试
  • 使用Mock数据覆盖各种场景
  • 性能测试模拟高并发场景

具体测试要求

  • 发帖功能的完整流程测试
  • 风险识别算法的准确性测试
  • 各种互动功能的边界条件测试
  • 审核机制的流程完整性测试
  • 匿名机制的安全性测试

Change Log ​

DateVersionDescriptionAuthor
2025-10-181.0初始版本创建Winston (Architect)

Dev Agent Record ​

Agent Model Used ​

(待开发时填写)

Debug Log References ​

(待开发时填写)

Completion Notes List ​

(待开发时填写)

File List ​

(待开发时填写)

QA Results ​

(待QA测试时填写)

贡献者 ​

The avatar of contributor named as Cai Hongyu Cai Hongyu

文件历史 ​

用 ♥ 撰写