# 结伴客 - Java微服务版

结伴客是一个专注于结伴旅行和动物认领的社交平台。本项目采用Java微服务架构，基于Spring Boot和Spring Cloud实现。

## 🌟 项目特点

- **微服务架构**: 基于Spring Boot和Spring Cloud构建的微服务系统
- **前后端分离**: 前端使用Vue.js，后端提供RESTful API
- **容器化部署**: 支持Docker和Docker Compose一键部署
- **高可用性**: 服务注册与发现、负载均衡、熔断机制
- **安全认证**: JWT Token认证和RBAC权限控制
- **缓存优化**: Redis缓存提升系统性能
- **消息队列**: RabbitMQ实现异步处理和解耦

## 🏗️ 系统架构

```mermaid
graph TB
    subgraph "前端应用"
        A[后台管理系统]
        B[微信小程序]
        C[官方网站]
    end
    
    subgraph "API网关层"
        D[Spring Cloud Gateway]
    end
    
    subgraph "微服务层"
        E[Eureka Server]
        F[Auth Service]
        G[User Service]
        H[Travel Service]
        I[Animal Service]
        J[Order Service]
        K[Promotion Service]
    end
    
    subgraph "数据层"
        L[MySQL]
        M[Redis]
        N[RabbitMQ]
    end
    
    A --> D
    B --> D
    C --> D
    D --> F
    D --> G
    D --> H
    D --> I
    D --> J
    D --> K
    F --> L
    G --> L
    H --> L
    I --> L
    J --> L
    K --> L
    F --> M
    G --> M
    H --> M
    I --> M
    J --> M
    K --> M
    F --> N
    G --> N
    H --> N
    I --> N
    J --> N
    K --> N
    E --> F
    E --> G
    E --> H
    E --> I
    E --> J
    E --> K
```

## 📁 项目结构

```
jiebanke/
├── admin-system/          # 后台管理系统 (Vue.js)
├── backend-java/          # 后端Java微服务
│   ├── eureka-server/     # 服务注册与发现
│   ├── gateway-service/   # API网关
│   ├── auth-service/      # 认证服务
│   ├── user-service/      # 用户服务
│   ├── travel-service/    # 旅行服务
│   ├── animal-service/    # 动物服务
│   ├── order-service/     # 订单服务
│   ├── promotion-service/ # 推广服务
│   ├── common/            # 公共模块
│   ├── scripts/           # 脚本文件
│   ├── docker-compose.yml # Docker编排文件
│   └── pom.xml            # Maven根配置
├── mini-program/          # 微信小程序
├── website/               # 官方网站
├── docs/                  # 文档目录
└── README.md              # 项目说明
```

## 🚀 快速开始

### 环境要求
- Java 17
- Maven 3.6+
- Docker & Docker Compose
- MySQL 8.0+
- Redis 6.0+
- RabbitMQ 3.8+

### 本地开发

1. 克隆项目
```bash
git clone https://github.com/your-username/jiebanke.git
cd jiebanke
```

2. 构建后端服务
```bash
cd backend-java
./build-services.sh
```

3. 启动所有服务
```bash
# 使用Docker Compose启动
docker-compose up -d

# 或使用启动脚本
./start-services.sh
```

4. 访问服务
- Eureka Dashboard: http://localhost:8761
- API Gateway: http://localhost:8080
- API文档: http://localhost:8080/doc.html

### 前端开发

#### 后台管理系统
```bash
cd admin-system
npm install
npm run dev
```

#### 官方网站
```bash
cd website
npm install
npm run dev
```

#### 微信小程序
使用微信开发者工具打开`mini-program`目录

## 📖 文档

详细的文档请查看 [docs](docs/) 目录：

- [架构设计文档](docs/architecture-java.md)
- [API接口文档](docs/API_DOCS_JAVA.md)
- [数据库设计文档](docs/database-design-java.md)
- [部署指南](docs/DEPLOYMENT_JAVA.md)
- [性能优化指南](backend-java/PERFORMANCE_OPTIMIZATION.md)

## 🛠️ 技术栈

### 后端技术栈
- **核心框架**: Spring Boot 3.1.0, Spring Cloud 2022.0.3
- **服务治理**: Eureka Server
- **API网关**: Spring Cloud Gateway
- **数据库**: MySQL 8.0, MyBatis-Plus
- **缓存**: Redis
- **消息队列**: RabbitMQ
- **安全框架**: Spring Security, JWT
- **构建工具**: Maven
- **测试框架**: JUnit 5, Mockito

### 前端技术栈
- **后台管理**: Vue 3, Element Plus
- **微信小程序**: 原生小程序, Vant Weapp
- **官方网站**: Vue 3, Vue Router

## 📦 部署

### Docker部署
```bash
cd backend-java
docker-compose up -d
```

### 生产环境部署
请参考 [部署指南](docs/DEPLOYMENT_JAVA.md)

## 🧪 测试

### 后端测试
```bash
cd backend-java
mvn test
```

### API测试
使用Postman或curl测试API接口

## 🤝 贡献

欢迎提交Issue和Pull Request来改进项目。

## 📄 许可证

本项目采用MIT许可证，详情请见 [LICENSE](LICENSE) 文件。

## 📞 联系我们

- 邮箱: support@jiebanke.com
- 官网: https://www.jiebanke.com

---
*最后更新: 2025年* 📅