价值观、发展历程和团队信息
- 新增 merchant/apply.html 页面,提供商家入驻申请表单 - 添加 .idea 目录下的配置文件,用于项目管理和开发环境设置
This commit is contained in:
475
docs/architecture.md
Normal file
475
docs/architecture.md
Normal file
@@ -0,0 +1,475 @@
|
||||
# 结伴客系统架构文档
|
||||
|
||||
## 1. 架构图
|
||||
|
||||
```
|
||||
+------------------+ +------------+ +------------------+
|
||||
| 微信小程序 | | | | |
|
||||
| (uni-app) | --> | API网关 | --> | 后端服务 |
|
||||
+------------------+ | | | (Node.js+Express)|
|
||||
+------------+ | |
|
||||
+------------------+
|
||||
|
|
||||
+-------+-------+
|
||||
| |
|
||||
+-------v-----+ +-----v-------+
|
||||
| MySQL数据库 | | Redis缓存 |
|
||||
+-------------+ +-------------+
|
||||
|
|
||||
+-------v-------+
|
||||
| RabbitMQ消息队列 |
|
||||
+-----------------+
|
||||
|
||||
+------------------+
|
||||
| 后台管理系统 |
|
||||
| (Vue.js 3) |
|
||||
+------------------+
|
||||
|
||||
+------------------+
|
||||
| 官网系统 |
|
||||
| (HTML5+Bootstrap) |
|
||||
+------------------+
|
||||
```
|
||||
|
||||
## 2. 项目结构
|
||||
|
||||
```
|
||||
结伴客项目 (根目录)
|
||||
├── mini-program // 微信小程序 (uni-app)
|
||||
│ ├── pages
|
||||
│ │ ├── user // 用户相关页面
|
||||
│ │ │ ├── login // 登录页面
|
||||
│ │ │ ├── register // 注册页面
|
||||
│ │ │ ├── profile // 个人主页
|
||||
│ │ │ └── settings // 设置页面
|
||||
│ │ ├── merchant // 商家相关页面
|
||||
│ │ │ ├── register // 商家注册
|
||||
│ │ │ ├── profile // 商家主页
|
||||
│ │ │ └── dashboard // 商家控制台
|
||||
│ │ ├── travel // 旅行结伴页面
|
||||
│ │ │ ├── plan // 旅行计划
|
||||
│ │ │ ├── search // 搜索结伴
|
||||
│ │ │ └── activities // 其他活动
|
||||
│ │ ├── animal // 动物认领页面
|
||||
│ │ │ ├── list // 动物列表
|
||||
│ │ │ ├── detail // 动物详情
|
||||
│ │ │ └── claim // 认领流程
|
||||
│ │ ├── social // 社交互动页面
|
||||
│ │ │ ├── messages // 消息聊天
|
||||
│ │ │ └── feed // 动态分享
|
||||
│ │ ├── flower // 送花服务页面
|
||||
│ │ │ ├── products // 鲜花产品
|
||||
│ │ │ └── orders // 订单管理
|
||||
│ │ └── promotion // 推广奖励页面
|
||||
│ │ ├── invite // 邀请推广
|
||||
│ │ └── rewards // 奖励中心
|
||||
│ ├── components // 可复用组件
|
||||
│ │ ├── common // 通用组件
|
||||
│ │ ├── user // 用户相关组件
|
||||
│ │ ├── travel // 旅行相关组件
|
||||
│ │ ├── animal // 动物相关组件
|
||||
│ │ ├── social // 社交相关组件
|
||||
│ │ ├── merchant // 商家相关组件
|
||||
│ │ └── flower // 鲜花相关组件
|
||||
│ ├── utils // 工具函数
|
||||
│ │ ├── request // 网络请求封装
|
||||
│ │ ├── auth // 认证相关工具
|
||||
│ │ ├── storage // 存储相关工具
|
||||
│ │ └── helpers // 辅助函数
|
||||
│ ├── static // 静态资源
|
||||
│ │ ├── images // 图片资源
|
||||
│ │ └── styles // 样式文件
|
||||
│ └── store // 状态管理
|
||||
│ ├── modules // 模块化状态
|
||||
│ │ ├── user // 用户状态
|
||||
│ │ ├── travel // 旅行状态
|
||||
│ │ ├── animal // 动物状态
|
||||
│ │ ├── social // 社交状态
|
||||
│ │ ├── merchant // 商家状态
|
||||
│ │ ├── flower // 鲜花状态
|
||||
│ │ └── promotion // 推广状态
|
||||
│ └── index.js // 状态管理入口
|
||||
├── admin-system // 后台管理系统 (Vue.js 3 + TypeScript + Ant Design Vue + Pinia)
|
||||
│ ├── public // 静态资源
|
||||
│ ├── src
|
||||
│ │ ├── api // API接口
|
||||
│ │ │ ├── user // 用户相关接口
|
||||
│ │ │ ├── merchant // 商家相关接口
|
||||
│ │ │ ├── travel // 旅行相关接口
|
||||
│ │ │ ├── animal // 动物相关接口
|
||||
│ │ │ ├── order // 订单相关接口
|
||||
│ │ │ ├── promotion // 推广相关接口
|
||||
│ │ │ └── system // 系统管理接口
|
||||
│ │ ├── assets // 静态资源
|
||||
│ │ ├── components // 公共组件
|
||||
│ │ │ ├── layout // 布局组件
|
||||
│ │ │ ├── common // 通用组件
|
||||
│ │ │ ├── user // 用户相关组件
|
||||
│ │ │ ├── merchant // 商家相关组件
|
||||
│ │ │ ├── travel // 旅行相关组件
|
||||
│ │ │ ├── animal // 动物相关组件
|
||||
│ │ │ ├── order // 订单相关组件
|
||||
│ │ │ ├── promotion // 推广相关组件
|
||||
│ │ │ └── dashboard // 仪表板组件
|
||||
│ │ ├── composables // 组合式函数
|
||||
│ │ ├── directives // 自定义指令
|
||||
│ │ ├── layouts // 页面布局
|
||||
│ │ │ ├── default.vue // 默认布局
|
||||
│ │ │ ├── auth.vue // 认证布局
|
||||
│ │ │ └── empty.vue // 空白布局
|
||||
│ │ ├── locales // 国际化资源
|
||||
│ │ │ ├── zh-CN.json // 中文语言包
|
||||
│ │ │ └── en-US.json // 英文语言包
|
||||
│ │ ├── pages // 页面视图
|
||||
│ │ │ ├── dashboard // 仪表板页面
|
||||
│ │ │ ├── user // 用户管理页面
|
||||
│ │ │ ├── merchant // 商家管理页面
|
||||
│ │ │ ├── travel // 旅行管理页面
|
||||
│ │ │ ├── animal // 动物管理页面
|
||||
│ │ │ ├── order // 订单管理页面
|
||||
│ │ │ ├── promotion // 推广管理页面
|
||||
│ │ │ ├── system // 系统管理页面
|
||||
│ │ │ ├── login.vue // 登录页面
|
||||
│ │ │ └── register.vue // 注册页面
|
||||
│ │ ├── plugins // 插件
|
||||
│ │ ├── router // 路由配置
|
||||
│ │ │ ├── modules // 模块路由
|
||||
│ │ │ │ ├── user.ts // 用户路由
|
||||
│ │ │ │ ├── merchant.ts // 商家路由
|
||||
│ │ │ │ ├── travel.ts // 旅行路由
|
||||
│ │ │ │ ├── animal.ts // 动物路由
|
||||
│ │ │ │ ├── order.ts // 订单路由
|
||||
│ │ │ │ ├── promotion.ts // 推广路由
|
||||
│ │ │ │ └── system.ts // 系统路由
|
||||
│ │ │ └── index.ts // 路由入口
|
||||
│ │ ├── stores // 状态管理
|
||||
│ │ │ ├── modules // 模块状态
|
||||
│ │ │ │ ├── user.ts // 用户状态
|
||||
│ │ │ │ ├── merchant.ts // 商家状态
|
||||
│ │ │ │ ├── travel.ts // 旅行状态
|
||||
│ │ │ │ ├── animal.ts // 动物状态
|
||||
│ │ │ │ ├── order.ts // 订单状态
|
||||
│ │ │ │ ├── promotion.ts // 推广状态
|
||||
│ │ │ │ └── system.ts // 系统状态
|
||||
│ │ │ └── index.ts // 状态管理入口
|
||||
│ │ ├── styles // 样式文件
|
||||
│ │ ├── types // TypeScript类型定义
|
||||
│ │ ├── utils // 工具函数
|
||||
│ │ │ ├── request.ts // 请求封装
|
||||
│ │ │ ├── auth.ts // 认证工具
|
||||
│ │ │ ├── storage.ts // 存储工具
|
||||
│ │ │ ├── format.ts // 格式化工具
|
||||
│ │ │ └── validate.ts // 验证工具
|
||||
│ │ └── App.vue // 根组件
|
||||
│ │ └── main.ts // 入口文件
|
||||
│ ├── tests // 测试目录
|
||||
│ ├── .env // 环境配置
|
||||
│ ├── .env.development // 开发环境配置
|
||||
│ ├── .env.production // 生产环境配置
|
||||
│ ├── index.html // HTML模板
|
||||
│ ├── tsconfig.json // TypeScript配置
|
||||
│ ├── vite.config.ts // 构建配置
|
||||
│ └── package.json // 依赖配置
|
||||
├── website // 官网系统 (HTML5 + Bootstrap)
|
||||
│ ├── index.html // 首页
|
||||
│ ├── about.html // 关于我们
|
||||
│ ├── contact.html // 联系我们
|
||||
│ ├── merchant // 商家合作页面
|
||||
│ │ ├── index.html // 商家合作首页
|
||||
│ │ ├── policy.html // 合作政策
|
||||
│ │ └── apply.html // 入驻申请
|
||||
│ ├── case.html // 案例展示
|
||||
│ ├── css // 样式文件
|
||||
│ │ ├── bootstrap.min.css // Bootstrap样式
|
||||
│ │ └── custom.css // 自定义样式
|
||||
│ ├── js // JavaScript文件
|
||||
│ │ ├── bootstrap.min.js // Bootstrap脚本
|
||||
│ │ └── custom.js // 自定义脚本
|
||||
│ ├── images // 图片资源
|
||||
│ └── vendor // 第三方库
|
||||
├── backend // 后端接口服务 (Node.js + Express)
|
||||
│ ├── src
|
||||
│ │ ├── controllers // 控制器层
|
||||
│ │ │ ├── user // 用户控制器
|
||||
│ │ │ ├── merchant // 商家控制器
|
||||
│ │ │ ├── travel // 旅行控制器
|
||||
│ │ │ ├── animal // 动物控制器
|
||||
│ │ │ ├── social // 社交控制器
|
||||
│ │ │ ├── flower // 鲜花控制器
|
||||
│ │ │ ├── promotion // 推广控制器
|
||||
│ │ │ └── auth // 认证控制器
|
||||
│ │ ├── services // 业务逻辑层
|
||||
│ │ │ ├── user // 用户服务
|
||||
│ │ │ ├── merchant // 商家服务
|
||||
│ │ │ ├── travel // 旅行服务
|
||||
│ │ │ ├── animal // 动物服务
|
||||
│ │ │ ├── social // 社交服务
|
||||
│ │ │ ├── flower // 鲜花服务
|
||||
│ │ │ ├── promotion // 推广服务
|
||||
│ │ │ └── auth // 认证服务
|
||||
│ │ ├── models // 数据模型层
|
||||
│ │ │ ├── user.js // 用户模型
|
||||
│ │ │ ├── merchant.js // 商家模型
|
||||
│ │ │ ├── travelPlan.js // 旅行计划模型
|
||||
│ │ │ ├── animal.js // 动物模型
|
||||
│ │ │ ├── claim.js // 认领模型
|
||||
│ │ │ ├── message.js // 消息模型
|
||||
│ │ │ ├── activity.js // 活动模型
|
||||
│ │ │ ├── product.js // 商品模型
|
||||
│ │ │ ├── order.js // 订单模型
|
||||
│ │ │ ├── review.js // 评价模型
|
||||
│ │ │ └── reward.js // 奖励模型
|
||||
│ │ ├── routes // 路由定义
|
||||
│ │ │ ├── api // API路由
|
||||
│ │ │ │ ├── v1 // v1版本API
|
||||
│ │ │ │ │ ├── user.js // 用户相关API
|
||||
│ │ │ │ │ ├── merchant.js // 商家相关API
|
||||
│ │ │ │ │ ├── travel.js // 旅行相关API
|
||||
│ │ │ │ │ ├── animal.js // 动物相关API
|
||||
│ │ │ │ │ ├── social.js // 社交相关API
|
||||
│ │ │ │ │ ├── flower.js // 鲜花相关API
|
||||
│ │ │ │ │ └── promotion.js // 推广相关API
|
||||
│ │ │ │ └── index.js // API路由入口
|
||||
│ │ │ └── web // Web路由(管理后台)
|
||||
│ │ ├── middleware // 中间件
|
||||
│ │ │ ├── auth // 认证中间件
|
||||
│ │ │ ├── validation // 验证中间件
|
||||
│ │ │ ├── rateLimit // 限流中间件
|
||||
│ │ │ └── error // 错误处理中间件
|
||||
│ │ ├── utils // 工具函数
|
||||
│ │ │ ├── database // 数据库工具
|
||||
│ │ │ ├── logger // 日志工具
|
||||
│ │ │ ├── helpers // 辅助函数
|
||||
│ │ │ └── constants // 常量定义
|
||||
│ │ ├── config // 配置文件
|
||||
│ │ │ ├── database.js // 数据库配置
|
||||
│ │ │ ├── redis.js // Redis配置
|
||||
│ │ │ ├── rabbitmq.js // RabbitMQ配置
|
||||
│ │ │ └── app.js // 应用配置
|
||||
│ │ └── app.js // 应用入口
|
||||
│ ├── tests // 测试目录
|
||||
│ │ ├── unit // 单元测试
|
||||
│ │ └── integration // 集成测试
|
||||
│ ├── docs // 文档目录
|
||||
│ └── package.json // 依赖配置
|
||||
└── docs // 项目文档
|
||||
├── requirements.md // 需求文档
|
||||
├── architecture.md // 架构文档
|
||||
├── detailed_design.md // 详细设计文档
|
||||
└── development_plan.md // 开发计划文档
|
||||
```
|
||||
|
||||
|
||||
## 2. 技术栈选型
|
||||
|
||||
### 2.1 后端技术栈
|
||||
- 编程语言:Node.js (TypeScript)
|
||||
- 框架:Express.js
|
||||
- API规范:RESTful API
|
||||
- 容器化:Docker
|
||||
- 容器编排:Kubernetes
|
||||
- API网关:Kong
|
||||
- 监控:Prometheus + Grafana
|
||||
- 日志:ELK Stack (Elasticsearch, Logstash, Kibana)
|
||||
|
||||
### 2.2 前端技术栈
|
||||
- 小程序框架:uni-app
|
||||
- 开发语言:JavaScript/TypeScript
|
||||
- UI框架:WeUI
|
||||
- 状态管理:Redux
|
||||
- 构建工具:Webpack
|
||||
- 包管理:npm/yarn
|
||||
|
||||
### 2.3 官网技术栈
|
||||
- 核心技术:HTML5 + Bootstrap
|
||||
- 开发语言:JavaScript
|
||||
- 构建工具:Webpack
|
||||
- 包管理:npm/yarn
|
||||
|
||||
### 2.3 数据库选型
|
||||
- 主数据库:MySQL 8.0
|
||||
|
||||
### 2.4 缓存选型
|
||||
- 分布式缓存:Redis Cluster
|
||||
- 本地缓存:Node.js内置缓存
|
||||
|
||||
### 2.5 消息队列选型
|
||||
- 消息中间件:RabbitMQ
|
||||
- 实时消息推送:WebSocket
|
||||
|
||||
### 2.6 选型理由与对比分析
|
||||
|
||||
#### 后端技术栈选型理由
|
||||
|
||||
**Node.js (TypeScript) + Express.js**
|
||||
- **优势**:
|
||||
- 高性能:Node.js基于事件驱动和非阻塞I/O模型,适合高并发场景
|
||||
- 生态丰富:npm生态系统庞大,可快速集成各种第三方库
|
||||
- 全栈统一:前后端均可使用JavaScript/TypeScript,降低开发成本
|
||||
- 轻量级:Express.js是一个轻量级的Web框架,灵活性高
|
||||
- **劣势**:
|
||||
- CPU密集型任务处理能力较弱
|
||||
- 回调地狱问题(TypeScript可有效缓解)
|
||||
|
||||
#### 前端技术栈选型理由
|
||||
|
||||
**uni-app**
|
||||
- **优势**:
|
||||
- 一套代码多端运行:可同时发布到iOS、Android、H5、以及各种小程序平台
|
||||
- 开发生态:基于Vue.js,学习成本低,社区活跃
|
||||
- 性能优化:接近原生应用的性能体验
|
||||
- **劣势**:
|
||||
- 平台限制:某些平台特定功能需要特殊处理
|
||||
- 复杂度:多端兼容可能带来额外的复杂性
|
||||
|
||||
#### 官网技术栈选型理由
|
||||
|
||||
**HTML5 + Bootstrap**
|
||||
- **优势**:
|
||||
- 简单易用:技术门槛低,开发效率高
|
||||
- 兼容性好:Bootstrap提供了良好的浏览器兼容性
|
||||
- 响应式设计:Bootstrap内置响应式布局,适配各种设备
|
||||
- 社区活跃:Bootstrap拥有庞大的社区和丰富的组件
|
||||
- **劣势**:
|
||||
- 定制性相对较弱:需要额外工作来实现独特的设计效果
|
||||
- 文件体积:Bootstrap框架本身会增加页面加载体积
|
||||
|
||||
#### 数据库选型理由
|
||||
|
||||
**MySQL 8.0**
|
||||
- **优势**:
|
||||
- 成熟稳定:关系型数据库,事务支持完善
|
||||
- 生态丰富:社区活跃,文档齐全
|
||||
- 性能优化:MySQL 8.0在性能方面有显著提升
|
||||
- **劣势**:
|
||||
- 水平扩展性相对较弱
|
||||
- 复杂查询性能可能不如专门的分析型数据库
|
||||
|
||||
#### 缓存选型理由
|
||||
|
||||
**Redis Cluster**
|
||||
- **优势**:
|
||||
- 高性能:内存数据库,读写速度极快
|
||||
- 分布式支持:Redis Cluster提供高可用和水平扩展能力
|
||||
- 丰富数据结构:支持字符串、哈希、列表、集合等多种数据结构
|
||||
- **劣势**:
|
||||
- 内存成本:数据存储在内存中,成本较高
|
||||
- 持久化性能:持久化操作可能影响性能
|
||||
|
||||
#### 消息队列选型理由
|
||||
|
||||
**RabbitMQ**
|
||||
- **优势**:
|
||||
- 成熟稳定:经过多年发展,稳定性好
|
||||
- 协议支持:支持多种消息协议
|
||||
- 灵活路由:支持多种消息路由模式
|
||||
- **劣势**:
|
||||
- 吞吐量:相比Kafka等大数据消息队列,吞吐量较低
|
||||
- Erlang语言:维护和调优需要掌握Erlang语言
|
||||
|
||||
**WebSocket**
|
||||
- **优势**:
|
||||
- 实时性:全双工通信,实时性好
|
||||
- 节省资源:相比轮询,节省网络资源
|
||||
- **劣势**:
|
||||
- 连接管理:需要处理连接断开重连等问题
|
||||
- 浏览器兼容性:老旧浏览器支持不好
|
||||
|
||||
## 3. 部署视图
|
||||
|
||||
```
|
||||
外网:
|
||||
├── uni-app前端用户 --- HTTPS --> API网关
|
||||
├── 官网用户 --- HTTPS --> Nginx反向代理 --> 官网系统
|
||||
└── 第三方支付平台 <-- 支付回调 --- 后端服务
|
||||
|
||||
腾讯云服务器:
|
||||
├── Nginx反向代理 --> 官网系统
|
||||
│ ├── 静态资源服务
|
||||
│ └── SSR渲染服务 (Nuxt.js)
|
||||
├── API网关 --> 后端服务
|
||||
├── 后端服务 --> MySQL数据库
|
||||
├── 后端服务 --> Redis缓存
|
||||
├── 后端服务 --> RabbitMQ消息队列
|
||||
└── 后端服务 --监控--> Prometheus监控 --> Grafana
|
||||
|--> ELK Stack
|
||||
```
|
||||
|
||||
### 3.1 部署环境
|
||||
- 云服务提供商:腾讯云
|
||||
- 服务器配置:4台4核8GB服务器组成Kubernetes集群
|
||||
- 负载均衡:腾讯云负载均衡CLB
|
||||
- SSL证书:腾讯云SSL证书服务
|
||||
- 域名解析:腾讯云DNS解析
|
||||
- 对象存储:腾讯云COS(用于存储图片、视频等静态资源)
|
||||
- CDN加速:腾讯云CDN(用于加速静态资源访问)
|
||||
- 反向代理:Nginx
|
||||
- 静态资源服务器:Nginx
|
||||
|
||||
### 3.2 部署流程
|
||||
1. 代码提交到Git仓库触发CI/CD流水线
|
||||
2. 通过Docker构建服务镜像并推送到镜像仓库
|
||||
3. Kubernetes从镜像仓库拉取镜像并部署服务
|
||||
4. 配置健康检查和自动扩缩容策略
|
||||
5. 配置监控和日志收集系统
|
||||
6. 配置域名解析和SSL证书
|
||||
7. 配置Nginx反向代理和静态资源服务器
|
||||
|
||||
### 3.3 备份与灾备
|
||||
- 数据库每日自动备份到COS
|
||||
- 关键服务配置文件版本化管理
|
||||
- 多可用区部署实现高可用
|
||||
|
||||
## 4. 风险分析与应对策略
|
||||
|
||||
### 4.1 技术风险
|
||||
|
||||
#### 系统性能瓶颈
|
||||
- **风险描述**:随着用户量增长,系统可能面临性能瓶颈,特别是在高并发场景下。
|
||||
- **应对策略**:
|
||||
- 使用Redis缓存热点数据,减少数据库访问压力
|
||||
- 对数据库进行读写分离和分库分表
|
||||
- 使用CDN加速静态资源访问
|
||||
- 实施自动扩缩容策略,根据负载动态调整服务实例数量
|
||||
|
||||
#### 数据安全风险
|
||||
- **风险描述**:系统涉及用户个人信息、支付信息等敏感数据,存在数据泄露风险。
|
||||
- **应对策略**:
|
||||
- 对敏感数据进行加密存储(AES/RSA算法)
|
||||
- 实施严格的访问控制和身份认证机制
|
||||
- 定期进行安全审计和渗透测试
|
||||
- 遵循GDPR等数据保护法规要求
|
||||
|
||||
### 4.2 业务风险
|
||||
|
||||
#### 用户增长压力
|
||||
- **风险描述**:产品上线后可能面临用户快速增长的压力,对系统稳定性提出挑战。
|
||||
- **应对策略**:
|
||||
- 提前进行压力测试,评估系统承载能力
|
||||
- 设计可水平扩展的架构,支持快速扩容
|
||||
- 制定限流和降级策略,保证核心功能稳定运行
|
||||
|
||||
#### 商家服务质量风险
|
||||
- **风险描述**:商家用户提供的服务质量和用户体验直接影响平台声誉。
|
||||
- **应对策略**:
|
||||
- 建立商家资质审核机制
|
||||
- 实施用户评价体系,公开服务评价
|
||||
- 建立投诉处理机制,及时处理用户反馈
|
||||
- 对低质量商家实施警告、限流或清退措施
|
||||
|
||||
### 4.3 运维风险
|
||||
|
||||
#### 系统监控不足
|
||||
- **风险描述**:缺乏有效的监控可能导致问题发现不及时,影响用户体验。
|
||||
- **应对策略**:
|
||||
- 建立全方位监控体系,包括基础设施、应用性能、业务指标等
|
||||
- 设置合理的告警阈值和通知机制
|
||||
- 定期审查和优化监控策略
|
||||
|
||||
#### 故障恢复能力
|
||||
- **风险描述**:系统故障可能导致服务中断,影响业务连续性。
|
||||
- **应对策略**:
|
||||
- 制定详细的应急预案和故障恢复流程
|
||||
- 定期进行故障演练,验证恢复能力
|
||||
- 实施多可用区部署,提高容灾能力
|
||||
- 建立数据库备份和恢复机制
|
||||
827
docs/detailed_design.md
Normal file
827
docs/detailed_design.md
Normal file
@@ -0,0 +1,827 @@
|
||||
# 结伴客系统详细设计文档
|
||||
|
||||
## 1. 数据库设计
|
||||
|
||||
### 1.1 ER图
|
||||
|
||||
```mermaid
|
||||
erDiagram
|
||||
USERS ||--o{ TRAVEL_PLANS : creates
|
||||
USERS ||--o{ ANIMAL_CLAIMS : claims
|
||||
USERS ||--o{ MESSAGES : sends
|
||||
USERS ||--o{ ORDERS : places
|
||||
USERS ||--o{ REVIEWS : writes
|
||||
|
||||
MERCHANTS ||--o{ PRODUCTS : sells
|
||||
MERCHANTS ||--o{ ORDERS : processes
|
||||
MERCHANTS ||--o{ ACTIVITIES : organizes
|
||||
MERCHANTS ||--o{ ANIMALS : manages
|
||||
|
||||
TRAVEL_PLANS ||--o{ TRAVEL_MATCHES : matches
|
||||
|
||||
ANIMALS ||--o{ ANIMAL_CLAIMS : claimed
|
||||
ANIMALS ||--o{ ANIMAL_UPDATES : updates
|
||||
|
||||
PRODUCTS ||--o{ ORDER_ITEMS : contains
|
||||
|
||||
ORDERS ||--o{ ORDER_ITEMS : contains
|
||||
ORDERS ||--o{ PAYMENTS : has
|
||||
|
||||
ACTIVITIES ||--o{ ACTIVITY_REGISTRATIONS : registers
|
||||
|
||||
USERS {
|
||||
int id PK
|
||||
string openid
|
||||
string nickname
|
||||
string avatar
|
||||
string gender
|
||||
date birthday
|
||||
string phone
|
||||
string email
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
MERCHANTS {
|
||||
int id PK
|
||||
int user_id FK
|
||||
string merchant_type
|
||||
string business_name
|
||||
string business_license
|
||||
string contact_person
|
||||
string contact_phone
|
||||
string address
|
||||
string description
|
||||
string status
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
TRAVEL_PLANS {
|
||||
int id PK
|
||||
int user_id FK
|
||||
string destination
|
||||
date start_date
|
||||
date end_date
|
||||
decimal budget
|
||||
string interests
|
||||
string visibility
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
TRAVEL_MATCHES {
|
||||
int id PK
|
||||
int plan_id FK
|
||||
int matched_plan_id FK
|
||||
decimal match_score
|
||||
datetime created_at
|
||||
}
|
||||
|
||||
ANIMALS {
|
||||
int id PK
|
||||
int merchant_id FK
|
||||
string name
|
||||
string species
|
||||
string breed
|
||||
date birth_date
|
||||
string personality
|
||||
string farm_location
|
||||
decimal price
|
||||
string status
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
ANIMAL_CLAIMS {
|
||||
int id PK
|
||||
int user_id FK
|
||||
int animal_id FK
|
||||
decimal price_paid
|
||||
string agreement_url
|
||||
string status
|
||||
datetime claimed_at
|
||||
datetime ended_at
|
||||
}
|
||||
|
||||
ANIMAL_UPDATES {
|
||||
int id PK
|
||||
int animal_id FK
|
||||
string update_type
|
||||
string content
|
||||
string media_url
|
||||
datetime created_at
|
||||
}
|
||||
|
||||
PRODUCTS {
|
||||
int id PK
|
||||
int merchant_id FK
|
||||
string name
|
||||
string description
|
||||
decimal price
|
||||
string image_url
|
||||
string category
|
||||
string status
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
ORDERS {
|
||||
int id PK
|
||||
int user_id FK
|
||||
int merchant_id FK
|
||||
string order_number
|
||||
decimal total_amount
|
||||
string status
|
||||
string delivery_address
|
||||
datetime ordered_at
|
||||
datetime completed_at
|
||||
}
|
||||
|
||||
ORDER_ITEMS {
|
||||
int id PK
|
||||
int order_id FK
|
||||
int product_id FK
|
||||
int quantity
|
||||
decimal unit_price
|
||||
}
|
||||
|
||||
PAYMENTS {
|
||||
int id PK
|
||||
int order_id FK
|
||||
string payment_method
|
||||
string transaction_id
|
||||
decimal amount
|
||||
string status
|
||||
datetime paid_at
|
||||
}
|
||||
|
||||
MESSAGES {
|
||||
int id PK
|
||||
int sender_id FK
|
||||
int receiver_id FK
|
||||
string content
|
||||
string status
|
||||
datetime sent_at
|
||||
}
|
||||
|
||||
REVIEWS {
|
||||
int id PK
|
||||
int user_id FK
|
||||
int merchant_id FK
|
||||
int order_id FK
|
||||
int rating
|
||||
string comment
|
||||
datetime created_at
|
||||
}
|
||||
|
||||
ACTIVITIES {
|
||||
int id PK
|
||||
int merchant_id FK
|
||||
string title
|
||||
string description
|
||||
string activity_type
|
||||
datetime start_time
|
||||
datetime end_time
|
||||
string location
|
||||
decimal fee
|
||||
int max_participants
|
||||
string status
|
||||
datetime created_at
|
||||
datetime updated_at
|
||||
}
|
||||
|
||||
ACTIVITY_REGISTRATIONS {
|
||||
int id PK
|
||||
int activity_id FK
|
||||
int user_id FK
|
||||
string status
|
||||
datetime registered_at
|
||||
}
|
||||
```
|
||||
|
||||
### 1.2 核心表结构设计
|
||||
|
||||
#### 用户表 (users)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 用户ID |
|
||||
| openid | VARCHAR(64) | UNIQUE, NOT NULL | 微信openid |
|
||||
| nickname | VARCHAR(50) | NOT NULL | 用户昵称 |
|
||||
| avatar | VARCHAR(255) | | 用户头像URL |
|
||||
| gender | ENUM('male', 'female', 'other') | | 性别 |
|
||||
| birthday | DATE | | 生日 |
|
||||
| phone | VARCHAR(20) | UNIQUE | 手机号码 |
|
||||
| email | VARCHAR(100) | UNIQUE | 邮箱地址 |
|
||||
| created_at | DATETIME | NOT NULL | 创建时间 |
|
||||
| updated_at | DATETIME | NOT NULL | 更新时间 |
|
||||
|
||||
#### 商家表 (merchants)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 商家ID |
|
||||
| user_id | INT | FOREIGN KEY, NOT NULL | 关联的用户ID |
|
||||
| merchant_type | ENUM('flower_shop', 'activity_organizer', 'farm_owner') | NOT NULL | 商家类型 |
|
||||
| business_name | VARCHAR(100) | NOT NULL | 商家名称 |
|
||||
| business_license | VARCHAR(255) | | 营业执照图片URL |
|
||||
| contact_person | VARCHAR(50) | NOT NULL | 联系人 |
|
||||
| contact_phone | VARCHAR(20) | NOT NULL | 联系电话 |
|
||||
| address | VARCHAR(255) | | 地址 |
|
||||
| description | TEXT | | 商家介绍 |
|
||||
| status | ENUM('pending', 'approved', 'rejected', 'suspended') | NOT NULL | 商家状态 |
|
||||
| created_at | DATETIME | NOT NULL | 创建时间 |
|
||||
| updated_at | DATETIME | NOT NULL | 更新时间 |
|
||||
|
||||
#### 旅行计划表 (travel_plans)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 计划ID |
|
||||
| user_id | INT | FOREIGN KEY, NOT NULL | 用户ID |
|
||||
| destination | VARCHAR(100) | NOT NULL | 目的地 |
|
||||
| start_date | DATE | NOT NULL | 开始日期 |
|
||||
| end_date | DATE | NOT NULL | 结束日期 |
|
||||
| budget | DECIMAL(10,2) | NOT NULL | 预算 |
|
||||
| interests | TEXT | | 兴趣偏好 |
|
||||
| visibility | ENUM('public', 'friends', 'private') | NOT NULL | 可见范围 |
|
||||
| created_at | DATETIME | NOT NULL | 创建时间 |
|
||||
| updated_at | DATETIME | NOT NULL | 更新时间 |
|
||||
|
||||
#### 动物表 (animals)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 动物ID |
|
||||
| merchant_id | INT | FOREIGN KEY, NOT NULL | 关联的农场商家ID |
|
||||
| name | VARCHAR(50) | NOT NULL | 动物名称 |
|
||||
| species | VARCHAR(50) | NOT NULL | 动物种类 |
|
||||
| breed | VARCHAR(50) | | 品种 |
|
||||
| birth_date | DATE | | 出生日期 |
|
||||
| personality | TEXT | | 性格特点 |
|
||||
| farm_location | VARCHAR(255) | | 农场位置 |
|
||||
| price | DECIMAL(10,2) | NOT NULL | 认领价格 |
|
||||
| status | ENUM('available', 'claimed', 'unavailable') | NOT NULL | 状态 |
|
||||
| created_at | DATETIME | NOT NULL | 创建时间 |
|
||||
| updated_at | DATETIME | NOT NULL | 更新时间 |
|
||||
|
||||
#### 动物认领表 (animal_claims)
|
||||
| 字段名 | 类型 | 约束 | 描述 |
|
||||
|--------|------|------|------|
|
||||
| id | INT | PRIMARY KEY, AUTO_INCREMENT | 认领ID |
|
||||
| user_id | INT | FOREIGN KEY, NOT NULL | 用户ID |
|
||||
| animal_id | INT | FOREIGN KEY, NOT NULL | 动物ID |
|
||||
| price_paid | DECIMAL(10,2) | NOT NULL | 支付金额 |
|
||||
| agreement_url | VARCHAR(255) | | 电子协议URL |
|
||||
| status | ENUM('active', 'ended', 'cancelled') | NOT NULL | 认领状态 |
|
||||
| claimed_at | DATETIME | NOT NULL | 认领时间 |
|
||||
| ended_at | DATETIME | | 结束时间 |
|
||||
|
||||
## 2. API设计
|
||||
|
||||
### 2.1 用户服务API
|
||||
|
||||
#### 用户登录
|
||||
- **URL**: `POST /api/v1/users/login`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"code": "微信登录凭证"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"token": "用户token",
|
||||
"user": {
|
||||
"id": 1,
|
||||
"openid": "openid",
|
||||
"nickname": "用户昵称",
|
||||
"avatar": "头像URL"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取用户信息
|
||||
- **URL**: `GET /api/v1/users/profile`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"openid": "openid",
|
||||
"nickname": "用户昵称",
|
||||
"avatar": "头像URL",
|
||||
"gender": "male",
|
||||
"birthday": "1990-01-01",
|
||||
"phone": "13800138000",
|
||||
"email": "user@example.com"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 更新用户信息
|
||||
- **URL**: `PUT /api/v1/users/profile`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"nickname": "新昵称",
|
||||
"gender": "female",
|
||||
"birthday": "1995-01-01",
|
||||
"phone": "13900139000",
|
||||
"email": "new@example.com"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.2 旅行服务API
|
||||
|
||||
#### 创建旅行计划
|
||||
- **URL**: `POST /api/v1/travels/plans`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"destination": "目的地",
|
||||
"start_date": "2023-10-01",
|
||||
"end_date": "2023-10-07",
|
||||
"budget": 5000.00,
|
||||
"interests": "徒步,摄影",
|
||||
"visibility": "public"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"user_id": 1,
|
||||
"destination": "目的地",
|
||||
"start_date": "2023-10-01",
|
||||
"end_date": "2023-10-07",
|
||||
"budget": 5000.00,
|
||||
"interests": "徒步,摄影",
|
||||
"visibility": "public",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取旅行计划列表
|
||||
- **URL**: `GET /api/v1/travels/plans`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `page=1&size=10&visibility=public`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"user_id": 1,
|
||||
"destination": "目的地",
|
||||
"start_date": "2023-10-01",
|
||||
"end_date": "2023-10-07",
|
||||
"budget": 5000.00,
|
||||
"interests": "徒步,摄影",
|
||||
"visibility": "public",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 匹配旅行伙伴
|
||||
- **URL**: `GET /api/v1/travels/matches`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `plan_id=1&page=1&size=10`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 2,
|
||||
"user_id": 2,
|
||||
"destination": "目的地",
|
||||
"start_date": "2023-10-02",
|
||||
"end_date": "2023-10-08",
|
||||
"budget": 4500.00,
|
||||
"interests": "徒步,美食",
|
||||
"match_score": 0.85
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 动物认领服务API
|
||||
|
||||
#### 获取可认领动物列表
|
||||
- **URL**: `GET /api/v1/animals`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `page=1&size=10&species=羊驼`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"merchant_id": 1,
|
||||
"name": "小羊驼",
|
||||
"species": "羊驼",
|
||||
"breed": "苏利羊驼",
|
||||
"birth_date": "2020-01-01",
|
||||
"personality": "温顺可爱",
|
||||
"farm_location": "XX农场",
|
||||
"price": 1000.00,
|
||||
"status": "available"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 认领动物
|
||||
- **URL**: `POST /api/v1/animals/{id}/claim`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"price_paid": 1000.00
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"user_id": 1,
|
||||
"animal_id": 1,
|
||||
"price_paid": 1000.00,
|
||||
"agreement_url": "https://example.com/agreement.pdf",
|
||||
"status": "active",
|
||||
"claimed_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取认领记录
|
||||
- **URL**: `GET /api/v1/animals/claims`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `page=1&size=10&status=active`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"user_id": 1,
|
||||
"animal_id": 1,
|
||||
"animal_name": "小羊驼",
|
||||
"price_paid": 1000.00,
|
||||
"status": "active",
|
||||
"claimed_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.4 商家服务API
|
||||
|
||||
#### 商家注册
|
||||
- **URL**: `POST /api/v1/merchants/register`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"merchant_type": "farm_owner",
|
||||
"business_name": "XX农场",
|
||||
"business_license": "https://example.com/license.jpg",
|
||||
"contact_person": "张三",
|
||||
"contact_phone": "13800138000",
|
||||
"address": "北京市朝阳区XX路XX号",
|
||||
"description": "专业养殖羊驼的农场"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"user_id": 1,
|
||||
"merchant_type": "farm_owner",
|
||||
"business_name": "XX农场",
|
||||
"business_license": "https://example.com/license.jpg",
|
||||
"contact_person": "张三",
|
||||
"contact_phone": "13800138000",
|
||||
"address": "北京市朝阳区XX路XX号",
|
||||
"description": "专业养殖羊驼的农场",
|
||||
"status": "pending",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 发布商品/服务
|
||||
- **URL**: `POST /api/v1/merchants/products`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"name": "羊驼认领体验",
|
||||
"description": "提供一个月的羊驼认领体验服务",
|
||||
"price": 1000.00,
|
||||
"image_url": "https://example.com/product.jpg",
|
||||
"category": "animal_claim",
|
||||
"status": "available"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"merchant_id": 1,
|
||||
"name": "羊驼认领体验",
|
||||
"description": "提供一个月的羊驼认领体验服务",
|
||||
"price": 1000.00,
|
||||
"image_url": "https://example.com/product.jpg",
|
||||
"category": "animal_claim",
|
||||
"status": "available",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取商家订单
|
||||
- **URL**: `GET /api/v1/merchants/orders`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `page=1&size=10&status=paid`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"user_id": 2,
|
||||
"order_number": "ORD202309010001",
|
||||
"total_amount": 1000.00,
|
||||
"status": "paid",
|
||||
"ordered_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 2.5 官网系统API
|
||||
|
||||
#### 提交商家入驻申请
|
||||
- **URL**: `POST /api/v1/website/merchant/apply`
|
||||
- **请求参数**:
|
||||
```json
|
||||
{
|
||||
"business_name": "XX农场",
|
||||
"contact_person": "张三",
|
||||
"contact_phone": "13800138000",
|
||||
"email": "zhangsan@example.com",
|
||||
"description": "专业养殖羊驼的农场"
|
||||
}
|
||||
```
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"id": 1,
|
||||
"business_name": "XX农场",
|
||||
"contact_person": "张三",
|
||||
"contact_phone": "13800138000",
|
||||
"email": "zhangsan@example.com",
|
||||
"description": "专业养殖羊驼的农场",
|
||||
"status": "pending",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取成功案例列表
|
||||
- **URL**: `GET /api/v1/website/cases`
|
||||
- **查询参数**: `page=1&size=10`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"title": "XX农场成功入驻案例",
|
||||
"description": "XX农场通过平台实现了数字化转型",
|
||||
"image_url": "https://example.com/case1.jpg",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
"image_url": "https://example.com/product.jpg",
|
||||
"category": "animal_claim",
|
||||
"status": "available",
|
||||
"created_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
#### 获取商家订单
|
||||
- **URL**: `GET /api/v1/merchants/orders`
|
||||
- **请求头**: `Authorization: Bearer {token}`
|
||||
- **查询参数**: `page=1&size=10&status=paid`
|
||||
- **响应**:
|
||||
```json
|
||||
{
|
||||
"code": 0,
|
||||
"message": "success",
|
||||
"data": {
|
||||
"list": [
|
||||
{
|
||||
"id": 1,
|
||||
"user_id": 2,
|
||||
"order_number": "ORD202309010001",
|
||||
"total_amount": 1000.00,
|
||||
"status": "paid",
|
||||
"ordered_at": "2023-09-01T12:00:00Z"
|
||||
}
|
||||
],
|
||||
"pagination": {
|
||||
"page": 1,
|
||||
"size": 10,
|
||||
"total": 1
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## 3. 核心业务逻辑设计
|
||||
|
||||
### 3.1 旅行结伴流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant TP as 旅行计划服务
|
||||
participant TM as 旅行匹配服务
|
||||
participant N as 通知服务
|
||||
|
||||
U->>TP: 创建旅行计划
|
||||
TP->>TP: 保存计划
|
||||
TP-->>U: 返回计划详情
|
||||
|
||||
U->>TM: 请求匹配旅行伙伴
|
||||
TM->>TM: 根据条件匹配
|
||||
TM-->>U: 返回匹配结果
|
||||
|
||||
U->>U: 选择合适的伙伴
|
||||
U->>N: 发送结伴邀请
|
||||
N->>N: 发送通知给被邀请用户
|
||||
|
||||
Note over U,N: 被邀请用户接受邀请后,
|
||||
Note over U,N: 系统创建结伴关系
|
||||
```
|
||||
|
||||
### 3.2 动物认领流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant A as 动物服务
|
||||
participant M as 商家服务
|
||||
participant P as 支付服务
|
||||
participant N as 通知服务
|
||||
|
||||
U->>A: 浏览可认领动物
|
||||
A-->>U: 返回动物列表
|
||||
|
||||
U->>A: 选择动物并认领
|
||||
A->>P: 创建支付订单
|
||||
P-->>U: 返回支付信息
|
||||
|
||||
U->>P: 完成支付
|
||||
P->>P: 验证支付结果
|
||||
P->>A: 通知支付成功
|
||||
|
||||
A->>A: 更新动物状态为已认领
|
||||
A->>M: 通知商家有新认领
|
||||
A->>N: 发送认领成功通知给用户
|
||||
|
||||
M->>M: 更新商家统计信息
|
||||
N->>N: 发送通知
|
||||
```
|
||||
|
||||
### 3.3 商家服务流程
|
||||
|
||||
```mermaid
|
||||
sequenceDiagram
|
||||
participant U as 用户
|
||||
participant M as 商家服务
|
||||
participant P as 商品服务
|
||||
participant O as 订单服务
|
||||
participant Pay as 支付服务
|
||||
participant N as 通知服务
|
||||
|
||||
U->>M: 申请成为商家
|
||||
M->>M: 审核商家资质
|
||||
M-->>U: 返回审核结果
|
||||
|
||||
alt 审核通过
|
||||
U->>P: 发布商品/服务
|
||||
P->>P: 保存商品信息
|
||||
P-->>U: 返回商品详情
|
||||
end
|
||||
|
||||
U->>P: 浏览商品
|
||||
P-->>U: 返回商品列表
|
||||
|
||||
U->>O: 下单购买
|
||||
O->>Pay: 创建支付订单
|
||||
Pay-->>U: 返回支付信息
|
||||
|
||||
U->>Pay: 完成支付
|
||||
Pay->>Pay: 验证支付结果
|
||||
Pay->>O: 通知支付成功
|
||||
|
||||
O->>O: 更新订单状态
|
||||
O->>M: 通知商家有新订单
|
||||
O->>N: 发送购买成功通知给用户
|
||||
|
||||
M->>M: 处理订单
|
||||
N->>N: 发送通知
|
||||
```
|
||||
333
docs/development_plan.md
Normal file
333
docs/development_plan.md
Normal file
@@ -0,0 +1,333 @@
|
||||
# 开发计划
|
||||
|
||||
## 1. 任务分解 (WBS)
|
||||
|
||||
### 1.1 后端开发任务
|
||||
|
||||
#### 1.1.1 基础服务搭建
|
||||
- 用户认证服务 (JWT Token管理)
|
||||
- API网关配置
|
||||
- 微服务间通信机制 (gRPC/消息队列)
|
||||
- 统一配置中心
|
||||
- 日志收集与监控系统
|
||||
|
||||
#### 1.1.2 核心业务服务开发
|
||||
- 用户管理服务 (用户注册、登录、信息管理)
|
||||
- 旅行计划服务 (创建、查询、更新旅行计划)
|
||||
- 旅行匹配服务 (基于兴趣和时间的匹配算法)
|
||||
- 动物认领服务 (动物信息管理、认领流程)
|
||||
- 社交互动服务 (消息发送、通知推送)
|
||||
|
||||
#### 1.1.3 商家服务开发
|
||||
- 商家认证与管理服务
|
||||
- 商品/服务管理服务
|
||||
- 订单处理服务
|
||||
- 评价与反馈服务
|
||||
|
||||
#### 1.1.4 支付与安全服务
|
||||
- 支付服务集成 (微信支付)
|
||||
- 数据加密与安全传输
|
||||
- API访问控制与权限管理
|
||||
|
||||
### 1.2 前端开发任务
|
||||
|
||||
#### 1.2.1 基础框架搭建
|
||||
- 微信小程序基础框架搭建
|
||||
- UI组件库集成
|
||||
- 状态管理配置 (Redux/Vuex类似)
|
||||
- 网络请求封装
|
||||
|
||||
#### 1.2.2 用户端功能开发
|
||||
- 用户登录/注册页面
|
||||
- 个人中心页面
|
||||
- 旅行计划创建与浏览页面
|
||||
- 旅行伙伴匹配页面
|
||||
- 动物认领浏览与认领页面
|
||||
- 消息通知页面
|
||||
|
||||
#### 1.2.3 商家端功能开发
|
||||
- 商家注册与认证页面
|
||||
- 商家中心首页
|
||||
- 商品/服务管理页面
|
||||
- 订单管理页面
|
||||
- 评价管理页面
|
||||
|
||||
### 1.3 数据库开发任务
|
||||
|
||||
#### 1.3.1 数据库设计与创建
|
||||
- 核心表结构创建 (用户、商家、旅行计划等)
|
||||
- 索引优化
|
||||
- 数据库分表分库设计
|
||||
|
||||
#### 1.3.2 数据库初始化
|
||||
- 初始化数据脚本编写
|
||||
- 数据迁移脚本
|
||||
|
||||
### 1.4 运维部署任务
|
||||
|
||||
#### 1.4.1 基础设施搭建
|
||||
- Kubernetes集群搭建
|
||||
- Redis集群部署
|
||||
- RabbitMQ部署
|
||||
- 数据库主从复制配置
|
||||
|
||||
#### 1.4.2 CI/CD流程配置
|
||||
- Jenkins/GitLab CI配置
|
||||
- 自动化测试集成
|
||||
- 自动化部署脚本
|
||||
|
||||
#### 1.4.3 监控与日志
|
||||
- Prometheus监控配置
|
||||
- Grafana仪表板配置
|
||||
- ELK日志收集系统配置
|
||||
|
||||
### 1.5 官网系统开发任务
|
||||
|
||||
#### 1.5.1 官网基础框架搭建
|
||||
- Nuxt.js 3框架搭建
|
||||
- TypeScript配置
|
||||
- Tailwind CSS集成
|
||||
- Pinia状态管理配置
|
||||
- API客户端封装
|
||||
|
||||
#### 1.5.2 官网页面开发
|
||||
- 官网首页开发
|
||||
- 商家合作页面开发
|
||||
- 成功案例页面开发
|
||||
- 关于我们页面开发
|
||||
- 联系我们页面开发
|
||||
|
||||
#### 1.5.3 官网功能开发
|
||||
- 商家入驻申请功能
|
||||
- 成功案例展示功能
|
||||
- 表单验证与提交功能
|
||||
- 响应式布局适配
|
||||
|
||||
#### 1.5.4 官网SEO优化
|
||||
- 页面SEO元信息配置
|
||||
- 站点地图生成
|
||||
- 搜索引擎优化配置
|
||||
|
||||
## 2. 工时估算
|
||||
|
||||
### 2.1 后端开发工时
|
||||
|
||||
#### 2.1.1 基础服务搭建 (15人日)
|
||||
- 用户认证服务: 3人日
|
||||
- API网关配置: 2人日
|
||||
- 微服务间通信机制: 4人日
|
||||
- 统一配置中心: 3人日
|
||||
- 日志收集与监控系统: 3人日
|
||||
|
||||
#### 2.1.2 核心业务服务开发 (25人日)
|
||||
- 用户管理服务: 4人日
|
||||
- 旅行计划服务: 5人日
|
||||
- 旅行匹配服务: 6人日
|
||||
- 动物认领服务: 5人日
|
||||
- 社交互动服务: 5人日
|
||||
|
||||
#### 2.1.3 商家服务开发 (20人日)
|
||||
- 商家认证与管理服务: 5人日
|
||||
- 商品/服务管理服务: 5人日
|
||||
- 订单处理服务: 5人日
|
||||
- 评价与反馈服务: 5人日
|
||||
|
||||
#### 2.1.4 支付与安全服务 (10人日)
|
||||
- 支付服务集成: 5人日
|
||||
- 数据加密与安全传输: 3人日
|
||||
- API访问控制与权限管理: 2人日
|
||||
|
||||
**后端开发总工时: 70人日**
|
||||
|
||||
### 2.2 前端开发工时
|
||||
|
||||
#### 2.2.1 基础框架搭建 (10人日)
|
||||
- 微信小程序基础框架搭建: 4人日
|
||||
- UI组件库集成: 2人日
|
||||
- 状态管理配置: 2人日
|
||||
- 网络请求封装: 2人日
|
||||
|
||||
#### 2.2.2 用户端功能开发 (25人日)
|
||||
- 用户登录/注册页面: 3人日
|
||||
- 个人中心页面: 4人日
|
||||
- 旅行计划创建与浏览页面: 5人日
|
||||
- 旅行伙伴匹配页面: 6人日
|
||||
- 动物认领浏览与认领页面: 4人日
|
||||
- 消息通知页面: 3人日
|
||||
|
||||
#### 2.2.3 商家端功能开发 (20人日)
|
||||
- 商家注册与认证页面: 4人日
|
||||
- 商家中心首页: 4人日
|
||||
- 商品/服务管理页面: 5人日
|
||||
- 订单管理页面: 4人日
|
||||
- 评价管理页面: 3人日
|
||||
|
||||
**前端开发总工时: 55人日**
|
||||
|
||||
### 2.3 数据库开发工时
|
||||
|
||||
#### 2.3.1 数据库设计与创建 (8人日)
|
||||
- 核心表结构创建: 5人日
|
||||
- 索引优化: 2人日
|
||||
- 数据库分表分库设计: 1人日
|
||||
|
||||
#### 2.3.2 数据库初始化 (2人日)
|
||||
- 初始化数据脚本编写: 1人日
|
||||
- 数据迁移脚本: 1人日
|
||||
|
||||
**数据库开发总工时: 10人日**
|
||||
|
||||
### 2.4 运维部署工时
|
||||
|
||||
#### 2.4.1 基础设施搭建 (15人日)
|
||||
- Kubernetes集群搭建: 5人日
|
||||
- Redis集群部署: 3人日
|
||||
- RabbitMQ部署: 3人日
|
||||
- 数据库主从复制配置: 4人日
|
||||
|
||||
#### 2.4.2 CI/CD流程配置 (8人日)
|
||||
- Jenkins/GitLab CI配置: 3人日
|
||||
- 自动化测试集成: 3人日
|
||||
- 自动化部署脚本: 2人日
|
||||
|
||||
#### 2.4.3 监控与日志 (4人日)
|
||||
- Prometheus监控配置: 2人日
|
||||
- Grafana仪表板配置: 1人日
|
||||
- ELK日志收集系统配置: 1人日
|
||||
|
||||
**运维部署总工时: 27人日**
|
||||
|
||||
### 2.5 官网系统开发工时
|
||||
|
||||
#### 2.5.1 官网基础框架搭建 (8人日)
|
||||
- Nuxt.js 3框架搭建: 3人日
|
||||
- TypeScript配置: 1人日
|
||||
- Tailwind CSS集成: 2人日
|
||||
- Pinia状态管理配置: 1人日
|
||||
- API客户端封装: 1人日
|
||||
|
||||
#### 2.5.2 官网页面开发 (12人日)
|
||||
- 官网首页开发: 3人日
|
||||
- 商家合作页面开发: 3人日
|
||||
- 成功案例页面开发: 2人日
|
||||
- 关于我们页面开发: 2人日
|
||||
- 联系我们页面开发: 2人日
|
||||
|
||||
#### 2.5.3 官网功能开发 (8人日)
|
||||
- 商家入驻申请功能: 3人日
|
||||
- 成功案例展示功能: 2人日
|
||||
- 表单验证与提交功能: 2人日
|
||||
- 响应式布局适配: 1人日
|
||||
|
||||
#### 2.5.4 官网SEO优化 (3人日)
|
||||
- 页面SEO元信息配置: 1人日
|
||||
- 站点地图生成: 1人日
|
||||
- 搜索引擎优化配置: 1人日
|
||||
|
||||
**官网系统开发总工时: 31人日**
|
||||
|
||||
## 3. 开发里程碑
|
||||
|
||||
### 3.1 第一阶段:基础框架搭建 (预计4周)
|
||||
- **时间**: 第1-4周
|
||||
- **目标**: 完成技术架构搭建和基础服务开发
|
||||
- **交付物**:
|
||||
- 微服务架构搭建完成
|
||||
- API网关配置完成
|
||||
- 用户认证服务上线
|
||||
- 数据库环境搭建完成
|
||||
- 基础前端框架搭建完成
|
||||
- **关键任务**:
|
||||
- 后端基础设施搭建 (15人日)
|
||||
- 数据库设计与创建 (8人日)
|
||||
- 前端基础框架搭建 (10人日)
|
||||
- 运维环境搭建 (15人日)
|
||||
|
||||
### 3.2 第二阶段:核心功能开发 (预计6周)
|
||||
- **时间**: 第5-10周
|
||||
- **目标**: 完成用户端核心功能开发
|
||||
- **交付物**:
|
||||
- 用户管理功能上线
|
||||
- 旅行计划功能上线
|
||||
- 旅行匹配功能上线
|
||||
- 动物认领功能上线
|
||||
- 社交互动功能上线
|
||||
- **关键任务**:
|
||||
- 后端核心业务服务开发 (25人日)
|
||||
- 前端用户端功能开发 (25人日)
|
||||
- 支付服务集成 (5人日)
|
||||
|
||||
### 3.3 第三阶段:商家功能开发 (预计5周)
|
||||
- **时间**: 第11-15周
|
||||
- **目标**: 完成商家端功能开发
|
||||
- **交付物**:
|
||||
- 商家认证功能上线
|
||||
- 商品/服务管理功能上线
|
||||
- 订单处理功能上线
|
||||
- 评价反馈功能上线
|
||||
- **关键任务**:
|
||||
- 后端商家服务开发 (20人日)
|
||||
- 前端商家端功能开发 (20人日)
|
||||
- 安全服务完善 (5人日)
|
||||
|
||||
### 3.4 第四阶段:官网系统开发 (预计4周)
|
||||
- **时间**: 第16-19周
|
||||
- **目标**: 完成官网系统开发和部署
|
||||
- **交付物**:
|
||||
- 官网系统上线
|
||||
- 商家入驻申请功能上线
|
||||
- 成功案例展示功能上线
|
||||
- **关键任务**:
|
||||
- 官网基础框架搭建 (8人日)
|
||||
- 官网页面开发 (12人日)
|
||||
- 官网功能开发 (8人日)
|
||||
- 官网SEO优化 (3人日)
|
||||
|
||||
### 3.5 第五阶段:测试与优化 (预计3周)
|
||||
- **时间**: 第20-22周
|
||||
- **目标**: 完成系统测试和性能优化
|
||||
- **交付物**:
|
||||
- 系统测试报告
|
||||
- 性能优化报告
|
||||
- 安全审计报告
|
||||
- 上线部署包
|
||||
- **关键任务**:
|
||||
- 功能测试 (10人日)
|
||||
- 性能测试与优化 (8人日)
|
||||
- 安全测试 (5人日)
|
||||
- 用户验收测试 (5人日)
|
||||
- 部署上线 (5人日)
|
||||
|
||||
## 4. 资源分配建议
|
||||
|
||||
### 4.1 人员配置
|
||||
- **后端开发工程师**: 3人
|
||||
- **前端开发工程师**: 3人 (新增1名官网前端开发工程师)
|
||||
- **数据库工程师**: 1人
|
||||
- **运维工程师**: 1人
|
||||
- **测试工程师**: 2人
|
||||
- **产品经理**: 1人
|
||||
- **UI/UX设计师**: 1人 (负责官网UI/UX设计)
|
||||
|
||||
### 4.2 技术资源
|
||||
- **开发环境**: macOS/Linux开发机 x 8
|
||||
- **测试环境**: 腾讯云服务器 (2核4GB) x 3
|
||||
- **生产环境**: 腾讯云服务器 (4核8GB) x 4
|
||||
- **开发工具**: VS Code, IntelliJ IDEA, Docker, Kubernetes
|
||||
- **项目管理**: Jira + Confluence
|
||||
|
||||
### 4.3 时间安排建议
|
||||
- **总开发周期**: 22周 (约5.5个月)
|
||||
- **并行开发**: 后端与前端可并行开发
|
||||
- **迭代周期**: 每2周一个迭代,每周进行代码评审
|
||||
- **里程碑评审**: 每个阶段结束后进行里程碑评审
|
||||
|
||||
### 4.4 风险控制
|
||||
- **技术风险**: 微服务架构复杂度高,需提前进行技术预研
|
||||
- **人员风险**: 关键岗位需有备份人员
|
||||
- **进度风险**: 预留2周缓冲时间应对不可预见问题
|
||||
- **质量风险**: 引入自动化测试,保证代码质量
|
||||
- **官网系统风险**:
|
||||
- SEO优化效果不达预期
|
||||
- 浏览器兼容性问题
|
||||
- 响应式布局在不同设备上显示异常
|
||||
589
docs/requirements.md
Normal file
589
docs/requirements.md
Normal file
@@ -0,0 +1,589 @@
|
||||
# 结伴客小程序需求文档
|
||||
|
||||
## 1. 产品概述
|
||||
|
||||
### 1.1 产品名称
|
||||
结伴客
|
||||
|
||||
### 1.2 产品定位
|
||||
结伴客是一款专注于结伴旅行活动的小程序,与其他交友平台不同的是,它包含了目的地牛、羊、猪、鸡等动物的认领功能,为用户提供独特的旅行体验。
|
||||
|
||||
### 1.3 目标用户
|
||||
#### 普通用户
|
||||
- 热爱旅行的年轻人
|
||||
- 希望通过旅行结识新朋友的用户
|
||||
- 对农场生活和动物互动感兴趣的用户
|
||||
|
||||
#### 商家用户
|
||||
- 花店老板:提供鲜花产品和服务
|
||||
- 活动组织者:组织各类结伴活动
|
||||
- 农场老板:提供动物认领和农场体验服务
|
||||
|
||||
### 1.4 核心价值
|
||||
- 为用户提供安全、便捷的结伴旅行服务
|
||||
- 通过动物认领功能,增加旅行的趣味性和独特性
|
||||
- 促进用户之间的社交互动,建立旅行伙伴关系
|
||||
|
||||
## 2. 功能需求
|
||||
|
||||
### 2.1 用户管理
|
||||
#### 普通用户
|
||||
- 用户注册/登录
|
||||
- 个人信息完善(头像、昵称、性别、年龄、兴趣爱好等)
|
||||
- 个人主页展示
|
||||
|
||||
#### 商家用户
|
||||
- 商家注册/登录(需要资质审核)
|
||||
- 商家信息完善(店铺名称、营业执照、联系方式、服务介绍等)
|
||||
- 商家主页展示(包含服务项目、评价等)
|
||||
|
||||
### 2.2 旅行结伴
|
||||
- 发布旅行计划(目的地、时间、天数、预算、兴趣偏好等)
|
||||
- 浏览和搜索其他用户的旅行计划
|
||||
- 根据条件匹配相似行程的用户
|
||||
- 发起结伴邀请
|
||||
- 接受/拒绝结伴邀请
|
||||
- 发起和参与其他结伴活动(看电影、拼饭、桌游等)
|
||||
- 基于定位查看周围或某个区域的目的地信息
|
||||
|
||||
### 2.3 动物认领
|
||||
- 浏览可认领的动物(牛、羊、猪、鸡等)
|
||||
- 查看动物详情(品种、年龄、性格特点、所在农场等)
|
||||
- 认领动物(支付认领费用、签订电子协议)
|
||||
- 查看认领的动物状态(生长记录、健康状况等)
|
||||
- 与认领的动物互动(视频监控、喂养记录等)
|
||||
|
||||
### 2.4 社交互动
|
||||
- 用户之间发送消息
|
||||
- 评论和点赞功能
|
||||
- 分享旅行经历和动物认领体验
|
||||
|
||||
### 2.5 安全保障
|
||||
- 用户评价体系
|
||||
- 紧急联系功能
|
||||
- 举报和投诉机制
|
||||
|
||||
### 2.6 用户推广奖励机制
|
||||
- 用户可以通过分享小程序获得推广链接
|
||||
- 新用户通过推广链接注册可获得奖励
|
||||
- 推广者根据推广效果获得相应奖励
|
||||
- 用户分享活动可获得奖励
|
||||
- 用户分享认养可获得奖励
|
||||
- 邀请多人认养一个动物可获得奖励
|
||||
- 推广数据统计和奖励发放机制
|
||||
- 推广奖励提现功能
|
||||
|
||||
### 2.7 送花服务
|
||||
#### 普通用户功能
|
||||
- 浏览合作花店的鲜花产品
|
||||
- 在线选择并订购鲜花
|
||||
- 选择送花对象(结伴伙伴或特定用户)
|
||||
- 跟踪送花订单状态
|
||||
|
||||
#### 商家用户(花店老板)功能
|
||||
- 管理鲜花产品(添加、编辑、删除商品信息)
|
||||
- 管理订单(查看、处理、更新订单状态)
|
||||
- 设置配送范围和时间
|
||||
- 查看销售数据和收益统计
|
||||
|
||||
### 2.8 官网功能
|
||||
#### 普通用户功能
|
||||
- 浏览官网首页,了解平台介绍和核心功能
|
||||
- 查看成功案例和用户评价
|
||||
- 浏览动物认领和旅行结伴相关资讯
|
||||
- 通过官网直接跳转至小程序
|
||||
|
||||
#### 商家用户功能
|
||||
- 通过官网了解平台商业模式和收益机制
|
||||
- 查看商家合作政策和入驻流程
|
||||
- 在线提交商家入驻申请
|
||||
- 查看商家成功案例和收益数据
|
||||
|
||||
## 3. 用户故事
|
||||
|
||||
### 3.1 旅行结伴功能
|
||||
|
||||
#### 故事1:发布旅行计划
|
||||
**As a** 旅行爱好者
|
||||
**I want to** 发布我的旅行计划
|
||||
**So that** 其他用户可以看到我的行程并申请结伴
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以填写目的地、时间、天数、预算等信息
|
||||
- 用户可以设置行程的可见范围
|
||||
- 发布成功后,其他用户可以搜索到该行程
|
||||
|
||||
### 3.8 官网功能
|
||||
|
||||
#### 故事22:浏览官网了解平台信息
|
||||
**As a** 潜在用户
|
||||
**I want to** 通过官网了解平台信息
|
||||
**So that** 我可以更好地了解平台功能并决定是否使用
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以访问官网首页
|
||||
- 用户可以浏览平台介绍和核心功能
|
||||
- 用户可以查看成功案例和用户评价
|
||||
- 用户可以通过官网直接跳转至小程序
|
||||
|
||||
#### 故事23:商家通过官网了解合作政策
|
||||
**As a** 潜在商家
|
||||
**I want to** 通过官网了解商家合作政策
|
||||
**So that** 我可以了解入驻条件和收益机制
|
||||
|
||||
**验收标准:**
|
||||
- 商家可以访问官网商家合作页面
|
||||
- 商家可以查看合作政策和入驻流程
|
||||
- 商家可以在线提交入驻申请
|
||||
- 商家可以查看成功案例和收益数据
|
||||
|
||||
#### 故事2:寻找结伴伙伴
|
||||
**As a** 旅行者
|
||||
**I want to** 根据条件搜索和匹配相似行程的用户
|
||||
**So that** 我能找到合适的结伴伙伴
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以根据目的地、时间等条件筛选行程
|
||||
- 系统能推荐匹配度高的行程
|
||||
- 用户可以查看其他用户的详细信息和评价
|
||||
|
||||
#### 故事3:发起结伴邀请
|
||||
**As a** 旅行者
|
||||
**I want to** 向匹配的用户发起结伴邀请
|
||||
**So that** 我可以与他们一起旅行
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以向其他用户发送结伴邀请
|
||||
- 被邀请用户可以接受或拒绝邀请
|
||||
- 双方接受邀请后建立结伴关系
|
||||
|
||||
#### 故事4:基于定位查看目的地信息
|
||||
**As a** 旅行者
|
||||
**I want to** 基于我的位置查看周围的目的地信息
|
||||
**So that** 我可以发现附近有趣的旅行地点
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以授权小程序获取当前位置
|
||||
- 系统根据用户位置显示附近的目的地信息
|
||||
- 用户可以查看目的地的详细信息(距离、评分、特色等)
|
||||
- 用户可以根据距离、评分等条件筛选目的地
|
||||
- 用户可以将感兴趣的目的地添加到旅行计划中
|
||||
|
||||
#### 故事12:发起其他结伴活动
|
||||
**As a** 用户
|
||||
**I want to** 发起看电影、拼饭、桌游等结伴活动
|
||||
**So that** 我可以与志趣相投的伙伴一起享受休闲时光
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以选择活动类型(看电影、拼饭、桌游等)
|
||||
- 用户可以设置活动时间、地点、人数要求等信息
|
||||
- 其他用户可以浏览和申请参加活动
|
||||
- 发起者可以接受或拒绝参与申请
|
||||
|
||||
### 3.2 动物认领功能
|
||||
|
||||
#### 故事4:浏览可认领动物
|
||||
**As a** 对农场生活感兴趣的用户
|
||||
**I want to** 浏览可认领的动物
|
||||
**So that** 我可以选择自己喜欢的动物进行认领
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以查看所有可认领的动物列表
|
||||
- 每个动物都有详细的介绍(品种、年龄、性格特点等)
|
||||
- 用户可以根据动物类型进行筛选
|
||||
|
||||
#### 故事5:认领动物
|
||||
**As a** 用户
|
||||
**I want to** 认领我喜欢的动物
|
||||
**So that** 我可以体验农场生活并与动物互动
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以选择动物并支付认领费用
|
||||
- 系统生成电子协议供用户签署
|
||||
- 认领成功后,用户可以在个人中心查看认领的动物
|
||||
|
||||
#### 故事6:与认领动物互动
|
||||
**As a** 动物认领者
|
||||
**I want to** 通过视频监控和喂养记录与认领的动物互动
|
||||
**So that** 我可以随时了解动物的状态并参与其成长过程
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以实时查看动物的视频监控
|
||||
- 用户可以记录喂养情况
|
||||
- 系统会推送动物的生长记录和健康状况
|
||||
|
||||
### 3.3 社交互动功能
|
||||
|
||||
#### 故事7:发送消息
|
||||
**As a** 用户
|
||||
**I want to** 与其他用户发送消息
|
||||
**So that** 我可以与他们沟通旅行细节
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以向其他用户发送文本消息
|
||||
- 用户可以查看聊天记录
|
||||
- 支持消息提醒功能
|
||||
|
||||
#### 故事8:分享旅行经历
|
||||
**As a** 旅行者
|
||||
**I want to** 分享我的旅行经历和动物认领体验
|
||||
**So that** 其他用户可以了解我的旅行故事
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以发布图文动态
|
||||
- 其他用户可以点赞和评论
|
||||
- 动态会显示在用户的个人主页
|
||||
|
||||
### 3.4 送花服务功能
|
||||
|
||||
#### 故事9:浏览并订购鲜花
|
||||
**As a** 用户
|
||||
**I want to** 浏览合作花店的鲜花产品并在线订购
|
||||
**So that** 我可以向结伴伙伴或特定用户表达心意
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以浏览合作花店的鲜花产品
|
||||
- 用户可以选择鲜花并添加到购物车
|
||||
- 用户可以完成在线支付
|
||||
- 系统将订单信息同步至实体花店
|
||||
|
||||
#### 故事10:选择送花对象
|
||||
**As a** 用户
|
||||
**I want to** 选择送花对象
|
||||
**So that** 我可以将鲜花送给特定的人
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以从结伴伙伴列表中选择送花对象
|
||||
- 用户可以通过搜索选择其他用户作为送花对象
|
||||
- 系统会显示送花对象的基本信息
|
||||
|
||||
#### 故事11:跟踪送花订单
|
||||
**As a** 用户
|
||||
**I want to** 跟踪送花订单状态
|
||||
**So that** 我可以了解鲜花送达情况
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以在个人中心查看送花订单列表
|
||||
- 用户可以查看每个订单的当前状态(已下单、已接单、配送中、已完成)
|
||||
- 系统会在订单状态更新时推送通知
|
||||
|
||||
#### 故事18:管理鲜花产品
|
||||
**As a** 花店老板
|
||||
**I want to** 管理我的鲜花产品
|
||||
**So that** 我可以向用户提供最新的产品信息
|
||||
|
||||
**验收标准:**
|
||||
- 商家可以添加新的鲜花产品(图片、名称、价格、描述等)
|
||||
- 商家可以编辑现有产品信息
|
||||
- 商家可以删除下架的产品
|
||||
- 用户可以浏览到更新后的产品信息
|
||||
|
||||
#### 故事19:管理订单
|
||||
**As a** 花店老板
|
||||
**I want to** 管理用户的送花订单
|
||||
**So that** 我可以及时处理订单并提供配送服务
|
||||
|
||||
**验收标准:**
|
||||
- 商家可以在商家中心查看所有订单
|
||||
- 商家可以更新订单状态(已接单、配送中、已完成)
|
||||
- 系统会向用户推送订单状态更新通知
|
||||
- 商家可以查看订单统计信息
|
||||
|
||||
### 3.5 用户推广奖励机制
|
||||
|
||||
#### 故事12:获取推广链接
|
||||
**As a** 用户
|
||||
**I want to** 获取专属推广链接
|
||||
**So that** 我可以分享给朋友并获得奖励
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以在个人中心找到推广功能入口
|
||||
- 系统为每个用户生成唯一的推广链接
|
||||
- 用户可以通过多种方式分享推广链接(微信、朋友圈等)
|
||||
|
||||
#### 故事13:查看推广数据和奖励
|
||||
**As a** 用户
|
||||
**I want to** 查看我的推广数据和奖励情况
|
||||
**So that** 我可以了解推广效果和收益
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以在个人中心查看推广数据(推广人数、成功注册数等)
|
||||
- 用户可以查看累计获得的奖励金额
|
||||
- 用户可以查看奖励发放记录
|
||||
|
||||
#### 故事14:提现推广奖励
|
||||
**As a** 用户
|
||||
**I want to** 提现我的推广奖励
|
||||
**So that** 我可以将奖励转换为实际收益
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以在个人中心申请提现
|
||||
- 用户需要绑定提现账户(微信钱包等)
|
||||
- 系统处理提现申请并在规定时间内到账
|
||||
|
||||
### 3.6 活动分享奖励
|
||||
|
||||
#### 故事15:分享活动获得奖励
|
||||
**As a** 用户
|
||||
**I want to** 分享我参与的活动
|
||||
**So that** 我可以获得奖励并邀请更多人参与
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以分享自己参与的结伴活动
|
||||
- 系统记录分享行为并给予相应奖励
|
||||
- 被邀请用户通过分享链接参与活动时,分享者可获得额外奖励
|
||||
|
||||
### 3.7 认养分享奖励
|
||||
|
||||
#### 故事16:分享认养获得奖励
|
||||
**As a** 用户
|
||||
**I want to** 分享我的动物认养
|
||||
**So that** 我可以获得奖励并让更多人了解认养
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以分享自己认养的动物信息
|
||||
- 系统记录分享行为并给予相应奖励
|
||||
- 其他用户通过分享链接认养动物时,分享者可获得额外奖励
|
||||
|
||||
### 3.8 多人认养奖励
|
||||
|
||||
#### 故事17:邀请多人认养一个动物
|
||||
**As a** 用户
|
||||
**I want to** 邀请朋友一起认养一个动物
|
||||
**So that** 我可以与朋友共同体验认养乐趣并获得奖励
|
||||
|
||||
**验收标准:**
|
||||
- 用户可以邀请朋友共同认养一个动物
|
||||
- 系统支持多人认养同一个动物
|
||||
- 成功邀请朋友认养后,邀请者可获得奖励
|
||||
|
||||
### 3.9 活动组织者功能
|
||||
|
||||
#### 故事20:发布和管理结伴活动
|
||||
**As a** 活动组织者
|
||||
**I want to** 发布和管理结伴活动
|
||||
**So that** 我可以为用户提供丰富的活动选择
|
||||
|
||||
**验收标准:**
|
||||
- 活动组织者可以发布新的结伴活动(类型、时间、地点、费用等)
|
||||
- 活动组织者可以编辑已发布的活动信息
|
||||
- 活动组织者可以查看活动报名情况
|
||||
- 活动组织者可以取消活动并通知报名用户
|
||||
|
||||
### 3.10 农场老板功能
|
||||
|
||||
#### 故事21:管理动物认领信息
|
||||
**As a** 农场老板
|
||||
**I want to** 管理农场动物认领信息
|
||||
**So that** 我可以为用户提供准确的认领服务
|
||||
|
||||
**验收标准:**
|
||||
- 农场老板可以添加新的可认领动物
|
||||
- 农场老板可以更新动物状态信息(生长记录、健康状况等)
|
||||
- 农场老板可以查看认领情况和认领者信息
|
||||
- 农场老板可以设置认领费用和条件
|
||||
|
||||
## 4. 非功能性需求
|
||||
|
||||
### 4.1 性能需求
|
||||
- 页面加载时间不超过3秒
|
||||
- 支持同时在线用户数1000人
|
||||
- 商家服务页面加载时间不超过2秒
|
||||
|
||||
### 4.2 安全需求
|
||||
- 用户数据加密存储
|
||||
- 敏感操作需要二次确认
|
||||
- 防止SQL注入和XSS攻击
|
||||
- 商家资质信息加密存储
|
||||
- 商家与用户交易记录加密存储
|
||||
- 商家服务评价数据防篡改
|
||||
|
||||
### 4.3 兼容性需求
|
||||
- 支持微信小程序平台
|
||||
- 兼容不同屏幕尺寸的移动设备
|
||||
|
||||
## 5. 优先级建议
|
||||
|
||||
### 5.1 功能优先级(MoSCoW模型)
|
||||
|
||||
**Must Have(必须有):**
|
||||
- 用户注册/登录
|
||||
- 发布和浏览旅行计划
|
||||
- 基本的结伴匹配功能
|
||||
- 动物认领核心功能
|
||||
|
||||
**Should Have(应该有):**
|
||||
- 用户评价体系
|
||||
- 消息发送功能
|
||||
- 动物状态查看
|
||||
- 其他结伴活动功能
|
||||
- 用户推广奖励机制
|
||||
- 活动分享奖励功能
|
||||
- 认养分享奖励功能
|
||||
- 多人认养奖励功能
|
||||
- 商家用户管理功能
|
||||
- 花店商家功能
|
||||
- 活动组织者功能
|
||||
- 农场老板功能
|
||||
- 官网功能
|
||||
|
||||
**Could Have(可以有):**
|
||||
- 视频监控功能
|
||||
- 个性化推荐算法
|
||||
- 社区动态分享
|
||||
- 送花服务基础功能
|
||||
- 基于定位查看目的地信息功能
|
||||
|
||||
**Won't Have(不会有):**
|
||||
- 虚拟现实农场体验
|
||||
- AI智能行程规划
|
||||
- 虚拟送花效果预览
|
||||
|
||||
## 6. 原型构思
|
||||
|
||||
### 6.1 主要界面
|
||||
|
||||
#### 首页
|
||||
- 顶部搜索栏(搜索目的地、用户、动物)
|
||||
- 轮播图展示热门旅行路线和动物认领活动
|
||||
- 两个主要功能入口:"找搭子"和"认领动物"
|
||||
- 推荐的旅行计划列表
|
||||
|
||||
#### 旅行计划页面
|
||||
- 发布旅行计划按钮
|
||||
- 筛选条件(目的地、时间、预算等)
|
||||
- 旅行计划卡片列表(显示基本信息和匹配度)
|
||||
|
||||
#### 结伴活动页面
|
||||
- 发布结伴活动按钮
|
||||
- 活动类型筛选(看电影、拼饭、桌游等)
|
||||
- 活动卡片列表(显示活动类型、时间、地点、参与人数等信息)
|
||||
|
||||
#### 动物认领页面
|
||||
- 动物分类筛选
|
||||
- 动物卡片列表(显示动物图片、基本信息)
|
||||
- 认领排行榜(最受欢迎的动物)
|
||||
|
||||
#### 个人中心
|
||||
- 用户头像和基本信息
|
||||
- 我的旅行计划
|
||||
- 我认领的动物
|
||||
- 我的送花记录
|
||||
- 我的推广奖励
|
||||
- 我的活动分享
|
||||
- 我的认养分享
|
||||
- 多人认养邀请
|
||||
- 消息通知
|
||||
- 设置选项
|
||||
|
||||
#### 送花服务页面
|
||||
- 鲜花产品展示(图片、价格、花语介绍)
|
||||
- 分类筛选(节日、用途、价格区间等)
|
||||
- 购物车功能
|
||||
- 订单确认页面(选择送花对象、填写祝福语、选择配送时间)
|
||||
|
||||
#### 推广奖励页面
|
||||
- 推广链接展示和复制功能
|
||||
- 二维码推广海报生成
|
||||
- 推广数据统计图表(推广人数、注册人数、收益等)
|
||||
- 奖励明细列表
|
||||
- 提现功能入口
|
||||
|
||||
#### 定位功能页面
|
||||
- 基于用户当前位置显示附近的目的地
|
||||
- 地图视图展示目的地位置
|
||||
- 目的地列表视图(包含距离、评分等信息)
|
||||
- 筛选功能(按距离、评分、特色等条件筛选)
|
||||
- 搜索功能(搜索特定区域或目的地)
|
||||
|
||||
#### 活动分享页面
|
||||
- 用户参与的活动列表
|
||||
- 活动分享按钮和分享统计
|
||||
- 分享奖励记录
|
||||
|
||||
#### 认养分享页面
|
||||
- 用户认养的动物列表
|
||||
- 动物分享按钮和分享统计
|
||||
- 分享奖励记录
|
||||
|
||||
#### 多人认养邀请页面
|
||||
- 可邀请的动物列表
|
||||
- 邀请好友功能
|
||||
- 邀请记录和奖励明细
|
||||
|
||||
#### 商家中心首页
|
||||
- 商家信息展示
|
||||
- 服务概览(订单数、收益、评价等)
|
||||
- 快捷操作入口(发布产品、查看订单等)
|
||||
|
||||
#### 官网首页
|
||||
- 平台介绍和核心功能展示
|
||||
- 成功案例和用户评价展示
|
||||
- 动物认领和旅行结伴相关资讯
|
||||
- 小程序跳转入口
|
||||
|
||||
#### 商家合作页面
|
||||
- 平台商业模式和收益机制介绍
|
||||
- 商家合作政策和入驻流程
|
||||
- 在线入驻申请表单
|
||||
- 商家成功案例和收益数据展示
|
||||
|
||||
#### 商品管理页面
|
||||
- 商品列表展示
|
||||
- 添加/编辑商品功能
|
||||
- 商品状态管理(上架/下架)
|
||||
|
||||
#### 订单管理页面
|
||||
- 订单列表展示
|
||||
- 订单状态更新功能
|
||||
- 订单详情查看
|
||||
|
||||
#### 活动管理页面
|
||||
- 活动列表展示
|
||||
- 发布/编辑活动功能
|
||||
- 活动报名情况查看
|
||||
|
||||
#### 动物管理页面
|
||||
- 可认领动物列表
|
||||
- 添加/编辑动物信息功能
|
||||
- 动物状态更新功能
|
||||
|
||||
### 6.2 核心流程
|
||||
|
||||
#### 结伴流程:
|
||||
1. 用户发布旅行计划
|
||||
2. 系统匹配相似行程
|
||||
3. 用户发起结伴邀请
|
||||
4. 被邀请用户接受邀请
|
||||
5. 双方建立结伴关系,开始沟通
|
||||
|
||||
#### 认领流程:
|
||||
1. 用户浏览可认领动物
|
||||
2. 选择心仪动物
|
||||
3. 支付认领费用
|
||||
4. 签署电子协议
|
||||
5. 开始与动物互动
|
||||
|
||||
#### 商家服务流程:
|
||||
1. 商家注册并完善信息
|
||||
2. 商家发布服务/产品
|
||||
3. 用户浏览并选择服务/产品
|
||||
4. 用户下单并支付
|
||||
5. 商家处理订单
|
||||
6. 服务完成,用户评价
|
||||
|
||||
## 7. 验收标准
|
||||
|
||||
### 7.1 功能验收
|
||||
- 所有用户故事的验收标准均已满足
|
||||
- 功能测试通过率达到95%以上
|
||||
- 用户界面符合设计要求
|
||||
|
||||
### 7.2 性能验收
|
||||
- 页面加载时间符合要求
|
||||
- 系统稳定性测试通过
|
||||
- 压力测试达到预期指标
|
||||
|
||||
### 7.3 安全验收
|
||||
- 安全测试通过
|
||||
- 用户隐私保护符合法规要求
|
||||
Reference in New Issue
Block a user