# 洒渔镇苹果产业供需对接平台 — 阶段规划说明书 > 版本:V1.1 > 编制日期:2026-05-30 > 基于:requirements-specification.md + 阶段划分研讨(6角色投票≥5/6通过) > V1.1变更:增加环境准备阶段、调整工期(基于工作量复核)、增加风险与缓解措施 --- ## 阶段总览 ``` 阶段0(0.5周) 阶段一(3-4周) 阶段2a(3周) 阶段2b(2周) 阶段三(2周) ┌──────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐ │ 环境准备 │ │ 基础设施与用户体系│ │ 果农核心功能 │ │ 工人+客商+农资 │ │ 运营功能与统计 │ │ │ │ │ │ │ │ │ │ │ │ • 项目骨架│ │ • 数据库建表 │ │ • 果农名片 │ │ • 工人找活报名 │ │ • 数据大屏 │ │ • OSS申请 │ │ • 用户体系 │ │ • 视频/照片上传 │ │ • 状态+信用 │ │ • 报表导出 │ │ • 短信申请│ │ • 后台管理框架 │ │ • 招工发布 │ │ • 客商找货 │ │ • 招工巡查 │ │ • Redis │ │ • 数据导入 │ │ • 找工人/客商 │ │ • 联系授权 │ │ • P1功能补充 │ │ • 微信账号│ │ • 审核框架 │ │ • 名片审核 │ │ • 农资店铺 │ │ • 举报处理 │ │ • Git仓库│ │ • 行情管理 │ │ • 待复核列表 │ │ • 短信配置 │ │ │ │ │ │ • 微信登录 │ │ │ │ │ │ │ │ │ │ • 小程序首页 │ │ │ │ │ │ │ │ │ │ • 安全基础设施 │ │ │ │ │ │ │ └──────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ └─────────────────┘ 验收: 验收: 验收: 验收: 验收: 环境就绪 能登录+看行情 能发招工+找工人 四端流程跑通 大屏+报表可用 ``` | 阶段 | 名称 | 工期 | 目标 | 功能点数 | |------|------|------|------|---------| | 0 | 环境准备 | 0.5周 | 开发环境就绪 | - | | 一 | 基础设施与用户体系 | 3-4周 | 平台可用 | 20 | | 2a | 果农核心功能 | 3周 | 供给上线 | 14 | | 2b | 工人+客商+农资 | 2周 | 供需对接 | 13 | | 三 | 运营功能与统计 | 2周 | 运营闭环 | 14 | | **总计** | | **10.5-11.5周** | | **61** | ### 工期调整说明(V1.1) | 阶段 | V1.0工期 | V1.1工期 | 调整原因 | |------|---------|---------|---------| | 阶段0 | 无 | 0.5周 | 新增:环境搭建不可省略 | | 阶段一 | 2-3周 | 3-4周 | 20个功能点后端需15-19人天,含环境搭建 | | 阶段2a | 2-3周 | 3周 | 视频上传5环节(OSS凭证/直传/回调/压缩/重试)复杂度高 | | 阶段2b | 2周 | 2周 | 可行,无需调整 | | 阶段三 | 1-2周 | 2周 | 数据大屏+报表导出+P1功能补充 | --- ## 阶段零:环境准备(0.5周) ### 目标 开发环境就绪,所有外部依赖到位,项目骨架可运行。 ### 任务清单 | 序号 | 任务 | 负责 | 说明 | |------|------|------|------| | 1 | Spring Boot项目初始化 | 后端 | 基于CRRC多模块模式创建项目骨架,配置Gradle | | 2 | 数据库初始化 | 后端 | MySQL建库(crrc),执行全量建表SQL | | 3 | 阿里云OSS申请 | 运维 | 创建Bucket,配置访问策略,获取AccessKey | | 4 | 阿里云短信申请 | 运维 | 申请短信签名"洒渔用工",报备短信模板 | | 5 | Redis部署 | 运维 | 安装Redis,配置持久化 | | 6 | 微信小程序账号 | 产品 | 申请小程序AppID,配置服务器域名 | | 7 | Git仓库初始化 | 全员 | 创建远程仓库,初始化main分支,配置.gitignore | | 8 | 本地开发环境 | 全员 | JDK 8、Gradle、微信开发者工具、数据库客户端 | | 9 | CI/CD基础 | 运维 | 配置编译验证脚本(./gradlew compileJava) | ### 验收标准 - [ ] 项目骨架可编译通过(./gradlew compileJava零错误) - [ ] 数据库连接正常,全量表结构创建完成 - [ ] OSS Bucket可访问,能上传/下载测试文件 - [ ] 短信SDK可调用(发送测试短信成功) - [ ] Redis连接正常 - [ ] 微信小程序开发者账号就绪 - [ ] Git仓库可push/pull --- ## 阶段一:基础设施与用户体系 ### 目标 管理员能录入数据,用户能登录并看到有价值的信息。 ### 功能清单 #### 1.1 数据库(全量建表) 一次性建好全部15张表,避免后续ALTER TABLE: | 序号 | 表名 | 说明 | 阶段一状态 | |------|------|------|-----------| | 1 | sys_user | 用户基础表 | 有数据(导入+登录) | | 2 | user_identity | 身份关联表 | 有数据(导入) | | 3 | grower_profile | 果农档案表 | 有数据(导入) | | 4 | worker_profile | 工人档案表 | 有数据(导入) | | 5 | buyer_profile | 客商档案表 | 有数据(导入) | | 6 | supplier_shop | 农资店铺表 | 有数据(导入) | | 7 | recruit_info | 招工信息表 | 空表(阶段2a使用) | | 8 | worker_apply | 工人报名表 | 空表(阶段2b使用) | | 9 | phone_unlock_record | 联系授权记录 | 空表(阶段2b使用) | | 10 | call_log | 拨号日志表 | 空表(阶段2a使用) | | 11 | sms_daily_limit | 短信限流表 | 空表(阶段2b使用) | | 12 | market_price | 今日行情表 | 有数据(行情配置) | | 13 | audit_log | 审核日志表 | 有数据(审核操作) | | 14 | operation_log | 操作日志表 | 有数据(登录/导入) | | 15 | complaint | 投诉表 | 空表(阶段2b使用) | #### 1.2 后台-系统管理 | 功能 | 说明 | |------|------| | 角色管理 | 定义4种角色:超级管理员/录入员/审核员/运维,角色-权限绑定 | | 账号管理 | 管理员CRUD,分配角色,账号启用/禁用 | | 字典管理 | 苹果品种、工种类型、农资种类、行政区划(洒渔镇下辖村)的增删改查 | | 操作日志 | 记录登录/导入/审核等关键操作,只追加不修改 | #### 1.3 后台-数据导入 | 功能 | 说明 | |------|------| | 模板下载 | 4类Excel模板:果农/工人/客商/农资 | | Excel上传 | 拖拽上传,前端预校验格式(.xlsx)和大小(≤10MB) | | 预览 | 展示总行数、有效行数、错误行数、重复行数;错误行红色高亮 | | 数据校验 | 手机号正则(1开头11位)、字段长度、必填项 | | 去重 | 手机号+身份类型唯一,重复标记,用户可选跳过/覆盖 | | 确认入库 | ≤100行同步,>100行异步+完成通知 | **字段映射(硬编码)**: ``` 果农模板:姓名→name, 手机号/电话→phone, 品种→varieties, 产量→yield_amount, 地址→address 工人模板:姓名→name, 手机号/电话→phone, 工种→skills, 报价→price 客商模板:姓名/公司名→name, 手机号/电话→phone, 品种→varieties, 地址→address 农资模板:店铺名→shop_name, 店主→owner_name, 种类→categories, 地址→address, 电话→phone ``` #### 1.4 后台-审核中心 | 功能 | 说明 | |------|------| | 审核框架 | 审核列表+通过/驳回操作+驳回原因填写 | | 导入数据审核 | 导入的数据需审核确认后生效(状态:待审/通过/驳回) | | SLA提醒 | ≤24小时自动提醒审核员,48小时升级给超级管理员 | #### 1.5 后台-行情管理 | 功能 | 说明 | |------|------| | 行情配置 | 按品种设置价格区间(最低价/最高价)+趋势(持平/涨价/降价) | | 行情列表 | 查看/编辑/删除行情记录 | #### 1.6 小程序-登录 | 功能 | 说明 | |------|------| | 微信登录 | wx.login()→后端换openid+手机号→JWT token | | 身份路由 | 0个→提示联系村委会;1个→直接进入;N个→选择页 | | 身份选择 | 大卡片列表(≥120px高度),每个身份一张卡片 | | 兜底绑定 | 拒绝授权→弹窗引导→联系村委会管理员后台绑定 | #### 1.7 小程序-首页 | 功能 | 说明 | |------|------| | 今日行情 | 展示品种+价格区间,涨价红/降价绿色块,更新时间 | | 金刚区 | 4个入口:找工人/找客商/买农资/发布需求(部分可灰态"即将开放") | #### 1.8 安全基础设施 | 功能 | 说明 | |------|------| | 手机号加密 | AES加密存储,phone_hash(SHA256)唯一索引 | | 权限框架 | RBAC角色权限,/api/wx/*和/api/admin/*独立拦截器 | | 接口脱敏 | 手机号138****1234,姓名张** | | 操作日志 | 登录/导入/审核操作全量记录 | ### 技术依赖链 ``` 数据库建表(全量15张) │ ├── sys_user + user_identity ──→ 权限框架(RBAC+拦截器) │ │ │ ├── 后台管理API(角色/账号/字典) │ │ │ └── 微信登录+JWT ──→ 身份路由 ──→ 小程序首页 │ ├── 全量表结构 ──→ 数据导入(Excel上传/预览/校验/入库) │ │ │ └── 审核框架(导入数据审核) │ ├── market_price ──→ 行情管理(配置)──→ 小程序首页(行情展示) │ └── audit_log + operation_log ──→ 操作日志记录 ``` ### 验收标准 - [ ] 管理员能登录后台管理系统 - [ ] 管理员能通过Excel导入4类用户数据(果农/工人/客商/农资) - [ ] 导入数据预览正确显示有效/错误/重复行 - [ ] 导入数据经审核后生效 - [ ] 管理员能配置今日行情(品种+价格区间+趋势) - [ ] 用户能微信登录,0/1/N个身份路由正确 - [ ] 小程序首页展示今日行情(涨价红/降价绿色块) - [ ] 金刚区展示4个入口 - [ ] 手机号数据库存储为密文 - [ ] 接口返回手机号脱敏(138****1234) - [ ] 操作日志记录登录/导入/审核操作 - [ ] 角色权限隔离:录入员不能审核,审核员不能导入 ### 测试重点 | 测试类型 | 重点场景 | |---------|---------| | 登录 | 微信登录→0/1/N身份路由、拒绝授权兜底 | | 数据导入 | 空行/格式错误/重复/超大文件、预览准确性 | | 审核 | 通过/驳回操作、SLA提醒触发 | | 权限 | 不同角色访问隔离、越权访问拦截 | | 安全 | 手机号加密存储验证、接口脱敏验证 | --- ## 阶段2a:果农核心功能 ### 目标 果农能完善名片、发布招工、找到工人和客商。 ### 功能清单 #### 2a.1 小程序-果农名片 | 功能 | 说明 | |------|------| | 信息维护 | 苹果品种(多选)、产量(斤)、预期价格(元/斤)、果园地址 | | 视频上传 | 前端直传OSS(后端申请凭证),≤50MB/MP4/MOV,前端清除EXIF,后端压缩720p/2Mbps/≤5分钟 | | 照片上传 | ≤9张,单张≤5MB,前端清除EXIF | | 审核状态 | 展示待审/已通过/被驳回(驳回显示原因) | **视频上传流程**: ``` 前端选择视频 → 前端清除EXIF → 前端预校验(格式/大小) → 调用后端获取OSS上传凭证 → 前端直传OSS → 上传完成回调后端 → 后端记录URL + 异步压缩720p → 更新审核状态为"待审" ``` #### 2a.2 小程序-招工发布 | 功能 | 说明 | |------|------| | 发布表单 | 工种(多选)、价格、价格单位(元/天|元/个)、人数、天数、工作地点、备注 | | 语音输入 | 备注支持语音转文字 | | 发布规则 | 免审核直接发布 | | 关键词标记 | 敏感关键词自动标记keyword_flag=1,进入待复核列表 | | 招工管理 | 下架(status=0)、重新编辑、查看历史记录 | **敏感词库**:色情/赌博/政治等明确违规词,不包含业务词汇 #### 2a.3 小程序-找工人 | 功能 | 说明 | |------|------| | 工人列表 | 按工种筛选,展示姓名/工种标签/报价/距离/状态 | | 距离计算 | 果园地址经纬度→Haversine公式 | | 一键拨号 | 调用/api/wx/call/phone,记录call_log | #### 2a.4 小程序-找客商 | 功能 | 说明 | |------|------| | 客商列表 | 展示姓名/公司名、收购品种、价格、数量、地址 | | 一键拨号 | 调用/api/wx/call/phone,记录call_log | #### 2a.5 后台-审核 | 功能 | 说明 | |------|------| | 名片审核 | 审核果农视频/照片,通过/驳回+原因 | | 待复核列表 | keyword_flag=1的招工信息,人工审核 | | SLA提醒 | ≤24h提醒,48h升级 | #### 2a.6 安全 | 功能 | 说明 | |------|------| | 视频安全 | EXIF清除、格式校验(MP4/MOV)、大小限制(≤50MB) | | 拨号日志 | call_log表记录:拨号方、被拨方、时间 | ### 技术依赖链 ``` 阶段一(用户体系+数据导入) │ ├── grower_profile(已有导入数据) │ ├── 名片信息维护 → 更新grower_profile │ └── 视频/照片上传 → OSS凭证 → 直传OSS → 回调记录URL → 异步压缩 │ ├── recruit_info(招工表) │ ├── 招工发布 → INSERT recruit_info(keyword_flag自动检测) │ └── 招工管理 → UPDATE status/编辑 │ ├── worker_profile(已有导入数据) │ └── 找工人列表 → 查询worker_profile(工种筛选+经纬度排序) │ ├── buyer_profile(已有导入数据) │ └── 找客商列表 → 查询buyer_profile │ ├── call_log(拨号日志) │ └── 一键拨号 → INSERT call_log → 返回电话号码 │ └── 审核框架(阶段一已有) ├── 名片审核 → 审核grower_profile.audit_status └── 待复核 → 审核recruit_info.keyword_flag ``` ### 验收标准 - [ ] 果农能编辑名片信息(品种/产量/价格/地址) - [ ] 果农能上传视频到OSS,视频压缩至720p - [ ] 果农能上传照片(≤9张/张≤5MB) - [ ] 名片提交后进入待审核状态 - [ ] 审核员能审核名片(通过/驳回+原因) - [ ] 果农能发布招工信息(免审核直接发布) - [ ] 敏感关键词自动标记,进入待复核列表 - [ ] 果农能下架/编辑招工 - [ ] 果农能按工种筛选工人列表 - [ ] 果农能一键拨号联系工人(记录call_log) - [ ] 果农能查看客商列表并拨号 - [ ] 视频上传前EXIF已清除 - [ ] 拨号日志完整记录 ### 测试重点 | 测试类型 | 重点场景 | |---------|---------| | 视频上传 | 50MB边界、格式异常、网络中断、EXIF清除验证 | | 照片上传 | 9张边界、大小限制、格式校验 | | 招工发布 | 敏感词标记、免审核发布、下架/编辑 | | 找工人 | 工种筛选、距离排序准确性、拨号日志 | | 审核 | 名片通过/驳回、待复核处理、SLA提醒 | --- ## 阶段2b:工人+客商+农资功能 ### 目标 四端核心流程跑通——工人能报名、客商能找货、农资能展示。 ### 功能清单 #### 2b.1 小程序-工人找活 | 功能 | 说明 | |------|------| | 推荐列表 | 工种匹配+距离排序,展示工种/价格/天数/人数/果农姓名/距离 | | 报名 | 点击→短信通知果农→worker_apply记录→自动变为"忙碌" | | 防骚扰 | sms_daily_limit表,同一工人每天对同一果农最多1条(自然日) | **短信模板**:`【洒渔用工】[工人姓名]([工种])对您的招工感兴趣,联系电话:[电话]` #### 2b.2 小程序-工人状态 | 功能 | 说明 | |------|------| | 状态切换 | 空闲/工作中,手动切换 | | 自动恢复 | 3天无操作自动恢复"空闲"(last_active_time判断,定时任务每天检查) | | 报名联动 | 报名后自动变为"忙碌" | | 信用机制 | complaint_count字段:1次警告,2次限制24h,3次锁定需管理员解除 | #### 2b.3 小程序-客商找货 | 功能 | 说明 | |------|------| | 货源筛选 | 按品种/价格区间/距离筛选果农货源 | | 货源详情 | 种植面积、规格(糖度/果径)、视频/照片 | | 联系授权 | 勾选批次→解锁电话→phone_unlock_record(7天有效) | | 一键拨号 | 解锁后调用拨号接口(记录call_log) | **联系授权流程**: ``` 客商浏览货源详情 → 勾选具体批次(如"红富士 20000斤") → 后端检查是否已有有效解锁记录 → 无记录/已过期 → INSERT phone_unlock_record(expire_time=now+7天) → 返回果农电话 → 客商一键拨号 → INSERT call_log ``` #### 2b.4 小程序-农资店铺 | 功能 | 说明 | |------|------| | 信息维护 | 店铺名称/店主/主营种类/地址/电话 | | 保存提交 | 更新supplier_shop表 | | 一键拨号 | 展示电话,点击拨号 | #### 2b.5 后台-短信配置 | 功能 | 说明 | |------|------| | 签名管理 | 短信签名配置(如"洒渔用工") | | 模板管理 | 短信模板配置(报名通知模板等) | #### 2b.6 安全 | 功能 | 说明 | |------|------| | 联系授权 | phone_unlock_record表+7天过期控制 | | 短信限流 | sms_daily_limit表+自然日计数 | | 短信合规 | 签名报备+模板报备+日志全量记录 | ### 技术依赖链 ``` 阶段2a(果农数据已有) │ ├── recruit_info(已有招工数据) │ └── 工人找活 → 查询recruit_info(工种匹配+距离排序) │ ├── worker_apply(报名表) │ ├── 报名 → INSERT worker_apply → 短信通知果农 │ └── 防骚扰 → 查询sms_daily_limit │ ├── worker_profile(已有工人数据) │ ├── 状态切换 → UPDATE status │ └── 信用机制 → UPDATE complaint_count │ ├── grower_profile(已有果农数据) │ └── 客商找货 → 查询grower_profile(品种/价格/距离筛选) │ ├── phone_unlock_record(联系授权) │ └── 解锁电话 → INSERT/查询有效期 │ ├── call_log(拨号日志) │ └── 客商拨号 → INSERT call_log │ └── sms_daily_limit(短信限流) └── 报名短信 → INSERT/UPDATE计数 ``` ### 验收标准 - [ ] 工人能看到推荐的招工列表(工种匹配+距离排序) - [ ] 工人能报名,果农收到短信通知 - [ ] 同一工人每天对同一果农最多1条短信 - [ ] 工人能切换状态(空闲/工作中) - [ ] 3天无操作自动恢复空闲 - [ ] 工人被投诉3次后状态锁定 - [ ] 客商能按品种/价格/距离筛选货源 - [ ] 客商能查看货源详情(含视频/照片) - [ ] 客商勾选批次后解锁果农电话(7天有效) - [ ] 客商能一键拨号(记录call_log) - [ ] 农资商能维护店铺信息 - [ ] 解锁记录完整存储 - [ ] 短信日志全量记录 - [ ] 短信签名和模板可配置 ### 测试重点 | 测试类型 | 重点场景 | |---------|---------| | 报名 | 短信发送成功、防骚扰限流、跨天重置 | | 状态 | 手动切换、3天自动恢复、报名联动忙碌 | | 信用 | 投诉1/2/3次递进处罚、管理员解除 | | 联系授权 | 解锁成功、7天过期、重新勾选 | | 短信 | 签名/模板配置、发送日志、成本统计 | | 边界 | 多身份用户数据隔离、并发报名 | --- ## 阶段三:运营功能与统计 ### 目标 政府管理部门能监控运营、统计数据、管理平台。 ### 功能清单 #### 3.1 后台-数据大屏 | 功能 | 优先级 | 数据来源 | 说明 | |------|--------|---------|------| | 宏观概览 | P0 | sys_user | 注册用户总数、今日活跃(last_active_time) | | 供需比 | P0 | recruit_info/worker_profile | 招工数/空闲工人数 | | 撮合指标 | P0 | call_log/sms_daily_limit | 电话拨打次数、短信发送条数 | | 有效撮合率 | P0 | worker_apply | 已联系/总报名 | | 流量指标 | P1 | - | PV/UV、名片浏览量(需新增统计表) | | 产业地图 | P1 | grower_profile | 果农分布热力图、客商来源TOP10 | **技术方案**:定时任务每5分钟刷新→Redis缓存 #### 3.2 后台-报表导出 | 功能 | 说明 | |------|------| | 用户列表导出 | 按条件筛选→导出Excel(手机号脱敏) | | 撮合记录导出 | 拨号/短信/报名记录→Excel | | 操作日志导出 | 操作日志→Excel | | 安全 | 导出需二次确认+操作日志记录 | #### 3.3 后台-管理功能 | 功能 | 优先级 | 说明 | |------|--------|------| | 招工巡查 | P1 | 查看所有招工,强制下架违规内容 | | 用户信息修正 | P1 | 管理员修改用户基础信息 | | 短信配置 | P1 | 签名+模板管理(如未在阶段2b完成) | | 举报处理 | P2 | 处理用户投诉(虚假招工/骚扰电话) | #### 3.4 小程序-P1功能补充 | 功能 | 优先级 | 说明 | |------|--------|------| | 买农资 | P1 | 分类筛选+店铺列表+一键拨号 | | 工作记录 | P1 | 工人报名历史+联系果农 | | 我的信息 | P1 | 工人展示姓名/技能/电话 | | 我的需求 | P1 | 客商收购偏好维护 | | 关于我们 | P2 | 平台介绍、联系方式、免责声明 | ### 验收标准 - [ ] 数据大屏展示注册用户总数、今日活跃、供需比 - [ ] 数据大屏展示电话拨打次数、短信发送条数 - [ ] 数据大屏每5分钟自动刷新 - [ ] 管理员能导出用户列表/撮合记录为Excel(脱敏) - [ ] 导出操作有二次确认和日志记录 - [ ] 管理员能查看所有招工并强制下架 - [ ] 管理员能修改用户基础信息 - [ ] 举报处理流程可用 - [ ] 果农能按分类筛选农资店铺 - [ ] 工人能查看报名历史 - [ ] 客商能维护收购偏好 ### 测试重点 | 测试类型 | 重点场景 | |---------|---------| | 大屏 | 统计数据准确性、定时刷新、Redis缓存一致性 | | 报表 | 导出数据完整性、脱敏正确性、大文件导出 | | 巡查 | 强制下架生效、列表筛选 | | P1功能 | 买农资筛选、工作记录、收购偏好 | --- ## 跨阶段注意事项 ### 数据兼容性 - 阶段一全量建表,后续阶段只做INSERT/UPDATE,不做ALTER TABLE - 阶段一导入的数据在阶段二/三可直接使用 - 预留字段(如supplier_shop.has_online_order)后续扩展时不需改表 ### 安全基线 - 阶段一建立的安全基础设施(加密/脱敏/权限/日志)贯穿所有阶段 - 每个阶段新增的接口必须遵循权限框架 - 每个阶段新增的敏感操作必须记录日志 ### 测试策略 - 每个阶段结束前预留2-3天用于测试和修复 - 阶段二/三的测试需回归阶段一的功能(特别是登录和权限) - 自动化测试从阶段一开始积累,后续阶段持续补充 ### UI/UX设计 - UI设计需在阶段一启动,与后端开发并行 - 适老化设计规范(18px/88px按钮/高对比度)贯穿所有页面 - 阶段一的金刚区灰态入口在阶段二/三逐步开放 --- ## 风险与缓解措施 ### 阶段一风险 | 风险 | 影响 | 概率 | 缓解措施 | |------|------|------|----------| | 20个功能点工期不足 | 延期1-2周 | 高 | 已调整为3-4周;优先完成登录+导入+行情,审核框架可延到阶段2a初 | | Excel导入格式多样性 | 字段映射不全 | 中 | MVP硬编码覆盖4种标准模板;非标格式人工处理 | | 微信手机号授权拒绝 | 用户无法注册 | 中 | 后台手动绑定兜底;阶段一即实现 | | Spring Boot 1.5.9兼容性 | 部分SDK版本冲突 | 低 | 阶段零验证所有SDK兼容性 | ### 阶段2a风险 | 风险 | 影响 | 概率 | 缓解措施 | |------|------|------|----------| | 视频上传链路复杂 | 延期3-5天 | 高 | 拆分5步逐步验证:凭证→直传→回调→压缩→展示;压缩失败有重试机制 | | OSS回调不可靠 | 视频URL未记录 | 中 | 后端定时扫描OSS Bucket,补录遗漏的视频记录 | | EXIF清除不彻底 | 位置信息泄露 | 低 | 前端清除+后端二次检查双保险 | | 敏感词库不完善 | 误杀或漏杀 | 中 | 初始词库只含明确违规词;通过待复核列表持续优化 | ### 阶段2b风险 | 风险 | 影响 | 概率 | 缓解措施 | |------|------|------|----------| | 短信发送延迟/失败 | 果农收不到通知 | 中 | 短信发送异步化,失败重试3次;记录发送状态 | | 短信成本超预算 | 运营成本增加 | 低 | sms_daily_limit限流;月度预算500元告警 | | 3天自动恢复误判 | 工人状态不准确 | 低 | 定时任务每天凌晨执行,日志记录恢复操作 | | 联系授权并发问题 | 重复解锁记录 | 低 | 数据库唯一索引(buyer_identity_id+grower_identity_id+batch_id) | ### 阶段三风险 | 风险 | 影响 | 概率 | 缓解措施 | |------|------|------|----------| | 统计数据不准确 | 大屏数据可信度低 | 中 | 统计SQL需与业务SQL对齐;提供数据核对入口 | | 大文件导出超时 | 报表导出失败 | 中 | >1000行异步导出+邮件通知下载 | | Redis缓存不一致 | 大屏数据延迟 | 低 | 5分钟刷新周期可接受;提供手动刷新按钮 | --- ## 各阶段工作量明细 ### 阶段零(0.5周 = 2.5天) | 任务 | 后端 | 前端 | 运维 | |------|------|------|------| | 项目骨架 | 1天 | - | - | | 数据库建表 | 0.5天 | - | - | | OSS/短信/Redis申请 | - | - | 1天 | | 微信账号+Git仓库 | - | 0.5天 | 0.5天 | | 本地环境+CI/CD | 0.5天 | 0.5天 | 0.5天 | ### 阶段一(3-4周 = 15-20天) | 任务 | 后端 | 前端 | 说明 | |------|------|------|------| | 系统管理(角色/账号/字典/日志) | 4天 | 3天 | 后台管理基础 | | 数据导入(上传/预览/校验/去重/异步) | 4天 | 3天 | 核心功能,复杂度高 | | 审核框架(列表/操作/SLA) | 2天 | 2天 | 可复用框架 | | 行情管理 | 1天 | 1天 | 简单CRUD | | 微信登录+身份路由 | 3天 | 2天 | 微信API对接 | | 小程序首页(行情+金刚区) | 1天 | 2天 | 首页展示 | | 安全(加密/脱敏/拦截器) | 3天 | - | 贯穿全阶段 | | 联调+测试 | 2天 | 2天 | 预留缓冲 | ### 阶段2a(3周 = 15天) | 任务 | 后端 | 前端 | 说明 | |------|------|------|------| | 果农名片(信息维护) | 1天 | 2天 | CRUD | | 视频上传(OSS凭证/直传/回调/压缩) | 4天 | 3天 | 复杂度最高 | | 照片上传 | 1天 | 1天 | 相对简单 | | 招工发布+管理 | 2天 | 2天 | 表单+列表 | | 找工人列表 | 1天 | 2天 | 筛选+距离排序 | | 找客商列表 | 1天 | 1天 | 简单列表 | | 名片审核+待复核 | 1天 | 1天 | 复用审核框架 | | 联调+测试 | 2天 | 2天 | 含视频上传专项测试 | ### 阶段2b(2周 = 10天) | 任务 | 后端 | 前端 | 说明 | |------|------|------|------| | 工人找活推荐 | 2天 | 2天 | 匹配+排序 | | 报名+短信通知 | 2天 | 1天 | 短信API对接 | | 状态管理+信用机制 | 2天 | 1天 | 定时任务+状态机 | | 客商找货+联系授权 | 2天 | 2天 | 授权逻辑 | | 农资店铺 | 0.5天 | 0.5天 | 简单CRUD | | 短信配置 | 0.5天 | 0.5天 | 配置管理 | | 联调+测试 | 1天 | 1天 | 四端流程联调 | ### 阶段三(2周 = 10天) | 任务 | 后端 | 前端 | 说明 | |------|------|------|------| | 数据大屏(核心指标) | 3天 | 3天 | 统计+Redis+UI | | 数据大屏(扩展指标) | 1天 | 2天 | 流量+产业地图 | | 报表导出 | 2天 | 1天 | Excel生成+脱敏 | | 招工巡查+用户修正 | 1天 | 1天 | 复用列表组件 | | P1功能补充 | 1天 | 2天 | 买农资/工作记录/收购偏好 | | 联调+测试 | 1天 | 1天 | 回归测试 |