phase-2b-tasks.md 9.9 KB

阶段2b:工人+客商+农资功能 — 详细任务清单

工期:2周(10天) 目标:四端核心流程跑通——工人能报名、客商能找货、农资能展示 功能点:13个 前置:阶段2a完成(果农数据已有、招工数据已有、拨号日志已有) 流程: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 阶段2b需求规格
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 客商端需求细化(货源筛选、详情、联系授权、拨号) 0.5天
M1.3 农资端+短信配置需求 0.25天
M1.4 DELIVERY-MANIFEST.md 0.25天

M1 关键需求点

报名+短信通知流程

工人点击报名 → INSERT worker_apply → 检查 sms_daily_limit
→ 无记录/未达限 → 发送短信(阿里云API)→ INSERT/UPDATE sms_daily_limit
→ 更新 worker_profile.status = 0(忙碌)
→ 短信内容:【洒渔用工】[工人姓名]([工种])对您的招工感兴趣,联系电话:[电话]

联系授权流程

客商浏览货源详情 → 勾选具体批次(如"红富士 20000斤")
→ 后端检查是否已有有效解锁记录
→ 无记录/已过期 → INSERT phone_unlock_record(expire_time=now+7天)
→ 返回果农电话
→ 客商一键拨号 → INSERT call_log

信用机制

  • complaint_count=1 → 警告
  • complaint_count=2 → 限制报名24小时
  • complaint_count=3 → 状态锁定,需管理员解除
  • 定时任务每天凌晨检查,3天无操作自动恢复空闲

M1 验收标准

  • spec.md 覆盖13个功能点
  • use-cases.md 用例数 ≥ 25
  • 报名+短信流程图完整
  • 联系授权流程图完整
  • 信用机制状态机图完整

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 工人端架构(推荐算法、报名、状态机、信用) 0.5天
M2.2 客商端架构(筛选、授权、拨号) 0.5天
M2.3 接口定义(新增约15个接口) 0.25天
M2.4 DELIVERY-MANIFEST.md 0.25天

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

工人模块

接口 方法 说明
/api/wx/worker/profile GET/PUT 工人档案
/api/wx/worker/recommend GET 推荐招工列表(工种匹配+距离排序)
/api/wx/worker/apply POST 报名(触发短信)
/api/wx/worker/status PUT 切换状态(空闲/工作中)
/api/wx/worker/applies GET 报名历史

客商模块

接口 方法 说明
/api/wx/buyer/profile GET/PUT 客商档案
/api/wx/buyer/goods GET 货源列表(品种/价格/距离筛选)
/api/wx/buyer/goods/{id} GET 货源详情(含视频/照片)
/api/wx/buyer/unlock POST 解锁果农电话(7天有效)
/api/wx/buyer/preferences GET/PUT 收购偏好

农资模块

接口 方法 说明
/api/wx/supplier/shop GET/PUT 店铺信息

后台模块

接口 方法 说明
/api/admin/sms/config GET/PUT 短信配置(签名+模板)

M2 验收标准

  • api-definition.md 新增接口 ≥ 15
  • 报名+短信时序图完整
  • 联系授权时序图完整
  • 信用机制状态机图完整

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

模块拆分与并行策略

并行组1(数据层):
├── C-WorkerApply: 报名表 CRUD
├── C-PhoneUnlock: 联系授权记录
└── C-SmsDailyLimit: 短信限流

并行组2(业务层,并行组1完成后):
├── C-WorkerRecommend: 工人找活推荐
├── C-WorkerApplyBiz: 报名+短信通知
├── C-WorkerStatus: 状态管理+信用机制
└── C-BuyerGoods: 客商找货+联系授权

并行组3(简单模块,可与其他组并行):
├── C-SupplierShop: 农资店铺
└── C-SmsConfig: 短信配置

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

任务详细分解

C-WorkerRecommend: 工人找活(1天)

任务 文件 说明
C-WR.1 WorkerRecommendController.java 推荐招工列表 API
C-WR.2 WorkerRecommendService.java 工种匹配+距离排序
C-WR.3 RecruitInfoMapper.xml 招工查询(工种+经纬度)

C-WorkerApplyBiz: 报名+短信(1.5天)

任务 文件 说明
C-WA.1 WorkerApplyController.java 报名 API
C-WA.2 WorkerApplyService.java 报名业务逻辑
C-WA.3 SmsService.java 短信发送(阿里云API)
C-WA.4 SmsDailyLimitService.java 短信限流逻辑
C-WA.5 WorkerApplyMapper.xml 报名表映射
C-WA.6 SmsDailyLimitMapper.xml 限流表映射

C-WorkerStatus: 状态+信用(1天)

任务 文件 说明
C-WS.1 WorkerStatusController.java 状态切换 API
C-WS.2 WorkerStatusService.java 状态业务逻辑
C-WS.3 CreditService.java 信用机制(投诉计数+处罚)
C-WS.4 AutoRecoverTask.java 3天自动恢复定时任务
C-WS.5 WorkerProfileMapper.xml 工人表映射更新

C-BuyerGoods: 客商找货+授权(1.5天)

任务 文件 说明
C-BG.1 BuyerGoodsController.java 货源列表+详情 API
C-BG.2 BuyerGoodsService.java 货源筛选逻辑(品种/价格/距离)
C-BG.3 PhoneUnlockController.java 解锁电话 API
C-BG.4 PhoneUnlockService.java 授权逻辑(7天有效期)
C-BG.5 PhoneUnlockMapper.xml 授权记录映射
C-BG.6 GrowerProfileMapper.xml 果农查询(含视频/照片)

C-SupplierShop: 农资店铺(0.5天)

任务 文件 说明
C-SS.1 SupplierShopController.java 店铺信息 API
C-SS.2 SupplierShopService.java 店铺 CRUD
C-SS.3 SupplierShopMapper.xml 店铺表映射

C-SmsConfig: 短信配置(0.5天)

任务 文件 说明
C-SC.1 SmsConfigController.java 短信配置 API
C-SC.2 SmsConfigService.java 签名+模板管理

编译自检

cd com.fenzhitech.crrc.service-common && ./gradlew compileJava
cd com.fenzhitech.crrc.service-trade && ./gradlew compileJava
cd com.fenzhitech.crrc.service-goods && ./gradlew compileJava
cd com.fenzhitech.crrc.service-message && ./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 验收标准

  • 编译自检零错误
  • 报名→短信通知端到端可通
  • 联系授权→拨号端到端可通
  • 状态切换+自动恢复可通
  • 短信限流逻辑正确
  • MyBatis XML 无 ${} 注入

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

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

核心接口(必须测试)

  • /api/wx/worker/recommend — 推荐招工
  • /api/wx/worker/apply — 报名
  • /api/wx/worker/status — 状态切换
  • /api/wx/buyer/goods — 货源列表
  • /api/wx/buyer/unlock — 解锁电话
  • /api/wx/call/phone — 拨号
  • /api/wx/supplier/shop — 店铺信息

重点场景

场景 说明
报名 短信发送成功、防骚扰限流、跨天重置
状态 手动切换、3天自动恢复、报名联动忙碌
信用 投诉1/2/3次递进处罚、管理员解除
联系授权 解锁成功、7天过期、重新勾选
边界 多身份用户数据隔离、并发报名

任务分解

任务 内容 耗时
M4.1 编写测试用例(≥25个) 0.5天
M4.2 编写自动化测试代码 1天
M4.3 手动验证(四端流程联调) 0.5天
M4.4 ./gradlew test 全部通过 0.5天
M4.5 Bug 修复 0.5天

M4 验收标准

  • 测试用例数 ≥ 25
  • 四端核心流程测试通过
  • ./gradlew test 全部通过
  • 短信限流测试正确(跨天重置)

阶段2b风险与缓解

风险 影响 概率 缓解措施
短信发送延迟/失败 果农收不到通知 异步发送,失败重试3次;记录发送状态
短信成本超预算 运营成本增加 sms_daily_limit限流;月度500元告警
3天自动恢复误判 工人状态不准确 定时任务每天凌晨执行,日志记录恢复操作
联系授权并发问题 重复解锁记录 数据库唯一索引(buyer+grower+batch)
四端联调复杂 集成问题多 预留充足联调时间,逐步集成