Skip to content

Jerremiz/reservation-java

Repository files navigation

校园交通车预约平台

基于 Spring Boot 开发的校园交通车预约平台,提供用户注册登录、车次查询、座位预约等功能。

技术栈

  • 后端框架: Spring Boot
  • 数据库: MySQL 8.0
  • ORM框架: MyBatis Plus
  • 缓存: Redis
  • 身份认证: JWT
  • 工具库: Hutool, Lombok

系统架构

实体类

  • User: 用户信息管理
  • Trip: 车次信息管理
  • Seat: 座位信息管理
  • Order: 订单信息管理

主要功能模块

  • 用户模块:注册登录、验证码发送、用户信息管理
  • 车次模块:车次查询、车次添加、数据预热
  • 订单模块:座位预约、订单查询

快速开始

1. 克隆项目

git clone https://github.com/Jerremiz/reservation-java.git
cd reservation-java

2. 运行

方式一:直接运行

  1. 环境要求
  • Java 17+
  • MySQL 8.0+
  • Redis 6.0+
  • Maven 3.6+
  1. 配置数据库
  • 执行 src/main/resources/res.sql 创建相关表结构
  • 修改 src/main/resources/application.properties_bakapplication.properties,完善其中 MySQL 和 Redis 连接信息,以及短信服务配置(已适配Spug推送助手)
mvn spring-boot:run

项目将在 http://localhost:8081 启动

方式二:使用 Docker 运行(推荐)

  1. 修改配置
  • 设置 docker-compose.yml 中的 MYSQL_ROOT_PASSWORD
  • 修改 redis.conf_bakredis.conf,可修改密码等配置
  • 修改 src/main/resources/application-prod.properties_bakapplication-prod.properties,完善其中 MySQL 和 Redis 连接信息,以及短信服务配置(已适配Spug推送助手)
  1. 构建容器
docker compose up --build -d

将启动以下服务:

  • MySQL: 3306
  • Redis: 6379
  • 应用: 8081
  1. 初始化数据库
  • 执行 src/main/resources/res.sql 创建相关表结构

API接口文档

用户接口

发送验证码

POST /user/code
Content-Type: application/json

{
  "phone": "13800138000"
}

用户登录

POST /user/login
Content-Type: application/json

{
  "phone": "13800138000",
  "code": "123456"
}

用户登出

POST /user/logout
Authorization: <token>

获取当前用户信息

GET /user/me
Authorization: <token>

车次接口

查询指定日期车次

GET /reservation/trips?departureDate=2024-01-01

查询车次详情

GET /reservation/trip?tripId=1

添加车次

POST /reservation/trip
Content-Type: application/json

{
  "plateNum": "G1001",
  "seatCount": 100,
  "departure": "北京",
  "destination": "上海",
  "departureTime": "2024-01-01T08:00:00",
  "arrivalTime": "2024-01-01T14:00:00"
}

预热数据

POST /reservation/preload
Content-Type: application/json

"2024-01-01"

订单接口

座位预约

POST /reservation/order
Content-Type: application/json

{
  "userId": 1,
  "tripId": 1,
  "seatId": 1,
  "amount": 100.00
}

查询用户订单

GET /reservation/order?userId=1

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published