998 lines
47 KiB
Markdown
998 lines
47 KiB
Markdown
# 翼云Hub · 产品文档(PRD)
|
||
|
||
> **Slogan**:全链路低空体系聚合,打破供需两端信息壁垒。
|
||
|
||
> **版本 v1.0** · 待开发
|
||
> **主色**:`#5E46F6`(深紫主色)/ `#7C6AF8`(辅)/ `#F2EFFE`(底)/ `#FFFFFF`(卡)/ `#F59E0B`(金色点缀)
|
||
> **导航**:4 个底部一级 Tab(**首页 / 任务中心 / 研学与课程 / 个人中心**)
|
||
> **参考原型**:图2(首页结构)· 图3(个人中心结构)· 图1(功能菜单来源)
|
||
|
||
---
|
||
|
||
## 0. 修订记录
|
||
|
||
| 版本 | 日期 | 主要变更 |
|
||
|------|------|----------|
|
||
| v1.0 | 待开发 | 初版产品需求文档,以图 1 功能菜单为蓝本,4 Tab 结构(首页 / 任务中心 / 研学与课程 / 个人中心) |
|
||
|
||
|
||
|
||
---
|
||
|
||
## 1. 背景与机会
|
||
|
||
### 1.1 背景
|
||
国内民用无人机产业进入"持证合规 + 商业落地"双驱动的爆发期。CAAC(民用无人驾驶航空器综合管理平台)2024 年起强制要求超 250g 机型实名注册、操控员持证;植保、巡检、航拍、表演四大场景的商业订单快速放量,但供需两端存在明显错配。
|
||
|
||
- **需求侧(商家/客户)**:临时用机、航拍交付、植保作业、应急巡检,缺可信飞手,缺合同/合规保障
|
||
- **供给侧(飞手)**:持证后无稳定接单渠道,资质难被看见
|
||
- **服务端(培训机构、维修点、保险公司、租赁商)**:缺精准流量
|
||
|
||
行业缺少一个"**开放聚合 + 资质可信 + 交易闭环**"的信息平台。
|
||
|
||
### 1.2 目标(北极星指标)
|
||
|
||
| 阶段 | 目标 | 北极星指标 |
|
||
|------|------|------------|
|
||
| M3 | 上线跑通 | 认证飞手数 ≥ 3,000;认证商家数 ≥ 500 |
|
||
| M6 | 双边活跃 | 月成交任务数 ≥ 2,000;月活飞手 ≥ 5,000 |
|
||
| M12 | 行业心智 | CAAC 报名转化率行业第一;"找飞手"心智占位 |
|
||
|
||
### 1.3 用户角色
|
||
|
||
| 角色 | 占比 | 核心诉求 | 关键场景 |
|
||
|------|------|----------|----------|
|
||
| **C1 飞手** | 50% | 接单变现、资质展示、考证指引 | 任务中心接单、飞手中心、刷题 |
|
||
| **C2 商家/客户** | 30% | 发布需求、找可信飞手、合规交付 | 任务中心发单、查附近、CAAC 报名 |
|
||
| **C3 培训机构** | 10% | 招生、课程展示、品牌曝光 | 商家认证、题库合作 |
|
||
| **C4 服务商** | 10% | 流量、订单分发 | 商家认证 |
|
||
|
||
---
|
||
|
||
## 2. 导航与功能架构
|
||
|
||
### 2.1 底部 Tab(4 个)
|
||
|
||
| 序号 | Tab | 定位 | 核心目的 |
|
||
|------|-----|------|----------|
|
||
| ① | **首页** | 流量分发中枢 | 黄金位 + 9 宫格 + 供需双广场 + 优质任务 1 条 |
|
||
| ② | **任务中心** | 交易主战场 | 任务列表 + 多维度筛选 + 抢单 |
|
||
| ③ | **研学与课程** | 内容/服务留存 | 课程展示 + 预约 |
|
||
| ④ | **个人中心** | 身份与认证 | 我的任务 + 飞手/商家双身份认证 + 推广 |
|
||
|
||
### 2.2 全量功能清单(按图 1 + 业务扩展)
|
||
|
||
| 一级 Tab | 二级入口 | 三级 / 页面 | 价值 | 优先级 |
|
||
|----------|----------|-------------|------|--------|
|
||
| **首页** | 城市定位 | 定位选择 | LBS 入口 | P0 |
|
||
| | 顶部轮播 | CAAC 报名 / 招商 / 表演 | 运营位 | P0 |
|
||
| | 公告条 | 最新政策 / 新闻 | 内容置顶 | P0 |
|
||
| | 9 宫格金刚区(详见 2.3) | 9 个入口 | 流量分发 | P0 |
|
||
| | **供需双广场**(独立菜单) | 商家发单 · 飞手接单 | **核心交易入口** | **P0** |
|
||
| | **优质任务**(仅 1 张) | 首页露出 1 张顶部任务 | 转化错点 | P0 |
|
||
| **任务中心** | 筛选按钮 | 推荐 / 附近 / 高价 / 长期 | 排序入口 | P0 |
|
||
| | **⚙ 筛选按钮** | 7 组 / 55 个筛选项(右侧抽屉) | 精准筛选 | P0 |
|
||
| | 任务列表(横向大卡) | 1 优质 + 多普通任务 | 抢单入口 | P0 |
|
||
| | 任务详情 | 详情页 + IM + 接单 | 成交 | P0 |
|
||
| **研学与课程** | 分类 Tab | 全部 / 认知启蒙 / 技能进阶 / 创新应用 / 竞赛辅导 | 内容导航 | P0 |
|
||
| | 课程列表 | 卡片列表(6门真实案例课程) | 内容/服务留存 | **P0** |
|
||
| | 课程详情 | 课程信息 + 预约入口 | 深度了解 | P0 |
|
||
| | 研学预约 | 填写信息提交预约 | 核心转化 | **P0** |
|
||
| **个人中心** | 我的任务(3 态) | 待接单 / 进行中 / 已完成 | 任务管理 | **P0** |
|
||
| | 飞手推广 | 老带新得积分 | 拉新 | P0 |
|
||
| | 认证与工具 | 飞手认证 / 商家认证 / 我的发布 / 实名认证 | **身份门槛** | **P0** |
|
||
| | | 飞手中心 / 商家中心 | 身份聚合 | P0 |
|
||
|
||
|
||
### 2.3 首页 9 宫格金刚区(9 个入口)
|
||
|
||
| # | 入口 | 跳转 | 备注 |
|
||
|---|------|------|------|
|
||
| 1 | CAAC 报名 | 报名页 | 强引流,潜在客转化 |
|
||
| 2 | 无人机表演 | 表演列表 | 高客单 |
|
||
| 3 | 实力商家 | 商家列表 | 信任锚点 |
|
||
| 4 | 本地飞手 | 飞手列表 | 信任锚点 |
|
||
| 5 | 培训考试 | 培训模块 | 留存 + 引流 |
|
||
| 6 | 发布任务 | 发布任务页(需商家认证) | 商家侧入口 |
|
||
| 7 | 我要接单 | 任务中心(需飞手认证) | 飞手侧入口 |
|
||
| 8 | 飞手推广 | 推广页(带 HOT 角标) | 拉新 |
|
||
| 9 | **滴滴打无人机** | 调度页(类打车模式) | **新功能·核心亮点** |
|
||
|
||
---
|
||
|
||
## 3. 功能关联分析(核心)
|
||
|
||
### 3.1 三大 Tab 关联总览
|
||
|
||
```
|
||
┌──────────────────────────────────────────────────────────┐
|
||
│ 首页(流量分发中枢) │
|
||
│ 轮播位 ─→ 强运营:CAAC报名 / 表演 / 招商 │
|
||
│ 公告 ─→ 政策更新、行业新闻(点击跳行业动态详情) │
|
||
│ 金刚区(9 宫格) ─→ 功能分发 │
|
||
│ ├─ CAAC报名 ──→ 飞手认证 ──→ 训练题库 │
|
||
│ ├─ 无人机表演 ──→ 任务中心(高客单任务) │
|
||
│ ├─ 实力商家 ──→ 商家认证入口(个人中心) │
|
||
│ ├─ 本地飞手 ──→ 飞手认证入口(个人中心) │
|
||
│ ├─ 培训考试 ──→ 附近商家 + 题库刷题 │
|
||
│ ├─ 发布任务 ──→ 商家认证校验(个人中心) │
|
||
│ └─ 我要接单 ──→ 飞手认证校验(个人中心) │
|
||
└──────────────────────────────────────────────────────────┘
|
||
│ │
|
||
▼ ▼
|
||
研学与课程 个人中心 · 身份
|
||
(内容留存) 飞手 ←─→ 商家
|
||
│ │
|
||
└──────────┬────────────┘
|
||
▼
|
||
┌─────────────────┐
|
||
│ 任务中心 │
|
||
│ 商家发单/飞手接单│
|
||
│ (需对应身份认证)│
|
||
└─────────────────┘
|
||
```
|
||
|
||
### 3.2 关键功能关联(10 条)
|
||
|
||
| # | 触发点 | 关联点 | 业务价值 |
|
||
|---|--------|--------|----------|
|
||
| 1 | CAAC 报名点击 | → 飞手认证引导页 | 流量 → 认证漏斗 |
|
||
| 2 | 实力商家 / 本地飞手 | → 详情页 + IM + 收藏 | 信任 → 咨询 → 成交 |
|
||
| 3 | 培训考试题库 | → 错题 → 课程推荐 | 学习 → 报名 → 机构 |
|
||
| 4 | 商家发单 | → 校验商家认证状态 | 未认证阻断 + 引导 |
|
||
| 5 | 飞手接单 | → 校验飞手认证 + 保险 | 风控前置 |
|
||
| 6 | 任务中心"优质任务"标签 | → 付费订阅 / 会员 | GMV 提升 |
|
||
| 7 | 飞手推广 | → 老带新积分 | 拉新 |
|
||
| 8 | 附近商家 | → 定位授权 + 商家详情 | LBS 转化 |
|
||
| 9 | 研学课程详情 | → 相关任务 / 商家挂载 | 内容 → 交易 |
|
||
| 11 | 滴滴打无人机 | → 无人机飞手网络 → 配送任务派单 | 新增核心功能 |
|
||
| 10 | 资质中心 | → 过期提醒 + 续期 | 长期留存 |
|
||
|
||
### 3.3 首页信息流(自上而下)
|
||
|
||
```
|
||
1. 状态栏
|
||
2. 城市定位(如:全国 / 上海)+ 消息/设置
|
||
3. 轮播图(CAAC 报名 / 招商 / 表演)
|
||
4. 公告条(最新政策 / 新闻)
|
||
5. 9 宫格金刚区(9 个入口,详见 2.3)
|
||
6. 供需双广场(独立菜单 · 仿图 1)
|
||
左卡:📤 商家发单 │ 右卡:🛩 飞手接单
|
||
7. 滴滴打无人机(同城即时配送)
|
||
地图动画示意(无人机飞手轨迹)
|
||
配送流程 4 步:骑手取货 → 无人机起飞 → 配送中 → 预计到达
|
||
底部快捷下单栏:30 分钟必达 · 支持紧急件
|
||
8. 研学体系(首页展示课程 · 2~3 张横向卡)
|
||
① [两天一晚世园无人机研学课程] ¥1,388/期
|
||
② [无人机技能进阶营(3-5天)] ¥2,680/期
|
||
③ [鄂尔多斯雏鹰计划] ¥3,200/期
|
||
```
|
||
|
||
### 3.4 任务中心 Tab
|
||
|
||
```
|
||
顶部筛选按钮栏:
|
||
[⚙ 筛选▾] [📍 附近] ← 推荐/高价/长期 已合并到筛选面板
|
||
|
||
点击 [⚙ 筛选] → 右侧抽屉式筛选面板(7 组 / 55 个筛选项):
|
||
· 任务分类(7) 全部 / 植保 / 航拍 / 巡检 / 表演 / 吊运 / 测绘
|
||
· 任务状态(5) 全部 / 待接单 / 已接单 / 执行中 / 已完成
|
||
· 价格预算(5+输入)不限 / 0-3千 / 3-10千 / 1-5万 / 5万以上 + 自定义
|
||
· 所在地区(9) 全国 + 8 省市
|
||
· 人员数量(5) 不限 / 1人 / 2人 / 3-5人 / 5人以上
|
||
· 发布时间(5) 全部 / 今天 / 3天内 / 本周内 / 本月内
|
||
· 其他筛选(5) 优质任务 / 含飞手险 / 长期合作 / 急单 / 团队单
|
||
|
||
主体任务卡(仿图 1 横向大卡):
|
||
· 头部:标签(分类 + 优质 + 状态)+ 地点
|
||
· 标题:粗体任务名
|
||
· 左图右信息卡:地点 / 人数 / 时间
|
||
· 底部:价格(左侧大字号)+ 操作按钮(查看附近飞手 / 去抢单)
|
||
· 描述:飞手险 + 任务详情(实景文字)
|
||
|
||
优质任务强化(仅首卡):
|
||
· 金色边框 + 米黄渐变背景 + 金色 ★ 徽标
|
||
· 金色价格 + 金色 CTA 按钮
|
||
· 右上角金色光晕
|
||
```
|
||
|
||
### 3.5 滴滴打无人机 Tab(独立 Tab)
|
||
|
||
> 核心定位:同城即时配送平台,配送端为无人机(类比美团/闪送,骑手换无人机)
|
||
|
||
```
|
||
核心业务流程:
|
||
用户下单 → 系统派单给附近无人机 → 无人机取货起飞 → 配送中(实时轨迹)→ 送达
|
||
|
||
功能清单:
|
||
· 一键下单:填写取货/收货地址 + 物品重量/类型 → 生成订单
|
||
· 配送地图:无人机轨迹实时展示(起飞点→配送中→到达)
|
||
· 配送流程:4 步追踪(骑手取货 / 无人机起飞 / 配送中 / 预计到达)
|
||
· 计价规则:按距离 + 重量 + 时效(普通件/加急件)
|
||
· 配送范围:同城 30 分钟必达,支持紧急件
|
||
· 飞手/商家入驻:认证后接入配送网络
|
||
|
||
展示 4 步配送流程示例(首页版):
|
||
① ✓ 骑手取货 09:14
|
||
② ✓ 无人机起飞 09:16 [T100 起飞]
|
||
③ 🚁 配送中 09:17 [飞行高度 120m · 时速 60km/h]
|
||
④ ◎ 预计到达 09:25 [送货上门]
|
||
|
||
底部下单栏:30 分钟内送达 · 支持紧急件 [立即下单]
|
||
```
|
||
|
||
### 3.6 研学与课程 Tab
|
||
|
||
```
|
||
分类 Tab:全部 / 认知启蒙 / 技能进阶 / 创新应用 / 竞赛辅导
|
||
|
||
课程卡片字段:
|
||
· 标签(热门/推荐/新开)+ 分类标签 + 对象年龄
|
||
· 课程名 + 地点 + 时长
|
||
· 课程亮点(3项展开)
|
||
· 价格 + [立即预约] 按钮
|
||
|
||
展示 6 门真实课程案例:
|
||
① 两天一晚世园无人机研学课程(北京)¥1,388/期 [热门·青少年·认知启蒙]
|
||
② 无人机技能进阶营(3-5天)¥2,680/期 [技能进阶·初中生]
|
||
③ 鄂尔多斯科技馆「雏鹰计划」(8天16课)¥3,200 [创新应用·高中生]
|
||
④ 「越州蒲公英计划」青少年无人机研学(绍兴)¥680 [竞赛辅导·青少年]
|
||
⑤ 「智趣少年营」无人机兴趣课程(社区)¥380 [趣味科普·零基础]
|
||
⑥ 「小小农发人」无人机农业研学之旅(简阳)¥280 [农业应用·亲子]
|
||
|
||
预约交互:[立即预约] → 弹出预约表单(姓名/手机/人数/备注)→ 提交成功提示
|
||
```
|
||
|
||
### 3.6 个人中心信息流(自上而下)
|
||
|
||
```
|
||
1. 顶部渐变区(无右上角图标):
|
||
👤 头像 + 登录/注册按钮
|
||
2. 我的任务(3 态):
|
||
[📋 待接单 2] [🛩 进行中 1] [✓ 已完成]
|
||
3. 飞手推广 Banner:
|
||
📢 邀请飞手认证 · 认证得积分 · 积分可提现 [去推广 ›]
|
||
4. 认证与工具:
|
||
上排 4:[飞手认证] [商家认证] [我的发布] [实名认证]
|
||
下排 2:[🏆飞手中心] [🏬商家中心]
|
||
```
|
||
|
||
> ❌ 已删除模块:我的服务(优惠券/商家发货/分销绑定/收货地址)、信息完善、飞手资质、商家资质、功能关联导览、个人中心右上角 3 图标(App/消息/设置)。
|
||
|
||
---
|
||
|
||
## 4. 核心流程
|
||
|
||
### 4.1 飞手入驻
|
||
注册 / 微信一键登录 → 飞手认证(上传 CAAC 执照 + 身份证 + 机型)→ 审核(1 工作日)→ 通过 → 进入任务中心接单
|
||
|
||
### 4.2 商家发单
|
||
注册 → 商家认证(营业执照 + 法人身份证 + 经营范围)→ 审核 → 通过 → 任务中心 → 发布任务(类型 / 地点 / 时间 / 预算 / 机型要求)→ 飞手接单 → 双方 IM 确认 → 线下执行 → 平台评价 → 抽佣结算
|
||
|
||
### 4.3 任务状态机
|
||
```
|
||
待接单 → 已接单(待执行)→ 执行中 → 待验收 → 已完成
|
||
↓
|
||
异常:取消 / 申诉 / 退款
|
||
```
|
||
|
||
### 4.4 认证状态机
|
||
```
|
||
未认证 → 资料上传中 → 审核中(≤24h)→ 已认证(有效 1 年)→ 即将过期(30 天)→ 过期
|
||
↓
|
||
续期申请
|
||
```
|
||
|
||
### 4.5 筛选交互流程
|
||
点击 [⚙ 筛选] → 右侧抽屉滑入 → 7 组筛选项可点击切换 → 自定义价格输入 → [重置全部] 或 [确认筛选 (12)] → 关闭抽屉 → 列表刷新 + 提示"筛选已应用"
|
||
|
||
---
|
||
|
||
## 5. 信息架构
|
||
|
||
### 5.1 页面清单(28 个)
|
||
|
||
| 模块 | 页面 |
|
||
|------|------|
|
||
| 通用 | 启动页、登录/注册、消息中心、定位选择 |
|
||
| 首页 | 首页、新闻列表、新闻详情、CAAC 报名、无人机表演列表 / 详情 |
|
||
| 商家 / 飞手 | 实力商家列表 / 详情、本地飞手列表 / 详情 |
|
||
| 培训 | 培训考试首页、附近商家(培训)、题库刷题、错题本 |
|
||
| 任务中心 | 任务中心首页、发布任务、我要接单、任务详情、任务管理、筛选面板 |
|
||
| 研学与课程 | 列表(全部 / 认知启蒙 / 技能进阶 / 创新应用 / 竞赛辅导)、详情、预约 |
|
||
| 我的 | 我的首页(任务 3 态)、飞手推广、飞手认证、商家认证、我的发布、实名认证、飞手中心、商家中心、关于我们 |
|
||
|
||
### 5.2 底部 Tab(4 个 · 按图 1 一级菜单)
|
||
|
||
- **首页**:流量分发
|
||
- **任务中心**:核心交易(独立 Tab · 必到)
|
||
- **行业动态**:资讯流
|
||
- **个人中心**:身份与认证
|
||
|
||
> 与图 1 一级菜单对应关系:图 1 的"首页" = 本文档的首页 + 任务中心(交易功能下沉到 Tab);图 1 的"行业动态" = 研学与课程 Tab;图 1 的"个人中心" = 同名 Tab。
|
||
|
||
---
|
||
|
||
## 6. UI 规范
|
||
|
||
### 6.1 色彩系统
|
||
|
||
| 用途 | 颜色 | 备注 |
|
||
|------|------|------|
|
||
| **主色** | **`#5E46F6`** = `rgb(94,70,246)` | 品牌色 · 按钮 / Tag / 强调 / Tab 选中 / 阴影 |
|
||
| 辅助紫 | `#7C6AF8` | 次级按钮、渐变起点 |
|
||
| 浅紫底 | `#F2EFFE` | 页面背景、Tab 浅态 |
|
||
| 卡片白 | `#FFFFFF` | 内容卡 |
|
||
| 文字主 | `#1A1730` | 标题 |
|
||
| 文字次 | `#5E5870` | 描述 |
|
||
| 文字弱 | `#9D97AE` | 提示 |
|
||
| 成功 | `#22C55E` | 认证通过 |
|
||
| 警告 | `#F59E0B` | 即将过期 |
|
||
| 错误 | `#EF4444` | 失败 |
|
||
| **金色点缀** | **`#F59E0B`** | **优质任务标签 / 价格 / CTA / 边框** |
|
||
|
||
### 6.2 字体
|
||
- iOS:PingFang SC
|
||
- Android:系统默认
|
||
- 字号阶梯:11 / 12 / 13 / 14 / 15 / 17 / 20 / 24 / 32
|
||
|
||
### 6.3 圆角 / 阴影
|
||
- 卡圆角:12-16 px
|
||
- 按钮圆角:8-14 px
|
||
- 头像圆角:50%
|
||
- 卡阴影:`0 2px 12px rgba(94,70,246,0.10)` ——`--shadow`
|
||
- 任务中心卡阴影:`0 4px 16px rgba(94,70,246,0.12)` ——`--shadow-md`
|
||
- 大阴影(轮播 / Banner):`0 8px 24px rgba(94,70,246,0.18)` ——`--shadow-lg`
|
||
- 优质任务金色阴影:`0 6px 20px rgba(245,158,11,0.22)`
|
||
|
||
---
|
||
|
||
## 7. 关键指标
|
||
|
||
| 指标 | 目标(M3) | 监控位 |
|
||
|------|------------|--------|
|
||
| CAAC 报名点击 → 提交转化率 | ≥ 35% | 首页轮播点击 |
|
||
| 飞手认证完成率 | ≥ 60% | 引导页漏斗 |
|
||
| 任务中心点击率 | ≥ 50% | 首页"供需双广场" + "优质任务" |
|
||
| 优质任务点击 → 接单 | ≥ 20% | 任务中心首卡 |
|
||
| 任务平均成交时长 | ≤ 4h | 任务详情 |
|
||
| 7 日留存 | ≥ 30% | 启动埋点 |
|
||
| 研学与课程 Tab PV | 首页 PV 的 30% | Tab 切换埋点 |
|
||
| 筛选面板使用率 | ≥ 15% | 任务中心 Tab |
|
||
|
||
---
|
||
|
||
## 8. 风险与对策
|
||
|
||
| 风险 | 等级 | 对策 |
|
||
|------|------|------|
|
||
| 飞手资质造假 | 高 | 接入 CAAC 接口核验执照真伪 + 履约保证金 |
|
||
| 商家拖欠 / 跑单 | 高 | 平台担保支付 + 评价 + 黑名单 |
|
||
| 飞手人身安全 | 中 | 保险合作 + 紧急 SOS 按钮 + 行程共享 |
|
||
| 监管政策变化 | 中 | 法务对接民航局,配置审核人力 |
|
||
| 冷启动供需 | 中 | 地推:先与 3-5 家培训机构、2-3 个无人机协会合作 |
|
||
| 优质任务供给不足 | 中 | 平台补贴 + 头部商家 BD |
|
||
| 首页任务中心被弱化 | 中 | 顶部"优质任务"金色强化 + 供需双广场独立菜单导流 |
|
||
| 低空配送合规(飞行审批/空域限制) | 高 | 对接 UOM 平台获取飞行许可;设置电子围栏自动拦截禁飞区订单 |
|
||
| 配送延误/事故(天气/机械故障) | 中 | 无人机状态实时监控;天气预警自动暂停;备用机调度机制 |
|
||
|
||
---
|
||
|
||
## 9. 版本规划
|
||
|
||
| 版本 | 时间 | 内容 |
|
||
|------|------|------|
|
||
| v1.0 | 待开发 | 首页 + 任务中心 + 研学与课程 + 个人中心,4 Tab 完整功能 |
|
||
| v2.0 | M3 | 培训题库 + 保险合作 + 智能匹配 |
|
||
| v3.0 | M6+ | 行业 SaaS + AR 展示 + 地图找飞手 |
|
||
|
||
---
|
||
|
||
## 10. 附录:与原图功能对照表
|
||
|
||
### 10.1 一级菜单对照
|
||
|
||
| 图 1 一级菜单 | 本文档 Tab | 关键二级 |
|
||
|--------------|-----------|----------|
|
||
| 首页 | **首页 + 任务中心** | 9 宫格 + 供需双广场 + 滴滴打无人机 + 研学体系 |
|
||
| 行业动态 | **研学与课程** | 列表 + 详情 + 预约(6 门课程) |
|
||
| 个人中心 | **个人中心** | 任务 3 态 + 飞手 / 商家双身份认证 + 推广 |
|
||
|
||
### 10.2 二级菜单对照
|
||
|
||
| 图 1 二级菜单 | 本文档对应 | 实现位置 |
|
||
|--------------|------------|----------|
|
||
| 新闻咨询 | ✓ | 首页轮播 + 公告(研学与课程内容) |
|
||
| CAAC 报名 | ✓ | 首页 9 宫格 #1 + 独立页 |
|
||
| 无人机表演 | ✓ | 首页 9 宫格 #2 + 独立板块 |
|
||
| 实力商家 | ✓ | 首页 9 宫格 #3 + 商家列表 |
|
||
| 本地飞手 | ✓ | 首页 9 宫格 #4 + 飞手列表 |
|
||
| 培训考试 | ✓ | 首页 9 宫格 #5 + 培训模块 |
|
||
| **供需双广场** | ✓(**独立菜单**) | 首页 6 区(左:商家发单 / 右:飞手接单) |
|
||
| **优质任务** | ✓ | 首页 7 区(仅 1 张金色强化卡)+ 任务中心首卡 |
|
||
| 信息完善 | ❌(已删除) | 个人中心(合并到飞手 / 商家认证流程中) |
|
||
| 飞手认证 | ✓ | 个人中心「认证与工具」上排 #1 |
|
||
| 飞手资质中心 | ❌(已删除) | 资质合并到飞手认证页面 |
|
||
| 商家认证 | ✓ | 个人中心「认证与工具」上排 #2 |
|
||
| 商家资质中心 | ❌(已删除) | 资质合并到商家认证页面 |
|
||
| 关于我们 | ✓ | 个人中心底部 |
|
||
|
||
|
||
---
|
||
|
||
## 11. 数据库设计(DDL)
|
||
|
||
> 数据库类型:MySQL 8.0
|
||
> 字符集:`utf8mb4` / 排序规则:`utf8mb4_unicode_ci`
|
||
> 所有表均含 `created_at` / `updated_at` 通用字段;主键均使用 `BIGINT` 自增;软删除用 `deleted_at`
|
||
|
||
---
|
||
|
||
### 11.1 公告表 `announcement`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| title | VARCHAR(100) | 公告标题 | NOT NULL |
|
||
| content | TEXT | 公告正文 | |
|
||
| valid_from | DATETIME | 生效开始时间 | |
|
||
| valid_to | DATETIME | 生效结束时间 | |
|
||
| status | TINYINT | 状态:0隐藏 1显示 | DEFAULT 1 |
|
||
| sort_order | INT | 排序,越小越靠前 | DEFAULT 0 |
|
||
| publisher_id | BIGINT | 发布人ID(关联user.id) | |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE announcement (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
title VARCHAR(100) NOT NULL COMMENT '公告标题',
|
||
content TEXT COMMENT '公告正文',
|
||
valid_from DATETIME COMMENT '生效开始时间',
|
||
valid_to DATETIME COMMENT '生效结束时间',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:0隐藏 1显示',
|
||
sort_order INT DEFAULT 0 COMMENT '排序',
|
||
publisher_id BIGINT COMMENT '发布人ID',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
INDEX idx_status_sort (status, sort_order),
|
||
INDEX idx_valid_period (valid_from, valid_to)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='公告表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.2 任务表 `task`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| task_no | VARCHAR(32) | 任务编号(全局唯一) | UNIQUE |
|
||
| name | VARCHAR(100) | 任务名称 | NOT NULL |
|
||
| type | VARCHAR(20) | 任务类型:植保/吊运/航拍/巡检/清洗/表演/测绘 | NOT NULL |
|
||
| province | VARCHAR(20) | 省份 | |
|
||
| city | VARCHAR(20) | 城市 | |
|
||
| district | VARCHAR(20) | 区县 | |
|
||
| address | VARCHAR(200) | 详细地址 | |
|
||
| latitude | DECIMAL(10,6) | 纬度坐标 | |
|
||
| longitude | DECIMAL(10,6) | 经度坐标 | |
|
||
| scene_images | JSON | 作业场景图(file_id数组) | |
|
||
| required_count | INT | 需求人数 | DEFAULT 1 |
|
||
| start_time | DATETIME | 开始时间 | NOT NULL |
|
||
| end_time | DATETIME | 结束时间 | |
|
||
| reward | DECIMAL(10,2) | 报酬(元) | NOT NULL |
|
||
| insurance_require | JSON | 保险要求:三者险/飞手险/机身险 | |
|
||
| contact_name | VARCHAR(50) | 联系人姓名 | |
|
||
| contact_phone | VARCHAR(20) | 联系电话 | NOT NULL |
|
||
| remark | TEXT | 备注 | |
|
||
| status | TINYINT | 状态:0草稿 1待接单 2已接单 3执行中 4已完成 5已取消 | DEFAULT 0 |
|
||
| is_premium | TINYINT | 是否优质任务:0否 1是 | DEFAULT 0 |
|
||
| premium_cost | INT | 优质任务积分消耗 | DEFAULT 0 |
|
||
| publisher_id | BIGINT | 发布人ID(关联user.id) | NOT NULL |
|
||
| accepted_pilot_id | BIGINT | 接单飞手ID(关联pilot.id) | |
|
||
| platform_fee | DECIMAL(10,2) | 平台服务费 | DEFAULT 0.00 |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE task (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
task_no VARCHAR(32) NOT NULL COMMENT '任务编号(全局唯一)',
|
||
name VARCHAR(100) NOT NULL COMMENT '任务名称',
|
||
type VARCHAR(20) NOT NULL COMMENT '任务类型:植保/吊运/航拍/巡检/清洗/表演/测绘',
|
||
province VARCHAR(20) COMMENT '省份',
|
||
city VARCHAR(20) COMMENT '城市',
|
||
district VARCHAR(20) COMMENT '区县',
|
||
address VARCHAR(200) COMMENT '详细地址',
|
||
latitude DECIMAL(10,6) COMMENT '纬度坐标',
|
||
longitude DECIMAL(10,6) COMMENT '经度坐标',
|
||
scene_images JSON COMMENT '作业场景图(file_id数组)',
|
||
required_count INT DEFAULT 1 COMMENT '需求人数',
|
||
start_time DATETIME NOT NULL COMMENT '开始时间',
|
||
end_time DATETIME COMMENT '结束时间',
|
||
reward DECIMAL(10,2) NOT NULL COMMENT '报酬(元)',
|
||
insurance_require JSON COMMENT '保险要求:三者险/飞手险/机身险',
|
||
contact_name VARCHAR(50) COMMENT '联系人姓名',
|
||
contact_phone VARCHAR(20) NOT NULL COMMENT '联系电话',
|
||
remark TEXT COMMENT '备注',
|
||
status TINYINT DEFAULT 0 COMMENT '状态:0草稿 1待接单 2已接单 3执行中 4已完成 5已取消',
|
||
is_premium TINYINT DEFAULT 0 COMMENT '是否优质任务:0否 1是',
|
||
premium_cost INT DEFAULT 0 COMMENT '优质任务积分消耗',
|
||
publisher_id BIGINT NOT NULL COMMENT '发布人ID',
|
||
accepted_pilot_id BIGINT COMMENT '接单飞手ID',
|
||
platform_fee DECIMAL(10,2) DEFAULT 0.00 COMMENT '平台服务费',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_task_no (task_no),
|
||
INDEX idx_type_status (type, status),
|
||
INDEX idx_city_status (city, status),
|
||
INDEX idx_publisher (publisher_id),
|
||
INDEX idx_pilot (accepted_pilot_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.3 商家表 `merchant`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| user_id | BIGINT | 关联用户ID | UNIQUE, NOT NULL |
|
||
| name | VARCHAR(100) | 商家名称 | NOT NULL |
|
||
| address | VARCHAR(200) | 商家地址 | |
|
||
| door_image | BIGINT | 门头照片file_id | |
|
||
| license_file_id | BIGINT | 营业执照file_id | |
|
||
| contact_name | VARCHAR(50) | 联系人 | |
|
||
| contact_phone | VARCHAR(20) | 联系电话 | |
|
||
| latitude | DECIMAL(10,6) | 纬度 | |
|
||
| longitude | DECIMAL(10,6) | 经度 | |
|
||
| service_types | JSON | 服务类型数组 | |
|
||
| description | TEXT | 商家简介 | |
|
||
| cert_status | TINYINT | 认证状态:0未认证 1认证中 2已认证 3认证失败 | DEFAULT 0 |
|
||
| cert_time | DATETIME | 认证时间 | |
|
||
| rating | DECIMAL(2,1) | 评分(1.0-5.0) | DEFAULT 5.0 |
|
||
| order_count | INT | 成交订单数 | DEFAULT 0 |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE merchant (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
user_id BIGINT NOT NULL COMMENT '关联用户ID',
|
||
name VARCHAR(100) NOT NULL COMMENT '商家名称',
|
||
address VARCHAR(200) COMMENT '商家地址',
|
||
door_image BIGINT COMMENT '门头照片file_id',
|
||
license_file_id BIGINT COMMENT '营业执照file_id',
|
||
contact_name VARCHAR(50) COMMENT '联系人',
|
||
contact_phone VARCHAR(20) COMMENT '联系电话',
|
||
latitude DECIMAL(10,6) COMMENT '纬度',
|
||
longitude DECIMAL(10,6) COMMENT '经度',
|
||
service_types JSON COMMENT '服务类型数组',
|
||
description TEXT COMMENT '商家简介',
|
||
cert_status TINYINT DEFAULT 0 COMMENT '认证状态:0未认证 1认证中 2已认证 3认证失败',
|
||
cert_time DATETIME COMMENT '认证时间',
|
||
rating DECIMAL(2,1) DEFAULT 5.0 COMMENT '评分(1.0-5.0)',
|
||
order_count INT DEFAULT 0 COMMENT '成交订单数',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_user (user_id),
|
||
INDEX idx_cert_status (cert_status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.4 飞手表 `pilot`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| user_id | BIGINT | 关联用户ID | UNIQUE, NOT NULL |
|
||
| name | VARCHAR(50) | 姓名(实名) | NOT NULL |
|
||
| phone | VARCHAR(20) | 手机号 | NOT NULL |
|
||
| birthday | DATE | 出生年月 | |
|
||
| age | TINYINT | 年龄(自动计算) | |
|
||
| avatar_file_id | BIGINT | 头像file_id | |
|
||
| cert_status | TINYINT | 认证状态:0未认证 1认证中 2已认证 3认证失败 | DEFAULT 0 |
|
||
| cert_time | DATETIME | 认证时间 | |
|
||
| license_type | VARCHAR(20) | CAAC执照类型:AOPA/UTC/ASFC | |
|
||
| license_no | VARCHAR(50) | CAAC执照编号 | |
|
||
| license_file_id | BIGINT | 执照图片file_id | |
|
||
| drone_models | JSON | 可操控机型数组 | |
|
||
| service_cities | JSON | 服务城市数组 | |
|
||
| bio | VARCHAR(200) | 个人简介 | |
|
||
| rating | DECIMAL(2,1) | 评分 | DEFAULT 5.0 |
|
||
| order_count | INT | 完成任务数 | DEFAULT 0 |
|
||
| insurance_expire | DATE | 飞手险到期日 | |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE pilot (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
user_id BIGINT NOT NULL COMMENT '关联用户ID',
|
||
name VARCHAR(50) NOT NULL COMMENT '姓名(实名)',
|
||
phone VARCHAR(20) NOT NULL COMMENT '手机号',
|
||
birthday DATE COMMENT '出生年月',
|
||
age TINYINT COMMENT '年龄(自动计算)',
|
||
avatar_file_id BIGINT COMMENT '头像file_id',
|
||
cert_status TINYINT DEFAULT 0 COMMENT '认证状态:0未认证 1认证中 2已认证 3认证失败',
|
||
cert_time DATETIME COMMENT '认证时间',
|
||
license_type VARCHAR(20) COMMENT 'CAAC执照类型:AOPA/UTC/ASFC',
|
||
license_no VARCHAR(50) COMMENT 'CAAC执照编号',
|
||
license_file_id BIGINT COMMENT '执照图片file_id',
|
||
drone_models JSON COMMENT '可操控机型数组',
|
||
service_cities JSON COMMENT '服务城市数组',
|
||
bio VARCHAR(200) COMMENT '个人简介',
|
||
rating DECIMAL(2,1) DEFAULT 5.0 COMMENT '评分',
|
||
order_count INT DEFAULT 0 COMMENT '完成任务数',
|
||
insurance_expire DATE COMMENT '飞手险到期日',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_user (user_id),
|
||
INDEX idx_cert_status (cert_status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='飞手表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.5 题库表 `exam_bank`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| name | VARCHAR(100) | 题库名称 | NOT NULL |
|
||
| cover_image | BIGINT | 封面图file_id | |
|
||
| description | TEXT | 题库描述 | |
|
||
| question_count | INT | 题目数量 | DEFAULT 0 |
|
||
| difficulty | TINYINT | 难度:1简单 2中等 3困难 | DEFAULT 1 |
|
||
| status | TINYINT | 状态:0禁用 1启用 | DEFAULT 1 |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE exam_bank (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
name VARCHAR(100) NOT NULL COMMENT '题库名称',
|
||
cover_image BIGINT COMMENT '封面图file_id',
|
||
description TEXT COMMENT '题库描述',
|
||
question_count INT DEFAULT 0 COMMENT '题目数量',
|
||
difficulty TINYINT DEFAULT 1 COMMENT '难度:1简单 2中等 3困难',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:0禁用 1启用',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间'
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='题库表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.6 习题表 `exam_question`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| bank_id | BIGINT | 所属题库ID | NOT NULL |
|
||
| content | TEXT | 题目内容 | NOT NULL |
|
||
| options | JSON | 选项数组(含ABCD四选项) | |
|
||
| question_type | TINYINT | 题型:1单选 2多选 3判断 | NOT NULL |
|
||
| answer | VARCHAR(10) | 标准答案(如:A 或 AB) | NOT NULL |
|
||
| explanation | TEXT | 答案解析 | |
|
||
| difficulty | TINYINT | 难度:1简单 2中等 3困难 | DEFAULT 1 |
|
||
| score | TINYINT | 分值(单选/多选) | DEFAULT 5 |
|
||
| sort_order | INT | 排序 | DEFAULT 0 |
|
||
| used_count | INT | 被使用次数 | DEFAULT 0 |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE exam_question (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
bank_id BIGINT NOT NULL COMMENT '所属题库ID',
|
||
content TEXT NOT NULL COMMENT '题目内容',
|
||
options JSON COMMENT '选项数组([{"key":"A","val":"..."},...])',
|
||
question_type TINYINT NOT NULL COMMENT '题型:1单选 2多选 3判断',
|
||
answer VARCHAR(10) NOT NULL COMMENT '标准答案(如:A 或 AB)',
|
||
explanation TEXT COMMENT '答案解析',
|
||
difficulty TINYINT DEFAULT 1 COMMENT '难度:1简单 2中等 3困难',
|
||
score TINYINT DEFAULT 5 COMMENT '分值',
|
||
sort_order INT DEFAULT 0 COMMENT '排序',
|
||
used_count INT DEFAULT 0 COMMENT '被使用次数',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
INDEX idx_bank (bank_id),
|
||
INDEX idx_type (question_type)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='习题表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.7 课程表 `course`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| name | VARCHAR(100) | 课程名称 | NOT NULL |
|
||
| tags | JSON | 标签数组(认知启蒙/技能进阶/创新应用/竞赛辅导) | |
|
||
| category | VARCHAR(20) | 分类 | |
|
||
| target_age | VARCHAR(20) | 适合年龄 | |
|
||
| location | VARCHAR(200) | 上课地点 | |
|
||
| latitude | DECIMAL(10,6) | 纬度 | |
|
||
| longitude | DECIMAL(10,6) | 经度 | |
|
||
| description | TEXT | 课程描述 | |
|
||
| highlights | JSON | 课程亮点(3项) | |
|
||
| duration_desc | VARCHAR(50) | 课时说明 | |
|
||
| capacity_min | INT | 最小人数 | DEFAULT 1 |
|
||
| capacity_max | INT | 最大人数 | DEFAULT 20 |
|
||
| images | JSON | 课程图片file_id数组 | |
|
||
| price | DECIMAL(10,2) | 课程价格 | NOT NULL |
|
||
| merchant_id | BIGINT | 所属商家ID | |
|
||
| status | TINYINT | 状态:0下架 1上架 2已满员 | DEFAULT 1 |
|
||
| view_count | INT | 浏览次数 | DEFAULT 0 |
|
||
| book_count | INT | 已预约人数 | DEFAULT 0 |
|
||
| rating | DECIMAL(2,1) | 课程评分 | DEFAULT 5.0 |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE course (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
name VARCHAR(100) NOT NULL COMMENT '课程名称',
|
||
tags JSON COMMENT '标签数组(认知启蒙/技能进阶/创新应用/竞赛辅导)',
|
||
category VARCHAR(20) COMMENT '分类',
|
||
target_age VARCHAR(20) COMMENT '适合年龄',
|
||
location VARCHAR(200) COMMENT '上课地点',
|
||
latitude DECIMAL(10,6) COMMENT '纬度',
|
||
longitude DECIMAL(10,6) COMMENT '经度',
|
||
description TEXT COMMENT '课程描述',
|
||
highlights JSON COMMENT '课程亮点(3项)',
|
||
duration_desc VARCHAR(50) COMMENT '课时说明',
|
||
capacity_min INT DEFAULT 1 COMMENT '最小人数',
|
||
capacity_max INT DEFAULT 20 COMMENT '最大人数',
|
||
images JSON COMMENT '课程图片file_id数组',
|
||
price DECIMAL(10,2) NOT NULL COMMENT '课程价格',
|
||
merchant_id BIGINT COMMENT '所属商家ID',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:0下架 1上架 2已满员',
|
||
view_count INT DEFAULT 0 COMMENT '浏览次数',
|
||
book_count INT DEFAULT 0 COMMENT '已预约人数',
|
||
rating DECIMAL(2,1) DEFAULT 5.0 COMMENT '课程评分',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
INDEX idx_category (category),
|
||
INDEX idx_status (status),
|
||
INDEX idx_merchant (merchant_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.8 用户表 `user`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| openid | VARCHAR(64) | 微信openId | UNIQUE, NOT NULL |
|
||
| nickname | VARCHAR(50) | 用户昵称 | |
|
||
| avatar_url | VARCHAR(500) | 头像URL | |
|
||
| phone | VARCHAR(20) | 手机号 | |
|
||
| gender | TINYINT | 性别:0未知 1男 2女 | DEFAULT 0 |
|
||
| bio | VARCHAR(200) | 个人简介 | |
|
||
| role_type | TINYINT | 角色类型:1普通用户 2飞手 3商家 4机构 | DEFAULT 1 |
|
||
| points | INT | 积分余额 | DEFAULT 0 |
|
||
| is_pilot_bound | TINYINT | 是否已绑定飞手身份 | DEFAULT 0 |
|
||
| is_merchant_bound | TINYINT | 是否已绑定商家身份 | DEFAULT 0 |
|
||
| pilot_id | BIGINT | 关联飞手ID | |
|
||
| merchant_id | BIGINT | 关联商家ID | |
|
||
| status | TINYINT | 账号状态:0禁用 1正常 | DEFAULT 1 |
|
||
| last_login_at | DATETIME | 最后登录时间 | |
|
||
| created_at | DATETIME | 注册时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE `user` (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
openid VARCHAR(64) NOT NULL COMMENT '微信openId',
|
||
nickname VARCHAR(50) COMMENT '用户昵称',
|
||
avatar_url VARCHAR(500) COMMENT '头像URL',
|
||
phone VARCHAR(20) COMMENT '手机号',
|
||
gender TINYINT DEFAULT 0 COMMENT '性别:0未知 1男 2女',
|
||
bio VARCHAR(200) COMMENT '个人简介',
|
||
role_type TINYINT DEFAULT 1 COMMENT '角色类型:1普通用户 2飞手 3商家 4机构',
|
||
points INT DEFAULT 0 COMMENT '积分余额',
|
||
is_pilot_bound TINYINT DEFAULT 0 COMMENT '是否已绑定飞手身份',
|
||
is_merchant_bound TINYINT DEFAULT 0 COMMENT '是否已绑定商家身份',
|
||
pilot_id BIGINT COMMENT '关联飞手ID',
|
||
merchant_id BIGINT COMMENT '关联商家ID',
|
||
status TINYINT DEFAULT 1 COMMENT '账号状态:0禁用 1正常',
|
||
last_login_at DATETIME COMMENT '最后登录时间',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_openid (openid),
|
||
INDEX idx_phone (phone)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.9 任务执行记录表 `task_record`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| task_id | BIGINT | 任务ID | NOT NULL |
|
||
| user_id | BIGINT | 关联用户ID | NOT NULL |
|
||
| pilot_id | BIGINT | 接单飞手ID | |
|
||
| merchant_id | BIGINT | 发单商家ID | |
|
||
| status | TINYINT | 状态:1待接单 2已接单 3执行中 4已完成 5已取消 | DEFAULT 1 |
|
||
| apply_time | DATETIME | 申请/接单时间 | |
|
||
| accept_time | DATETIME | 飞手接单时间 | |
|
||
| start_time | DATETIME | 实际开始时间 | |
|
||
| finish_time | DATETIME | 完成时间 | |
|
||
| cancel_time | DATETIME | 取消时间 | |
|
||
| cancel_reason | VARCHAR(200) | 取消原因 | |
|
||
| insurance_verified | TINYINT | 保险是否校验:0否 1是 | DEFAULT 0 |
|
||
| actual_reward | DECIMAL(10,2) | 实际报酬 | |
|
||
| platform_fee | DECIMAL(10,2) | 平台服务费 | |
|
||
| rating | TINYINT | 用户评分(1-5) | |
|
||
| rating_comment | VARCHAR(200) | 评价内容 | |
|
||
| created_at | DATETIME | 创建时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE task_record (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
task_id BIGINT NOT NULL COMMENT '任务ID',
|
||
user_id BIGINT NOT NULL COMMENT '关联用户ID',
|
||
pilot_id BIGINT COMMENT '接单飞手ID',
|
||
merchant_id BIGINT COMMENT '发单商家ID',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:1待接单 2已接单 3执行中 4已完成 5已取消',
|
||
apply_time DATETIME COMMENT '申请/接单时间',
|
||
accept_time DATETIME COMMENT '飞手接单时间',
|
||
start_time DATETIME COMMENT '实际开始时间',
|
||
finish_time DATETIME COMMENT '完成时间',
|
||
cancel_time DATETIME COMMENT '取消时间',
|
||
cancel_reason VARCHAR(200) COMMENT '取消原因',
|
||
insurance_verified TINYINT DEFAULT 0 COMMENT '保险是否校验:0否 1是',
|
||
actual_reward DECIMAL(10,2) COMMENT '实际报酬',
|
||
platform_fee DECIMAL(10,2) COMMENT '平台服务费',
|
||
rating TINYINT COMMENT '用户评分(1-5)',
|
||
rating_comment VARCHAR(200) COMMENT '评价内容',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_task_user (task_id, user_id),
|
||
INDEX idx_user_status (user_id, status),
|
||
INDEX idx_pilot_status (pilot_id, status)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='任务执行记录表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.10 文件表 `file`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| file_name | VARCHAR(200) | 原始文件名 | NOT NULL |
|
||
| file_key | VARCHAR(200) | 存储路径/OSS Key | NOT NULL |
|
||
| file_suffix | VARCHAR(10) | 文件后缀 | |
|
||
| file_url | VARCHAR(500) | 访问URL | |
|
||
| file_size | BIGINT | 文件大小(字节) | |
|
||
| file_type | VARCHAR(20) | 类型:营业执照/图片/飞手执照/其他 | |
|
||
| uploader_id | BIGINT | 上传用户ID | |
|
||
| status | TINYINT | 状态:0禁用 1正常 | DEFAULT 1 |
|
||
| created_at | DATETIME | 上传时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE `file` (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
file_name VARCHAR(200) NOT NULL COMMENT '原始文件名',
|
||
file_key VARCHAR(200) NOT NULL COMMENT '存储路径/OSS Key',
|
||
file_suffix VARCHAR(10) COMMENT '文件后缀',
|
||
file_url VARCHAR(500) COMMENT '访问URL',
|
||
file_size BIGINT COMMENT '文件大小(字节)',
|
||
file_type VARCHAR(20) COMMENT '类型:营业执照/图片/飞手执照/其他',
|
||
uploader_id BIGINT COMMENT '上传用户ID',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:0禁用 1正常',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '上传时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
INDEX idx_type (file_type),
|
||
INDEX idx_uploader (uploader_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='文件表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.11 课程预约表 `course_appointment`
|
||
|
||
| 字段 | 类型 | 说明 | 约束 |
|
||
|------|------|------|------|
|
||
| id | BIGINT | 主键 | PK, AUTO_INCREMENT |
|
||
| user_id | BIGINT | 用户ID | NOT NULL |
|
||
| course_id | BIGINT | 课程ID | NOT NULL |
|
||
| merchant_id | BIGINT | 商家ID | |
|
||
| appointment_date | DATETIME | 预约时间 | NOT NULL |
|
||
| person_count | INT | 预约人数 | DEFAULT 1 |
|
||
| contact_name | VARCHAR(50) | 联系人姓名 | |
|
||
| contact_phone | VARCHAR(20) | 联系人电话 | |
|
||
| remark | VARCHAR(200) | 备注 | |
|
||
| status | TINYINT | 状态:1已预约 2已确认 3已完成 4已取消 | DEFAULT 1 |
|
||
| confirm_time | DATETIME | 商家确认时间 | |
|
||
| cancel_time | DATETIME | 取消时间 | |
|
||
| cancel_reason | VARCHAR(200) | 取消原因 | |
|
||
| amount | DECIMAL(10,2) | 支付金额 | DEFAULT 0.00 |
|
||
| pay_status | TINYINT | 支付状态:0未支付 1已支付 2已退款 | DEFAULT 0 |
|
||
| created_at | DATETIME | 预约时间 | DEFAULT CURRENT_TIMESTAMP |
|
||
| updated_at | DATETIME | 更新时间 | |
|
||
| deleted_at | DATETIME | 软删除时间 | |
|
||
|
||
```sql
|
||
CREATE TABLE course_appointment (
|
||
id BIGINT PRIMARY KEY AUTO_INCREMENT COMMENT '主键',
|
||
user_id BIGINT NOT NULL COMMENT '用户ID',
|
||
course_id BIGINT NOT NULL COMMENT '课程ID',
|
||
merchant_id BIGINT COMMENT '商家ID',
|
||
appointment_date DATETIME NOT NULL COMMENT '预约时间',
|
||
person_count INT DEFAULT 1 COMMENT '预约人数',
|
||
contact_name VARCHAR(50) COMMENT '联系人姓名',
|
||
contact_phone VARCHAR(20) COMMENT '联系人电话',
|
||
remark VARCHAR(200) COMMENT '备注',
|
||
status TINYINT DEFAULT 1 COMMENT '状态:1已预约 2已确认 3已完成 4已取消',
|
||
confirm_time DATETIME COMMENT '商家确认时间',
|
||
cancel_time DATETIME COMMENT '取消时间',
|
||
cancel_reason VARCHAR(200) COMMENT '取消原因',
|
||
amount DECIMAL(10,2) DEFAULT 0.00 COMMENT '支付金额',
|
||
pay_status TINYINT DEFAULT 0 COMMENT '支付状态:0未支付 1已支付 2已退款',
|
||
created_at DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '预约时间',
|
||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
|
||
deleted_at DATETIME DEFAULT NULL COMMENT '软删除时间',
|
||
UNIQUE KEY uk_user_course_date (user_id, course_id, appointment_date),
|
||
INDEX idx_course_status (course_id, status),
|
||
INDEX idx_merchant (merchant_id)
|
||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='课程预约表';
|
||
```
|
||
|
||
---
|
||
|
||
### 11.12 表间关系(ER)
|
||
|
||
```
|
||
user ─────┬── 1:1 pilot(飞手身份)
|
||
└── 1:1 merchant(商家身份)
|
||
└── 1:N task_record(我的任务)
|
||
└── 1:N course_appointment(课程预约)
|
||
|
||
pilot ────── N:1 task_record(接单飞手)
|
||
merchant ─── N:1 task_record(发单商家)
|
||
N:1 course(商家开课)
|
||
|
||
task ──────── 1:1 task_record(任务→执行记录)
|
||
course ────── 1:N course_appointment(课程→预约)
|
||
|
||
file ──────── N:1 user(上传者)
|
||
N:1 pilot(执照图片)
|
||
N:1 merchant(营业执照)
|
||
N:1 task(作业场景图)
|
||
N:1 course(课程图片)
|
||
|
||
exam_bank ── 1:N exam_question(题库→习题)
|
||
```
|