DELIVERY-MANIFEST.md 5.6 KB

交付清单 — Team B 架构师

里程碑信息

  • 阶段: 阶段2a 果农核心功能
  • 里程碑编号: milestone-2(架构设计)
  • 提交时间: 2026-05-30
  • 负责团队: Team B

交付产物

序号 文件路径 说明 覆盖度检查 核心内容摘要
1 deliveries/team-b-architecture/design.md 架构设计文档 模块数: 5/5, 新增文件: 20个 果农名片、招工、搜索、文件、审核模块架构
2 deliveries/team-b-architecture/api-definition.md 接口定义文档 新增接口: 13/13, 已有接口: 4/4 果农名片2、招工4、搜索2、拨号1、审核4
3 deliveries/team-b-architecture/tech-stack.md 技术选型文档 类别: 8/8 继承阶段一+距离计算、敏感词检测、视频压缩
4 deliveries/team-b-architecture/DELIVERY-MANIFEST.md 本交付清单 - 交付物清单、关键信息、问题反馈

修改文件清单

序号 文件路径 操作类型 说明
1 deliveries/team-b-architecture/design.md 覆盖更新 从阶段一更新为阶段2a架构设计
2 deliveries/team-b-architecture/api-definition.md 覆盖更新 从阶段一更新为阶段2a接口定义
3 deliveries/team-b-architecture/tech-stack.md 覆盖更新 从阶段一更新为阶段2a技术选型
4 deliveries/team-b-architecture/DELIVERY-MANIFEST.md 覆盖更新 本交付清单

交付说明

本次交付为阶段2a(果农核心功能)的架构设计成果,基于 Team A 的需求规格(阶段2a spec.md)进行设计。

核心内容

  1. 架构扩展

    • 新增5个业务模块:果农模块、招工模块、搜索模块、文件模块、审核扩展
    • 新增20个Java源文件
    • 继承阶段一四层架构
  2. 数据库设计

    • 核心表:grower_profile、recruit_info、call_log
    • 索引设计:经纬度复合索引(距离查询)、keyword_flag索引(待复核查询)
    • JSON字段规范:varieties、photos、work_types、skills
  3. 接口设计

    • 新增接口:13个
    • 已有接口复用:4个(文件上传)
    • 覆盖14个功能点
  4. 关键技术方案

    • 距离计算:Haversine公式,纯Java实现
    • 敏感词检测:正则匹配,keyword_flag标记
    • 视频压缩:FFmpeg异步压缩,720p/2Mbps
    • 文件存储:本地存储,UUID文件名
  5. 安全设计

    • 文件上传:格式白名单+大小限制
    • 内容安全:敏感词检测+待复核
    • 拨号安全:日志记录+数据脱敏

给下游团队的关键信息

关键决策

  1. 距离计算: Haversine公式实时计算,经纬度DECIMAL(10,7)精度
  2. 敏感词机制: 不阻塞发布,keyword_flag标记进入待复核
  3. 视频压缩: FFmpeg异步执行,失败重试3次
  4. 文件命名: UUID重命名,防止路径穿越
  5. 拨号机制: 单独接口获取手机号,记录拨号日志

隐含约束

  1. JSON字段查询: MySQL 5.7不支持JSON索引,使用LIKE查询(性能可接受)
  2. 距离计算优化: 可先用矩形范围筛选(经纬度差值),再精确计算
  3. 视频压缩依赖FFmpeg: 需要系统安装FFmpeg,否则使用备选方案
  4. 文件大小限制: application.properties配置,前端和后端双重校验
  5. 审核SLA: 需要定时任务支持(ScheduledExecutorService)

特别注意

  1. 招工编辑后重新检测敏感词: 防止通过编辑规避检测
  2. 名片更新重置审核状态: 修改后需重新审核
  3. 拨号日志是独立接口: 不在列表接口中返回手机号
  4. 文件访问免认证: /api/wx/file/files/** 路径排除在JWT拦截器外

阶段2a新增文件清单

文件 说明 依赖
GrowerProfileController.java 果农档案API GrowerProfileService
GrowerProfileService.java 果农档案业务 GrowerProfileMapper
GrowerProfileMapper.xml 果农档案映射 -
RecruitController.java 招工CRUD API RecruitService, KeywordCheckService
RecruitService.java 招工业务 RecruitMapper, KeywordCheckService
RecruitMapper.xml 招工映射 -
WorkerSearchController.java 工人列表API WorkerSearchService
WorkerSearchService.java 工人搜索 WorkerProfileMapper, DistanceUtil
BuyerSearchController.java 客商列表API BuyerSearchService
BuyerSearchService.java 客商搜索 BuyerProfileMapper
CallPhoneController.java 拨号API CallLogService
CallLogService.java 拨号日志 CallLogMapper
CallLogMapper.xml 拨号日志映射 -
GrowerAuditController.java 名片审核API GrowerAuditService
GrowerAuditService.java 名片审核 GrowerProfileMapper, AuditLogService
RecruitReviewController.java 待复核API RecruitReviewService
RecruitReviewService.java 待复核 RecruitMapper, AuditLogService
KeywordCheckService.java 敏感词检测 -
DistanceUtil.java 距离计算 -
VideoCompressService.java 视频压缩 -

对上团队的问题

无。Team A 的需求规格清晰完整,架构设计无歧义。

待确认事项

  1. FFmpeg安装: 服务器是否已安装FFmpeg?如未安装,视频压缩需要备选方案
  2. 地理编码: 地址→经纬度转换由前端还是后端完成?建议前端处理
  3. 敏感词库: 初始词库范围需要业务方确认
  4. 语音输入: 小程序端语音识别使用微信原生API还是第三方服务?
  5. 审核SLA: 定时任务使用ScheduledExecutorService还是Quartz?