基于ssm的航空售票系统

基于SSM的航空订票系统根据功能设计划分为管理员用户和注册用户,从这两种用户的功能所需展开设计,管理员对注册用户管理、航班管理、航班时刻管理、通知公告管理、订票管理、退票管理等;注册用户主要是注册成功后登录,机票查询,预定机票,退票、管理个人资料、修改密码、查看订票记录、查看退票记录等功能。

在这里插入图片描述

管理员功能实现
航班管理页面
管理员管理航班信息,添加航班的编号、出发地机场、出发地航站楼、目的地、目的地机场、目的地航站楼、行程时间、座位数、头等舱座位数、头等舱价格、经济舱价格、经济舱座位数,然后进行座位的排号,添加后可以修改、删除、搜索查看航班信息,如图所示:

在这里插入图片描述

相关代码:

public String mgHangList(Model model, QueryVo vo, HttpServletRequest rq, HttpSession httpSession,
 
@RequestParam(required = false, defaultValue = "1") Integer page,
 
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
 
PageHelper.startPage(page, pageSize);
 
HangExample example = new HangExample();
 
example.setOrderByClause("hid desc");
 
example.setDistinct(false);
 
HangExample.Criteria c = example.createCriteria();
 
if ((vo.getQname() != null) && !("".equals(vo.getQname()))) {
 
/*c.andHidLike("%" + vo.getQname() + "%");*/
 
c.andHnoLike("%" + vo.getQname() + "%");
 
c.andHbplaceLike("%" + vo.getQname() + "%");
 
c.andHbjichLike("%" + vo.getQname() + "%");
 
c.andHblouLike("%" + vo.getQname() + "%");
 
c.andHeplaceLike("%" + vo.getQname() + "%");
 
c.andHejichLike("%" + vo.getQname() + "%");
 
c.andHelouLike("%" + vo.getQname() + "%");
 
/*c.andHstatusLike("%" + vo.getQname() + "%");*/
 
c.andHtimeLike("%" + vo.getQname() + "%");
 
/*c.andHzwnumLike("%" + vo.getQname() + "%");
 
c.andHtdczwLike("%" + vo.getQname() + "%");
 
c.andHtdcpriceLike("%" + vo.getQname() + "%");
 
c.andHjjczwLike("%" + vo.getQname() + "%");
 
c.andHjicpriceLike("%" + vo.getQname() + "%");
 
c.andHrekLike("%" + vo.getQname() + "%");*/
 
}
 
List<Hang> list = hangService.GetList(example);
 
PageInfo<Hang> p = new PageInfo<Hang>(list);
 
Integer count = hangService.GetCountOfList(example);
 
model.addAttribute("ulist", list);
 
model.addAttribute("count", count);
 
model.addAttribute("p", p);
 
model.addAttribute("vo", vo);
 
return "/admin/hang/list";
 
}

注册用户管理页面
管理员对注册用户信息管理,查看用户的姓名、账号、性别、电话、邮箱信息、地址,并可以搜索、删除用户信息,如图所示:
在这里插入图片描述

相关代码:

public String doUserinfoUdt(Model model,Userinfo nsfo, HttpServletRequest rq, HttpSession httpSession) {
 
    Userinfo entity = userinfoService.GetInfoById(nsfo.getUid());
 
    
 
    entity.setUlog(nsfo.getUlog());
 
    entity.setUpwd(nsfo.getUpwd());
 
userinfoService.Update(entity);
 
model = new utils.BaseCls().setReModel(model, "201", , "/hyticket/ur/mgUserinfoList.action");
 
return "/admin/user/update";
 
public String delUserinfo(Model model, Integer id, HttpServletRequest rq, HttpSession httpSession) {
 
Userinfo entity = userinfoService.GetInfoById(id);
 
    entity.setUstatus(1);
 
userinfoService.Update(entity);
 
return "redirect:mgUserinfoList.action";

航班时刻管理页面
管理员管理航班的时刻信息,添加航班、出发地、出发地机场、目的地、目的地机场、出发时间、到达时间、行程时间,并可以搜索、修改、删除航班时刻,如图所示:
在这里插入图片描述

代码:

public String doVtimeAdd(Model model, Vtime nsfo, HttpServletRequest rq, HttpSession httpSession) {
 
Hang entity = hangService.GetInfoById(nsfo.getVthid());
 
 
 
nsfo.setVttdczw0(entity.getHtdczw());
 
nsfo.setVtjjczw0(entity.getHjjczw());
 
nsfo.setVtstatus(0);
 
vtimeService.Add(nsfo);
 
VtimeExample example = new VtimeExample();
 
example.setOrderByClause("vtid desc");
 
List<Vtime> list = vtimeService.GetList(example);
 
Integer newid=list.get(0).getVtid();
 
HpositionExample exp=new HpositionExample();
 
HpositionExample.Criteria cp=exp.createCriteria();
 
cp.andZhidEqualTo(entity.getHid());
 
List<Hposition> lstp = hpositionService.GetList(exp);
 
for(int i=0; i<lstp.size();i++){
 
vtpositionService.Add(ety);
 
}

查看订票详细信息页面
管理员查看用户的订票详细,如航班、出发地、到达时间、订票数量、总价等信息,并可以查看退票情况,如图所示:
在这里插入图片描述

相关代码:

public String mgOrderdsList(Model model, QueryVo vo, HttpServletRequest rq, HttpSession httpSession,
 
@RequestParam(required = false, defaultValue = "1") Integer page,
 
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
 
PageHelper.startPage(page, pageSize);
 
OrderdsExample example = new OrderdsExample();
 
example.setOrderByClause("odid desc");
 
example.setDistinct(false);
 
OrderdsExample.Criteria c = example.createCriteria();
 
if ((vo.getQname() != null) && !("".equals(vo.getQname()))) {
 
c.andOdtidLike("%" + vo.getQname() + "%");
 
c.andOdoidLike("%" + vo.getQname() + "%");*/
 
c.andOduidentidLike("%" + vo.getQname() + "%");
 
c.andOdutelLike("%" + vo.getQname() + "%");
 
c.andOdunameLike("%" + vo.getQname() + "%");
 
PageInfo<Orderds> p = new PageInfo<Orderds>(list);
 
Integer count = orderdsService.GetCountOfList(example);
 
model.addAttribute("ulist", list);
 
model.addAttribute("count", count);
 
model.addAttribute("p", p);
 
model.addAttribute("vo", vo);
 
 
 
return "/admin/Orderds/list";

用户功能实现
会员注册页面
用户想要预定机票必须要先注册,点击注册按钮,填写相关的注册信息,点击注册按钮,完成注册,如图所示:

在这里插入图片描述

代码:

public String regis(Userinfo userinfo, Model model) {
 
PageHelper.startPage(1, 1);
 
UserinfoExample example = new UserinfoExample();
 
UserinfoExample.Criteria c = example.createCriteria();
 
c.andUlogEqualTo(userinfo.getUlog());
 
List list = userinfoService.GetList(example);
 
 
 
if (list.size() > 0) {
 
model = new utils.BaseCls().setReModel(model, "404", "账号已存在,请更换!", "/hyticket/ur/toregis.action");
 
return "/home/regis";
 
}
 
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm");
 
userinfo.setUaddtime(sdf.format(new Date()));
 
userinfo.setUrole(1);
 
userinfoService.Add(userinfo);
 
model = new utils.BaseCls().setReModel(model, "201", "注册成功,快去登录吧!", "/hyticket/ur/tologin.action");
 
 
 
return "/home/regis";
 
}

机票查询页面
用户可以按照出发城市、到达城市、出发日期、返程日期查询具体的机票信息,查看剩余票数、价格等信息,如图所示:
在这里插入图片描述

相关代码:

public String mgHangList(Model model, QueryVo vo, HttpServletRequest rq, HttpSession httpSession,
 
@RequestParam(required = false, defaultValue = "1") Integer page,
 
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
 
PageHelper.startPage(page, pageSize);
 
HangExample example = new HangExample();
 
example.setOrderByClause("hid desc");
 
example.setDistinct(false);
 
HangExample.Criteria c = example.createCriteria();
 
if ((vo.getQname() != null) && !("".equals(vo.getQname()))) {
 
/*c.andHidLike("%" + vo.getQname() + "%");*/
 
c.andHnoLike("%" + vo.getQname() + "%");
 
c.andHbplaceLike("%" + vo.getQname() + "%");
 
c.andHbjichLike("%" + vo.getQname() + "%");
 
c.andHblouLike("%" + vo.getQname() + "%");
 
c.andHeplaceLike("%" + vo.getQname() + "%");
 
c.andHejichLike("%" + vo.getQname() + "%");
 
c.andHelouLike("%" + vo.getQname() + "%");
 
/*c.andHstatusLike("%" + vo.getQname() + "%");*/
 
c.andHtimeLike("%" + vo.getQname() + "%");

机票预定页面

注册用户登录后输入订票人姓名、身份证号、手机号码可以预定机票,最多只能预定三位乘客的机票,如图所示:
在这里插入图片描述

相关代码:

public String toOrdersAdd(Model model, HttpServletRequest rq,
HttpSession httpSession) {
 
return "/admin/order/add";
 
 
 
public String doOrdersAdd(Model model, Orders nsfo, HttpServletRequest rq,
HttpSession httpSession) {
 
ordersService.Add(nsfo);
 
model = new utils.BaseCls().setReModel(model, "201", "添加成功!",
 
"/hyticket/od/mgOrdersList.action");
 
return "/admin/order/add";
 
public String mgOrdersList(
Model model,
QueryVo vo,
HttpServletRequest rq,
HttpSession httpSession,
@RequestParam(required = false, defaultValue = "1") Integer page,
@RequestParam(required = false, defaultValue = "10") Integer pageSize) {
 
PageHelper.startPage(page, pageSize);
 
VworderExample example = new VworderExample();
 
example.setOrderByClause("oid desc");
 
example.setDistinct(false);

订票明细页面

用户预定机票后可以查看具体机票信息,并可以退票,如图所示:

在这里插入图片描述

相关代码:

 public String toOrdersDs(
 
model.addAttribute("entity", entity);
 
VworderdsExample.Criteria c = example.createCriteria();
 
c.andOdoidEqualTo(id);
 
List<Vworderds> list = vworderdsService.GetList(example);
 
PageInfo<Vworderds> p = new PageInfo<Vworderds>(list);
 
Integer count = vworderdsService.GetCountOfList(example);
 
model.addAttribute("ulist", list);
 
model.addAttribute("count", count);
 
model.addAttribute("p", p);

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

以上是基于SSM的航空订票系统的分析与设计主要功能和实现页面的介绍。

数据库及完整代码咨询,请扫码
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/472657.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

基于 Vue3打造前台+中台通用提效解决方案(中)

33、实现全屏展示功能 我们知道在原生dom上,提供了一些方法来供我们开启或关闭全屏: Element.requestFullscreen()Document.exitFullscreen()Document.fullscreenDocument.fullscreenElement一般浏览器 使用requestFullscreen()和exitFullscreen()来实现 早期版本Chrome浏…

异常:程序出现的问题

目的&#xff1a;为了以后发现异常后怎么去处理 异常的作用

学点儿Java_Day7_在实体类当中IDEA无法进行单元测试(@Test没有启动按钮)

在敲代码体会继承和访问修饰符的时候忽然遇到了单元测试不管用的情况&#xff0c;表现为没有启动按钮   经过一番折腾&#xff0c;发现我的测试是在具有构造函数的实体类Person当中进行的&#xff0c;当我把所有的构造函数删除后&#xff0c;启动按钮又出来了&#xff0c;加…

鸿蒙开发实战:【文件管理】

介绍 本示例主要展示了文件管理相关的功能&#xff0c;使用[ohos.multimedia.medialibrary]、[ohos.filemanagement.userFileManager] 、[ohos.fileio] 、[ohos.file.fs]、[ohos.app.ability.contextConstant] 等接口&#xff0c;实现了增添文件、删除文件、查找指定类型文件…

Java基础夯实——八股文【2024面试题案例代码】

1、Java当中的基本数据类型 Java中常见的数据类型及其对应的字节长度和取值范围如下&#xff1a; byte&#xff1a;1字节&#xff0c;取值范围为-128到127。short&#xff1a;2字节&#xff0c;取值范围为-32,768到32,767。int&#xff1a;4字节&#xff0c;取值范围为-2,147…

【Linux】初识进程

目录 操作系统是什么 设计操作系统的目的 操作系统的定位 如何理解管理 管理的本质 管理的例子 计算机的管理概念图 操作系统管理逻辑的六字真言 系统调用和库函数的概念 进程 进程的概念 什么是PCB&#xff1f; PCB的主要内容 如何查看进程&#xff1f; 通过系统…

数据结构与算法----复习Part 17 (图(Graph)初步)

本系列是算法通关手册LeeCode的学习笔记 算法通关手册&#xff08;LeetCode&#xff09; | 算法通关手册&#xff08;LeetCode&#xff09; (itcharge.cn) 目录 一&#xff0c;图&#xff08;Graph&#xff09; 图的分类 顶点的度 环形图和无环图 连通图和非连通图 强连…

远程服务器安装portainer —— docker的可视化工具

可视化工具&#xff08;了解即可&#xff09; 最常用的工具是 portainer portainer 是一个开源的容器管理平台&#xff0c;它提供了一个简单易用的用户界面&#xff0c;用于管理和监控 docker 容器集群。通过 portainer&#xff0c;用户可以轻松地进行容器的部署、启动、停止…

C++_回文串

目录 回文子串 最长回文子串 分割回文串 IV 分割回文串 II 最长回文子序列 让字符串成为回文串的最少插入次数 回文子串 647. 回文子串 思路&#xff0c;i j表示改范围内是否为回文串&#xff0c; ②倒着遍历是为了取出dp[i 1][j - 1] ③i j 只有一对&#xff0c;不会重复…

算法沉淀——贪心算法五(leetcode真题剖析)

算法沉淀——贪心算法五 01.跳跃游戏 II02.跳跃游戏03.加油站04.单调递增的数字 01.跳跃游戏 II 题目链接&#xff1a;https://leetcode.cn/problems/jump-game-ii/ 给定一个长度为 n 的 0 索引整数数组 nums。初始位置为 nums[0]。 每个元素 nums[i] 表示从索引 i 向前跳转…

一共有哪 3 类线程安全问题

一共有哪 3 类线程安全问题 运行结果错误发布和初始化导致线程安全问题活跃性问题死锁活锁饥饿 要想弄清楚有哪 3 类线程安全问题&#xff0c;首先需要了解什么是线程安全&#xff0c;线程安全经常在工作中被提到&#xff0c;比如&#xff1a;你的对象不是线程安全的&#xff0…

2024新版计算器:腾讯云服务器价格计算器,报价不求人

腾讯云服务器价格计算器可以一键计算出云服务器的精准报价&#xff0c;包括CVM实例规格价格、CPU内存费用、公网带宽收费、存储系统盘和数据盘详细费用&#xff0c;腾讯云百科txybk.com分享腾讯云价格计算器链接入口、使用方法说明&#xff0c;在腾讯云百科 txy.wiki 查看当前最…

全球盲盒火热下,海外盲盒APP助力我国盲盒出海

盲盒具有不确定性&#xff0c;与各类热门影视动漫合作推出的专属盲盒商品&#xff0c;吸引了无数年轻人&#xff0c;成为了年轻人的娱乐消费首选方式。 在互联网电商的推动下&#xff0c;盲盒在全球内的市场规模迅速扩大。受到市场增长的影响&#xff0c;各类资本公司也纷纷进…

【Python】import无法导入某一目录下的文件

问题&#xff1a; 如图所示&#xff0c;我在mains文件夹下面有一个main_VAE.py的程序&#xff0c;在与mains同级目录的models文件夹下面有一个variational_autoencoder.py&#xff08;可能上图无法显示完全models文件夹&#xff09;&#xff0c;此时我想要在main_VAE.py程序中导…

数据结构从入门到精通——直接选择排序

直接选择排序 前言一、选择排序的基本思想&#xff1a;二、直接选择排序三、直接选择排序的特性总结&#xff1a;四、直接选择排序的动画展示五、直接选择排序的代码展示test.c 六、直接选择排序的优化test.c 前言 直接选择排序是一种简单的排序算法。它的工作原理是每一次从未…

Linux-docker安装数据库mysql

1、拉去mysql镜像&#xff1a; docker pull mysql2、创建容器挂载路径 mkdir -p /usr/local/jiuxiang/mysql/data # 数据存储位置 mkdir -p /usr/local/jiuxiang/mysql/logs # 日志存储位置 mkdir -p /usr/local/jiuxiang/mysql/conf # 配置文件3、启动容器 docker run -…

详细分析Python模块中的雪花算法(附模板)

目录 前言1. 基本知识2. 模板3. Demo 前言 分布式ID的生成推荐阅读&#xff1a;分布式ID生成方法的超详细分析&#xff08;全&#xff09; 1. 基本知识 Snowflake 算法是一种用于生成全局唯一 ID 的分布式算法&#xff0c;最初由 Twitter 设计并开源 它被设计用于解决分布式…

sentinel整合openFeign实现fall服务降级

服务提供方: 导入依赖&#xff1a; <!--openfeign--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId></dependency><!--alibaba-sentinel--><depend…

猫猫编号

解法&#xff1a; 暴力 #include<iostream> #include<algorithm> #include<vector> using namespace std; #define endl \nint main() {int n, m, sum 1;cin >> n >> m;string s;cin >> s;int pre s[0] - 0;int t 0;for (int i 1; i…

【DAY13 软考中级备考笔记】操作系统

操作系统 3月17日 – 天气&#xff1a;晴 凑着周末&#xff0c;赶紧把操作系统完结一下。 1. 管程 管程也属于操作系统中的一种同步机制&#xff0c;为了解决多线程环境中的并发控制问题。它提供了一系列的高级同步原语。 作用于信号量一样&#xff0c;但是管程便携程序更加简单…