refactor(backend): 更新数据库配置并迁移至MySQL,优化文档和技术栈描述

This commit is contained in:
ylweng
2025-09-01 01:07:12 +08:00
parent cbee609e78
commit e767d1ab27
13 changed files with 736 additions and 236 deletions

View File

@@ -43,34 +43,34 @@ Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...
## 📋 核心接口
### 用户认证
- `POST /auth/register` - 用户注册
- `POST /auth/login` - 用户登录
- `POST /auth/wechat-login` - 微信登录
- `GET /auth/me` - 获取当前用户信息
- `POST /api/v1/auth/register` - 用户注册
- `POST /api/v1/auth/login` - 用户登录
- `POST /api/v1/auth/wechat-login` - 微信登录
- `GET /api/v1/auth/me` - 获取当前用户信息
### 旅行服务
- `POST /travel/plans` - 创建旅行计划
- `GET /travel/plans` - 获取旅行计划列表
- `GET /travel/matches` - 匹配旅行伙伴
- `POST /api/v1/travel/plans` - 创建旅行计划
- `GET /api/v1/travel/plans` - 获取旅行计划列表
- `GET /api/v1/travel/matches` - 匹配旅行伙伴
### 动物认领
- `GET /animals` - 获取可认领动物列表
- `POST /animals/{id}/claim` - 认领动物
- `GET /animals/claims` - 获取认领记录
- `GET /api/v1/animals` - 获取可认领动物列表
- `POST /api/v1/animals/{id}/claim` - 认领动物
- `GET /api/v1/animals/claims` - 获取认领记录
### 商家服务
- `POST /merchants/register` - 商家注册
- `POST /merchants/products` - 发布商品/服务
- `GET /merchants/orders` - 获取商家订单
- `POST /api/v1/merchants/register` - 商家注册
- `POST /api/v1/merchants/products` - 发布商品/服务
- `GET /api/v1/merchants/orders` - 获取商家订单
### 推广奖励
- `GET /promotion/link` - 获取推广链接
- `GET /promotion/stats` - 获取推广数据
- `POST /promotion/withdraw` - 申请提现
- `GET /api/v1/promotion/link` - 获取推广链接
- `GET /api/v1/promotion/stats` - 获取推广数据
- `POST /api/v1/promotion/withdraw` - 申请提现
### 官网接口
- `POST /website/merchant/apply` - 提交商家入驻申请
- `GET /website/cases` - 获取成功案例列表
- `POST /api/v1/website/merchant/apply` - 提交商家入驻申请
- `GET /api/v1/website/cases` - 获取成功案例列表
## 🎯 响应格式

View File

@@ -14,8 +14,8 @@
## 2. 系统架构
### 2.1 技术栈
- **前端**: Vue 3 + TypeScript + Element Plus
- **后端**: Spring Boot + MySQL + Redis
- **前端**: Vue 3 + TypeScript + Ant Design Vue
- **后端**: Node.js + Express + MySQL + Redis
- **认证**: JWT + RBAC权限控制
- **部署**: Docker + Nginx

View File

@@ -2,12 +2,16 @@
## 基础信息
**Base URL**: `http://localhost:3000/api/v1`
**Base URL**: `http://localhost:3100/api/v1`
**认证方式**: Bearer Token (JWT)
**响应格式**: JSON
**API版本**: v1
**开发状态**: 开发中
## 响应格式
### 成功响应
@@ -34,6 +38,19 @@
}
```
## 通用状态码
| 状态码 | 说明 |
|--------|------|
| 200 | 请求成功 |
| 201 | 创建成功 |
| 400 | 请求参数错误 |
| 401 | 未授权访问 |
| 403 | 权限不足 |
| 404 | 资源不存在 |
| 429 | 请求过于频繁 |
| 500 | 服务器内部错误 |
## 认证接口
### 1. 用户注册
@@ -94,26 +111,6 @@
}
```
### 2.1 微信登录
**Endpoint**: `POST /auth/wechat-login`
**描述**: 微信授权登录
**请求体**:
```json
{
"code": "string, required, 微信授权码",
"userInfo": {
"nickName": "string, optional, 微信昵称",
"avatarUrl": "string, optional, 微信头像",
"gender": "number, optional, 性别(0:未知,1:男,2:女)"
}
}
```
**响应**: 同登录接口
**响应**:
```json
{
@@ -139,7 +136,83 @@
}
```
### 3. 微信登录
### 3. 获取当前用户信息
**Endpoint**: `GET /auth/me`
**认证**: 需要Bearer Token
**描述**: 获取当前登录用户信息
**响应**:
```json
{
"success": true,
"code": 200,
"data": {
"user": {
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"email": "test@example.com",
"phone": "13800138000",
"avatar": "https://example.com/avatar.jpg",
"gender": "male",
"birthday": "1990-01-01",
"points": 1000,
"level": 3,
"balance": 500.00,
"travel_count": 5,
"animal_adopt_count": 2,
"flower_order_count": 3,
"status": "active",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-01-01T00:00:00.000Z",
"last_login_at": "2025-01-01T00:00:00.000Z"
}
}
}
```
### 4. 更新用户信息
**Endpoint**: `PUT /auth/profile`
**认证**: 需要Bearer Token
**描述**: 更新用户个人信息
**请求体**:
```json
{
"nickname": "string, optional, 昵称",
"avatar": "string, optional, 头像URL",
"gender": "string, optional, 性别(male/female/other)",
"birthday": "string, optional, 生日(YYYY-MM-DD)"
}
```
**响应**:
```json
{
"success": true,
"code": 200,
"message": "用户信息更新成功",
"data": {
"user": {
"id": 1,
"username": "testuser",
"nickname": "新昵称",
"avatar": "https://example.com/new-avatar.jpg",
"gender": "male",
"birthday": "1990-01-01",
"updated_at": "2025-01-01T00:00:00.000Z"
}
}
}
```
### 5. 微信登录
**Endpoint**: `POST /auth/wechat-login`
@@ -157,7 +230,28 @@
}
```
**响应**: 同登录接口
**响应**:
```json
{
"success": true,
"code": 200,
"message": "微信登录成功",
"data": {
"user": {
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"avatar": "https://example.com/avatar.jpg",
"gender": "male",
"points": 100,
"level": 2,
"status": "active",
"last_login_at": "2025-01-01T00:00:00.000Z"
},
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
}
}
```
### 4. 获取当前用户信息
@@ -197,21 +291,21 @@
}
```
### 5. 更新用户信息
### 6. 更新用户信息
## 管理员接口
**Endpoint**: `PUT /auth/profile`
### 6. 管理员登录
**认证**: 需要Bearer Token
**Endpoint**: `POST /auth/admin/login`
**描述**: 管理员登录获取访问令牌
**描述**: 更新用户个人信息
**请求体**:
```json
{
"username": "string, required, 管理员用户名",
"password": "string, required, 密码"
"nickname": "string, optional, 昵称",
"avatar": "string, optional, 头像URL",
"gender": "string, optional, 性别(male/female/other)",
"birthday": "string, optional, 生日(YYYY-MM-DD)"
}
```
@@ -220,36 +314,215 @@
{
"success": true,
"code": 200,
"message": "登录成功",
"message": "用户信息更新成功",
"data": {
"user": {
"id": 1,
"username": "admin",
"email": "admin@jiebanke.com",
"real_name": "管理员",
"avatar": "",
"status": "active",
"last_login_at": "2025-01-01T00:00:00.000Z"
},
"roles": [
"username": "testuser",
"nickname": "新昵称",
"avatar": "https://example.com/new-avatar.jpg",
"gender": "male",
"birthday": "1990-01-01",
"updated_at": "2025-01-01T00:00:00.000Z"
}
}
}
```
## 用户服务接口
### 1. 获取用户列表
**Endpoint**: `GET /users`
**认证**: 需要Bearer Token
**描述**: 获取用户列表(管理员权限)
**查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `username` (可选): 用户名模糊搜索
- `status` (可选): 状态过滤
**响应**:
```json
{
"success": true,
"code": 200,
"data": {
"users": [
{
"id": 2,
"name": "admin",
"description": "普通管理员"
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"email": "test@example.com",
"phone": "13800138000",
"avatar": "https://example.com/avatar.jpg",
"gender": "male",
"points": 100,
"level": 2,
"status": "active",
"created_at": "2025-01-01T00:00:00.000Z"
}
],
"permissions": [
"user:manage",
"content:review",
"content:publish",
"data:view",
"data:export"
],
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9..."
"pagination": {
"total": 100,
"page": 1,
"limit": 20,
"pages": 5
}
}
}
```
### 2. 获取用户详情
**Endpoint**: `GET /users/{id}`
**认证**: 需要Bearer Token
**描述**: 获取指定用户的详细信息
**响应**:
```json
{
"success": true,
"code": 200,
"data": {
"user": {
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"email": "test@example.com",
"phone": "13800138000",
"avatar": "https://example.com/avatar.jpg",
"gender": "male",
"birthday": "1990-01-01",
"points": 1000,
"level": 3,
"balance": 500.00,
"travel_count": 5,
"animal_adopt_count": 2,
"flower_order_count": 3,
"status": "active",
"created_at": "2025-01-01T00:00:00.000Z",
"updated_at": "2025-01-01T00:00:00.000Z"
}
}
}
```
## 8. 管理员接口
### 8.1 管理员登录
- **Endpoint**: POST /api/v1/admin/login
- **认证要求**: 无
- **描述**: 管理员登录系统
- **请求体**:
```json
{
"username": "admin",
"password": "password123"
}
```
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "登录成功",
"data": {
"token": "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9...",
"admin": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"nickname": "超级管理员",
"avatar": "https://example.com/avatar.jpg",
"role": "super_admin",
"status": 1,
"last_login": "2024-01-15T10:30:00.000Z"
}
}
}
```
### 8.2 获取管理员信息
- **Endpoint**: GET /api/v1/admin/profile
- **认证要求**: Bearer Token
- **描述**: 获取当前登录管理员信息
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"id": 1,
"username": "admin",
"email": "admin@example.com",
"nickname": "超级管理员",
"avatar": "https://example.com/avatar.jpg",
"role": "super_admin",
"status": 1,
"last_login": "2024-01-15T10:30:00.000Z",
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-15T10:30:00.000Z"
}
}
```
### 8.3 更新管理员信息
- **Endpoint**: PUT /api/v1/admin/profile
- **认证要求**: Bearer Token
- **描述**: 更新当前登录管理员信息
- **请求体**:
```json
{
"nickname": "新昵称",
"email": "newemail@example.com",
"avatar": "https://example.com/new-avatar.jpg"
}
```
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "更新成功",
"data": {
"id": 1,
"username": "admin",
"email": "newemail@example.com",
"nickname": "新昵称",
"avatar": "https://example.com/new-avatar.jpg",
"role": "super_admin",
"status": 1
}
}
```
### 8.4 修改密码
- **Endpoint**: PUT /api/v1/admin/password
- **认证要求**: Bearer Token
- **描述**: 修改当前登录管理员密码
- **请求体**:
```json
{
"old_password": "oldpassword123",
"new_password": "newpassword456"
}
```
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "密码修改成功"
}
```
### 7. 获取管理员信息
**Endpoint**: `GET /auth/admin/me`
@@ -293,26 +566,23 @@
}
```
### 8. 用户管理接口
### 9. 用户管理接口
#### 8.1 获取用户列表
**Endpoint**: `GET /admin/users`
**认证**: 需要Bearer Token需要user:manage权限
**查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `username` (可选): 用户名模糊搜索
- `user_type` (可选): 用户类型过滤
- `status` (可选): 状态过滤
**响应**:
#### 9.1 获取用户列表
- **Endpoint**: GET /api/v1/users
- **认证要求**: Bearer Token需要user:manage权限
- **查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `username` (可选): 用户名模糊搜索
- `user_type` (可选): 用户类型过滤
- `status` (可选): 状态过滤
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"users": [
{
@@ -339,20 +609,43 @@
}
```
#### 8.2 更新用户状态
**Endpoint**: `PUT /admin/users/{id}/status`
**认证**: 需要Bearer Token需要user:manage权限
**请求体**:
#### 9.2 获取用户详情
- **Endpoint**: GET /api/v1/users/{id}
- **认证要求**: Bearer Token需要user:manage权限
- **响应**:
```json
{
"status": "string, required, 状态(active/inactive)"
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"user": {
"id": 1,
"username": "testuser",
"nickname": "测试用户",
"email": "test@example.com",
"phone": "13800138000",
"user_type": "farmer",
"status": "active",
"points": 100,
"level": 2,
"created_at": "2025-01-01T00:00:00.000Z",
"last_login_at": "2025-01-01T00:00:00.000Z"
}
}
}
```
**响应**:
#### 9.3 更新用户状态
- **Endpoint**: PUT /api/v1/users/{id}/status
- **认证要求**: Bearer Token需要user:manage权限
- **请求体**:
```json
{
"status": "active"
}
```
- **响应**:
```json
{
"success": true,
@@ -361,25 +654,173 @@
}
```
### 9. 内容管理接口
#### 9.1 获取内容列表
**Endpoint**: `GET /admin/contents`
**认证**: 需要Bearer Token需要content:review权限
**查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `type` (可选): 内容类型
- `status` (可选): 审核状态
**响应**:
#### 9.4 删除用户
- **Endpoint**: DELETE /api/v1/users/{id}
- **认证要求**: Bearer Token需要user:manage权限
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "用户删除成功"
}
```
### 10. 系统管理接口
#### 10.1 获取系统信息
- **Endpoint**: GET /api/v1/admin/system/info
- **认证要求**: Bearer Token需要system:view权限
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"system": {
"version": "1.0.0",
"node_version": "v18.17.0",
"platform": "linux",
"arch": "x64",
"uptime": 123456,
"memory_usage": {
"total": 17179869184,
"used": 8589934592,
"free": 8589934592
},
"cpu_usage": 25.5
}
}
}
```
#### 10.2 获取系统服务列表
- **Endpoint**: GET /api/v1/admin/system/services
- **认证要求**: Bearer Token需要system:manage权限
- **查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `type` (可选): 服务类型(database/cache/mq)
- `status` (可选): 服务状态(running/stopped)
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"services": [
{
"id": "mysql",
"name": "MySQL数据库",
"type": "database",
"status": "running",
"host": "localhost",
"port": 3306,
"description": "主数据库服务",
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-15T10:30:00.000Z"
}
],
"pagination": {
"total": 5,
"page": 1,
"limit": 20,
"pages": 1
}
}
}
```
#### 10.3 更新服务状态
- **Endpoint**: PUT /api/v1/admin/system/services/{id}/status
- **认证要求**: Bearer Token需要system:manage权限
- **请求体**:
```json
{
"status": "stopped"
}
```
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "服务状态更新成功"
}
```
#### 10.4 获取系统配置
- **Endpoint**: GET /api/v1/admin/system/configs
- **认证要求**: Bearer Token需要system:config权限
- **查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `group` (可选): 配置分组
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"configs": [
{
"id": "site_name",
"name": "网站名称",
"value": "结伴客",
"type": "string",
"group": "basic",
"description": "网站显示名称",
"created_at": "2024-01-01T00:00:00.000Z",
"updated_at": "2024-01-15T10:30:00.000Z"
}
],
"pagination": {
"total": 10,
"page": 1,
"limit": 20,
"pages": 1
}
}
}
```
#### 10.5 更新系统配置
- **Endpoint**: PUT /api/v1/admin/system/configs/{id}
- **认证要求**: Bearer Token需要system:config权限
- **请求体**:
```json
{
"value": "新网站名称"
}
```
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "配置更新成功"
}
```
### 11. 内容管理接口
#### 11.1 获取内容列表
- **Endpoint**: GET /admin/contents
- **认证要求**: Bearer Token需要content:review权限
- **查询参数**:
- `page` (可选): 页码默认1
- `limit` (可选): 每页数量默认20
- `type` (可选): 内容类型
- `status` (可选): 审核状态
- **响应**:
```json
{
"success": true,
"code": 200,
"message": "获取成功",
"data": {
"contents": [
{

View File

@@ -4,35 +4,100 @@
### 1.1 架构图
```mermaid
graph TB
subgraph "客户端层"
A[微信小程序 uni-app]
B[后台管理系统 Vue 3 + Ant Design]
C[官网系统 HTML5 + Bootstrap]
end
subgraph "接入层"
D[Express API Gateway]
end
subgraph "应用服务层"
E[认证服务]
F[用户服务]
G[旅行服务]
H[动物服务]
I[订单服务]
J[管理员服务]
end
subgraph "基础设施层"
K[MySQL 数据库]
L[Redis 缓存]
M[RabbitMQ 消息队列]
N[文件存储]
end
subgraph "监控运维层"
O[Swagger API 文档]
P[Winston 日志系统]
Q[健康检查监控]
end
A --> D
B --> D
C --> D
D --> E
D --> F
D --> G
D --> H
D --> I
D --> J
E --> K
F --> K
G --> K
H --> K
I --> K
J --> K
E --> L
F --> L
G --> L
I --> M
E --> N
F --> N
H --> N
D --> O
D --> P
D --> Q
```
**系统架构层次说明:**
**1. 客户端层**
- **微信小程序**: 基于uni-app开发提供用户端功能
- **后台管理系统**: 基于Vue.js 3 + Ant Design开发,提供管理功能
- **后台管理系统**: 基于Vue.js 3 + TypeScript + Ant Design Vue + Pinia开发,提供管理功能
- **官网系统**: 基于HTML5 + Bootstrap开发提供企业宣传功能
**2. 接入层**
- **API网关**: 基于Nginx + Node.js提供统一的API接入路由分发
- **API网关**: 基于Express.js框架提供统一的API接入路由分发、安全防护和请求处理所有API路径前缀为`/api/v1`
**3. 应用服务层**
- **认证服务**: 用户身份认证和权限管理
- **用户服务**: 用户信息管理个人中心功能
- **旅行服务**: 旅行计划创建、查询匹配功能
- **动物服务**: 动物信息管理认领功能
- **商家服务**: 商家认证、商品和服务管理
- **支付服务**: 支付处理和交易管理
- **推广服务**: 推广活动和奖励管理
- **认证服务**: 用户身份认证、JWT令牌管理和权限控制
- **用户服务**: 用户信息管理个人中心功能和用户统计
- **旅行服务**: 旅行计划创建、查询匹配和管理功能
- **动物服务**: 动物信息管理认领流程和动物统计
- **订单服务**: 订单创建、支付处理和交易管理
- **管理员服务**: 管理员权限管理和系统配置
**4. 基础设施层**
- **MySQL数据库**: 主从复制架构,存储核心业务数据
- **Redis缓存**: 集群模式,提供高性能缓存服务
- **RabbitMQ消息队列**: 异步消息处理和解耦
- **对象存储**: 腾讯云COS存储图片和文件资源
- **MySQL数据库**: 单实例架构,存储核心业务数据,使用连接池优化性能(测试环境: 192.168.0.240:3306生产环境: 129.211.213.226:9527
- **Redis缓存**: 单实例模式,提供会话管理和数据缓存服务
- **RabbitMQ消息队列**: 异步消息处理和解耦(待实现)
- **文件存储**: 本地文件系统,存储用户上传的图片和文件资源
**5. 监控运维层**
- **监控系统**: Prometheus + Grafana系统性能监控
- **日志系统**: ELK Stack日志收集和分析
- **CI/CD**: Jenkins + Docker持续集成和部署
- **Swagger API文档**: 自动生成的API接口文档
- **Winston日志系统**: 结构化日志记录和分析
- **健康检查监控**: 系统状态监控和性能统计
**架构连接关系:**
- 所有客户端通过API网关访问后端服务
@@ -274,52 +339,36 @@
## 2. 技术栈选型
### 2.1 后端技术栈
API服务: Node.js + Express.js + TypeScript + RESTful API
数据库: MySQL 8.0 (包含RBAC权限管理表结构)
缓存系统: Redis Cluster
消息队列: RabbitMQ用于异步处理
文件存储: 腾讯云对象存储
实时通信: WebSocket用于实时通知和聊天功能
API文档: Swagger + OpenAPI 3.0
权限管理: JWT + RBAC (基于角色的访问控制)
### 2.2 前端技术栈
#### 微信小程序技术栈
- **开发框架**: uni-app
- **开发语言**: JavaScript/TypeScript
- **UI框架**: WeUI
- **状态管理**: Redux
- **构建工具**: Webpack
- **包管理**: npm/yarn
| 技术组件 | 版本 | 用途 | 选型理由 |
|---------|------|------|----------|
| Node.js | >=16.0.0 | 运行时环境 | 高性能、异步I/O、丰富的生态系统 |
| Express.js | ^4.18.2 | Web框架 | 轻量级、灵活、中间件生态丰富 |
| MySQL2 | ^3.14.3 | 数据库驱动 | 支持Promise、连接池、性能优化 |
| JWT | ^9.0.2 | 身份认证 | 无状态、安全、易于分布式部署 |
| bcryptjs | ^2.4.3 | 密码加密 | 安全性高、性能适中 |
| Redis | ^5.8.2 | 缓存/会话 | 内存存储、高性能、支持数据结构 |
| RabbitMQ | ^0.10.9 | 消息队列 | 异步处理、系统解耦(待实现) |
| Swagger | ^6.2.8 | API文档 | 自动化文档、接口测试 |
| Winston | ^3.11.0 | 日志系统 | 结构化日志、多传输方式 |
#### 后台管理系统技术栈 (Vue.js 3 + TypeScript + Ant Design Vue + Pinia)
- **核心框架**: Vue.js 3.3.0 (Composition API + `<script setup>`语法)
- **开发语言**: TypeScript 5.0.0 (严格模式 + 完整类型系统)
- **UI组件库**: Ant Design Vue 4.0.0 (企业级UI设计规范)
- **状态管理**: Pinia 2.1.0 (轻量级、类型安全的Vue状态管理)
- **路由管理**: Vue Router 4.x (支持TypeScript的类型安全路由)
- **构建工具**: Vite 4.x (快速的开发服务器和热重载)
- **包管理**: npm/yarn
- **代码规范**: ESLint + Prettier (统一的代码风格和质量)
- **测试框架**: Vitest + Vue Test Utils (单元测试和组件测试)
### 2.2 安全防护
### 2.3 官网技术栈
- 核心技术HTML5 + Bootstrap
- 开发语言JavaScript
- 构建工具Webpack
- 包管理npm/yarn
| 安全组件 | 版本 | 防护类型 |
|----------|------|----------|
| Helmet | ^7.1.0 | 安全头部 |
| express-rate-limit | ^7.1.5 | 请求限流 |
| xss-clean | ^0.1.4 | XSS防护 |
| hpp | ^0.2.3 | 参数污染防护 |
| express-mongo-sanitize | ^2.2.0 | NoSQL注入防护 |
### 2.3 数据库选型
- 主数据库MySQL 5.7
- 权限管理RBAC模型 (包含roles、permissions、role_permissions、user_roles表)
### 2.3 前端技术栈
### 2.4 缓存选型
- 分布式缓存Redis Cluster
- 本地缓存Node.js内置缓存
### 2.5 消息队列选型
- 消息中间件RabbitMQ
- 实时消息推送WebSocket
| 项目 | 技术栈 | 状态 |
|------|--------|------|
| 微信小程序 | uni-app + Vue 2 | 开发中 |
| 后台管理系统 | Vue 3 + TypeScript + Ant Design Vue + Pinia | 开发中 |
| 官网系统 | HTML5 + Bootstrap + JavaScript | 待开发 |
### 2.6 选型理由与对比分析

View File

@@ -15,6 +15,8 @@
- **用户名**: root
- **密码**: aiotAiot123!
- **数据库**: jiebandata
**注意**: 管理员默认账号为 admin默认密码为 admin123
## 1. 数据库设计
### 1.1 ER图

View File

@@ -148,10 +148,10 @@
### 2.2 前端开发工时
#### 2.2.1 基础框架搭建 (10人日)
- 微信小程序基础框架搭建: 4人日
- 微信小程序基础框架搭建 (uni-app): 4人日
- UI组件库集成: 2人日
- 状态管理配置: 2人日
- 网络请求封装: 2人日
- 状态管理配置 (Pinia): 2人日
- 网络请求封装 (axios): 2人日
#### 2.2.2 用户端功能开发 (25人日)
- 用户登录/注册页面: 3人日
@@ -169,7 +169,7 @@
- 评价管理页面: 3人日
#### 2.2.4 管理员后台功能开发 (25人日)
- 管理员登录页面: 2人日
- 管理员登录页面 (Vue 3 + Ant Design): 2人日
- 用户管理页面: 5人日
- 内容管理页面: 5人日
- 数据统计页面: 6人日

View File

@@ -96,8 +96,8 @@
#### 商家用户功能
- 通过官网了解平台商业模式和收益机制
- 查看商家合作政策和入驻流程
- 在线提交商家入驻申请
- 查看商家成功案例和收益数据
- 在线提交商家入驻申请API: POST /api/v1/website/merchant/apply
- 查看商家成功案例和收益数据API: GET /api/v1/website/cases
## 3. 用户故事