# 12306 **Repository Path**: delusion-2022/12306 ## Basic Information - **Project Name**: 12306 - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-18 - **Last Updated**: 2026-06-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 12306 铁路购票系统 基于 JDK17 + Spring Boot 3 + Spring Cloud 微服务架构的铁路购票系统,支持高并发场景下的车票查询、购票、订单、支付等核心功能。 ## 技术栈 | 类别 | 技术 | |------|------| | 后端框架 | Spring Boot 3.0.7 / Spring Cloud 2022.0.3 | | 数据库 | MySQL 8.0 + ShardingSphere 分库分表 | | 缓存 | Redis 7 + Redisson + 布隆过滤器 | | ORM | MyBatis-Plus 3.5.3 | | 网关 | Spring Cloud Gateway | | 注册中心 | Nacos(可选,聚合模式下可关闭) | | 消息队列 | RocketMQ(可选) | | 前端 | Vue 3 + Ant Design Vue | | 其他 | Caffeine 本地缓存、分布式 ID、幂等组件 | ## 项目结构 ``` ├── console-vue/ # 前端控制台(Vue 3) ├── services/ # 后端微服务 │ ├── aggregation-service/ # 聚合服务(单体部署模式) │ ├── gateway-service/ # 网关服务 │ ├── user-service/ # 用户服务 │ ├── ticket-service/ # 购票服务 │ ├── order-service/ # 订单服务 │ └── pay-service/ # 支付服务 ├── frameworks/ # 公共框架 │ ├── base/ # 基础组件 │ ├── cache/ # 缓存组件 │ ├── convention/ # 规范组件 │ ├── database/ # 数据库组件 │ ├── designpattern/ # 设计模式组件 │ ├── idempotent/ # 幂等组件 │ ├── log/ # 日志组件 │ ├── user/ # 用户上下文组件 │ └── web/ # Web 组件 ├── resources/ │ └── db/ # 数据库脚本 └── dependencies/ # 依赖版本管理 ``` ## 部署模式 ### 模式一:聚合服务(推荐本地开发 / 低配服务器) 只需启动 **聚合服务 + 网关** 两个 Java 进程,所有业务逻辑合并在一个进程中执行,无需 Nacos 和 RocketMQ。 ```bash # 1. 启动中间件 docker-compose up -d # MySQL + Redis # 2. 初始化数据库 mysql -uroot -p 12306 < resources/db/12306-springboot.sql mysql -uroot -p 12306 < resources/db/merge-tables.sql mysql -uroot -p 12306 < resources/data/12306-springboot.sql # 3. 编译打包 mvn clean package -DskipTests # 4. 启动聚合服务 java -jar services/aggregation-service/target/index12306-aggregation-service.jar # 5. 启动网关 java -jar services/gateway-service/target/index12306-gateway-service.jar # 6. 启动前端 cd console-vue && npm install && npm run serve ``` ### 模式二:微服务(学习微服务架构) 分别启动 user / ticket / order / pay / gateway 五个服务,需要 Nacos 作为注册中心。 ## 核心功能 - **车票查询**:根据出发站、到达站、日期查询余票,支持高铁选座 - **用户注册/登录**:支持用户名、手机号、邮箱多种方式登录 - **乘车人管理**:添加、编辑、删除乘车人信息 - **下单购票**:选座、提交订单、生成支付单 - **在线支付**:支付宝沙箱支付 - **订单管理**:查看订单状态、取消订单、退票 ## 接口示例 ```bash # 用户登录 curl -X POST http://localhost:9005/api/user-service/v1/login \ -H "Content-Type: application/json" \ -d '{"usernameOrMailOrPhone":"admin","password":"123456"}' # 查询车站 curl http://localhost:9005/api/ticket-service/station/all # 查询车票 curl "http://localhost:9005/api/ticket-service/ticket/query?fromStation=BJP&toStation=HZH&departureDate=2026-06-20" ``` ## 端口说明 | 服务 | 端口 | |------|------| | 网关 | 9100 | | 聚合服务 | 9005 | | 用户服务 | 9011 | | 购票服务 | 9002 | | 订单服务 | 9003 | | 支付服务 | 9004 | | 前端 | 8080 | ## License [Apache License 2.0](LICENSE)