博主介绍:专注于Java(springboot ssm 等开发框架) vue .net php phython node.js uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了2000+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍
springbootvue前后端分离火车订票系统适合初学者学习的项目包含亮点 智能客服、换乘算法
项目基本信息介绍
springboot3 VUE3 火车订票系统是一套完善的完整电子商务类型系统,结合springboot框架和VUE完成本系统,对理解springboot3编程以及vue3前端开发有帮助系统采用springboot框架(MVC模式开发),系统具有完整的源代码和数据库,系统主要采用B/S模式开发。
技术栈
前端主要技术 vue 3.2
后端主要技术 Springboot 3.x java
数据库 mysql 8.0 客户端工具 Navicat for Mysql
开发工具 IDEA JDK17
运行环境
1.运行环境:最好是java jdk 17,我们在这个平台上运行的。其他版本理论上也可以 不建议。
2.IDE环境:推荐IDEA;
3.硬件环境:windows 7/8/10 8G内存以上;;
5.数据库:mysql8.0等版本均可 如 MySql 5.0 到 5.5 需要修改数据连接配置,以及maven中的mysql 驱动包;
6.是否Maven项目: 是;查看源码目录中是否包含pom.xml;若包含,则为maven项目,否则为非maven项目
使用说明
-
使用Navicat或者其它工具,在mysql中创建对应sql文件名称的数据库,并导入项目的sql文件;
-
使用IDEA导入项目;
-
将项目中train\src\main\resources 下的 application.properties 配置文件中的数据库配置改为自己的配置;
数据库支持 mysql8.0 ,如果需要5.0 到5.5需要二次转换升级
4.vscode 开vue项目工程
5.vue 项目启动 npm run dev
vue 版本 3.2
node 版本 20
功能介绍
用户管理
功能描述:管理员可以管理系统中的普通用户信息,包括用户的个人信息(如姓名、联系方式、账户状态等)的查看、注册、修改个人信息。
操作界面:展示所有用户的列表,并提供操作按钮来管理用户信息。
车站管理
功能描述:管理员对车站信息进行管理,确保车站信息更新准确。包括车站的详细信息、站点的安排等。
操作界面:展示车站的列表,管理员可以修改站点信息,或删除不需要的车站。
票务管理
功能描述:管理员管理车票信息,包括票的种类、票价、发售时间、余票数量等。
操作界面:提供一个管理票务的页面,可以修改票价、查看余票、更新售票状态等。
座位管理
功能描述:管理员可以管理座位的具体信息,包括每个座位是否已被占用,是否已售出,座位的所属车次等。
操作界面:展示每个车次的座位分布情况,管理员可以修改座位的状态或删除无效座位。
订单管理
功能描述:管理员可以查看所有订单的详情,进行订单的提交、删除、修改或查看状态等操作。
操作界面:展示所有订单的列表,可以通过筛选条件(如订单状态、乘客姓名等)查询并管理订单。
支持换乘、退票、智能客服
后端功能描述
管理员管理
功能描述:后端提供管理员信息的增、删、改、查接口。包括对管理员信息(如用户名、密码、权限等)的操作。
数据库操作:对管理员数据表进行增、删、改、查操作,确保管理员信息安全和权限管理。
用户管理
功能描述:后端提供用户信息的增、删、改、查接口,管理员可以通过这些接口对用户信息进行管理。
数据库操作:管理用户数据表,包括用户的注册信息、登录状态等。
座位类别管理
功能描述:后端提供座位类别的增、删、改、查接口,支持对座位类别进行管理。
数据库操作:座位类别数据表的操作,确保座位类别的准确性。
站点管理
功能描述:后端提供车站信息的增、删、改、查接口。
数据库操作:车站信息数据表的操作,确保车站信息及时更新。
车次管理
功能描述:后端提供车次的增、删、改、查接口,管理车次的时间、站点、票价等信息。
数据库操作:车次数据表的操作,确保车次信息准确。
车站管理
功能描述:后端提供车站管理接口,确保车站的所有相关信息可以被有效增、删、改、查。
数据库操作:车站信息表的增删改查操作,确保车站信息准确。
票务管理
功能描述:后端提供票务管理的接口,包含票的添加、修改、删除等操作。
数据库操作:票务表的增删改查操作,确保票务信息的准确。
座位管理
功能描述:后端提供座位信息的增、删、改、查接口,包括座位的占用状态、车次分配等。
数据库操作:座位表的操作,确保座位的状态和车次分配正确。
订单管理
功能描述:后端提供订单的增、删、改、查接口,处理用户的购票、退票等订单请求。
数据库操作:订单数据表的操作,确保订单信息的准确性和订单状态的实时更新。
订单量管理
功能描述:后端提供查询和统计订单量的接口,供管理员查看订单量的变化。
数据库操作:订单数据表的统计操作,按车次、区间等进行统计。
车次统计管理
功能描述:后端提供车次销售统计接口,管理员可以查看车次的销售数据。
数据库操作:对车次销售数据进行统计和展示。
区间统计管理
功能描述:后端提供区间的销售统计接口,管理员可以查看不同区间的销售情况。
数据库操作:区间销售数据统计,帮助管理员进行数据分析。
数据库设计
|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| |----|-------|---------|----|----|-------| | #### [表gly] 管理员列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | glyid | INTEGER | 11 | 是 | 管理员编号 | | 2 | yhm | VARCHAR | 40 | 否 | 用户名 | | 3 | mm | VARCHAR | 40 | 否 | 密码 | | 4 | xm | VARCHAR | 40 | 否 | 姓名 | |----|------|---------|----|----|------| | #### [表yonghu] 用户列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | yhid | INTEGER | 11 | 是 | 用户编号 | | 2 | yhm | VARCHAR | 40 | 否 | 用户名 | | 3 | mm | VARCHAR | 40 | 否 | 密码 | | 4 | xm | VARCHAR | 40 | 否 | 姓名 | | 5 | sfz | VARCHAR | 40 | 否 | 身份证 | | 6 | mz | VARCHAR | 40 | 否 | 民族 | | 7 | dz | VARCHAR | 40 | 否 | 地址 | | 8 | lxdh | VARCHAR | 40 | 否 | 联系电话 | | 9 | yj | VARCHAR | 40 | 否 | 邮件 | | 10 | cwcs | VARCHAR | 40 | 否 | 错误次数 | | 11 | cwsj | VARCHAR | 40 | 否 | 错误时间 | |----|--------|---------|----|----|--------| | #### [表zwlb] 座位类别列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | zwlbid | INTEGER | 11 | 是 | 座位类别编号 | | 2 | lb | VARCHAR | 40 | 否 | 类别 | | 3 | jg | VARCHAR | 40 | 否 | 价格 | |----|-------|---------|----|----|-------| | #### [表zhandian] 站点列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | zdid | INTEGER | 11 | 是 | 站点编号 | | 2 | zdmc | VARCHAR | 40 | 否 | 站点名称 | | 3 | fzr | VARCHAR | 40 | 否 | 负责人 | | 4 | fzrxm | VARCHAR | 40 | 否 | 负责人姓名 | | 5 | lxdh | VARCHAR | 40 | 否 | 联系电话 | |----|------|---------|----|----|------| | #### [表checi] 车次列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | ccid | INTEGER | 11 | 是 | 车次编号 | | 2 | ccmc | VARCHAR | 40 | 否 | 车次名称 | | 3 | sfz | VARCHAR | 40 | 否 | 始发站 | | 4 | zdz | VARCHAR | 40 | 否 | 终点站 | | 5 | fcsj | VARCHAR | 40 | 否 | 发车时间 | | 6 | dzsj | VARCHAR | 40 | 否 | 到站时间 | | 7 | cxsl | VARCHAR | 40 | 否 | 车厢数量 | |----|------|---------|----|----|------| | #### [表chezhan] 车站列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | czid | INTEGER | 11 | 是 | 车站编号 | | 2 | cc | VARCHAR | 40 | 否 | 车次 | | 3 | cz | VARCHAR | 40 | 否 | 车站 | | 4 | lc | VARCHAR | 40 | 否 | 里程 | | 5 | yssj | VARCHAR | 40 | 否 | 用时时间 | | 6 | xh | VARCHAR | 40 | 否 | 序号 | | 7 | tksj | VARCHAR | 40 | 否 | 停靠时间 | | 8 | dzsj | VARCHAR | 40 | 否 | 到站时间 | | 9 | kcsj | VARCHAR | 40 | 否 | 开车时间 | |----|-------|---------|----|----|-------| | #### [表piaowu] 票务列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | pwid | INTEGER | 11 | 是 | 票务编号 | | 2 | pwh | VARCHAR | 40 | 否 | 票务号 | | 3 | rq | VARCHAR | 40 | 否 | 日期 | | 4 | cc | VARCHAR | 40 | 否 | 车次 | | 5 | zj | VARCHAR | 40 | 否 | 总价 | | 6 | sfz | VARCHAR | 40 | 否 | 始发站 | | 7 | zdz | VARCHAR | 40 | 否 | 终点站 | | 8 | fcsj | VARCHAR | 40 | 否 | 发车时间 | | 9 | dzsj | VARCHAR | 40 | 否 | 到站时间 | | 10 | rwsl | VARCHAR | 40 | 否 | 软卧数量 | | 11 | rwsy | VARCHAR | 40 | 否 | 软卧剩余 | | 12 | ywsl | VARCHAR | 40 | 否 | 硬卧数量 | | 13 | ywsy | VARCHAR | 40 | 否 | 硬卧剩余 | | 14 | yzsl | VARCHAR | 40 | 否 | 硬座数量 | | 15 | yzsy | VARCHAR | 40 | 否 | 硬座剩余 | | 16 | ydzsl | VARCHAR | 40 | 否 | 一等座数量 | | 17 | ydzsy | VARCHAR | 40 | 否 | 一等座剩余 | | 18 | edzsl | VARCHAR | 40 | 否 | 二等座数量 | | 19 | edzsy | VARCHAR | 40 | 否 | 二等座剩余 | | 20 | zt | VARCHAR | 40 | 否 | 状态 | |----|------|---------|----|----|------| | #### [表zuowei] 座位列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | zwid | INTEGER | 11 | 是 | 座位编号 | | 2 | pwh | VARCHAR | 40 | 否 | 票务号 | | 3 | cc | VARCHAR | 40 | 否 | 车次 | | 4 | cx | VARCHAR | 40 | 否 | 车厢 | | 5 | zwh | VARCHAR | 40 | 否 | 座位号 | | 6 | lx | VARCHAR | 40 | 否 | 类型 | | 7 | zt | VARCHAR | 40 | 否 | 状态 | |----|------|---------|----|----|------| | #### [表dingdan] 订单列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | ddid | INTEGER | 11 | 是 | 订单编号 | | 2 | ddh | VARCHAR | 40 | 否 | 订单号 | | 3 | cc | VARCHAR | 40 | 否 | 车次 | | 4 | ph | VARCHAR | 40 | 否 | 票号 | | 5 | zw | VARCHAR | 40 | 否 | 座位 | | 6 | zwlx | VARCHAR | 40 | 否 | 座位类型 | | 7 | rq | VARCHAR | 40 | 否 | 日期 | | 8 | qsz | VARCHAR | 40 | 否 | 起始站 | | 9 | mdz | VARCHAR | 40 | 否 | 目的站 | | 10 | pj | VARCHAR | 40 | 否 | 票价 | | 11 | yh | VARCHAR | 40 | 否 | 用户 | | 12 | sfz | VARCHAR | 40 | 否 | 身份证 | | 13 | grsj | VARCHAR | 40 | 否 | 购入时间 | | 14 | zt | VARCHAR | 40 | 否 | 状态 | | 15 | bz | VARCHAR | 40 | 否 | 备注 | |----|-------|---------|----|----|-------| | #### [表ddl] 订单量列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | ddlid | INTEGER | 11 | 是 | 订单量编号 | | 2 | cc | VARCHAR | 40 | 否 | 车次 | | 3 | rq | VARCHAR | 40 | 否 | 日期 | | 4 | qsz | VARCHAR | 40 | 否 | 起始站 | | 5 | sl | VARCHAR | 40 | 否 | 数量 | | 6 | zfy | VARCHAR | 40 | 否 | 总费用 | |----|--------|---------|----|----|--------| | #### [表cctj] 车次统计列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | cctjid | INTEGER | 11 | 是 | 车次统计编号 | | 2 | cc | VARCHAR | 40 | 否 | 车次 | | 3 | rq | VARCHAR | 40 | 否 | 日期 | | 4 | rwsl | VARCHAR | 40 | 否 | 软卧数量 | | 5 | rwsy | VARCHAR | 40 | 否 | 软卧剩余 | | 6 | ywsl | VARCHAR | 40 | 否 | 硬卧数量 | | 7 | ywsy | VARCHAR | 40 | 否 | 硬卧剩余 | | 8 | yzsl | VARCHAR | 40 | 否 | 硬座数量 | | 9 | yzsy | VARCHAR | 40 | 否 | 硬座剩余 | | 10 | ydzsl | VARCHAR | 40 | 否 | 一等座数量 | | 11 | ydzsy | VARCHAR | 40 | 否 | 一等座剩余 | | 12 | edzsl | VARCHAR | 40 | 否 | 二等座数量 | | 13 | edzsy | VARCHAR | 40 | 否 | 二等座剩余 | | 14 | zsl | VARCHAR | 40 | 否 | 总数量 | | 15 | zsy | VARCHAR | 40 | 否 | 总剩余 | | 16 | csl | VARCHAR | 40 | 否 | 出售量 | | 17 | szl | VARCHAR | 40 | 否 | 上座率 | |----|--------|---------|----|----|--------| | #### [表qjtj] 区间统计列属性表格 |||||| | 序号 | 字段名称 | 数据类型 | 长度 | 主键 | 描述 | | 1 | qjtjid | INTEGER | 11 | 是 | 区间统计编号 | | 2 | cc | VARCHAR | 40 | 否 | 车次 | | 3 | lx | VARCHAR | 40 | 否 | 类型 | | 4 | qsz | VARCHAR | 40 | 否 | 起始站 | | 5 | mdz | VARCHAR | 40 | 否 | 目的站 | | 6 | rq | VARCHAR | 40 | 否 | 日期 | | 7 | zpj | VARCHAR | 40 | 否 | 总票价 | | 8 | tjrq | VARCHAR | 40 | 否 | 统计日期 | | 9 | zsl | VARCHAR | 40 | 否 | 总数量 | |
注意事项
1、管理员账号:admin密码:admin 数据库配置文件 application.properties
2、开发环境为IDEA开发,数据库为mysql,使用java语言开发。
3、数据库文件名是javatrain.sql 系统名称train
四系统实现

package com.main.service;
import com.main.dao.dingdanDao;
import com.main.dao.piaowuDao;
import com.main.dao.zuoweiDao;
import com.main.model.dingdan;
import com.main.model.piaowu;
import com.main.model.zuowei;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class piaowuService {
@Autowired
private piaowuDao piaowudao;
@Autowired
private zuoweiDao zuoweidao;
@Autowired
private dingdanDao dingdandao;
public void reducepiaowu(zuowei bean){
piaowu pwbean=new piaowu();
String lb=bean.getLx();
String pwh=bean.getPwh();//
Map map=new HashMap();
map.put("pwh",pwh);
pwbean=piaowudao.getpiaowuByName(map);
map.put("ph",pwh);
map.put("zta","zta");
map.put("zw",bean.getZwid());
List list=dingdandao.getAll(map);//如果有值 就是 有订单 区间售票
int a=0;
if(!lb.equals("站票")&&list.size()==0) {//如果是有值就是区间售票 不用更新票务剩余座位了
if (lb.equals("软卧")) {
a = Integer.parseInt(pwbean.getRwsl()) - 1;
pwbean.setRwsy(String.valueOf(a));
} else if (lb.equals("硬卧")) {
a = Integer.parseInt(pwbean.getYwsl()) - 1;
pwbean.setYwsy(String.valueOf(a));
} else if (lb.equals("硬座")) {
a = Integer.parseInt(pwbean.getYzsl()) - 1;
pwbean.setYzsy(String.valueOf(a));
} else if (lb.equals("一等座")) {
a = Integer.parseInt(pwbean.getYdzsl()) - 1;
pwbean.setYdzsy(String.valueOf(a));
} else if (lb.equals("二等座")) {
a = Integer.parseInt(pwbean.getEdzsl()) - 1;
pwbean.setEdzsy(String.valueOf(a));
}
piaowudao.update(pwbean);
}
}
public void addpiaowu(zuowei bean){
piaowu pwbean=new piaowu();
String lb=bean.getLx();
String pwh=bean.getPwh();//
Map map=new HashMap();
map.put("pwh",pwh);
pwbean=piaowudao.getpiaowuByName(map);
int a=0;
map.put("ph",pwh);
map.put("zta","zta");
map.put("zw",bean.getZwid());
List list=dingdandao.getAll(map);//如果有值 就是 有订单 区间售票
if(!lb.equals("站票")&&list.size()==0) {//如果是有值就是区间售票 不用更新票务剩余座位了
if (lb.equals("软卧")) {
a = Integer.parseInt(pwbean.getRwsl()) + 1;
pwbean.setRwsy(String.valueOf(a));
} else if (lb.equals("硬卧")) {
a = Integer.parseInt(pwbean.getYwsl()) + 1;
pwbean.setYwsy(String.valueOf(a));
} else if (lb.equals("硬座")) {
a = Integer.parseInt(pwbean.getYzsl()) + 1;
pwbean.setYzsy(String.valueOf(a));
} else if (lb.equals("一等座")) {
a = Integer.parseInt(pwbean.getYdzsl()) + 1;
pwbean.setYdzsy(String.valueOf(a));
} else if (lb.equals("二等座")) {
a = Integer.parseInt(pwbean.getEdzsl()) + 1;
pwbean.setEdzsy(String.valueOf(a));
}
piaowudao.update(pwbean);
}
}
}
大家点赞、收藏、关注、评论啦 其他的定制服务 商务合作 下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者