# 交付清单 — Team A 需求分析师 ## 里程碑信息 - **阶段**: 阶段2a 果农核心功能 - **里程碑编号**: milestone-1(需求分析) - **提交时间**: 2026-05-30 - **负责团队**: Team A ## 交付产物 | 序号 | 文件路径 | 说明 | 覆盖度检查 | 核心内容摘要 | |------|----------|------|------------|--------------| | 1 | deliveries/team-a-requirement/spec.md | 阶段2a需求规格 | 模块数: 5/5, 功能点: 14/14 | 果农名片、招工发布、找工人、找客商、后台审核 | | 2 | deliveries/team-a-requirement/use-cases.md | 阶段2a用例文档 | 用例数: 32/32, 覆盖功能点: 14/14 | 名片7用例、招工6用例、找工人4用例、找客商3用例、审核7用例+2系统任务 | | 3 | deliveries/team-a-requirement/constraints.md | 阶段2a约束条件 | 约束类别: 8/8 | 继承阶段一+新增文件上传/内容安全/招工规则/距离计算 | | 4 | deliveries/team-a-requirement/DELIVERY-MANIFEST.md | 本交付清单 | - | 交付物清单、关键信息、问题反馈 | ## 修改文件清单 | 序号 | 文件路径 | 操作类型 | 说明 | |------|----------|----------|------| | 1 | deliveries/team-a-requirement/spec.md | 覆盖更新 | 从阶段一更新为阶段2a需求规格 | | 2 | deliveries/team-a-requirement/use-cases.md | 覆盖更新 | 从阶段一更新为阶段2a用例文档 | | 3 | deliveries/team-a-requirement/constraints.md | 覆盖更新 | 从阶段一更新为阶段2a约束条件 | | 4 | deliveries/team-a-requirement/DELIVERY-MANIFEST.md | 覆盖更新 | 本交付清单 | ## 交付说明 本次交付为阶段2a(果农核心功能)的需求分析成果,基于需求规格说明书(requirements-specification.md)和阶段2a任务清单(phase-2a-tasks.md)提取和细化。 ### 核心内容 1. **果农名片模块**(4个功能点) - 名片信息维护:品种、产量、价格、地址、经纬度 - 视频上传:3步流程(前端预处理→后端存储→异步压缩) - 照片上传:≤9张,单张≤5MB,EXIF清除 - 审核状态:待审/已通过/被驳回(驳回显示原因) 2. **招工发布与管理模块**(5个功能点) - 发布招工:免审核直接发布,表单字段完整 - 敏感关键词检测:正则匹配,keyword_flag标记,不阻塞发布 - 招工编辑:可编辑价格、人数、天数、备注 - 招工下架:逻辑删除(status=0) - 我的招工列表:历史记录查看 3. **找工人模块**(2个功能点) - 工人列表:工种筛选、距离排序(Haversine公式)、状态展示 - 一键拨号:调用拨号接口记录日志,唤起系统拨号 4. **找客商模块**(2个功能点) - 客商列表:基本信息展示 - 一键拨号:同找工人拨号流程 5. **后台审核模块**(3个功能点) - 名片审核:通过/驳回(需填原因),审核日志 - 待复核列表:敏感词标记招工处理,标记正常/强制下架 - 审核SLA提醒:24小时提醒审核员,48小时升级超级管理员 ## 给下游团队的关键信息 ### 关键决策 1. **视频上传方案**: 本地文件存储(非OSS),3步流程:前端预处理→后端存储→异步压缩 2. **招工发布规则**: 免审核直接发布,敏感词标记不阻塞 3. **距离计算**: Haversine公式实时计算,经纬度DECIMAL(10,7)精度 4. **拨号机制**: 手机号通过单独接口获取(记录日志),列表不直接返回 5. **审核SLA**: 24小时提醒,48小时升级,定时任务实现 ### 隐含约束 1. **视频仅限1个**,照片≤9张(数据库字段设计决定) 2. **招工编辑后重新触发敏感词检测**(防规避) 3. **距离计算需要果园地址→经纬度**(地理编码依赖) 4. **拨号日志是独立接口**,不在列表接口中返回手机号 5. **审核结果需通知果农**(短信或站内信) ### 特别注意 1. **视频压缩是异步操作**:上传后立即返回URL,压缩在后台进行 2. **敏感词不阻塞发布**:keyword_flag=1的招工仍然对工人可见 3. **驳回后可重新提交**:状态重置为待审,清除驳回原因 4. **EXIF清除是前端责任**:后端不做二次清除(性能考虑) ### 阶段2a新增接口清单 | 接口 | 方法 | 说明 | 状态 | |------|------|------|------| | /api/wx/grower/profile | GET | 获取果农档案 | 新增 | | /api/wx/grower/profile | PUT | 更新果农档案 | 新增 | | /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 | 拨号接口 | 新增 | | /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 | 待复核操作 | 新增 | **已有接口(阶段2a复用)**: | 接口 | 方法 | 说明 | 状态 | |------|------|------|------| | /api/wx/file/upload/image | POST | 上传图片 | 已实现 | | /api/wx/file/upload/video | POST | 上传视频 | 已实现 | | /api/wx/file/files/{category}/{filename} | GET | 访问文件 | 已实现 | | /api/wx/file/delete | DELETE | 删除文件 | 已实现 | ## 对上团队的问题 无。需求规格文档(requirements-specification.md)已完整覆盖阶段2a所有功能点。 ## 待确认事项 1. **地理编码服务**: 果园地址→经纬度转换使用哪个服务?(高德/百度/腾讯地图API) 2. **语音输入**: 小程序端语音识别使用微信原生API还是第三方服务? 3. **敏感词库**: 初始词库范围需要业务方确认(当前仅含明确违规词) 4. **审核通知**: 审核结果通知方式(短信/站内信/小程序模板消息) 5. **视频压缩**: 是否需要部署FFmpeg?还是使用Java原生压缩库?