# szmetro **Repository Path**: romancao/szmetro ## Basic Information - **Project Name**: szmetro - **Description**: 深圳地铁前后端项目,实现最快换乘、最少换乘、末班可达、权利可达的线路规划方案功能 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-07-31 - **Last Updated**: 2026-08-04 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 深圳地铁线路规划系统 ## 项目概述 本项目是深圳地铁线路规划系统,支持以下功能: - **最快到达**:按最短时间排序 - **末班可达**:查询末班时间是否可达 - **最少换乘**:按换乘次数排序 - **最短线路**:按站点数排序 - **全日可达**:展示所有可用线路 ## 技术栈 - **后端**:Spring Boot 3.2.0 + MyBatis-Plus 3.5.5 + JDK 17 + MySQL - **前端**:Vue 3 + Vite + Vant ## 项目结构 ``` sz_metro/ ├── backend/ # 后端工程 │ ├── src/main/java/com/szmetro/ │ │ ├── entity/ # 实体类 │ │ ├── mapper/ # Mapper接口 │ │ ├── service/ # 业务层 │ │ ├── controller/ # 控制器 │ │ └── config/ # 配置类 │ ├── src/main/resources/ │ │ └── application.yml # 应用配置 │ └── pom.xml ├── frontend/ # 前端工程 │ ├── src/ │ │ ├── views/ # 页面组件 │ │ ├── router/ # 路由配置 │ │ └── api/ # API接口 │ └── package.json ├── stationinfo.sql # 站点数据 ├── pathinfo.sql # 路径数据 └── lasttimeresult.sql # 末班时间数据 ``` ## 快速开始 ### 1. 环境准备 - JDK 17 - Maven 3.9.5 - MySQL 8.0+ - Node.js 18+ - npm/pnpm/yarn ### 2. 数据库准备 #### 创建数据库和表 后端启动时会自动创建数据库和表结构。 #### 导入数据 ```bash # 进入项目根目录 cd /Users/szmc/Desktop/company/sz_metro # 导入站点数据(后端启动时自动导入) # 手动导入路径数据(文件较大,建议命令行导入) mysql -u root -p sz_metro < pathinfo.sql # 导入末班时间数据 mysql -u root -p sz_metro < lasttimeresult.sql ``` ### 3. 启动后端 ```bash cd backend # 使用本地Maven ~/Desktop/maven/apache-maven-3.9.5/bin/mvn clean package -DskipTests # 运行 java -jar target/sz-metro-backend-1.0.0.jar ``` 后端启动在 http://localhost:8080 ### 4. 启动前端 ```bash cd frontend # 安装依赖 npm install # 开发模式运行 npm run dev ``` 前端访问地址 http://localhost:5173 ## API接口 ### 获取所有站点 ``` GET /api/metro/stations ``` ### 搜索站点 ``` GET /api/metro/stations/search?keyword=红岭南 ``` ### 查询线路方案 ``` POST /api/metro/plan Body: { "originStation": "红岭南", "destinationStation": "人民南", "planType": "fastest" // fastest | lastTrain | leastTransfer | shortest | allDay } ``` ### 获取线路详情 ``` GET /api/metro/plan/detail?planType=fastest&oStationNo=xxx&dStationNo=xxx&pathNo=1 ``` ## 特殊换乘说明 红岭南站换乘逻辑: - 换乘11号线:C口出站换乘 - 换乘9号线:E口出站换乘 - 其他线路:站外换乘200米(预计7分钟) ## 配置说明 数据库配置在 `backend/src/main/resources/application.yml`: ```yaml spring: datasource: url: jdbc:mysql://localhost:3306/sz_metro?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai username: root password: root ``` 请根据实际情况修改数据库连接信息。