# 校享团 · 产品需求文档（PRD）

| 项 | 内容 |
|---|---|
| **产品名称** | 校享团（校园 B2B2C 零食分销平台） |
| **文档版本** | v2.0 |
| **编写日期** | 2026-06-23 |
| **原型参考** | https://ceshi.aikex.ink（98 页演示） |
| **架构原则** | 三端数据互通 · ERP 数据统一存供应链中心 |
| **目标日活** | 初期 3,000～10,000 · 成长期 10,000～50,000 |
| **文档状态** | 正式开发基线 |

---

## 目录

1. [项目概述](#1-项目概述)
2. [用户角色与权限](#2-用户角色与权限)
3. [商业模式与资金线](#3-商业模式与资金线)
4. [系统边界与架构](#4-系统边界与架构)
5. [功能需求（全模块）](#5-功能需求全模块)
6. [非功能需求（稳定性/性能/安全）](#6-非功能需求稳定性性能安全)
7. [技术方案（语言/框架/职责）](#7-技术方案语言框架职责)
8. [数据设计概要](#8-数据设计概要)
9. [接口设计概要](#9-接口设计概要)
10. [性能容量与压测指标](#10-性能容量与压测指标)
11. [服务器采购方案](#11-服务器采购方案)
12. [云厂商选型结论](#12-云厂商选型结论)
13. [部署拓扑与运维](#13-部署拓扑与运维)
14. [开发阶段与验收](#14-开发阶段与验收)
15. [风险与约束](#15-风险与约束)

---

## 1. 项目概述

### 1.1 产品定位

校享团是一套面向**校园场景**的 B2B2C 零食分销系统：

```
供应商（蜀粮）→ 平台（校享团）→ 楼长（校园代理）→ 学生（微信小程序）
```

- **B2B**：蜀粮向平台供货，对公结算  
- **B2C**：学生在小程序下单，微信支付经汇付分账给楼长与平台  

### 1.2 产品目标

| 目标 | 指标 |
|------|------|
| 业务闭环 | 供货 → 验收 → 库存 → 销售 → 分账 → 对账 全链路线上化 |
| 三端互通 | 小程序、平台后台、供应商门户读写同一主库 |
| 高可用 | 年可用性 ≥ 99.9%（排除计划维护） |
| 性能 | C 端核心接口 P95 ≤ 300ms；下单链路 P95 ≤ 800ms |
| 并发承载 | 支撑日活 3 万、午高峰 500+ QPS 不降级 |

### 1.3 不在本期范围（可二期）

- 原生 App（iOS/Android）
- 完整税务申报/金税对接
- 多供应商竞价平台
- 跨境/多币种

---

## 2. 用户角色与权限

| 角色 | 端 | 核心能力 | 数据范围 |
|------|-----|----------|----------|
| **学生（C 端）** | 微信小程序 | 浏览、下单、支付、退款、优惠券 | 仅本人订单/地址 |
| **楼长** | 小程序或后台代管 | B2B 采购、履约、查看分成 | 本楼栋/本学校 |
| **平台运营** | admin 后台 | 商品、订单、楼长、验收、活动 | 全局（按岗位授权） |
| **平台仓管** | admin 工作台 | 供货验收、库存查询 | 仓库/验收相关 |
| **平台财务** | admin 财务中心 | 成本、利润、对账、发票 | 财务模块 |
| **平台客服** | admin 客服台 | 订单查询、售后 | 订单只读+售后操作 |
| **供应商（蜀粮）** | supplier 门户 | SKU、供货、WMS、对账 | 本供应商 tenant |
| **供应商仓管** | supplier WMS | 扫码入/拣/发 | 本仓 |
| **老板/高管** | 驾驶舱/大屏 | KPI、GMV、毛利 | 汇总报表 |
| **系统管理员** | 权限中心 | 账号、角色、审计 | 系统级 |

**权限模型**：RBAC（角色-权限-菜单-数据域），JWT + 刷新 Token，后台与供应商 portal 分 issuer。

---

## 3. 商业模式与资金线

### 3.1 两条资金线（必须独立）

| 资金线 | 参与方 | 流程 | 系统模块 |
|--------|--------|------|----------|
| **B2B 供货** | 蜀粮 ↔ 平台 | 扫码出库 → 供应链入库 → 平台验收 → 月底对公汇款 | 供应链、对账 |
| **B2C 销售** | 学生 → 汇付 → 楼长/平台 | 微信下单 → 汇付收单 → 分账 → 楼长提现 | 订单、支付 |

**硬性要求**：B2C 支付流水不得直接用于 B2B 货款结算；系统分表分科目核算。

### 3.2 财务核算规则（验收标准）

- **核算方法**：加权平均法  
- **基础单位**：瓶（base unit）  
- **多单位**：1 件 = 12 箱 = 288 瓶（可配置）  
- **示例**：康师傅冰红茶 1L · 入库 10 件 = 2880 瓶 × ¥12 = ¥34,560  

---

## 4. 系统边界与架构

### 4.1 三端 + 一核

| 层级 | 组成 | 说明 |
|------|------|------|
| **展示层** | 微信小程序、平台 Web、供应商 Web、数据大屏 | 三个业务入口 + 可视化 |
| **网关层** | Nginx / 云 SLB + API Gateway | HTTPS、限流、WAF |
| **业务层** | 订单中心、支付中心、用户/楼长中心、RBAC | 领域服务 |
| **供应链中心（ERP 主库）** | SKU、库存、供货、WMS、成本、对账 | **所有 ERP 类数据存此** |
| **集成层** | 汇付 Adapter、短信、可选 ERP 导出 | 外系统隔离 |
| **数据层** | MySQL 8、Redis 7、OSS、MQ | 持久化与缓存 |

### 4.2 数据互通原则

1. 任何 SKU/库存/供货单变更，**只写供应链库一次**，三端读同一数据源。  
2. C 端下单扣库存与后台看到的库存，**同一事务或最终一致 ≤ 3 秒**。  
3. 供应商只能看 `tenant_id = 本供应商` 的数据。  
4. 第三方 ERP（聚水潭/管家婆）**仅可选导出**，不作为主库。

### 4.3 逻辑架构图

```
                    ┌─────────────────────────────────────┐
                    │     CDN + SLB + Nginx (HTTPS/WAF)    │
                    └───────────────────┬─────────────────┘
          ┌─────────────────────────────┼─────────────────────────────┐
          ▼                             ▼                             ▼
   ┌─────────────┐              ┌─────────────┐              ┌─────────────┐
   │ 微信小程序    │              │ 平台后台 SPA │              │ 供应商 SPA   │
   │ 原生/uni-app │              │ Vue3        │              │ Vue3        │
   └──────┬──────┘              └──────┬──────┘              └──────┬──────┘
          └────────────────────────────┼─────────────────────────────┘
                                       ▼
                         ┌─────────────────────────┐
                         │  API Gateway / 统一 REST  │
                         │  Java Spring Boot 3      │
                         └────────────┬────────────┘
                                      │
        ┌─────────────────────────────┼─────────────────────────────┐
        ▼                             ▼                             ▼
 ┌─────────────┐              ┌─────────────┐              ┌─────────────┐
 │ 订单/支付服务 │              │ 供应链服务    │              │ 用户/RBAC   │
 │ Order/Pay   │              │ SCM (ERP)   │              │ User/Auth   │
 └──────┬──────┘              └──────┬──────┘              └──────┬──────┘
        └────────────────────────────┼─────────────────────────────┘
                                     ▼
              ┌──────────────────────────────────────────┐
              │ MySQL 主库 + 只读副本  │  Redis 集群  │  MQ   │
              └──────────────────────────────────────────┘
                                     │
              ┌──────────────────────┼──────────────────────┐
              ▼                      ▼                      ▼
         汇付斗拱 API            阿里云/腾讯云短信         OSS 图片
```

---

## 5. 功能需求（全模块）

> 以下与演示站 98 页一一对应，开发以 OpenAPI + 页面为验收依据。

### 5.1 C 端 · 微信小程序（13 页 · P0）

| 模块 | 功能点 | 优先级 | 验收标准 |
|------|--------|--------|----------|
| **首页** | 楼长店铺、Banner、热销 | P0 | 首屏 ≤ 2s；商品来自供应链 SKU |
| **分类/购物** | 分类树、商品列表、加购 | P0 | 库存实时；售罄不可加购 |
| **搜索** | 关键词、历史 | P1 | 支持 SKU 名称/条码 |
| **购物车** | 增删改、失效提示 | P0 | 与库存联动 |
| **结算** | 地址、优惠券、金额 | P0 | 金额与后端一致 |
| **支付** | 微信 JSAPI → 汇付 | P0 | 支付成功率 ≥ 99%；幂等 |
| **支付结果** | 成功/失败/轮询 | P0 | 3s 内展示终态 |
| **订单列表/详情** | 状态机、物流 | P0 | 状态：待付/待配/完成/退款 |
| **退款** | 申请、进度 | P1 | 对接汇付退款 API |
| **优惠券** | 领取、核销 | P1 | 规则引擎可配置 |
| **地址** | CRUD、默认 | P0 | 按用户隔离 |
| **我的** | 个人信息、楼长信息 | P0 | 微信授权登录 |
| **客服** | 订单咨询入口 | P2 | 可接微信客服消息 |

**订单状态机**：

```
待支付 → 已支付(待履约) → 配送中 → 已完成
         ↘ 已取消（超时15min）
         ↘ 退款中 → 已退款
```

### 5.2 平台 · 运营后台（62 页）

#### 5.2.1 驾驶舱与大屏（P1）

| 页面 | 功能 |
|------|------|
| 经营驾驶舱 | GMV、毛利、楼长利润、供应链 KPI |
| 数据大屏 | 实时订单、分账、库存、WebSocket 推送 |

#### 5.2.2 工作台（P0～P1）

| 工作台 | 功能 |
|--------|------|
| 运营 | 待审商品、待处理订单、楼长申请 |
| 仓库 | 待验收供货单、库存预警 |
| 客服 | 售后工单、订单查询 |
| 财务 | 日报、对账差异、分账异常 |

#### 5.2.3 供应链与验收（P0）

| 功能 | 说明 |
|------|------|
| 供货验收 | 核对蜀粮发货 API 数据，一键验收入库 |
| 库存查询 | 读供应链中心，按学校/仓库维度 |
| 商品管理 | 审核供应商 SKU，设定 C 端/B2B 价 |
| 分类管理 | 树形分类，映射 SKU |

#### 5.2.4 订单中心（P0）

| 类型 | 功能 |
|------|------|
| 楼长销售订单 | C 端订单汇总、履约状态 |
| 楼长采购订单 | B2B 进货、账期 |
| 退货/调拨 | 逆向物流、库存回滚 |
| 对账管理 | 与汇付、楼长对账 |

#### 5.2.5 支付与分账（P0）

| 功能 | 说明 |
|------|------|
| 微信支付订单 | 汇付收单记录 |
| 分账记录 | 楼长/平台分成明细 |
| 汇付对账 | 日对账文件导入/拉取 |
| 提现管理 | 楼长提现审核/状态 |

#### 5.2.6 财务中心（P1）

| 模块 | 功能 |
|------|------|
| 仓库财务核心 | 多单位、加权平均说明与配置 |
| 成本流水 | 验收入库成本、销售出库成本 |
| 库存价值 | 期末库存 × 加权成本 |
| 利润汇总 | B2B/B2C 分渠道毛利 |
| 日报/资金流水 | 日结报表 |
| 发票/报税日历 | 辅助财务，非税控对接 |

#### 5.2.7 组织与权限（P0）

| 模块 | 功能 |
|------|------|
| 学校/楼长管理 | 24 校扩展结构 |
| 多级代理 | 校园/区域/运营/仓库/分总/财务账号 |
| RBAC | 角色、菜单、按钮、数据域 |
| 登录审计 | IP、设备、异常登录 |

#### 5.2.8 统计报表（P1）

楼长/学校/仓库/区代维度的商品销量、订单统计。

#### 5.2.9 集成中心（P1）

| 功能 | 说明 |
|------|------|
| 供应链中心状态 | 主库健康、同步延迟 |
| 汇付/微信配置 | 密钥托管（KMS） |
| 可选 ERP 导出 | 聚水潭/管家婆 Adapter 开关 |
| API 文档 | OpenAPI Swagger |

### 5.3 供应商 · 供应链门户（23 页 · P0～P1）

#### 5.3.1 商品与供货（P0）

| 功能 | 说明 |
|------|------|
| 商品与税率 | SKU、条码、税率维护 → 写入供应链 |
| 供货定价 | B2B 箱/件价 |
| 供货单 | 创建、状态流转 |
| 发货记录 | 装车明细 |

#### 5.3.2 WMS 扫码（P0）

| 功能 | 说明 |
|------|------|
| 入库扫码 | 条码识别、双单位、成本计算、写凭证 |
| 拣货扫码 | 拣货单复核 |
| 装车发货 | 生成 shipment，触发平台待验收 |
| 盘点 | 盘盈盘亏、差异审批 |
| 多单位换算 | 件/箱/瓶配置 |
| 出入库凭证 | 财务汇算输入 |

**硬件**：新大陆 HR22 / 霍尼韦尔 1900 等 USB/蓝牙扫码枪；PDA 浏览器访问 WMS 页。

#### 5.3.3 供应商财务（P1）

成本流水、库存价值、利润报表、税率分开报表、对账结算、开票申请、提现。

#### 5.3.4 系统对接（P1）

供应链 API 凭证、Webhook、同步日志；可选第三方 ERP 导出配置。

---

## 6. 非功能需求（稳定性/性能/安全）

### 6.1 可用性

| 项 | 要求 |
|----|------|
| 年度可用性 | ≥ 99.9%（约 8.76h/年停机预算） |
| 计划维护 | 凌晨 2:00–5:00，提前 24h 公告 |
| 故障恢复 | RTO ≤ 30min，RPO ≤ 5min（数据库 PITR） |
| 多可用区 | 生产库、Redis、核心 ECS 跨 AZ 部署 |

### 6.2 性能指标（必须达标）

| 场景 | 指标 | 说明 |
|------|------|------|
| 商品列表 | P95 ≤ 200ms | 含 CDN 静态资源 |
| 商品详情 | P95 ≤ 150ms | Redis 缓存 SKU |
| 创建订单 | P95 ≤ 500ms | 含库存预占 |
| 发起支付 | P95 ≤ 800ms | 含汇付预下单 |
| 支付回调 | 处理 ≤ 2s | 异步分账 |
| 后台列表页 | P95 ≤ 400ms | 分页 20 条 |
| 扫码入库提交 | P95 ≤ 300ms | 蜀粮 WMS |

### 6.3 并发与容量（按日活规划）

| 阶段 | 日活 DAU | 午高峰在线 | 峰值 QPS | 订单/日 |
|------|----------|------------|----------|---------|
| 起步 | 3,000～5,000 | 300～500 | 80～150 | 500～1,500 |
| 成长 | 10,000～20,000 | 1,000～2,000 | 200～400 | 3,000～8,000 |
| 规模 | 30,000～50,000 | 3,000～5,000 | 500～800 | 10,000～25,000 |

**设计目标**：架构按**成长阶段（2 万 DAU / 400 QPS）**设计，水平扩展可撑**规模阶段**。

### 6.4 稳定性措施（必做）

| 措施 | 实现 |
|------|------|
| **无单点** | API 至少 2 实例；MySQL 主从；Redis 哨兵/集群 |
| **限流** | 网关按 IP/用户/API 限流；下单接口单独配额 |
| **熔断降级** | 汇付/短信超时熔断；商品列表可降级读缓存 |
| **幂等** | 下单、支付回调、分账、库存扣减均带 idempotency_key |
| **库存防超卖** | Redis 预扣 + DB 乐观锁 + 最终对账 |
| **异步解耦** | 分账、短信、报表走 MQ 消费者 |
| **健康检查** | K8s/SLB readiness；自动剔除故障节点 |
| **全链路监控** | APM（ARMS/云监控）+ 日志 SLS + 告警 |
| **压测** | 上线前 Locust/JMeter 模拟 500 QPS 持续 30min |

### 6.5 安全

| 项 | 要求 |
|----|------|
| 传输 | 全站 HTTPS TLS1.2+ |
| 鉴权 | JWT RS256，refresh token 轮换 |
| 敏感数据 | 手机号/身份证 AES 加密存储；密钥放 KMS |
| 支付 | 汇付签名验签；回调 IP 白名单 |
| 后台 | 强密码 + 可选 2FA；登录失败锁定 |
| 审计 | 财务/库存/权限变更写 audit_log |
| 备份 | MySQL 每日全备 + binlog；保留 30 天 |

---

## 7. 技术方案（语言/框架/职责）

### 7.1 总览

| 层次 | 语言/技术 | 做什么 |
|------|-----------|--------|
| **小程序** | JavaScript + WXML/WXSS（原生）或 TypeScript + uni-app | C 端 UI、微信登录、支付调起 |
| **Web 前端** | TypeScript + Vue 3 + Vite | 平台后台 + 供应商门户 |
| **后端** | **Java 17** + Spring Boot 3 | 全部业务 API、事务、集成 |
| **数据库** | SQL (MySQL 8) | 持久化主库 |
| **缓存/锁** | Redis 7 | 会话、热点 SKU、库存预扣、限流 |
| **消息队列** | RabbitMQ 或 Redis Stream | 异步任务、分账、通知 |
| **对象存储** | OSS/COS | 商品图、导出文件 |
| **运维** | Docker + K8s(ACK/TKE) 或 ECS + Docker Compose | 部署、扩缩容 |
| **CI/CD** | GitHub Actions / 云效 | 构建、测试、灰度发布 |
| **监控** | Prometheus + Grafana 或 云 APM | 指标、告警 |

> **为何不选 Node/Python 做核心后端**：供应链 + 财务 + 高并发事务需要强类型与成熟 ORM/事务生态；Java 招聘面更广，Spring 生态适合长期维护。

### 7.2 后端详细拆分（Java 17 + Spring Boot 3）

#### 7.2.1 工程结构（Monorepo 多模块）

```
xxt-platform/
├── xxt-gateway          # Spring Cloud Gateway 或 Nginx 上游
├── xxt-auth             # 登录、JWT、微信 code2session
├── xxt-user             # 用户、楼长、学校、代理层级
├── xxt-scm              # ★ 供应链中心（ERP 主库）
├── xxt-order            # C端/B2B 订单
├── xxt-pay              # 汇付支付、分账、对账
├── xxt-finance          # 成本、凭证、报表
├── xxt-integration      # 短信、可选 ERP 导出
├── xxt-job              # XXL-Job / Spring Scheduler 定时任务
├── xxt-common           # 工具、异常、响应体、幂等组件
└── xxt-api              # OpenAPI 生成的 DTO/Client
```

#### 7.2.2 各模块职责

| 模块 | 语言 | 核心职责 | 关键依赖 |
|------|------|----------|----------|
| **xxt-auth** | Java | 微信 OAuth、后台账号密码、JWT 签发/刷新、RBAC 鉴权 | Redis、MySQL |
| **xxt-scm** | Java | SKU、库存、供货单、WMS 扫码、验收、成本流水；**ERP 主数据唯一写入点** | MySQL、Redis、MQ |
| **xxt-order** | Java | 购物车、下单、库存预占/扣减、订单状态机 | xxt-scm、Redis |
| **xxt-pay** | Java | 汇付预下单、回调验签、分账、退款、对账文件 | 汇付 SDK、MQ |
| **xxt-finance** | Java | 加权平均计算、日报月报、库存价值 | xxt-scm |
| **xxt-user** | Java | 学校、楼长、供应商 tenant、地址 | MySQL |
| **xxt-integration** | Java | 短信、可选聚水潭/管家婆导出 Adapter | HTTP Client |
| **xxt-job** | Java | 对账拉取、报表生成、缓存预热、超时关单 | XXL-Job |

#### 7.2.3 后端框架选型

| 组件 | 选型 | 用途 |
|------|------|------|
| Web | Spring Web MVC / WebFlux（回调用） | REST API |
| ORM | MyBatis-Plus 3.5 | CRUD、分页、乐观锁 |
| 连接池 | HikariCP | 数据库连接 |
| 缓存 | Spring Cache + Redisson | 分布式锁、库存扣减 |
| MQ | Spring AMQP (RabbitMQ) | 异步消息 |
| 文档 | SpringDoc OpenAPI 3 | Swagger UI |
| 校验 | Jakarta Validation | 参数校验 |
|  MapStruct | DTO ↔ Entity 转换 |
| 日志 | SLF4J + Logback → 云日志 |

### 7.3 前端详细方案

#### 7.3.1 平台后台 + 供应商门户

| 项 | 选型 | 说明 |
|----|------|------|
| 语言 | **TypeScript 5** | 类型安全 |
| 框架 | **Vue 3.4** Composition API | 与演示 UI 一致 |
| 构建 | Vite 5 | 快速 HMR |
| UI | Element Plus 2 | 表格/表单 |
| 状态 | Pinia | 全局用户/权限 |
| 路由 | Vue Router 4 | 动态路由按权限加载 |
| HTTP | Axios + 统一拦截器 | Token、错误码 |
| 图表 | ECharts 5 | 驾驶舱/大屏 |
| 工程 | pnpm monorepo：`apps/admin`、`apps/supplier`、`packages/shared` | 共享组件 |

#### 7.3.2 微信小程序

| 方案 | 语言 | 适用 |
|------|------|------|
| **推荐：原生小程序** | JavaScript/TypeScript + WXML | 性能最佳、包体小、支付链路最稳 |
| 备选：uni-app Vue3 | TypeScript | 后续要 H5/App 时 |

**小程序职责**：

- `wx.login` → 后端换 openid/session  
- 商品/购物车/订单 REST 调用  
- `wx.requestPayment` 调起微信支付（汇付渠道参数）  
- 订阅消息（发货通知）  

### 7.4 数据层

| 组件 | 版本 | 用途 |
|------|------|------|
| **MySQL** | 8.0 | 主库；InnoDB；utf8mb4；读写分离 |
| **Redis** | 7.x | 缓存、Session、库存预扣、限流计数 |
| **RabbitMQ** | 3.12 | 订单事件、分账任务、短信 |
| **OSS** | — | 商品图、导出 Excel |

### 7.5 DevOps

| 项 | 方案 |
|----|------|
| 容器 | Docker 多阶段构建（JAR → 镜像） |
| 编排 | **腾讯云 TKE** 或 阿里云 ACK（见第 12 章） |
| 配置 | Nacos / 云参数 store |
| 密钥 | 云 KMS，禁止明文进 Git |
| 日志 | 云日志服务集中检索 |
| 链路 | SkyWalking / 云 APM |

---

## 8. 数据设计概要

### 8.1 核心表（供应链前缀 scm_）

| 表 | 说明 | 索引要点 |
|----|------|----------|
| `scm_sku` | SKU 主数据 | `tenant_id`, `barcode` UNIQUE |
| `scm_sku_unit` | 多单位换算 | `sku_id`, `unit_type` |
| `scm_inventory` | 库存账面 | `sku_id`, `warehouse_id`, `school_id` |
| `scm_inventory_log` | 库存流水 | `sku_id`, `created_at` |
| `scm_supply_order` | 供货单 | `supplier_id`, `status` |
| `scm_shipment` | 发货/装车 | `supply_order_id` |
| `scm_receipt` | 平台验收 | `shipment_id` |
| `scm_scan_record` | WMS 扫码 | `warehouse_id`, `op_type` |
| `scm_cost_ledger` | 成本流水 | `sku_id`, `biz_date` |
| `scm_reconciliation` | 对账单 | `period`, `supplier_id` |

### 8.2 订单与支付

| 表 | 说明 |
|----|------|
| `sales_order` / `sales_order_item` | C 端订单 |
| `purchase_order` | 楼长 B2B 采购 |
| `payment_order` | 汇付支付单 |
| `split_record` | 分账明细 |
| `refund_order` | 退款 |

### 8.3 用户与权限

| 表 | 说明 |
|----|------|
| `user` / `user_wechat` | C 端用户 |
| `manager` / `school` | 楼长、学校 |
| `sys_user` / `sys_role` / `sys_permission` | 后台 RBAC |
| `supplier` / `supplier_user` | 供应商 tenant |

---

## 9. 接口设计概要

**规范**：RESTful + JSON；版本 `/api/v1/`；统一响应 `{ code, message, data, traceId }`。

### 9.1 鉴权

| 端 | 方式 |
|----|------|
| 小程序 | `Authorization: Bearer <jwt>`，微信登录换 token |
| 后台/供应商 | 账号密码 + JWT；refresh token HttpOnly Cookie |

### 9.2 核心 API 清单

| 域 | 方法 | 路径 | 说明 |
|----|------|------|------|
| SCM | POST | `/api/v1/scm/sku` | 创建/更新 SKU |
| SCM | GET | `/api/v1/scm/inventory` | 库存查询 |
| SCM | POST | `/api/v1/scm/wms/scan` | 扫码作业 |
| SCM | POST | `/api/v1/scm/receipt/confirm` | 平台验收 |
| Order | POST | `/api/v1/order/sales` | C 端下单 |
| Order | GET | `/api/v1/order/sales/{id}` | 订单详情 |
| Pay | POST | `/api/v1/pay/prepay` | 发起支付 |
| Pay | POST | `/api/v1/pay/notify/huifu` | 汇付回调 |
| Pay | POST | `/api/v1/pay/split` | 触发分账（MQ 消费） |
| User | POST | `/api/v1/auth/wechat/login` | 微信登录 |

完整 OpenAPI 在 Phase 0 交付。

---

## 10. 性能容量与压测指标

### 10.1 压测场景（上线门槛）

| 编号 | 场景 | 并发 | 持续时间 | 通过标准 |
|------|------|------|----------|----------|
| PT-01 | 商品列表浏览 | 300 | 20min | 错误率 < 0.1%，P95 < 200ms |
| PT-02 | 下单 | 100 | 10min | 无超卖；错误率 < 0.01% |
| PT-03 | 支付回调 | 50/s | 5min | 幂等正确；无重复分账 |
| PT-04 | 混合场景 | 400 QPS | 30min | 全站错误率 < 0.1% |
| PT-05 | 扫码入库 | 30 | 10min | P95 < 300ms |

### 10.2 缓存策略

| 数据 | TTL | 失效 |
|------|-----|------|
| SKU 详情 | 5min | 商品变更 MQ 广播 |
| 分类树 | 30min | 手动/定时 |
| 库存可售量 | 30s + 预扣 | 下单/入库时更新 |
| 用户 Session | 7d | 登出 |

---

## 11. 服务器采购方案

### 11.1 采购思路

- **不买物理机**，使用云厂商：**ECS/CVM 云服务器 + 托管 RDS + 托管 Redis + SLB + OSS**。  
- 「多少台服务器」= **计算节点（ECS）数量 + 托管服务实例数**。  
- 分三档：**起步期 / 成长期（推荐首期按此采购）/ 规模期**。

### 11.2 起步期（日活 3,000～5,000）

| # | 资源类型 | 规格建议 | 数量 | 用途 |
|---|----------|----------|------|------|
| 1 | **云服务器 ECS** | 4核8G | **2 台** | API 应用（Docker，SLB 后挂 2 节点） |
| 2 | **云服务器 ECS** | 2核4G | **1 台** | Nginx 网关 / 静态资源（或与 SLB 合并） |
| 3 | **云数据库 RDS MySQL** | 2核4G 100GB SSD | **1 主 + 1 只读** | 业务主库 + 读副本 |
| 4 | **云 Redis** | 2G 主从版 | **1 实例** | 缓存/锁/Session |
| 5 | **负载均衡 SLB** | 标准版 | **1** | 流量分发、HTTPS |
| 6 | **对象存储 OSS/COS** | 按量 | **1** | 图片/文件 |
| 7 | **消息队列** | RabbitMQ 云版 或自建 2核4G×1 | **1** | 异步任务 |

**合计：云服务器 ECS ≈ 3～4 台**（若 MQ 用云服务则 ECS 3 台）  
**预估月费：¥2,500～4,500**（含 RDS/Redis/SLB/OSS，按华东/西南节点）

### 11.3 成长期（日活 10,000～20,000）★ 推荐按此设计

| # | 资源类型 | 规格建议 | 数量 | 用途 |
|---|----------|----------|------|------|
| 1 | **ECS/CVM** | 8核16G | **3 台** | API 应用集群（可自动伸缩 3～6） |
| 2 | **ECS/CVM** | 4核8G | **1 台** | 异步 Job 消费者、报表 |
| 3 | **ECS/CVM** | 2核4G | **1 台** | Nginx/Ingress（或 K8s 内置） |
| 4 | **RDS MySQL** | 4核8G 200GB | **1 主 + 1 只读** | 可升 8核16G |
| 5 | **Redis** | 4G 集群版 | **1** | 高可用 |
| 6 | **SLB** | 性能保障型 | **1** | |
| 7 | **MQ** | 云消息队列 | **1** | |
| 8 | **OSS + CDN** | 按量 | **1** | 小程序静态加速 |
| 9 | **WAF** | 基础版 | **1** | 防 CC/注入 |

**合计：ECS ≈ 5～6 台**（或 **TKE/ACK 节点 3～4 台** + 托管服务）  
**预估月费：¥6,000～12,000**

### 11.4 规模期（日活 30,000～50,000）

| # | 资源 | 数量 |
|---|------|------|
| API 节点 | 8核16G × **4～8**（自动伸缩） |
| Job 节点 | 4核8G × **2** |
| RDS | 8核16G 主 + **2** 只读 |
| Redis | 8G **集群** |
| K8s | 托管 TKE/ACK **1 集群** |

**合计：ECS 节点 6～10 台**  
**预估月费：¥15,000～30,000**

### 11.5 服务器采购清单（给财务/运维的一页纸）

**首期（成长期）建议采购：**

```
□ 云服务器 CVM/ECS  8C16G × 3        API 集群
□ 云服务器 CVM/ECS  4C8G  × 1        Job/定时任务
□ 云服务器 CVM/ECS  2C4G  × 1        网关（可选，SLB 可替代）
□ 云数据库 RDS      4C8G 主 + 只读 × 各1
□ 云 Redis          4G 集群版 × 1
□ 负载均衡 SLB      × 1
□ 对象存储 OSS/COS  × 1
□ CDN               × 1（小程序图片）
□ 消息队列          × 1
□ WAF               × 1
□ SSL 证书          × 1（免费或付费）
□ 域名              × 2（api.xxx.com, admin.xxx.com）
```

**物理服务器台数答案：**

| 问法 | 答案 |
|------|------|
| 最少几台 ECS？ | **3 台**（起步） |
| 推荐几台 ECS？ | **5～6 台**（成长） |
| 含数据库/redis 一共几个云资源？ | **10～12 个云产品实例** |

---

## 12. 云厂商选型结论

### 12.1 三家对比（与本项目相关）

| 维度 | **腾讯云** | 阿里云 | 华为云 |
|------|------------|--------|--------|
| **微信小程序** | ★★★★★ 同体系，文档/调试/云开发 | ★★★★ | ★★★ |
| **微信支付/汇付** | ★★★★★ 生态成熟 | ★★★★ | ★★★ |
| **成都/西南节点** | ★★★★ 有西南 | ★★★★★ 成都可用区成熟 | ★★★★ |
| **RDS/Redis 稳定性** | ★★★★ | ★★★★★ | ★★★★ |
| **CDN 小程序加速** | ★★★★★ | ★★★★ | ★★★ |
| **运维文档/人才** | ★★★★ | ★★★★★ | ★★★ |
| **价格（同类规格）** | 中 | 中 | 略低 |

### 12.2 最终推荐

## ✅ 首选：**腾讯云（Tencent Cloud）**

**理由（与本项目强相关）：**

1. **核心业务是微信小程序**，腾讯云与微信同属腾讯生态，小程序服务端调用、CDN、备案指引、问题排查链路最短。  
2. **C 端占主导**（几千～几万日活），腾讯云 COS+CDN 对小程序静态资源、图片加速体验更好。  
3. 提供 **TKE（容器服务）**、**TencentDB for MySQL/Redis**、**CLB 负载均衡**，满足本 PRD 高可用架构。  
4. 成都有可用区，西南用户访问延迟可接受。  

**备选：阿里云**

- 若团队已有大量阿里云经验、或需与现有 aike/epay 基础设施同云，可选 **阿里云成都**。  
- ARMS 监控、PolarDB/RDS 成熟，运维人才最多。  

**不推荐作为首选：华为云**

- 政企能力强，但**微信小程序 + 校园 C 端**场景生态与案例少于腾讯/阿里；除非有政务合规硬性要求。

### 12.3 腾讯云具体产品映射

| PRD 组件 | 腾讯云产品 |
|----------|------------|
| ECS | **云服务器 CVM** |
| K8s | **容器服务 TKE** |
| MySQL | **云数据库 TencentDB for MySQL** |
| Redis | **云数据库 TencentDB for Redis** |
| SLB | **负载均衡 CLB** |
| OSS | **对象存储 COS** |
| CDN | **内容分发网络 CDN** |
| MQ | **消息队列 TDMQ / CMQ** |
| WAF | **Web 应用防火墙 WAF** |
| 日志 | **CLS 日志服务** |
| 监控 | **云监控 + APM** |
| 域名/SSL | **DNSPod + SSL 证书** |

**建议地域：`ap-chengdu`（成都）或 `ap-chongqing`（重庆）**，贴近业务；若需全国低延迟可加 CDN。

---

## 13. 部署拓扑与运维

### 13.1 生产拓扑（成长期 · 腾讯云）

```
用户(小程序/Web)
       │
       ▼
   CDN + WAF
       │
       ▼
   CLB (HTTPS)
       │
   ┌───┴───┐
   ▼       ▼
 CVM×3   CVM×1(Job)
 (API)      │
   │        │
   └───┬────┘
       ▼
 TencentDB MySQL (主+只读)
 TencentDB Redis (集群)
 TDMQ
 COS
 CLS 日志
```

### 13.2 环境划分

| 环境 | 用途 | ECS |
|------|------|-----|
| dev | 开发联调 | 1×2C4G |
| test | QA/压测 | 同生产缩容 50% |
| prod | 正式 | 见 11.3 |

### 13.3 备份与 DR

- MySQL：每日自动备份 + binlog；跨 AZ 部署  
- Redis：开启 AOF + 主从  
- 代码：Git tag 对应镜像版本，可回滚  

---

## 14. 开发阶段与验收

| 阶段 | 周期 | 交付 | 验收 |
|------|------|------|------|
| P0 设计 | 2～3 周 | 本 PRD 定稿、ER、OpenAPI、UI 高保真 | 评审通过 |
| P1 MVP | 8～10 周 | 小程序交易+汇付+平台订单+RBAC | 压测 100 QPS 通过 |
| P2 供应链 | 6～8 周 | SCM 主库+WMS+验收+三端联动 | 库存一致性 100% |
| P3 财务 | 5～6 周 | 加权平均+报表 | 与演示用例一致 |
| P4 大屏 | 4～5 周 | 驾驶舱+WebSocket | |
| P5 上线 | 4～6 周 | 压测 400 QPS、等保自查、小程序审核 | **PT-04 通过** |

---

## 15. 风险与约束

| 风险 | 缓解 |
|------|------|
| 午高峰下单洪峰 | 限流+队列+自动扩容 |
| 库存超卖 | Redis 预扣+乐观锁+对账 |
| 汇付回调延迟 | 异步 MQ；订单状态轮询 |
| 财务算错 | BigDecimal；财务顾问验收；审计日志 |
| 小程序审核 | 提前准备类目与资质 |
| 供应商扫码网络差 | WMS 支持离线队列上传（二期） |

---

## 附录 A：演示页索引

- 演示入口：https://ceshi.aikex.ink/  
- 开发文档：https://ceshi.aikex.ink/docs/dev-guide.html  
- 项目规格书：https://ceshi.aikex.ink/docs/project-spec.html  

## 附录 B：文档修订记录

| 版本 | 日期 | 说明 |
|------|------|------|
| v1.0 | 2026-06-23 | 初版开发文档 |
| v2.0 | 2026-06-23 | 本 PRD：三端互通+供应链 ERP+性能+服务器+腾讯云选型 |

---

*校享团项目组 · 艾科技 · 本文档为正式开发基线，变更需走 PRD 评审。*
