Skip to content

1parado/travel_system

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

轻旅行综合预订平台

一个支持机票、酒店、景点门票、用车服务、餐厅、社区、AI客服的简版 OTA 平台。后端基于 Spring Boot 3 构建,前端计划使用 Vue3 + Element Plus。当前仓库包含后端最小闭环:注册、登录(JWT),用户信息查询与编辑。

功能与角色

  • 用户:查询 → 预订 → 支付(模拟) → 查看订单
  • 商家:发布产品 → 管理库存 → 查看订单
  • 管理员:管理用户、商家、订单与内容

技术栈

  • 后端:Spring Boot 3MyBatis PlusMySQL 8RedisSpring SecurityJWT
  • 前端(规划):Vue3 + ViteElement PlusAxiosPinia
  • 部署:Nginx 前端静态资源与 /api/* 反向代理到后端 Jar

快速开始(后端)

  • 准备环境
    • 安装 JDK 17+Maven 3.8+MySQL 8Redis
    • 在 MySQL 中运行 src/main/resources/sql/schema.sql
    • 修改 src/main/resources/application.yml 的数据库账号密码
  • 本地运行
    • 开发模式:mvn spring-boot:run
    • 打包运行:
      • mvn clean package
      • java -jar target/travel-system-0.1.0-SNAPSHOT.jar
  • 基本配置
    • 数据库:在 application.yml 中更新 spring.datasource.url/username/password
    • Redis:spring.data.redis.host/port
    • JWT:jwt.secret(Base64)与 jwt.expireSeconds

示例

- 登录
```json
{
  "username": "paradox",
  "password": "123456"
}
  • 请求头
Authorization: Bearer <登录返回的token>

安全

  • 路由保护:/api/auth/** 放行,其它均需登录(e:\flight_system\src\main\java\com\travel\security\SecurityConfig.java:39)
  • 认证:Authorization: Bearer <token>,JWT 解析填充 ROLE_<role>
  • 密码加密:BCrypt

部署(示例)

  • 前端打包:npm run build,将 dist/ 交由 Nginx 托管
  • Nginx 反代:
location / {
  root /var/www/travel;
}
location /api/ {
  proxy_pass http://127.0.0.1:8080/;
}
  • 后端:java -jar travel-system-0.1.0-SNAPSHOT.jar
  • 数据库与缓存:单独运行 MySQL 与 Redis

常见问题

  • mvn 未找到:请安装 Maven 或使用 IDE 的 Maven Wrapper
  • 数据库连接失败:检查 application.yml 的地址、账号、密码与库是否存在
  • 401 未授权:确认请求头携带正确的 Authorization token

详细查看个人技术博客:酒旅系统

About

个人开发的一个酒旅系统 一站式衣食住行

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors