phase-3-tasks.md 11 KB

阶段三:运营功能与统计 — 详细任务清单

工期:2周(10天) 目标:政府管理部门能监控运营、统计数据、管理平台 功能点:14个 前置:阶段2b完成(四端核心流程跑通,数据已积累) 流程:M1(需求) → M2(架构) → M3(编码) → M4(测试)


里程碑总览

Week 1                    Week 2
┌─────────────────────┐  ┌─────────────────────┐
│ M1 需求分析          │  │ M3 编码(续)+自检     │
│ M2 架构设计          │  │ M4 测试验收          │
│ M3 编码(大屏+报表)   │  │                     │
└─────────────────────┘  └─────────────────────┘
  5天                        5天

M1 Team A — 需求分析(1.5天)

交付产物

序号 文件路径 说明
1 deliveries/team-a-requirement/spec.md 阶段三需求规格
2 deliveries/team-a-requirement/use-cases.md 用例文档
3 deliveries/team-a-requirement/constraints.md 约束条件
4 deliveries/team-a-requirement/DELIVERY-MANIFEST.md 交付清单

任务分解

任务 内容 耗时
M1.1 数据大屏需求细化(核心指标+扩展指标+刷新机制) 0.5天
M1.2 报表导出需求细化(3类报表+脱敏+二次确认) 0.5天
M1.3 后台管理+小程序P1功能需求 0.25天
M1.4 DELIVERY-MANIFEST.md 0.25天

M1 关键需求点

数据大屏指标: | 指标 | 数据来源 | 优先级 | 刷新频率 | |------|---------|--------|---------| | 注册用户总数 | sys_user | P0 | 5分钟 | | 今日活跃 | sys_user.last_active_time | P0 | 5分钟 | | 供需比 | recruit_info / worker_profile | P0 | 5分钟 | | 电话拨打次数 | call_log | P0 | 5分钟 | | 短信发送条数 | sms_daily_limit | P0 | 5分钟 | | 有效撮合率 | worker_apply | P0 | 5分钟 | | PV/UV | 新增统计表 | P1 | 5分钟 | | 名片浏览量 | 新增统计表 | P1 | 5分钟 | | 果农分布热力图 | grower_profile | P1 | 每日 | | 客商来源TOP10 | buyer_profile | P1 | 每日 |

报表导出

  • 用户列表导出(手机号脱敏)
  • 撮合记录导出(拨号/短信/报名)
  • 操作日志导出
  • >1000行异步导出+邮件通知
  • 导出需二次确认+操作日志记录

M1 验收标准

  • spec.md 覆盖14个功能点
  • use-cases.md 用例数 ≥ 20
  • 数据大屏指标定义完整
  • 报表导出流程图完整

M2 Team B — 架构设计(1.5天)

交付产物

序号 文件路径 说明
1 deliveries/team-b-architecture/design.md 架构设计
2 deliveries/team-b-architecture/api-definition.md 接口定义
3 deliveries/team-b-architecture/DELIVERY-MANIFEST.md 交付清单

任务分解

任务 内容 耗时
M2.1 数据大屏架构(定时任务→Redis缓存→前端展示) 0.5天
M2.2 报表导出架构(查询→脱敏→Excel生成→下载) 0.5天
M2.3 接口定义(新增约15个接口) 0.25天
M2.4 DELIVERY-MANIFEST.md 0.25天

M2 接口清单(阶段三新增)

数据大屏

接口 方法 说明
/api/admin/dashboard/overview GET 宏观概览(用户总数/活跃/供需比)
/api/admin/dashboard/match GET 撮合指标(拨号/短信/撮合率)
/api/admin/dashboard/traffic GET 流量指标(PV/UV/名片浏览)
/api/admin/dashboard/map GET 产业地图(果农分布/客商来源)

报表导出

接口 方法 说明
/api/admin/export/users POST 导出用户列表
/api/admin/export/match-records POST 导出撮合记录
/api/admin/export/operation-logs POST 导出操作日志
/api/admin/export/status/{taskId} GET 查询导出状态(异步)
/api/admin/export/download/{taskId} GET 下载导出文件

后台管理

接口 方法 说明
/api/admin/recruit/patrol GET 招工巡查列表
/api/admin/recruit/{id}/force-down PUT 强制下架
/api/admin/users/{id} PUT 用户信息修正
/api/admin/complaint/list GET 举报列表
/api/admin/complaint/{id} PUT 处理举报

小程序P1

接口 方法 说明
/api/wx/supplier/categories GET 农资分类列表
/api/wx/supplier/shops GET 店铺列表(分类筛选)
/api/wx/worker/applies GET 报名历史
/api/wx/buyer/preferences GET/PUT 收购偏好

M2 验收标准

  • api-definition.md 新增接口 ≥ 15
  • 数据大屏技术方案(定时任务+Redis)明确
  • 报表导出方案(异步+脱敏)明确

M3 Team C — 编码实现(5-6天)

模块拆分与并行策略

并行组1(统计层):
├── C-Dashboard: 数据大屏统计
└── C-Export: 报表导出

并行组2(管理层,可与组1并行):
├── C-RecruitPatrol: 招工巡查
├── C-UserFix: 用户信息修正
└── C-Complaint: 举报处理

并行组3(小程序P1,可与其他组并行):
├── C-SupplierBrowse: 买农资浏览
├── C-WorkerHistory: 工作记录
└── C-BuyerPreference: 收购偏好

串行:
└── C-Integration: 集成+自检

任务详细分解

C-Dashboard: 数据大屏(2天)

任务 文件 说明
C-DB.1 DashboardController.java 大屏数据 API
C-DB.2 DashboardService.java 统计业务逻辑
C-DB.3 DashboardRefreshTask.java 定时任务(每5分钟刷新→Redis)
C-DB.4 DashboardCacheService.java Redis 缓存读写
C-DB.5 TrafficStatsService.java PV/UV 统计(需新增统计表)
C-DB.6 MapStatsService.java 产业地图统计

新增表(如需):

  • page_view_log(PV日志):page, user_id, view_time
  • profile_view_log(名片浏览):profile_id, viewer_id, view_time

C-Export: 报表导出(1.5天)

任务 文件 说明
C-EX.1 ExportController.java 导出 API
C-EX.2 ExportService.java 导出业务逻辑
C-EX.3 ExcelGenerateService.java Excel 生成(Apache POI)
C-EX.4 ExportTaskService.java 异步导出(>1000行)
C-EX.5 DataMaskingService.java 导出数据脱敏

C-RecruitPatrol: 招工巡查(0.5天)

任务 文件 说明
C-RP.1 RecruitPatrolController.java 巡查列表+强制下架 API
C-RP.2 RecruitPatrolService.java 巡查业务逻辑

C-UserFix: 用户信息修正(0.5天)

任务 文件 说明
C-UF.1 UserFixController.java 用户信息修正 API
C-UF.2 UserFixService.java 修正逻辑(含操作日志)

C-Complaint: 举报处理(0.5天)

任务 文件 说明
C-CM.1 ComplaintController.java 举报列表+处理 API
C-CM.2 ComplaintService.java 举报处理逻辑
C-CM.3 ComplaintMapper.xml 投诉表映射

C-SupplierBrowse: 买农资(0.5天)

任务 文件 说明
C-SB.1 SupplierBrowseController.java 分类筛选+店铺列表 API
C-SB.2 SupplierBrowseService.java 浏览逻辑

C-WorkerHistory: 工作记录(0.5天)

任务 文件 说明
C-WH.1 WorkerHistoryController.java 报名历史 API
C-WH.2 WorkerHistoryService.java 历史查询逻辑

C-BuyerPreference: 收购偏好(0.5天)

任务 文件 说明
C-BP.1 BuyerPreferenceController.java 收购偏好 API
C-BP.2 BuyerPreferenceService.java 偏好 CRUD

编译自检

cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
cd com.fenzhitech.crrc.service-system && ./gradlew compileJava
cd com.fenzhitech.crrc.service-trade && ./gradlew compileJava
cd com.fenzhitech.crrc.service-goods && ./gradlew compileJava
cd com.fenzhitech.crrc.service-user && ./gradlew compileJava
cd com.fenzhitech.crrc.gateway-mobile && ./gradlew compileJava
cd com.fenzhitech.crrc.gateway-management && ./gradlew compileJava

M3 验收标准

  • 编译自检零错误
  • 数据大屏5分钟自动刷新
  • 报表导出端到端可通
  • 招工巡查+强制下架可通
  • MyBatis XML 无 ${} 注入

M4 Team D — 测试验收(2-3天)

测试重点(业务领导指定)

核心接口(必须测试)

  • /api/admin/dashboard/overview — 宏观概览
  • /api/admin/dashboard/match — 撮合指标
  • /api/admin/export/users — 用户导出
  • /api/admin/export/match-records — 撮合记录导出
  • /api/admin/recruit/patrol — 招工巡查
  • /api/admin/recruit/{id}/force-down — 强制下架
  • /api/wx/supplier/shops — 店铺列表
  • /api/wx/worker/applies — 报名历史

重点场景

场景 说明
大屏 统计数据准确性、定时刷新、Redis缓存一致性
报表 导出数据完整性、脱敏正确性、大文件导出
巡查 强制下架生效、列表筛选
P1功能 买农资筛选、工作记录、收购偏好
回归 阶段一登录+权限+导入功能不受影响

任务分解

任务 内容 耗时
M4.1 编写测试用例(≥20个) 0.5天
M4.2 编写自动化测试代码 1天
M4.3 手动验证(大屏+报表) 0.5天
M4.4 ./gradlew test 全部通过 + 回归测试 0.5天
M4.5 Bug 修复 0.5天

M4 验收标准

  • 测试用例数 ≥ 20
  • 数据大屏统计准确
  • 报表导出脱敏正确
  • ./gradlew test 全部通过
  • 回归测试通过(阶段一二功能不受影响)

阶段三风险与缓解

风险 影响 概率 缓解措施
统计数据不准确 大屏可信度低 统计SQL与业务SQL对齐;提供数据核对入口
大文件导出超时 报表导出失败 >1000行异步导出+邮件通知下载
Redis缓存不一致 大屏数据延迟 5分钟刷新可接受;提供手动刷新按钮
回归测试遗漏 已有功能被破坏 阶段一二的核心接口全部回归

跨阶段验收总览

阶段 验收节点 核心验收项
阶段零 环境就绪 编译通过+数据库连接+外部服务配置
阶段一 能登录+看行情 管理员导入数据、用户微信登录、首页行情
阶段2a 能发招工+找工人 果农名片+招工发布+找工人/客商+拨号
阶段2b 四端流程跑通 工人报名+客商找货+联系授权+农资展示
阶段三 大屏+报表可用 数据大屏+报表导出+招工巡查+P1功能