dingdanquanliucheng/开发细节/05-开发实施与部署准备清单.md
2026-05-14 13:51:06 +08:00

19 KiB
Raw Blame History

开发实施与部署准备清单

1. 文档定位

本文用于补齐《开发任务清单与验收标准.md》和 开发细节 前 4 份文档之外的实施准备内容,重点解决以下问题:

  • 开发前需要准备哪些账号、环境、配置和资料。
  • 前后端、小程序、数据库、第三方服务按什么顺序开发和联调。
  • 测试环境、生产环境如何部署、初始化和验收。
  • 哪些事项不应写死在代码里,需要通过环境变量或后台配置管理。

本文不替代以下文档:

文档 职责
01-页面级原型字段说明.md 页面、字段、按钮、筛选项、弹窗和权限状态
02-API细化设计.md 接口 request/response、枚举、错误码和业务规则
03-数据库调整设计.md 表结构调整、迁移 SQL、初始化配置
04-测试用例清单.md 可执行测试用例和验收通过标准

2. 技术栈落地约定

层级 技术 约定
后端 Python + FastAPI 提供 HTTP/JSON API统一响应、统一错误码、JWT 鉴权
ORM/迁移 SQLAlchemy + Alembic 所有表结构变更必须走 migration
数据库 MySQL 8.0+ 字符集 utf8mb4,金额使用 decimal不使用 float
缓存/任务 一期可先用数据库 + 定时任务 如后续引入 Redis/Celery需另行补充部署说明
WEB 前端 Vue 3 + Vite + Element Plus + Pinia + Vue Router 业务员端和管理后台可共用工程能力,也可拆成两个入口
小程序 微信原生小程序 管理层端、司机端按原生 WXML/WXSS/JS 开发
文件存储 阿里云 OSS 图片、视频、导入文件、导出文件、附件统一存储
AI/OCR 阿里云模型/OCR 通过后端适配层调用,禁止前端直接持有密钥
部署 Nginx + 后端进程服务 + MySQL 生产环境必须使用 HTTPS

3. 开发前必备资料

3.1 业务资料

资料 用途 责任方 状态
角色清单 初始化管理员、管理层、业务员、司机权限 甲方确认 待准备
初始用户清单 初始化登录账号 甲方提供 待准备
产品分类初始数据 初始化 product_category 甲方提供 待准备
产品资料样例 产品管理、订单录入联调 甲方提供 待准备
客户资料样例 客户导入、订单录入联调 甲方提供 待准备
工厂/供应商资料 下发文本、司机任务分配 甲方提供 待准备
下发工厂文本样例 生成和确认下发文本 甲方提供 待准备
AI/OCR 样例图片 OCR 字段识别、人工修正联调 甲方提供 待准备
报表统计口径确认 月/季/年、分类、提成汇总 甲方确认 待准备

3.2 微信小程序资料

资料 说明 状态
小程序 AppID 管理层端和司机端是否共用 AppID 需确认 待准备
小程序主体认证 发布正式版前必须完成 待准备
服务器域名备案 API 域名必须备案并支持 HTTPS 待准备
request 合法域名 后端 API 域名加入白名单 待准备
uploadFile 合法域名 OSS 上传域名加入白名单 待准备
downloadFile 合法域名 OSS 下载或 CDN 域名加入白名单 待准备
体验成员名单 联调和验收阶段使用 待准备

3.3 阿里云资料

资料 说明 状态
OSS Bucket 建议区分测试和生产 Bucket 待准备
OSS Endpoint 与 Bucket 所在地域一致 待准备
OSS 访问域名 可使用默认域名或绑定自定义域名/CDN 待准备
OSS AccessKey 后端服务端使用,禁止前端写死 待准备
OSS 上传大小限制 图片、视频、导入文件分别设置上限 待确认
OSS 生命周期策略 临时文件、导出文件是否自动清理 待确认
阿里云 OCR/模型服务 开通服务、确认地域、模型能力 待准备
AI/OCR 调用凭证 后端环境变量管理 待准备
AI/OCR 费用预算 设置费用告警,避免失控调用 待确认

4. 环境规划

4.1 环境划分

环境 用途 数据要求 外部服务
本地开发环境 开发调试 可使用本地 MySQL 或开发库 可使用测试 OSS/OCR
测试环境 前后端联调、验收测试 独立测试库,允许构造数据 使用测试 Bucket 和测试配置
生产环境 正式业务使用 真实业务库,必须备份 使用生产 Bucket、生产域名、生产凭证

4.2 推荐目录结构

project/
  backend/
    app/
    migrations/
    tests/
    requirements.txt
    .env.example
  frontend/
    web-admin/
    web-sales/
    mini-manager/
    mini-driver/
  docs/
  deploy/

说明:

  • 当前文档在项目根目录维护,后续实现时可将部署脚本放入 deploy/
  • 如果 WEB 管理后台和业务员端共用一个 Vue 工程,应通过路由和权限区分入口。
  • 如果拆分两个 Vue 工程,需要共用 API SDK、枚举和响应处理逻辑避免字段重复维护。

5. 后端环境变量清单

后端必须提供 .env.example,真实 .env 不提交代码仓库。

变量名 示例 说明
APP_ENV dev/test/prod 当前环境
APP_NAME order-flow 应用名称
API_PREFIX /api API 前缀
SECRET_KEY change-me JWT 签名密钥,生产必须更换
JWT_EXPIRE_MINUTES 1440 token 有效期
MYSQL_HOST 127.0.0.1 MySQL 地址
MYSQL_PORT 3306 MySQL 端口
MYSQL_DATABASE order_flow 数据库名
MYSQL_USER order_user 数据库用户
MYSQL_PASSWORD password 数据库密码
SQL_ECHO false 是否输出 SQL
ALIYUN_OSS_BUCKET bucket-name OSS Bucket
ALIYUN_OSS_ENDPOINT oss-cn-hangzhou.aliyuncs.com OSS Endpoint
ALIYUN_OSS_ACCESS_KEY_ID xxx OSS AccessKey ID
ALIYUN_OSS_ACCESS_KEY_SECRET xxx OSS AccessKey Secret
ALIYUN_OSS_PUBLIC_BASE_URL https://cdn.example.com 文件访问基础域名
OSS_UPLOAD_MAX_IMAGE_MB 10 图片上传上限
OSS_UPLOAD_MAX_VIDEO_MB 200 视频上传上限
ALIYUN_AI_REGION cn-hangzhou AI/OCR 地域
ALIYUN_AI_ACCESS_KEY_ID xxx AI/OCR AccessKey ID
ALIYUN_AI_ACCESS_KEY_SECRET xxx AI/OCR AccessKey Secret
ALIYUN_OCR_MODEL default OCR/模型服务标识
CORS_ALLOW_ORIGINS https://admin.example.com WEB 跨域白名单
LOG_LEVEL INFO 日志级别

6. 前端和小程序配置清单

6.1 Vue WEB 配置

配置 示例 说明
VITE_API_BASE_URL https://api.example.com/api 后端 API 地址
VITE_APP_TITLE 订单全流程系统 页面标题
VITE_UPLOAD_MODE oss-token 通过后端获取 OSS 上传凭证
VITE_ENV_NAME test/prod 页面展示和问题定位

前端不得配置任何 OSS 或 AI 密钥。

6.2 微信小程序配置

配置 示例 说明
appId 微信公众平台 AppID project.config.json 使用
apiBaseUrl https://api.example.com/api 小程序请求后端
ossUploadDomain https://bucket.oss-cn-hangzhou.aliyuncs.com 上传域名需加白名单
envName test/prod 环境识别

发布前必须确认:

  • API 域名、上传域名、下载域名均已加入小程序合法域名。
  • 生产域名证书有效且证书链完整。
  • 小程序体验版能在真实微信环境调用 API 和上传文件。

7. 数据库实施准备

7.1 建库要求

要求
MySQL 版本 8.0+
字符集 utf8mb4
排序规则 建议 utf8mb4_0900_ai_ci 或统一使用项目约定
时区 统一使用 Asia/Shanghai
金额字段 decimal(18,2)
数量字段 decimal(18,4) 或与数据库设计保持一致

7.2 迁移顺序

顺序 内容 说明
1 导入基础表结构 基于 数据库.sql
2 执行结构调整 migration 对应 03-数据库调整设计.md
3 初始化角色、菜单、权限 支撑登录和页面权限
4 初始化系统配置 arrears_generate_mode=delivered
5 初始化产品分类 默认分类可后续在后台维护
6 初始化管理员账号 首次登录后台使用
7 导入测试数据 测试环境使用,生产谨慎执行

7.3 初始化数据清单

数据 必需 说明
管理员角色 admin 拥有全部系统管理权限
管理层角色 manager 审批、下发确认、任务分配、报表
业务员角色 salesman 录单、本人订单、提醒
司机角色 driver 本人任务、接单、揽货、送达
菜单数据 对应 Vue 和小程序页面入口
权限编码 对应按钮和接口权限
初始管理员 首次登录使用,首次登录后应修改密码
产品分类 默认可初始化工业品、日用品,也允许后台新增
系统配置 欠款生成模式、提醒周期、OSS/AI 摘要配置
测试客户/产品/工厂 测试环境必需 用于联调和验收

8. 开发实施顺序

8.1 阶段一:基础工程

任务 产物 验证
后端 FastAPI 工程初始化 后端服务、健康检查、统一响应 /health 可访问
数据库连接和 migration SQLAlchemy、Alembic 可创建和升级数据库
JWT 登录鉴权 登录、当前用户、退出 token 有效和失效场景通过
角色菜单权限 用户、角色、菜单、授权接口 /api/auth/me 返回菜单权限
前端工程初始化 Vue 工程、小程序工程 本地可启动

8.2 阶段二:基础资料

任务 产物 验证
客户管理 客户 CRUD、导入 去重和导入统计正确
产品分类和产品管理 分类 CRUD、产品 CRUD 产品可关联分类
工厂/供应商管理 工厂 CRUD、模板类型 下发文本可引用工厂
OSS 文件服务 上传凭证、附件记录 图片/视频上传并写库

8.3 阶段三:订单主流程

任务 产物 验证
订单创建和编辑 订单主表、明细、费用计算 金额和利润计算正确
提交审核 draft -> pending_approve 重复提交被拦截
管理层审批 pending_approve -> approved/rejected 审批记录和通知正确
下发工厂文本 生成、复制、确认 确认后进入 pending_factory
取消流程 cancel_pending 和取消审批 拒绝后恢复原状态

8.4 阶段四:履约和物流

任务 产物 验证
手动创建司机任务 管理层/管理员分配任务 司机端可见本人任务
司机任务流转 接单、揽货、送达 状态流转正确
揽货附件 图片、视频上传 OSS 和附件记录正确
手动物流节点 节点录入、轨迹查询 按时间展示轨迹
欠款生成 shipped/delivered 两种模式 生成节点符合配置

8.5 阶段五提醒、AI 和报表

任务 产物 验证
提醒中心 欠款、物流超时、沉默客户 不重复生成无效提醒
AI/OCR 识别 上传图片、识别、保存结果 原始结果和置信度留存
人工修正 修正结果和留痕 不覆盖原始识别结果
报表统计 月/季/年、分类、固定提成 与数据库手工核对一致
报表导出 导出文件写入 OSS 文件内容与页面一致

8.6 阶段六:联调验收

任务 产物 验证
接口契约联调 前后端字段一致 无临时字段依赖
小程序真机联调 管理层端、司机端 登录、审批、任务、上传可用
全流程 E2E 从录单到送达、欠款、报表 核心流程跑通
权限回归 四类角色越权测试 越权被拦截
验收测试 执行 04-测试用例清单.md 阻断和严重缺陷为 0

9. 联调检查清单

9.1 后端自测

  • 所有接口返回统一结构:code/message/data
  • 所有受保护接口无 token 返回 40002
  • 越权访问返回 40003 或按安全策略返回 40004
  • 非法状态流转返回 40005
  • 业务重复数据返回 40006
  • 第三方服务失败返回 4000840009
  • 关键写操作写入 audit_log

9.2 Vue WEB 联调

  • 登录后菜单和按钮由 /api/auth/me 控制。
  • 业务员端不能看到成本、利润、回扣等无权限字段。
  • 管理后台可维护用户、角色、菜单、产品分类、产品、客户、工厂、配置。
  • 表格分页参数与 API 文档一致:page_no/page_size
  • 金额显示保留 2 位小数,数量按业务字段要求显示。
  • 文件上传先取后端上传凭证,再上传 OSS再保存附件记录。

9.3 小程序联调

  • 真机能访问 API 域名。
  • 真机能上传图片和视频到 OSS。
  • 管理层端能完成审批、取消审批、下发确认、任务分配。
  • 司机端只显示本人任务。
  • 司机端揽货必须上传照片。
  • token 过期后跳转登录页。

9.4 第三方服务联调

  • OSS 上传、下载、删除或过期策略符合预期。
  • AI/OCR 成功调用时保存 raw_resultconfidencesuggested_result
  • AI/OCR 失败时不影响订单主流程,只返回明确错误并记录日志。
  • 费用告警已开启。

10. 部署准备

10.1 服务器准备

要求
操作系统 Linux 服务器,建议 Ubuntu LTS 或 CentOS/Rocky
Python 3.11+
Node.js 20 LTS
MySQL 8.0+
Nginx 用于 HTTPS、静态资源、反向代理
磁盘 预留数据库备份和日志空间
时间同步 开启 NTP避免 token 和日志时间异常

10.2 后端部署

步骤 说明
安装依赖 使用虚拟环境安装 requirements.txt
配置环境变量 根据第 5 节配置 .env
执行 migration 升级数据库到最新版本
初始化数据 角色、菜单、权限、配置、管理员
启动服务 使用 systemd/supervisor 管理进程
健康检查 /health 返回正常
日志检查 启动日志无异常,错误日志可追踪

10.3 Vue WEB 部署

步骤 说明
安装依赖 npm install 或约定包管理器
配置环境变量 设置 API 地址和环境名
构建 生成静态资源
Nginx 发布 配置静态目录和 history 路由 fallback
验证 登录、刷新页面、接口调用正常

10.4 小程序发布

步骤 说明
配置 AppID 微信开发者工具项目配置
配置环境 API 地址、上传域名
上传体验版 添加体验成员
真机测试 登录、审批、任务、上传、OCR
提交审核 确认类目、隐私协议、接口域名
发布正式版 审核通过后发布

11. Nginx 配置要求

要求
HTTPS 生产环境必须启用
API 反向代理 /api 转发到 FastAPI 服务
静态资源 Vue dist 目录由 Nginx 托管
上传大小 client_max_body_size 大于业务上传上限
超时 AI/OCR 接口可适当提高代理超时
日志 开启 access/error 日志
安全头 建议配置基础安全响应头

12. 备份和恢复

内容 要求
数据库备份 生产环境每日自动备份,至少保留 7-30 天
OSS 文件 开启版本控制或生命周期策略,按成本决定
配置备份 .env、Nginx 配置、部署脚本需安全备份
恢复演练 上线前至少完成一次测试库恢复验证
导出文件 可设置生命周期自动清理

13. 安全要求

  • OSS、AI、JWT、数据库密码不得提交代码仓库。
  • 生产环境禁止使用默认管理员密码。
  • 后端必须控制字段权限,前端隐藏不能作为安全边界。
  • 业务员只能访问本人订单、客户和提醒。
  • 司机只能访问本人任务。
  • 管理后台系统管理接口默认仅管理员可用。
  • 所有关键写操作必须有审计日志。
  • 文件上传必须限制类型、大小和业务归属。
  • AI/OCR 输入图片必须来自已授权 OSS 文件或后端可校验的文件地址。

14. 上线前验收检查

检查项 标准
数据库迁移 测试和生产 migration 可重复执行且可回滚
初始化数据 角色、菜单、权限、配置、管理员存在
登录鉴权 四类角色登录和 token 过期处理正常
核心流程 录单、审批、下发、任务、揽货、送达、欠款、报表跑通
取消流程 cancel_pending、取消审批通过/拒绝正确
欠款模式 shippeddelivered 两种模式验证通过
OSS 图片、视频、导入、导出均可用
AI/OCR 成功、失败、人工修正均验证通过
小程序 体验版真机通过,合法域名配置正确
权限 越权访问被后端拦截
审计日志 关键操作可追溯
备份 数据库备份任务已配置并验证恢复
缺陷 阻断缺陷 0严重缺陷 0

15. 交付物清单

交付物 内容 验收方式
后端源码 FastAPI、模型、服务、接口、任务、第三方适配 接口和测试通过
数据库迁移 Alembic migration、初始化数据脚本 新库可完整初始化
Vue WEB 业务员端、管理后台 浏览器可访问并完成流程
小程序源码 管理层端、司机端 微信开发者工具和真机可运行
部署配置 Nginx、服务进程、环境变量模板 新环境可按文档部署
测试报告 用例执行结果、缺陷记录 验收标准满足
操作说明 角色登录、录单、审批、任务、配置、报表 业务人员可按说明操作

16. 仍需甲方确认或提供的事项

事项 影响 建议完成时间
小程序 AppID 和合法域名 影响小程序真机联调和发布 开发联调前
阿里云 OSS Bucket 和凭证 影响文件上传、司机揽货、AI 图片识别 文件模块开发前
阿里云 OCR/模型凭证和预算 影响 AI/OCR 开发和联调 AI 模块开发前
初始用户、角色权限范围 影响权限初始化和页面入口 基础工程阶段
产品分类初始数据 影响产品录入和报表分类 基础资料阶段
下发工厂文本模板样例 影响下发文本生成效果 订单主流程阶段
服务器和域名 影响测试环境、生产环境部署 联调前
视觉风格或 UI 参考 影响页面观感,不影响字段级功能开发 前端开发前

17. 开发启动判定

满足以下条件即可正式启动开发:

  • 后端、Vue、小程序技术栈已确认。
  • 数据库设计和 API 细化文档已确认。
  • 至少有测试环境 MySQL 可用。
  • 至少有测试 OSS Bucket 和上传凭证可用。
  • 小程序 AppID 可在联调前提供。
  • 初始角色和管理员账号规则已确认。
  • 核心流程验收用例已确认。

如果 AI/OCR 凭证暂未准备好,可以先实现后端适配层和 mock provider但真实上线前必须完成阿里云真实服务联调。