重构动物模型和路由系统,优化查询逻辑并新增商户和促销活动功能

This commit is contained in:
ylweng
2025-09-22 02:04:07 +08:00
parent 5fc1a4fcb9
commit 47c816270d
54 changed files with 5384 additions and 4639 deletions

View File

@@ -3,7 +3,7 @@
## 1. 项目概述
### 1.1 项目简介
解班客后端服务是一个基于Node.js + TypeScript + Express的微服务架构系统为小程序端、管理后台和官网提供API服务支持。
结伴客后端服务是一个基于Node.js + TypeScript + Express的微服务架构系统为小程序端、管理后台和官网提供API服务支持。
### 1.2 技术栈
- **运行环境**Node.js 18.x
@@ -842,7 +842,7 @@ const logger = winston.createLogger({
## 8. 总结
本开发文档详细规划了解班客后端系统的开发计划包括
本开发文档详细规划了结伴客后端系统的开发计划包括
### 8.1 开发计划
- **总工期**65个工作日

View File

@@ -1,4 +1,4 @@
# 解班客项目安全文档
# 结伴客项目安全文档
## 1. 安全概述
@@ -309,8 +309,8 @@ const mfaService = {
// 生成TOTP密钥
generateSecret: (userId) => {
const secret = speakeasy.generateSecret({
name: `解班客 (${userId})`,
issuer: '解班客',
name: `结伴客 (${userId})`,
issuer: '结伴客',
length: 32
});
@@ -1958,7 +1958,7 @@ main "$@"
### 10.1 安全架构总结
解班客项目的安全架构采用了多层防护策略,包括:
结伴客项目的安全架构采用了多层防护策略,包括:
- **网络安全层**WAF、防火墙、DDoS防护
- **应用安全层**:身份认证、权限控制、输入验证
@@ -1993,4 +1993,4 @@ main "$@"
- **《个人信息保护法》**:个人信息处理规范
- **等保2.0**:信息系统安全等级保护
通过实施本安全文档中的各项措施,可以有效保护解班客项目的安全,确保用户数据和业务系统的安全稳定运行。
通过实施本安全文档中的各项措施,可以有效保护结伴客项目的安全,确保用户数据和业务系统的安全稳定运行。

View File

@@ -1,9 +1,9 @@
# 解班客官网需求文档
# 结伴客官网需求文档
## 1. 项目概述
### 1.1 官网定位
解班客官网作为品牌展示和商家入驻的主要平台,承担着品牌宣传、用户引流、商家服务、信息展示等重要职能。
结伴客官网作为品牌展示和商家入驻的主要平台,承担着品牌宣传、用户引流、商家服务、信息展示等重要职能。
### 1.2 目标用户
- **潜在用户**:了解平台服务,下载小程序
@@ -21,7 +21,7 @@
### 2.1 首页
#### 2.1.1 品牌展示区
- **品牌Logo和Slogan**:突出显示解班客品牌标识
- **品牌Logo和Slogan**:突出显示结伴客品牌标识
- **核心价值主张**:简洁明了地传达平台价值
- **视觉冲击力**:使用高质量的背景图片或视频
- **行动召唤按钮**:引导用户下载小程序

View File

@@ -161,11 +161,11 @@ X-Version: 1.0.0
"openid": "wx_openid_123",
"unionid": "wx_unionid_456",
"nickname": "微信用户",
"avatar_url": "https://wx.qlogo.cn/avatar.jpg",
"gender": 1,
"city": "北京",
"province": "北京",
"country": "中国",
"real_name": "",
"avatar": "https://wx.qlogo.cn/avatar.jpg",
"user_type": "regular",
"balance": 0.00,
"status": "active",
"is_new_user": false,
"profile_completed": true
}
@@ -216,18 +216,12 @@ X-Version: 1.0.0
"id": 1,
"uuid": "user_123456",
"nickname": "旅行达人",
"real_name": "张三",
"avatar_url": "https://example.com/avatar.jpg",
"gender": 1,
"birthday": "1990-01-01",
"location": "北京市",
"bio": "热爱旅行和小动物",
"phone": "13800138000",
"email": "user@example.com",
"user_type": "normal",
"balance": 1500.00,
"status": 1,
"profile_completed": true,
"real_name_verified": true,
"phone_verified": true,
"email_verified": false,
"created_at": "2024-01-01T10:00:00Z",
"statistics": {
"travel_count": 5,
@@ -269,7 +263,7 @@ X-Version: 1.0.0
"data": {
"id": 1,
"nickname": "新昵称",
"avatar_url": "https://example.com/new_avatar.jpg",
"avatar": "https://example.com/new_avatar.jpg",
"updated_at": "2024-01-15T10:30:00Z"
}
}
@@ -318,18 +312,19 @@ X-Version: 1.0.0
"duration_days": 5,
"max_participants": 8,
"current_participants": 3,
"budget_min": 2000.00,
"budget_max": 3000.00,
"price_per_person": 2500.00,
"includes": "住宿、早餐、门票、导游",
"excludes": "午餐、晚餐、个人消费",
"travel_type": "cultural",
"status": 1,
"is_featured": 1,
"status": "recruiting",
"is_featured": true,
"view_count": 156,
"like_count": 23,
"comment_count": 8,
"creator": {
"id": 1,
"nickname": "旅行达人",
"avatar_url": "https://example.com/avatar.jpg"
"avatar": "https://example.com/avatar.jpg"
},
"cover_image": "https://example.com/cover.jpg",
"images": [
@@ -383,28 +378,20 @@ X-Version: 1.0.0
"duration_days": 5,
"max_participants": 8,
"current_participants": 3,
"min_age": 18,
"max_age": 60,
"gender_limit": 0,
"budget_min": 2000.00,
"budget_max": 3000.00,
"price_per_person": 2500.00,
"includes": "住宿、早餐、门票、导游",
"excludes": "午餐、晚餐、个人消费",
"travel_type": "cultural",
"transportation": "高铁+包车",
"accommodation": "客栈",
"itinerary": [
{
"day": 1,
"title": "抵达大理",
"activities": ["接机", "入住客栈", "古城夜游"],
"meals": ["晚餐"],
"accommodation": "大理古城客栈"
"activities": ["接机", "入住客栈", "古城夜游"]
},
{
"day": 2,
"title": "大理古城游览",
"activities": ["洱海骑行", "三塔寺参观", "古城购物"],
"meals": ["早餐", "午餐", "晚餐"],
"accommodation": "大理古城客栈"
"activities": ["洱海骑行", "三塔寺参观", "古城购物"]
}
],
"requirements": "身体健康,有一定体力,热爱文化旅行",
@@ -419,8 +406,8 @@ X-Version: 1.0.0
"https://example.com/image2.jpg"
],
"tags": ["文化", "古城", "摄影"],
"status": 1,
"is_featured": 1,
"status": "recruiting",
"is_featured": true,
"view_count": 156,
"like_count": 23,
"comment_count": 8,
@@ -428,7 +415,7 @@ X-Version: 1.0.0
"creator": {
"id": 1,
"nickname": "旅行达人",
"avatar_url": "https://example.com/avatar.jpg",
"avatar": "https://example.com/avatar.jpg",
"travel_count": 15,
"rating": 4.8,
"verified": true
@@ -439,11 +426,11 @@ X-Version: 1.0.0
"user": {
"id": 2,
"nickname": "小明",
"avatar_url": "https://example.com/avatar2.jpg",
"avatar": "https://example.com/avatar2.jpg",
"age": 28,
"gender": 1
},
"status": 1,
"status": "confirmed",
"applied_at": "2024-01-10T15:30:00Z"
}
],
@@ -468,35 +455,21 @@ X-Version: 1.0.0
"title": "西藏拉萨朝圣之旅",
"description": "深度体验西藏文化,朝圣布达拉宫...",
"destination": "西藏拉萨",
"destination_detail": {
"province": "西藏自治区",
"city": "拉萨市",
"address": "布达拉宫广场",
"latitude": 29.6544,
"longitude": 91.1175
},
"start_date": "2024-04-01",
"end_date": "2024-04-07",
"max_participants": 6,
"min_age": 20,
"max_age": 50,
"gender_limit": 0,
"budget_min": 5000.00,
"budget_max": 8000.00,
"price_per_person": 6500.00,
"includes": "住宿、早餐、景点门票",
"excludes": "往返机票、午晚餐",
"travel_type": "cultural",
"transportation": "飞机+包车",
"accommodation": "酒店",
"itinerary": [
{
"day": 1,
"title": "抵达拉萨",
"activities": ["接机", "入住酒店", "适应高原"],
"meals": ["晚餐"]
"activities": ["接机", "入住酒店", "适应高原"]
}
],
"requirements": "身体健康,无高原反应病史",
"included_services": ["住宿", "早餐", "景点门票"],
"excluded_services": ["往返机票", "午晚餐"],
"contact_info": {
"wechat": "tibet_lover",
"phone": "13900139000"
@@ -626,13 +599,13 @@ X-Version: 1.0.0
| size | integer | 否 | 每页数量默认10 |
| sort | string | 否 | 排序默认created_at:desc |
| keyword | string | 否 | 搜索关键词(动物名称) |
| species | string | 否 | 物种cat,dog,rabbit,other |
| type | string | 否 | 动物类型cat,dog,rabbit,other |
| breed | string | 否 | 品种 |
| gender | integer | 否 | 性别:1-雄性2-雌性 |
| gender | string | 否 | 性别:male,female |
| age_min | integer | 否 | 年龄下限(月) |
| age_max | integer | 否 | 年龄上限(月) |
| location | string | 否 | 所在地 |
| status | integer | 否 | 状态:1-可认领2-已认领 |
| status | string | 否 | 状态:available,claimed,unavailable |
| is_featured | integer | 否 | 是否精选1-是 |
#### 响应示例
@@ -646,35 +619,34 @@ X-Version: 1.0.0
"id": 1,
"uuid": "animal_123456",
"name": "小花",
"species": "cat",
"type": "",
"breed": "英国短毛猫",
"gender": 2,
"gender": "female",
"age": 24,
"weight": 4.5,
"color": "银渐层",
"description": "性格温顺,喜欢晒太阳",
"personality": "温顺、亲人、活泼",
"health_status": "健康",
"price": 500.00,
"daily_cost": 15.00,
"location": "北京市朝阳区",
"adoption_fee": 500.00,
"monthly_cost": 200.00,
"status": 1,
"is_featured": 1,
"view_count": 89,
"like_count": 15,
"adoption_count": 0,
"cover_image": "https://example.com/cat_cover.jpg",
"status": "available",
"health_status": "健康",
"description": "性格温顺,喜欢晒太阳",
"images": [
"https://example.com/cat1.jpg",
"https://example.com/cat2.jpg"
],
"farm": {
"vaccination_records": [
{
"vaccine": "狂犬疫苗",
"date": "2024-01-01",
"next_date": "2025-01-01"
}
],
"farmer": {
"id": 1,
"name": "爱心动物农场",
"location": "北京市朝阳区",
"rating": 4.8
"location": "北京市朝阳区"
},
"tags": ["温顺", "亲人", "已绝育"],
"view_count": 89,
"like_count": 15,
"created_at": "2024-01-10T10:00:00Z"
}
],
@@ -704,78 +676,35 @@ X-Version: 1.0.0
"id": 1,
"uuid": "animal_123456",
"name": "小花",
"species": "cat",
"type": "",
"breed": "英国短毛猫",
"gender": 2,
"gender": "female",
"age": 24,
"weight": 4.5,
"color": "银渐层",
"description": "小花是一只非常温顺的英国短毛猫,喜欢晒太阳和玩毛线球...",
"personality": "温顺、亲人、活泼",
"health_status": "健康",
"vaccination_status": {
"rabies": {
"vaccinated": true,
"date": "2023-12-01",
"next_due": "2024-12-01"
},
"feline_distemper": {
"vaccinated": true,
"date": "2023-12-01",
"next_due": "2024-12-01"
}
},
"medical_history": "2023年11月进行了绝育手术恢复良好",
"price": 500.00,
"daily_cost": 15.00,
"location": "北京市朝阳区",
"adoption_fee": 500.00,
"monthly_cost": 200.00,
"status": 1,
"is_featured": 1,
"view_count": 89,
"like_count": 15,
"adoption_count": 0,
"status": "available",
"health_status": "健康",
"description": "小花是一只非常温顺的英国短毛猫,喜欢晒太阳和玩毛线球...",
"images": [
"https://example.com/cat1.jpg",
"https://example.com/cat2.jpg"
],
"videos": [
"https://example.com/cat_video1.mp4"
"vaccination_records": [
{
"vaccine": "狂犬疫苗",
"date": "2024-01-01",
"next_date": "2025-01-01"
}
],
"farm": {
"farmer": {
"id": 1,
"name": "爱心动物农场",
"location": "北京市朝阳区",
"contact_phone": "13800138000",
"description": "专业的动物救助机构",
"rating": 4.8,
"images": [
"https://example.com/farm1.jpg"
]
"contact_phone": "13800138000"
},
"caretaker": {
"id": 1,
"name": "张三",
"avatar_url": "https://example.com/caretaker.jpg",
"experience": "5年动物护理经验",
"introduction": "热爱动物,专业护理"
},
"adoption_types": [
{
"type": 1,
"name": "长期认领",
"description": "12个月以上的长期认领",
"min_duration": 12,
"monthly_fee": 200.00
},
{
"type": 2,
"name": "短期认领",
"description": "1-6个月的短期认领",
"min_duration": 1,
"monthly_fee": 250.00
}
],
"tags": ["温顺", "亲人", "已绝育"],
"view_count": 89,
"like_count": 15,
"is_liked": false,
"can_adopt": true,
"created_at": "2024-01-10T10:00:00Z"

View File

@@ -1,9 +1,9 @@
# 解班客小程序需求文档
# 结伴客小程序需求文档
## 1. 项目概述
### 1.1 产品定位
解班客微信小程序是面向C端用户的核心产品专注于提供结伴旅行和动物认领服务。通过微信生态的便利性为用户提供便捷的社交旅行体验和创新的动物认领服务。
结伴客微信小程序是面向C端用户的核心产品专注于提供结伴旅行和动物认领服务。通过微信生态的便利性为用户提供便捷的社交旅行体验和创新的动物认领服务。
### 1.2 目标用户
- **主要用户群体**18-35岁的年轻用户

View File

@@ -253,49 +253,392 @@ erDiagram
```sql
CREATE TABLE users (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '用户ID',
openid VARCHAR(100) UNIQUE NOT NULL COMMENT '微信openid',
unionid VARCHAR(100) COMMENT '微信unionid',
nickname VARCHAR(50) NOT NULL COMMENT '用户昵称',
avatar VARCHAR(255) COMMENT '头像URL',
gender ENUM('male', 'female', 'unknown') DEFAULT 'unknown' COMMENT '性别',
birthday DATE COMMENT '生日',
phone VARCHAR(20) UNIQUE COMMENT '手机号码',
email VARCHAR(100) UNIQUE COMMENT '邮箱地址',
province VARCHAR(50) COMMENT '省份',
city VARCHAR(50) COMMENT '城市',
travel_count INT DEFAULT 0 COMMENT '旅行次数',
animal_claim_count INT DEFAULT 0 COMMENT '认领动物数量',
real_name VARCHAR(50) COMMENT '真实姓名',
nickname VARCHAR(50) COMMENT '用户昵称',
avatar_url VARCHAR(255) COMMENT '头像URL',
user_type ENUM('regular','vip','premium') DEFAULT 'regular' COMMENT '用户类型',
status ENUM('active','inactive','banned') DEFAULT 'active' COMMENT '用户状态',
balance DECIMAL(10,2) DEFAULT 0.00 COMMENT '账户余额',
points INT DEFAULT 0 COMMENT '积分',
level ENUM('bronze', 'silver', 'gold', 'platinum') DEFAULT 'bronze' COMMENT '用户等级',
status ENUM('active', 'inactive', 'banned') DEFAULT 'active' COMMENT '用户状态',
level INT DEFAULT 1 COMMENT '用户等级',
last_login_at TIMESTAMP COMMENT '最后登录时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted_at TIMESTAMP NULL COMMENT '删除时间',
INDEX idx_openid (openid),
INDEX idx_phone (phone),
INDEX idx_email (email),
INDEX idx_status (status),
INDEX idx_user_type (user_type),
INDEX idx_level (level),
INDEX idx_created_at (created_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户基础信息表';
```
#### 1.2 用户兴趣表 (user_interests)
#### 1.2 管理员表 (admins)
```sql
CREATE TABLE user_interests (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '兴趣ID',
CREATE TABLE admins (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '管理员ID',
username VARCHAR(50) UNIQUE NOT NULL COMMENT '用户名',
password VARCHAR(255) NOT NULL COMMENT '密码',
email VARCHAR(100) UNIQUE COMMENT '邮箱',
nickname VARCHAR(50) COMMENT '昵称',
avatar VARCHAR(255) COMMENT '头像',
role ENUM('super_admin','admin','editor') DEFAULT 'admin' COMMENT '角色',
status ENUM('active','inactive') DEFAULT 'active' COMMENT '状态',
last_login TIMESTAMP COMMENT '最后登录时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
INDEX idx_username (username),
INDEX idx_email (email),
INDEX idx_role (role),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='管理员表';
```
### 2. 商家管理模块
#### 2.1 商家表 (merchants)
```sql
CREATE TABLE merchants (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '商家ID',
user_id INT NOT NULL COMMENT '关联用户ID',
name VARCHAR(100) NOT NULL COMMENT '商家名称',
description TEXT COMMENT '商家描述',
address VARCHAR(255) COMMENT '地址',
latitude DECIMAL(10,8) COMMENT '纬度',
longitude DECIMAL(11,8) COMMENT '经度',
contact_phone VARCHAR(20) COMMENT '联系电话',
business_hours VARCHAR(100) COMMENT '营业时间',
images JSON COMMENT '商家图片',
rating DECIMAL(3,2) DEFAULT 0.00 COMMENT '评分',
review_count INT DEFAULT 0 COMMENT '评价数量',
status ENUM('active','inactive','pending') DEFAULT 'pending' COMMENT '状态',
verified_at TIMESTAMP NULL COMMENT '认证时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_user_id (user_id),
INDEX idx_status (status),
INDEX idx_rating (rating),
INDEX idx_location (latitude, longitude)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商家信息表';
```
### 3. 动物认领模块
#### 3.1 动物表 (animals)
```sql
CREATE TABLE animals (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '动物ID',
name VARCHAR(50) NOT NULL COMMENT '动物名称',
type VARCHAR(30) NOT NULL COMMENT '动物类型',
breed VARCHAR(50) COMMENT '品种',
age INT COMMENT '年龄',
gender ENUM('male','female','unknown') DEFAULT 'unknown' COMMENT '性别',
description TEXT COMMENT '描述',
images JSON COMMENT '图片',
price DECIMAL(10,2) NOT NULL COMMENT '认领价格',
daily_cost DECIMAL(8,2) COMMENT '日常费用',
location VARCHAR(100) COMMENT '所在地',
farmer_id INT COMMENT '农场主ID',
status ENUM('available','claimed','unavailable') DEFAULT 'available' COMMENT '状态',
health_status VARCHAR(50) COMMENT '健康状态',
vaccination_records JSON COMMENT '疫苗记录',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted_at TIMESTAMP NULL COMMENT '删除时间',
FOREIGN KEY (farmer_id) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_farmer_id (farmer_id),
INDEX idx_type (type),
INDEX idx_status (status),
INDEX idx_price (price)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='动物信息表';
```
#### 3.2 动物认领表 (animal_claims)
```sql
CREATE TABLE animal_claims (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '认领ID',
animal_id INT NOT NULL COMMENT '动物ID',
user_id INT NOT NULL COMMENT '用户ID',
interest_name VARCHAR(50) NOT NULL COMMENT '兴趣名称',
interest_type ENUM('travel', 'food', 'sports', 'culture', 'nature') COMMENT '兴趣类型',
contact_info VARCHAR(100) COMMENT '联系信息',
status ENUM('pending','approved','rejected','cancelled') DEFAULT 'pending' COMMENT '状态',
reviewed_by INT COMMENT '审核人ID',
reviewed_at TIMESTAMP NULL COMMENT '审核时间',
review_note TEXT COMMENT '审核备注',
start_date DATE COMMENT '开始日期',
end_date DATE COMMENT '结束日期',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted_at TIMESTAMP NULL COMMENT '删除时间',
FOREIGN KEY (animal_id) REFERENCES animals(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_animal_id (animal_id),
INDEX idx_user_id (user_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='动物认领表';
```
### 4. 旅行计划模块
#### 4.1 旅行计划表 (travel_plans)
```sql
CREATE TABLE travel_plans (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '计划ID',
title VARCHAR(100) NOT NULL COMMENT '计划标题',
destination VARCHAR(100) NOT NULL COMMENT '目的地',
description TEXT COMMENT '描述',
start_date DATE NOT NULL COMMENT '开始日期',
end_date DATE NOT NULL COMMENT '结束日期',
max_participants INT DEFAULT 10 COMMENT '最大参与人数',
current_participants INT DEFAULT 0 COMMENT '当前参与人数',
price_per_person DECIMAL(10,2) NOT NULL COMMENT '每人价格',
includes JSON COMMENT '包含项目',
excludes JSON COMMENT '不包含项目',
itinerary JSON COMMENT '行程安排',
images JSON COMMENT '图片',
requirements TEXT COMMENT '参与要求',
created_by INT NOT NULL COMMENT '创建者ID',
status ENUM('draft','published','cancelled','completed') DEFAULT 'draft' COMMENT '状态',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (created_by) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_created_by (created_by),
INDEX idx_destination (destination),
INDEX idx_status (status),
INDEX idx_start_date (start_date)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='旅行计划表';
```
#### 4.2 旅行报名表 (travel_registrations)
```sql
CREATE TABLE travel_registrations (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '报名ID',
travel_plan_id INT NOT NULL COMMENT '旅行计划ID',
user_id INT NOT NULL COMMENT '用户ID',
participants INT DEFAULT 1 COMMENT '参与人数',
message TEXT COMMENT '留言',
emergency_contact VARCHAR(50) COMMENT '紧急联系人',
emergency_phone VARCHAR(20) COMMENT '紧急联系电话',
status ENUM('pending','approved','rejected','cancelled') DEFAULT 'pending' COMMENT '状态',
reject_reason TEXT COMMENT '拒绝原因',
applied_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '申请时间',
responded_at TIMESTAMP NULL COMMENT '响应时间',
FOREIGN KEY (travel_plan_id) REFERENCES travel_plans(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_travel_plan_id (travel_plan_id),
INDEX idx_user_id (user_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='旅行报名表';
```
### 5. 花卉产品模块
#### 5.1 花卉表 (flowers)
```sql
CREATE TABLE flowers (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '花卉ID',
name VARCHAR(100) NOT NULL COMMENT '花卉名称',
scientific_name VARCHAR(100) COMMENT '学名',
category VARCHAR(50) COMMENT '分类',
color VARCHAR(30) COMMENT '颜色',
bloom_season VARCHAR(50) COMMENT '花期',
care_level ENUM('easy','medium','hard') DEFAULT 'medium' COMMENT '养护难度',
description TEXT COMMENT '描述',
care_instructions TEXT COMMENT '养护说明',
image VARCHAR(255) COMMENT '主图片',
images JSON COMMENT '图片集',
price DECIMAL(8,2) NOT NULL COMMENT '价格',
stock_quantity INT DEFAULT 0 COMMENT '库存数量',
farmer_id INT COMMENT '农场主ID',
status ENUM('available','out_of_stock','discontinued') DEFAULT 'available' COMMENT '状态',
seasonal_availability JSON COMMENT '季节性供应',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (farmer_id) REFERENCES users(id) ON DELETE SET NULL,
INDEX idx_farmer_id (farmer_id),
INDEX idx_category (category),
INDEX idx_status (status),
INDEX idx_price (price)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='花卉产品表';
```
### 6. 订单管理模块
#### 6.1 订单表 (orders)
```sql
CREATE TABLE orders (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '订单ID',
order_number VARCHAR(32) UNIQUE NOT NULL COMMENT '订单号',
user_id INT NOT NULL COMMENT '用户ID',
total_amount DECIMAL(15,2) NOT NULL COMMENT '订单总金额',
status ENUM('pending','paid','shipped','delivered','cancelled','refunded') DEFAULT 'pending' COMMENT '订单状态',
payment_status ENUM('unpaid','paid','refunded','partial_refund') DEFAULT 'unpaid' COMMENT '支付状态',
payment_method VARCHAR(20) COMMENT '支付方式',
payment_time TIMESTAMP NULL COMMENT '支付时间',
shipping_address JSON COMMENT '收货地址',
contact_info JSON COMMENT '联系信息',
notes TEXT COMMENT '备注',
ordered_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '下单时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_user_id (user_id),
INDEX idx_order_number (order_number),
INDEX idx_status (status),
INDEX idx_payment_status (payment_status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='订单表';
```
#### 6.2 支付表 (payments)
```sql
CREATE TABLE payments (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '支付ID',
order_id INT NOT NULL COMMENT '订单ID',
user_id INT NOT NULL COMMENT '用户ID',
amount DECIMAL(15,2) NOT NULL COMMENT '支付金额',
payment_method ENUM('wechat','alipay','balance','points') NOT NULL COMMENT '支付方式',
status ENUM('pending','success','failed','cancelled','refunded') DEFAULT 'pending' COMMENT '支付状态',
transaction_id VARCHAR(100) COMMENT '交易流水号',
paid_amount DECIMAL(15,2) COMMENT '实际支付金额',
paid_at TIMESTAMP NULL COMMENT '支付时间',
FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_order_id (order_id),
INDEX idx_user_id (user_id),
INDEX idx_status (status),
INDEX idx_transaction_id (transaction_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='支付记录表';
```
#### 6.3 退款表 (refunds)
```sql
CREATE TABLE refunds (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '退款ID',
payment_id INT NOT NULL COMMENT '支付ID',
user_id INT NOT NULL COMMENT '用户ID',
refund_amount DECIMAL(15,2) NOT NULL COMMENT '退款金额',
refund_reason VARCHAR(255) NOT NULL COMMENT '退款原因',
status ENUM('pending','processing','completed','rejected') DEFAULT 'pending' COMMENT '退款状态',
processed_by INT COMMENT '处理人ID',
processed_at TIMESTAMP NULL COMMENT '处理时间',
process_remark TEXT COMMENT '处理备注',
refund_transaction_id VARCHAR(100) COMMENT '退款交易号',
refunded_at TIMESTAMP NULL COMMENT '退款完成时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
deleted_at TIMESTAMP NULL COMMENT '删除时间',
FOREIGN KEY (payment_id) REFERENCES payments(id) ON DELETE CASCADE,
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
INDEX idx_payment_id (payment_id),
INDEX idx_user_id (user_id),
INDEX idx_status (status)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='退款记录表';
```
### 7. 系统辅助表
#### 7.1 邮箱验证表 (email_verifications)
```sql
CREATE TABLE email_verifications (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '验证ID',
email VARCHAR(100) NOT NULL COMMENT '邮箱地址',
code VARCHAR(10) NOT NULL COMMENT '验证码',
type ENUM('register','reset_password','change_email') NOT NULL COMMENT '验证类型',
expires_at TIMESTAMP NOT NULL COMMENT '过期时间',
used_at TIMESTAMP NULL COMMENT '使用时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
INDEX idx_email (email),
INDEX idx_code (code),
INDEX idx_expires_at (expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='邮箱验证表';
```
#### 7.2 密码重置表 (password_resets)
```sql
CREATE TABLE password_resets (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '重置ID',
user_id INT NOT NULL COMMENT '用户ID',
token VARCHAR(100) NOT NULL COMMENT '重置令牌',
expires_at TIMESTAMP NOT NULL COMMENT '过期时间',
used_at TIMESTAMP NULL COMMENT '使用时间',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE,
UNIQUE KEY uk_user_interest (user_id, interest_name),
INDEX idx_user_id (user_id),
INDEX idx_interest_type (interest_type)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='用户兴趣表';
INDEX idx_token (token),
INDEX idx_expires_at (expires_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='密码重置表';
```
#### 7.3 登录尝试表 (login_attempts)
```sql
CREATE TABLE login_attempts (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '尝试ID',
identifier VARCHAR(100) NOT NULL COMMENT '标识符(用户名/邮箱/手机)',
ip_address VARCHAR(45) NOT NULL COMMENT 'IP地址',
user_agent TEXT COMMENT '用户代理',
success TINYINT(1) DEFAULT 0 COMMENT '是否成功',
failure_reason VARCHAR(100) COMMENT '失败原因',
attempted_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '尝试时间',
INDEX idx_identifier (identifier),
INDEX idx_ip_address (ip_address),
INDEX idx_attempted_at (attempted_at)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='登录尝试记录表';
```
## 5. 表关系图
### 5.1 外键关系
根据实际数据库结构,以下是表之间的外键关系:
```mermaid
erDiagram
users ||--o{ animal_claims : "user_id"
users ||--o{ animals : "farmer_id"
users ||--o{ flowers : "farmer_id"
users ||--o{ merchants : "user_id"
users ||--o{ orders : "user_id"
users ||--o{ password_resets : "user_id"
users ||--o{ payments : "user_id"
users ||--o{ refunds : "user_id"
users ||--o{ travel_plans : "created_by"
users ||--o{ travel_registrations : "user_id"
animals ||--o{ animal_claims : "animal_id"
orders ||--o{ payments : "order_id"
payments ||--o{ refunds : "payment_id"
travel_plans ||--o{ travel_registrations : "travel_plan_id"
```
### 5.2 核心业务关系说明
1. **用户中心关系**
- 用户可以认领多个动物 (users → animal_claims)
- 用户可以作为农场主管理动物和花卉 (users → animals/flowers)
- 用户可以注册为商家 (users → merchants)
- 用户可以下订单和支付 (users → orders → payments)
2. **旅行业务关系**
- 用户创建旅行计划 (users → travel_plans)
- 其他用户报名参与旅行 (users → travel_registrations)
- 旅行计划与报名记录关联 (travel_plans → travel_registrations)
3. **交易业务关系**
- 订单关联支付记录 (orders → payments)
- 支付记录可以产生退款 (payments → refunds)
- 所有交易都关联到用户 (users → orders/payments/refunds)
### 2. 商家管理模块
#### 2.1 商家表 (merchants)
@@ -480,46 +823,137 @@ CREATE TABLE animal_updates (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='动物更新记录表';
```
### 5. 商品订单模块
## 6. 数据库索引优化
#### 5.1 商品表 (products)
```sql
CREATE TABLE products (
id INT PRIMARY KEY AUTO_INCREMENT COMMENT '商品ID',
merchant_id INT NOT NULL COMMENT '商家ID',
category_id INT COMMENT '分类ID',
name VARCHAR(100) NOT NULL COMMENT '商品名称',
description TEXT COMMENT '商品描述',
price DECIMAL(10,2) NOT NULL COMMENT '商品价格',
original_price DECIMAL(10,2) COMMENT '原价',
stock INT DEFAULT 0 COMMENT '库存数量',
min_order_quantity INT DEFAULT 1 COMMENT '最小起订量',
max_order_quantity INT COMMENT '最大订购量',
images JSON COMMENT '商品图片数组',
specifications JSON COMMENT '商品规格',
tags VARCHAR(255) COMMENT '商品标签',
weight DECIMAL(8,3) COMMENT '商品重量(公斤)',
dimensions VARCHAR(50) COMMENT '商品尺寸',
shelf_life INT COMMENT '保质期(天)',
storage_conditions TEXT COMMENT '储存条件',
delivery_info TEXT COMMENT '配送信息',
rating DECIMAL(3,2) DEFAULT 5.00 COMMENT '商品评分',
review_count INT DEFAULT 0 COMMENT '评价数量',
sales_count INT DEFAULT 0 COMMENT '销售数量',
status ENUM('active', 'inactive', 'out_of_stock', 'discontinued') DEFAULT 'active' COMMENT '商品状态',
sort_order INT DEFAULT 0 COMMENT '排序权重',
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
FOREIGN KEY (merchant_id) REFERENCES merchants(id) ON DELETE CASCADE,
INDEX idx_merchant_id (merchant_id),
INDEX idx_category_id (category_id),
INDEX idx_price (price),
INDEX idx_status (status),
INDEX idx_rating (rating),
INDEX idx_sales_count (sales_count)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci COMMENT='商品信息表';
```
### 6.1 主要索引策略
#### 用户表 (users) 索引
- 主键索引:`PRIMARY KEY (id)`
- 状态索引:`INDEX idx_status (status)` - 用于用户状态筛选
- 用户类型索引:`INDEX idx_user_type (user_type)` - 用于用户类型查询
- 等级索引:`INDEX idx_level (level)` - 用于用户等级排序
- 创建时间索引:`INDEX idx_created_at (created_at)` - 用于时间范围查询
#### 管理员表 (admins) 索引
- 主键索引:`PRIMARY KEY (id)`
- 唯一索引:`UNIQUE KEY (username)`, `UNIQUE KEY (email)`
- 角色索引:`INDEX idx_role (role)` - 用于权限管理
- 状态索引:`INDEX idx_status (status)` - 用于状态筛选
#### 商家表 (merchants) 索引
- 主键索引:`PRIMARY KEY (id)`
- 外键索引:`INDEX idx_user_id (user_id)` - 关联用户查询
- 状态索引:`INDEX idx_status (status)` - 商家状态筛选
- 评分索引:`INDEX idx_rating (rating)` - 评分排序
- 地理位置复合索引:`INDEX idx_location (latitude, longitude)` - 地理位置查询
#### 动物表 (animals) 索引
- 主键索引:`PRIMARY KEY (id)`
- 外键索引:`INDEX idx_farmer_id (farmer_id)` - 农场主查询
- 类型索引:`INDEX idx_type (type)` - 动物类型筛选
- 状态索引:`INDEX idx_status (status)` - 动物状态筛选
- 价格索引:`INDEX idx_price (price)` - 价格排序
#### 旅行计划表 (travel_plans) 索引
- 主键索引:`PRIMARY KEY (id)`
- 外键索引:`INDEX idx_created_by (created_by)` - 创建者查询
- 目的地索引:`INDEX idx_destination (destination)` - 目的地搜索
- 状态索引:`INDEX idx_status (status)` - 计划状态筛选
- 开始日期索引:`INDEX idx_start_date (start_date)` - 日期排序
#### 订单表 (orders) 索引
- 主键索引:`PRIMARY KEY (id)`
- 外键索引:`INDEX idx_user_id (user_id)` - 用户订单查询
- 订单号唯一索引:`UNIQUE KEY (order_number)` - 订单号查询
- 状态索引:`INDEX idx_status (status)` - 订单状态筛选
- 支付状态索引:`INDEX idx_payment_status (payment_status)` - 支付状态筛选
### 6.2 查询优化建议
1. **分页查询优化**
- 使用 `LIMIT``OFFSET` 进行分页
- 对于大数据量分页,建议使用游标分页
2. **复合索引使用**
- 按照查询频率和选择性创建复合索引
- 遵循最左前缀原则
3. **避免全表扫描**
- 在 WHERE 条件中使用索引字段
- 避免在索引字段上使用函数
## 7. 数据库安全策略
### 7.1 访问控制
- 使用专用数据库用户,限制权限
- 定期更换数据库密码
- 启用SSL连接加密
### 7.2 数据加密
- 敏感字段(如密码)使用哈希加密
- 个人信息字段考虑加密存储
- 传输过程使用HTTPS协议
### 7.3 备份策略
- 每日自动备份数据库
- 定期测试备份恢复流程
- 异地备份保证数据安全
## 8. 性能监控与优化
### 8.1 监控指标
- 查询响应时间
- 数据库连接数
- 慢查询日志分析
- 索引使用率统计
### 8.2 优化策略
- 定期分析慢查询并优化
- 监控表大小,适时进行分区
- 定期更新表统计信息
- 合理设置数据库参数
## 9. 数据库维护
### 9.1 日常维护
- 定期检查数据库状态
- 清理过期的临时数据
- 监控磁盘空间使用
- 更新数据库统计信息
### 9.2 版本管理
- 使用数据库迁移脚本管理结构变更
- 记录每次结构变更的版本号
- 保持开发、测试、生产环境一致
## 10. 总结
本数据库设计文档基于解班客项目的实际需求,涵盖了用户管理、商家管理、动物认领、旅行计划、花卉产品、订单支付等核心业务模块。设计遵循了数据库设计的最佳实践,包括:
1. **规范化设计**:避免数据冗余,保证数据一致性
2. **性能优化**:合理设计索引,优化查询性能
3. **扩展性**:预留扩展空间,支持业务发展
4. **安全性**:实施访问控制和数据加密
5. **可维护性**:清晰的表结构和完善的文档
### 10.1 当前数据库统计
- **总表数**14张表
- **核心业务表**8张users, admins, merchants, animals, animal_claims, travel_plans, travel_registrations, flowers, orders, payments, refunds
- **辅助系统表**3张email_verifications, password_resets, login_attempts
- **外键关系**13个外键约束
### 10.2 后续优化方向
1. 根据业务发展需要,考虑添加缓存层
2. 对于高频查询表,考虑读写分离
3. 监控数据增长,适时进行分库分表
4. 完善数据备份和灾难恢复方案
---
**文档版本**v2.0
**最后更新**2024年1月
**维护人员**:开发团队
**审核状态**:已审核
#### 5.2 订单表 (orders)
```sql

View File

@@ -1,9 +1,9 @@
# 解班客项目系统架构文档
# 结伴客项目系统架构文档
## 1. 项目概述
### 1.1 项目简介
解班客是一个综合性的社交旅行平台,融合了结伴旅行和动物认领两大核心功能。项目采用现代化的微服务架构,包含微信小程序、管理后台、官方网站和后端服务四个主要模块。
结伴客是一个综合性的社交旅行平台,融合了结伴旅行和动物认领两大核心功能。项目采用现代化的微服务架构,包含微信小程序、管理后台、官方网站和后端服务四个主要模块。
### 1.2 业务架构
```mermaid

View File

@@ -1,9 +1,9 @@
# 解班客项目需求文档
# 结伴客项目需求文档
## 1. 项目概述
### 1.1 项目背景
解班客是一个创新的社交旅行平台,专注于为用户提供结伴旅行服务,并融入了独特的动物认领功能。该项目旨在通过结合传统的结伴旅行功能与现代的动物认领体验,为用户创造独特的旅行记忆。
结伴客是一个创新的社交旅行平台,专注于为用户提供结伴旅行服务,并融入了独特的动物认领功能。该项目旨在通过结合传统的结伴旅行功能与现代的动物认领体验,为用户创造独特的旅行记忆。
### 1.2 项目目标
- 构建一个完整的社交旅行生态系统

View File

@@ -1,9 +1,9 @@
# 解班客项目测试文档
# 结伴客项目测试文档
## 1. 测试概述
### 1.1 测试目标
确保解班客项目各个模块的功能正确性、性能稳定性、安全可靠性,为产品上线提供质量保障。
确保结伴客项目各个模块的功能正确性、性能稳定性、安全可靠性,为产品上线提供质量保障。
### 1.2 测试范围
- **后端API服务**:接口功能、性能、安全测试
@@ -183,7 +183,7 @@ describe('旅行结伴页面', () => {
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="解班客API压测">
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="结伴客API压测">
<elementProp name="TestPlan.arguments" elementType="Arguments" guiclass="ArgumentsPanel">
<collectionProp name="Arguments.arguments"/>
</elementProp>
@@ -304,7 +304,7 @@ describe('XSS防护测试', () => {
### 6.1 测试报告模板
```markdown
# 解班客项目测试报告
# 结伴客项目测试报告
## 测试概要
- **测试版本**: v1.0.0
@@ -969,8 +969,8 @@ test.describe('动物认领流程', () => {
<?xml version="1.0" encoding="UTF-8"?>
<jmeterTestPlan version="1.2">
<hashTree>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="解班客性能测试">
<stringProp name="TestPlan.comments">解班客系统性能测试计划</stringProp>
<TestPlan guiclass="TestPlanGui" testclass="TestPlan" testname="结伴客性能测试">
<stringProp name="TestPlan.comments">结伴客系统性能测试计划</stringProp>
<boolProp name="TestPlan.functional_mode">false</boolProp>
<boolProp name="TestPlan.serialize_threadgroups">false</boolProp>
<elementProp name="TestPlan.arguments" elementType="Arguments" guiclass="ArgumentsPanel" testclass="Arguments" testname="用户定义的变量">
@@ -1129,7 +1129,7 @@ function htmlReport(data) {
</style>
</head>
<body>
<h1>解班客性能测试报告</h1>
<h1>结伴客性能测试报告</h1>
<h2>测试概要</h2>
<div class="metric">
<strong>总请求数:</strong> ${data.metrics.http_reqs.count}
@@ -1311,7 +1311,7 @@ function generateHtmlReport(coverage) {
</style>
</head>
<body>
<h1>解班客测试覆盖率报告</h1>
<h1>结伴客测试覆盖率报告</h1>
<div class="summary">
<h2>总体覆盖率</h2>
<div class="metric ${getColorClass(total.lines.pct)}">
@@ -1542,7 +1542,7 @@ jobs:
## 📚 总结
本测试文档全面覆盖了解班客项目的测试策略和实施方案包括
本测试文档全面覆盖了结伴客项目的测试策略和实施方案包括
### 测试体系特点
@@ -1572,7 +1572,7 @@ jobs:
3. 根据业务变化调整测试策略
4. 培训团队成员测试最佳实践
通过完善的测试体系确保解班客项目的高质量交付和稳定运行
通过完善的测试体系确保结伴客项目的高质量交付和稳定运行
---

View File

@@ -1,9 +1,9 @@
# 解班客用户手册文档
# 结伴客用户手册文档
## 1. 文档概述
### 1.1 文档目的
本文档为解班客平台的用户使用手册,包含小程序端用户指南和管理后台操作手册,帮助用户快速上手并充分利用平台功能。
本文档为结伴客平台的用户使用手册,包含小程序端用户指南和管理后台操作手册,帮助用户快速上手并充分利用平台功能。
### 1.2 适用对象
- **普通用户**:使用小程序进行旅行结伴和动物认领的用户
@@ -33,7 +33,7 @@ graph TB
#### 2.1.1 首次使用
1. **下载安装**
- 微信搜索"解班客"小程序
- 微信搜索"结伴客"小程序
- 或扫描二维码进入小程序
2. **授权登录**
@@ -423,4 +423,4 @@ graph TB
**文档版本**v1.0.0
**最后更新**2024-01-15
**维护团队**解班客技术团队
**维护团队**结伴客技术团队

File diff suppressed because it is too large Load Diff

View File

@@ -1,9 +1,9 @@
# 解班客管理后台架构文档
# 结伴客管理后台架构文档
## 1. 项目概述
### 1.1 项目简介
解班客管理后台是一个基于Vue.js 3.x + Element Plus的现代化管理系统为运营人员提供用户管理、内容管理、数据分析等功能。采用前后端分离架构支持多角色权限管理和实时数据监控。
结伴客管理后台是一个基于Vue.js 3.x + Element Plus的现代化管理系统为运营人员提供用户管理、内容管理、数据分析等功能。采用前后端分离架构支持多角色权限管理和实时数据监控。
### 1.2 业务目标
- **运营管理**:提供完整的运营管理功能
@@ -719,7 +719,7 @@ export function setupRouterGuards(router: Router) {
// 全局后置守卫
router.afterEach((to) => {
// 设置页面标题
document.title = `${to.meta.title || '管理后台'} - 解班客`
document.title = `${to.meta.title || '管理后台'} - 结伴客`
// 页面访问统计
// analytics.trackPageView(to.path)
@@ -2021,12 +2021,12 @@ export default defineConfig({
#### 8.1.2 环境配置
```typescript
// .env.development
VITE_APP_TITLE=解班客管理后台
VITE_APP_TITLE=结伴客管理后台
VITE_API_BASE_URL=http://localhost:8080/api
VITE_UPLOAD_URL=http://localhost:8080/upload
// .env.production
VITE_APP_TITLE=解班客管理后台
VITE_APP_TITLE=结伴客管理后台
VITE_API_BASE_URL=https://api.jiebanke.com
VITE_UPLOAD_URL=https://cdn.jiebanke.com/upload
```
@@ -2561,4 +2561,4 @@ export class Analytics {
- 自动化测试
- 开发工具链
通过以上架构设计,解班客管理后台将具备高性能、高可用、易维护的特点,为运营团队提供强大的管理工具,支撑业务的快速发展。
通过以上架构设计,结伴客管理后台将具备高性能、高可用、易维护的特点,为运营团队提供强大的管理工具,支撑业务的快速发展。

View File

@@ -1,4 +1,4 @@
# 解班客项目部署文档
# 结伴客项目部署文档
## 1. 部署概述
@@ -751,7 +751,7 @@ docker logs -f redis-master
## 12. 总结
本部署文档涵盖了解班客项目的完整部署流程包括
本部署文档涵盖了结伴客项目的完整部署流程包括
- **基础环境**服务器配置软件安装
- **数据库部署**MySQL主从Redis集群