# 阶段三:运营功能与统计 — 详细任务清单 > 工期: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 | ### 编译自检 ```bash 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功能 |