phase-2a-tasks.md 11 KB

阶段2a:果农核心功能 — 详细任务清单

工期:3周(15天) 目标:果农能完善名片、发布招工、找到工人和客商 功能点:14个 前置:阶段一完成(用户体系+数据导入+审核框架+行情+登录+首页) 流程:M1(需求) → M2(架构) → M3(编码) → M4(测试)


里程碑总览

Week 1                Week 2                Week 3
┌─────────────────┐  ┌─────────────────┐  ┌─────────────────┐
│ M1 需求分析      │  │ M3 编码(续)      │  │ M3 编译自检      │
│ M2 架构设计      │  │ 视频上传+招工    │  │ M4 测试验收      │
│ M3 编码(名片基础) │  │ 找工人+找客商    │  │                 │
└─────────────────┘  └─────────────────┘  └─────────────────┘
  5天                    5天                    5天

M1 Team A — 需求分析(2-3天)

交付产物

序号 文件路径 说明
1 deliveries/team-a-requirement/spec.md 阶段2a需求规格
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 果农名片需求细化(视频上传5环节、照片上传、审核状态流转) 1天
M1.2 招工发布+管理需求细化(免审核+关键词标记+下架/编辑) 0.5天
M1.3 找工人/客商需求细化(距离计算、拨号日志) 0.5天
M1.4 后台审核需求细化(名片审核+待复核列表+SLA) 0.5天
M1.5 编写 DELIVERY-MANIFEST.md 0.5天

M1 关键需求点

视频上传5环节

  1. 前端清除 EXIF → 前端预校验(格式/大小)
  2. 调用后端获取 OSS 上传凭证
  3. 前端直传 OSS
  4. 上传完成回调后端
  5. 后端记录 URL + 异步压缩 720p

关键词标记机制

  • 敏感词库:色情/赌博/政治等明确违规词
  • 发布时自动检测,keyword_flag=1 进入待复核
  • 不阻塞发布,审核员定时处理

距离计算

  • 果园地址 → 地理编码 → 经纬度存储
  • 查询时 Haversine 公式计算距离
  • 按距离排序

M1 验收标准

  • spec.md 覆盖14个功能点
  • use-cases.md 用例数 ≥ 30
  • 视频上传5环节流程图完整
  • DELIVERY-MANIFEST.md 关键信息完整

M2 Team B — 架构设计(2-3天)

交付产物

序号 文件路径 说明
1 deliveries/team-b-architecture/design.md 架构设计
2 deliveries/team-b-architecture/api-definition.md 接口定义
3 deliveries/team-b-architecture/tech-stack.md 技术选型(新增OSS相关)
4 deliveries/team-b-architecture/DELIVERY-MANIFEST.md 交付清单

任务分解

任务 内容 耗时
M2.1 果农名片模块架构(信息维护+视频/照片上传+审核状态) 0.5天
M2.2 视频上传技术方案(OSS凭证→直传→回调→压缩) 0.5天
M2.3 招工模块架构(发布+管理+关键词检测) 0.5天
M2.4 找工人/客商模块架构(列表+距离+拨号) 0.5天
M2.5 接口定义(新增约15个接口) 0.5天
M2.6 DELIVERY-MANIFEST.md 0.5天

M2 接口清单(阶段2a新增)

果农名片模块

接口 方法 说明
/api/wx/grower/profile GET 获取果农档案
/api/wx/grower/profile PUT 更新果农档案
/api/wx/grower/upload-credential POST 申请 OSS 上传凭证
/api/wx/grower/upload-callback POST OSS 上传完成回调

招工模块

接口 方法 说明
/api/wx/grower/recruit POST 发布招工
/api/wx/grower/recruit GET 我的招工列表
/api/wx/grower/recruit/{id} PUT 编辑招工
/api/wx/grower/recruit/{id} DELETE 下架招工

找工人/客商

接口 方法 说明
/api/wx/grower/workers GET 工人列表(工种筛选+距离排序)
/api/wx/grower/buyers GET 客商列表
/api/wx/call/phone POST 拨号接口(记录call_log)

后台审核

接口 方法 说明
/api/admin/audit/grower-profile GET 名片审核列表
/api/admin/audit/grower-profile/{id} PUT 名片审核操作
/api/admin/audit/recruit-review GET 待复核招工列表
/api/admin/audit/recruit-review/{id} PUT 待复核操作

M2 验收标准

  • api-definition.md 新增接口 ≥ 15
  • 视频上传流程架构图完整
  • 距离计算方案明确(Haversine)
  • DELIVERY-MANIFEST.md 关键信息完整

M3 Team C — 编码实现(8-10天)

模块拆分与并行策略

并行组1(基础数据层):
├── C-GrowerProfile: 果农档案 CRUD
├── C-RecruitInfo: 招工信息 CRUD
└── C-CallLog: 拨号日志

并行组2(业务逻辑层,依赖并行组1):
├── C-VideoUpload: 视频上传(OSS凭证/直传/回调/压缩)
├── C-PhotoUpload: 照片上传
└── C-KeywordCheck: 敏感词检测

并行组3(展示层):
├── C-WorkerList: 找工人列表
├── C-BuyerList: 找客商列表
└── C-Audit2a: 名片审核+待复核

串行:
└── C-Integration: 集成测试+编译自检

任务详细分解

C-GrowerProfile: 果农档案(1天)

任务 文件 说明
C-GP.1 GrowerProfileController.java 果农档案 API
C-GP.2 GrowerProfileService.java 档案业务逻辑
C-GP.3 GrowerProfileMapper.xml MyBatis 映射

C-VideoUpload: 视频上传(3天,复杂度最高)

任务 文件 说明
C-VU.1 OssCredentialController.java OSS 凭证申请 API
C-VU.2 OssCredentialService.java STS Token 生成
C-VU.3 UploadCallbackController.java 上传回调 API
C-VU.4 VideoCompressService.java 异步视频压缩(FFmpeg 720p/2Mbps)
C-VU.5 VideoCompressTask.java 压缩定时任务+重试机制
C-VU.6 FileValidateService.java 文件校验(格式/大小/EXIF)

C-PhotoUpload: 照片上传(0.5天)

任务 文件 说明
C-PU.1 PhotoUploadService.java 照片上传逻辑(≤9张/张≤5MB)

C-RecruitInfo: 招工信息(1.5天)

任务 文件 说明
C-RI.1 RecruitController.java 招工 CRUD API
C-RI.2 RecruitService.java 招工业务逻辑
C-RI.3 RecruitMapper.xml MyBatis 映射
C-RI.4 KeywordCheckService.java 敏感词检测(正则匹配)
C-RI.5 KeywordDictionary.java 敏感词库(硬编码初始词库)

C-CallLog: 拨号日志(0.5天)

任务 文件 说明
C-CL.1 CallLogService.java 拨号日志记录
C-CL.2 CallPhoneController.java 拨号 API(/api/wx/call/phone)
C-CL.3 CallLogMapper.xml MyBatis 映射

C-WorkerList: 找工人(1天)

任务 文件 说明
C-WL.1 WorkerSearchController.java 工人列表 API
C-WL.2 WorkerSearchService.java 工种筛选+距离排序
C-WL.3 DistanceUtil.java Haversine 距离计算工具
C-WL.4 WorkerProfileMapper.xml 工人表映射(含经纬度查询)

C-BuyerList: 找客商(0.5天)

任务 文件 说明
C-BL.1 BuyerSearchController.java 客商列表 API
C-BL.2 BuyerSearchService.java 客商查询逻辑

C-Audit2a: 后台审核(1天)

任务 文件 说明
C-A2.1 GrowerAuditController.java 名片审核 API
C-A2.2 GrowerAuditService.java 名片审核逻辑
C-A2.3 RecruitReviewController.java 待复核 API
C-A2.4 RecruitReviewService.java 待复核逻辑

编译自检

cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
cd com.fenzhitech.crrc.service-file && ./gradlew compileJava
cd com.fenzhitech.crrc.service-trade && ./gradlew compileJava
cd com.fenzhitech.crrc.service-goods && ./gradlew compileJava
cd com.fenzhitech.crrc.service-audit && ./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 — 测试验收(3-4天)

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

核心接口(必须测试)

  • /api/wx/grower/profile — 果农档案
  • /api/wx/grower/upload-credential — OSS 凭证
  • /api/wx/grower/upload-callback — 上传回调
  • /api/wx/grower/recruit — 招工发布
  • /api/wx/grower/workers — 工人列表
  • /api/wx/call/phone — 拨号接口
  • /api/admin/audit/grower-profile/{id} — 名片审核

重点场景

场景 说明
视频上传 50MB边界、格式异常、网络中断、EXIF清除验证
照片上传 9张边界、大小限制、格式校验
招工发布 敏感词标记、免审核发布、下架/编辑
找工人 工种筛选、距离排序准确性、拨号日志
审核 名片通过/驳回、待复核处理、SLA提醒

任务分解

任务 内容 耗时
M4.1 编写测试用例(≥30个) 1天
M4.2 编写自动化测试代码 1.5天
M4.3 手动验证(视频上传专项) 0.5天
M4.4 ./gradlew test 全部通过 0.5天
M4.5 Bug 修复 1天

M4 验收标准

  • 测试用例数 ≥ 30
  • 视频上传端到端测试通过
  • ./gradlew test 全部通过
  • Bug 清单记录完整

阶段2a风险与缓解

风险 影响 概率 缓解措施
视频上传链路复杂 延期3-5天 拆分5步逐步验证;压缩失败有重试机制
OSS回调不可靠 视频URL未记录 后端定时扫描OSS Bucket补录
EXIF清除不彻底 位置信息泄露 前端清除+后端二次检查双保险
敏感词库不完善 误杀或漏杀 初始词库只含明确违规词;通过待复核列表持续优化
距离计算精度 排序不准确 使用成熟Haversine公式,经纬度精确到小数点后7位