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