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

文件历史

撰写