基于Java影院在线选座购票平台的设计与实现

摘 要
随着互联网技术和移动设备的发展,影院在线选座购票平台可以借助现代化的技术手段,实现在线预订、电子支付、自动化排片等功能,提高用户体验和操作效率。因此,探讨影院在线选座购票平台在技术上的创新与应用具有一定的前沿性。影院在线选座购票平台的开发和应用对于影院运营和商业拓展具有重要的商业价值。通过优化影院资源的利用和管理,提高观众满意度和忠诚度,进而增加票房收入和经营效益,对于影院的可持续发展具有积极意义。
该系统主要使用Java语言,后端技术框架选择SpringBoot,数据库选择MySQL进行开发,前端页面呈现选择VUE框架。并通过设计完整的测试用例进行严格测试和调整,使该系统更加完备,系统分前台普通用户和后台超级管理员。普通用户角色的基本功能包括: 注册与登录、影片浏览与搜索、在线选座购票、影片评分、留言功能。超级管理员角色的基本功能包括:排片管理、用户管理、订单管理、员工管理。

关键词:影院在线选座;电子支付;自动化排片;MySQL数据库

Abstract
With the development of internet technology and mobile devices, cinema management systems can utilize modern technological means to achieve functions such as online booking, electronic payment, and automated film arrangement, improving user experience and operational efficiency. Therefore, exploring the technological innovation and application of cinema management systems has a certain cutting-edge significance. The development and application of cinema management systems have important commercial value for cinema operations and business expansion. By optimizing the utilization and management of cinema resources, improving audience satisfaction and loyalty, thereby increasing box office revenue and operating efficiency, it has a positive significance for the sustainable development of cinemas.
The system mainly uses Java language, with SpringBoot as the backend technology framework, MySQL as the database for development, and VUE framework as the frontend page presentation. And by designing complete test cases for strict testing and adjustment, the system is made more complete, divided into ordinary frontend users and super backend administrators. The basic functions of ordinary user roles include: registration and login, video browsing and search, online seat selection and ticketing, video rating, and message function. The basic functions of the super administrator role include: layout management, user management, order management, and employee management.

Key words: Cinema Online Seat Selection;electronic payment ;Automated layout;MYSQL database

目 录
摘 要 I
Abstract I

第1章 绪 论 1
1.1 课题背景 1
1.2 研究现状 1
1.3 开发意义 2
第2章 相关技术简介 4
2.1 网页设计相关技术系统 4
2.2 Java语言 4
2.3 MySQL数据库 4
2.4 VUE简介 5
2.5 Navicat开发工具 5
2.6 SpringBoot框架 5
第3章 系统分析 7
3.1系统可行性分析 7
3.1.1 技术可行性 7
3.1.2 操作可行性 7
3.1.3 营运可行性 7
3.2 系统功能需求分析 8
3.3 用户需求及用例图分析 8
3.3.1 管理员模块 8
3.3.2 用户模块 8
第4章 系统实现设计 10
4.1 系统功能 10
4.1.1 系统总体功能 10
4.2 数据库设计 10
4.2.1 数据库 E-R 图设计 10
4.2.2 主要数据表设计 13
第5章 详细设计与代码实现 16
5.1 用户功能模块的实现 16
5.1.1 注册与登录 16
5.1.2 影片浏览与搜索 17
5.1.3 在线选座购票 20
5.1.4 影片评分 22
5.1.5 留言功能 24
5.2 管理员功能模块的实现 25
5.2.1 排片管理 25
5.2.2 订单管理 29
5.2.3 用户管理 32
5.2.4 员工管理 33
第6章 系统测试 34
6.1 测试目的 34
6.2 测试方法 34
6.3 测试用例 35
6.3.1 用户登录模块测试 35
6.3.2 管理员功能模块测试 35
结 论 36
参考文献 37
致 谢 39

第1章 绪 论
1.1 课题背景
影院在线选座购票平台作为一种基于信息化、智能化的管理方式,可以有效提高影院的管理效率和服务水平,并且有望改变传统的影院观影模式,创造更多的商业机会。通过影院在线选座购票平台,可以对影院的各项数据进行实时监控和统计,包括票房、入场人数、观影时长等信息[1]。并且可以通过数据分析,为影院运营和营销提供重要的依据和支持。影院在线选座购票平台的开发和应用对于影院的管理和商业拓展具有重要的实践和理论价值[2]。通过对影院在线选座购票平台的研究和探讨,可以为影院行业的发展提供新的思路和方法,促进其信息化和智能化的发展,为观众提供更好的品质与服务。
传统的影院管理方式可能存在工作流程繁琐、信息传递不畅等问题。而影院在线选座购票平台的应用能够集中管理各项业务,提升工作效率。系统可以自动化处理票务、排片、营销等工作,减少人为错误和重复工作,提高工作效率和准确度。影院在线选座购票平台可以提供在线购票、选座、会员服务等功能,方便观众进行预订和观影[3]。观众可以根据自己的喜好和需求选择电影、座位,提前预约,避免排队等待。同时,系统可以根据观众的历史观影记录进行个性化推荐,提升观众的满意度和观影体验。通过影院在线选座购票平台,影院可以更好地了解观众的需求和喜好,针对性地进行营销活动和推广策略。系统可以对观众群体进行精细化管理,提供个性化的推荐和服务,增强观众粘性和忠诚度。同时,系统还可以通过数据分析和统计,为影院制定市场策略和商业决策提供准确的依据[4]。
1.2 研究现状
目前,在国内,影院在线选座购票平台的应用已经逐渐普及。一些大型连锁影院公司先后推出了自己的影院在线选座购票平台,如中影国际、万达电影等。同时,一些专业的技术服务商也推出了相关的解决方案,如瑞影科技、光启科技等[5]。国内的影院在线选座购票平台主要包括售票、排片、会员管理、财务管理、数据分析、设备管理等模块。其中,售票和排片是影院在线选座购票平台的核心功能,主要实现自动化、定制化的排片和售票服务,以提高工作效率和观影体验[6]。
影院在线选座购票平台的数字化和智能化也成为当前的发展趋势。在技术方面,一些新兴技术,如人工智能、大数据、云计算等,开始应用于影院在线选座购票平台中,以提高数据分析、营销推荐、设备管理等方面的精度和效率。在市场竞争日趋激烈的情况下,影院在线选座购票平台的差异化功能也越来越受到关注。为了吸引更多的观众和提高市场竞争力,一些影院公司开始将营销、推荐等功能纳入系统中,提供更为个性化的服务[7]。
在国外,影院在线选座购票平台的应用也非常普遍,并且已经取得了一定的发展。许多国外的连锁影院和独立影院都采用了先进的影院在线选座购票平台来提升效率和提供更好的观影体验。在一些发达国家,如美国、英国、法国、澳大利亚等,影院在线选座购票平台已经成为影院运营的标配。这些系统通常具有强大的售票和排片功能,能够集成座位选择、在线购票、会员管理、数据分析等功能,提供一站式的影院管理解决方案。同时,一些国际影院集团也推出了自己的影院在线选座购票平台,以实现集约化的管理和规模化的运营[8]。例如,AMC、Cinemark、Vue等影院集团都有自己的影院在线选座购票平台,用于管理其数百家影院的日常运营和业务管理。在技术方面,国外的影院在线选座购票平台也在不断创新和进化。一些新兴技术如移动支付、虚拟现实、增强现实等也开始应用于影院在线选座购票平台中,以提供更多元化的观影体验和服务。此外,国外的影院在线选座购票平台也注重用户体验和定制化服务。许多系统提供个性化的推荐功能,可以根据用户的喜好和观影历史进行电影推荐和优惠活动推送,提高观众的满意度和忠诚度。国外的影院在线选座购票平台已经在影院行业得到广泛应用,并且不断发展和创新。通过引入先进的技术和提供个性化的服务,这些系统为观众提供了更便捷、高效和愉悦的观影体验,也为影院运营提供了更为精细和智能化的管理[9]。
1.3 开发意义
选取影院在线选座购票平台作为研究选题具有提升管理效率、优化观影体验、提升市场竞争力以及推动行业发展的意义。研究影院在线选座购票平台的设计、开发和应用,有助于推动影院行业向数字化、智能化的未来发展,为观众提供更好的观影体验和服务质量。开发影院在线选座购票平台可以为电影院提供一个额外的销售渠道,不仅能够吸引更多的用户购票,还可以扩大电影院的知名度和影响力[10]。通过影院在线选座购票平台,电影院管理人员可以更加方便地管理座位信息、票务信息等,提高了管理效率,减少了人力成本和错误率。影院在线选座购票平台可以让用户清晰地看到已售和未售的座位情况,有助于电影院优化座位利用率,提高放映厅的上座率,从而提升经营效益[11]。
第2章 相关技术简介
2.1 网页设计相关技术系统
系统的开发环境为局域网或校园网络环境,采用PC设备,Windows 10,IDEA,Tomcat 9.0.37,JDK1.8,Mysql5.7等软件进行操作开发系统[12]。
运用技术:Spring+SpringMVC+MyBatis开发框架,项目涉及到web前端开发技术包括采用VUE框架进行页面呈现;Java程序设计中的面向对象的操作;SQL在数据库中的应用。整体网页设计简洁、美观大方[13]。
2.2 Java语言
Java是一种广泛使用的高级编程语言,由Sun Microsystems(现在是Oracle Corporation的一部分)于20世纪90年代初开发而成。它以其简单性、可移植性、面向对象和安全性等特点而闻名,并被广泛应用于各种领域,包括Web开发、移动应用开发、大数据处理、分布式系统等[14]。
Java通过Java虚拟机(JVM)的存在,实现了跨平台的能力。Java代码编译后会生成与平台无关的字节码,可以在任何支持Java虚拟机的计算机上执行。这种可移植性使得Java成为开发跨平台应用和移动应用的理想选择。Java是一种强大、灵活且可跨平台的编程语言。它的面向对象特性、可移植性、丰富的类库、高性能、安全性和多线程支持等优势,使得Java成为广泛应用于各种领域的首选语言之一。无论是大型企业应用还是移动应用开发,Java都能提供强大的能力和良好的开发体验。
2.3 MySQL数据库
MySQL是一种开源的关系型数据库管理系统(RDBMS),是由瑞典MySQL AB 公司开发,后来被Oracle公司收购。MySQL是一种客户端/服务器系统,支持多用户同时访问数据库,可以在不同的操作系统平台(例如,Windows,Linux,UNIX)上运行。支持标准SQL,支持SQL语言的大部分标准。可扩展性高,支持基于SQL API的编程接口,可以轻松地扩展新的功能并添加新的存储引擎。可靠性高,具有高度的自我修复机制和自动备份和恢复功能。支持高并发和大型数据集,具有轻型锁定机制和多表连接优化等方面的较好表现。具有良好的安全性,在具体实现方面,支持多入口访问控制,提供数据的完整性和安全性保障。MySQL被广泛应用于Web开发,大型服务器端应用,电子商务平台等数据处理场景。同时,由于它是开源的,拥有全球的社区支持,使得它成为用户和开发者的首选[15]。
2.4 VUE简介
Vue.js(通常称为Vue)是一个流行的JavaScript前端框架,用于构建交互式Web界面和单页应用程序(Single Page Application,SPA)。它由Evan You在2014年创建,并拥有易学易用、高效、灵活等特点,已经成为当今最受欢迎的前端框架之一[16]。
Vue框架由于其易学易用、高效、灵活、丰富的插件和库、易于测试和维护等特点,已成为当今最受欢迎的前端框架之一。无论是小型Web应用程序还是大型单页应用程序,Vue都可以提供强大的能力和良好的开发体验,使得Web开发变得更加轻松、高效和愉快[17]。
2.5 Navicat开发工具
Navicat是一款功能强大的数据库管理工具,用于管理和维护各种数据库,如MySQL、Oracle、SQL Server、PostgreSQL等。Navicat提供了直观易用的图形用户界面(GUI),使数据库管理变得更加简单和高效。Navicat支持多种数据库管理系统,包括MySQL、Oracle、SQL Server、PostgreSQL、SQLite等。用户可以在同一个界面下管理不同类型的数据库,方便进行跨数据库的操作和管理。Navicat内置了强大的SQL查询和脚本编辑功能,用户可以通过编写SQL查询和脚本来执行复杂的数据库操作,进行数据的筛选、排序、更新等操作[18]。
Navicat是一款功能强大、易用的数据库管理工具,通过直观的GUI界面和丰富的功能,使得数据库的管理、操作和维护变得更加简单和高效。无论是开发人员、DBA还是数据分析师,都可以从Navicat中受益,并提高数据库管理的效率和质量。
2.6 SpringBoot框架
Spring Boot是一个基于Spring框架的开源框架,用于简化Java应用程序的开发。它提供了一个快速、简单和开箱即用的方式来构建独立的、生产级别的Spring应用程序。Spring Boot通过自动配置和约定优于配置的原则,减少了繁琐的配置工作。大部分的默认配置已经合理地设置好,开发人员只需要关注核心业务逻辑的开发,而无需花费太多时间和精力在配置上。
Spring Boot框架通过简化配置、内嵌的Servlet容器、自动化的依赖管理、IDE友好、内建应用监测和丰富的生态系统等特点,大大简化了Java应用程序的开发和部署。它适用于各种规模的项目,无论是小型的原型开发还是复杂的企业级应用,Spring Boot都能提供高效、可靠和可维护的解决方案 。
第3章 系统分析
3.1系统可行性分析
3.1.1 技术可行性
本系统基于Spring Boot、MySQL和Vue等技术。Spring Boot是一个快速开发框架,简化了Spring应用的配置和部署。它提供了强大的依赖注入和容器管理,使系统的开发更加高效和便捷。Vue是一种流行的JavaScript前端框架,用于构建现代化的用户界面。它具备简洁易懂的语法、响应式组件和高效的虚拟DOM技术,可以提升系统的用户体验和性能。基于Spring Boot、MySQL和Vue等技术,影院在线选座购票平台在技术上是可行的,并能够满足影院管理的需求。
3.1.2 操作可行性
影院在线选座购票平台能够自动化管理票务、放映计划、员工排班等过程,减少了人力资源的投入和工作量,从而降低了运营成本。系统能够提供快速、准确的电影信息查询和在线售票服务,减少了顾客等待时间,提高了运营效率。通过系统的数据分析和预测功能,影院可以更加准确地了解顾客需求和电影市场情况,优化放映计划和营销策略,提高资源利用效率。系统提供了方便的在线购票和座位选择功能,让顾客可以自主选择符合自己需求的座位,提升了用户的购票体验,增加了重复消费率。
影院在线选座购票平台在经济上是可行的。它可以降低运营成本、提高运营效率、优化资源利用和提升用户体验,为影院带来经济效益。尽管系统的实施和运营可能需要一定的投资,但通过长期运营和利润增长,这些成本将会得到回报,使得影院在线选座购票平台具备良好的经济可行性。
3.1.3 营运可行性
影院影院在线选座购票平台是符合当今社会消费习惯和科技发展趋势的产品,随着人们生活节奏的加快和网络购物的普及,越来越多的用户更倾向于使用在线服务购买电影票。因此,市场上存在着巨大的需求和潜在的用户群体,为系统的推广和营运提供了坚实的市场基础。当前,互联网技术已经非常成熟,各种在线购票系统的开发和运营已经有了成功的案例。影院影院在线选座购票平台所需的技术支持和平台建设具备可行性,可以借鉴其他行业的经验,并通过不断优化和更新来适应市场需求。影院影院在线选座购票平台的运营成本相对较低,主要包括系统开发和维护费用、网络运营费用以及市场推广费用等。与传统的售票方式相比,线上售票可以减少人力成本和纸质票的印制成本,同时还可以通过数据分析和个性化推荐等方式提升用户粘性,降低运营成本,提高经营效益。影院影院在线选座购票平台的成功营运还需要得到影院管理方和票务平台等相关合作伙伴的支持。在合作伙伴的共同努力下,可以更好地整合资源,提高系统的覆盖范围和用户体验,从而实现系统的营运目标。
3.2 系统功能需求分析
影院在线选座购票平台的使用者主要是普通用户和管理员,普通用户可以实现的功能包括注册与登录、影片浏览与搜索、在线选座购票、影片评分、留言等功能。管理员基本功能包括排片管理、订单管理、用户管理、员工管理等。
3.3 用户需求及用例图分析
3.3.1 管理员模块
管理员进入登录界面进行登录,才能进入后台首页。其次能够看到管理员的功能模块包括排片管理、订单管理、用户管理、员工管理。管理员用例图如图3-1所示。
在这里插入图片描述

图3-1 管理员用例图
3.3.2 用户模块
用户登录系统后可以在线选座购票,对影片进行评分和评价,查看自己的个人订单等。用户用例图如图3-2所示。
在这里插入图片描述

图3-2 用户用例图

第4章 系统实现设计
4.1 系统功能
4.1.1 系统总体功能
本系统主要分两大模块,前台用户模块和后台管理员模块。前台用户模块实现的功能包括注册与登录、影片浏览与搜索、在线选座购票、影片评分、留言等功能。后台管理员实现的功能包括排片管理、订单管理、用户管理、员工管理,该系统的各功能模块结构图如下图4-1所示。
在这里插入图片描述

图4-1 系统功能架构图
4.2 数据库设计
4.2.1 数据库 E-R 图设计
系统总体实体-关系(E-R)图是信息系统设计和数据库设计中常用的一种图形工具,用于描述系统中实体(Entity)之间的关系(Relationship)以及属性(Attributes)的结构。通过E-R图,设计人员可以识别实体间的关系,包括一对一、一对多、多对多等不同类型的关系。这有助于验证系统数据的完整性,避免数据冗余和不一致性。系统整体E-R图如下图4-2所示。
在这里插入图片描述

图4-2 数据库概念E-R图
用户信息包括姓名,邮箱,性别,备注,生日,账号,密码,如图4-3所示。
在这里插入图片描述

图 4-3 用户信息实体图
管理员信息包括账号,头像,密码,如图4-4所示。
在这里插入图片描述

图 4-4 管理员实体图
活动信息包括活动内容,开始时间,结束时间,创建时间,如图4-5所示。
在这里插入图片描述

图 4-5活动信息实体图
影片信息包括影片名字,上映时间,影片类型,影片简介、影片图片、票价,如图4-6所示。
在这里插入图片描述

图 4-6 影片信息实体图
订单包括订单号,手机号,用户id,座位号、支付金额、付款时间,如图4-7所示。
在这里插入图片描述

图 4-7 订单实体图
首页轮播图包括片名,图片,创建时间,如图4-8所示。
在这里插入图片描述

图 4-8首页轮播图实体图
影片评分包括影片id,用户id,分数、评价内容、创建时间,如图4-9所示。
在这里插入图片描述

图 4-9 车辆品牌实体图
4.2.2 主要数据表设计
该系统采用 MySQL数据库进行各种数据处理,并利用 SQL语句将数据库与前端进行数据通信。在数据库中,数据类型的设定和主键的设定,完成了数据的设计[12]。数据库建立7个表(用户表t_user、管理员表t_admin、活动表t_activity、影片信息表t_film、订单表t_order、首页轮播图表t_poster、影片评分表t_film_evaluate)。如表4-1至表4-7所示。

表4-2 t_admin表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
username varchar 11 否 是 账号
password varchar 255 否 否 密码
avatar varchar 255 否 否 头像
表4-3 t_activity表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
content varchar 255 否 是 活动内容
start_time timestamp 10 否 是 开始时间
end_time timestamp 10 否 是 结束时间
create_at timestamp 10 否 是 创建时间
表4-4 t_film表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
name varchar 255 否 否 名称
release_time timestamp 11 否 否 上映时间
type int 11 否 否 电影类型
introduction varchar 255 否 否 简介
cover varchar 255 否 否 导演
price int 11 否 否 票价
表4-5 t_order表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
uid int 11 否 否 用户id
phone varchar 255 否 否 手机号
aid int 11 否 是 影片id
price int 11 否 是 价格
status int 11 否 是 状态
pay_at varchar 255 否 是 支付方式

表4-6 t_poster表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
title varchar 255 否 否 标题
url varchar 255 否 否 地址
create_at timestamp 11 否 是 创建时间
表4-7 t_film_evaluate表
列名 数据类型 长度 主键 允许空 注释
id int 11 是 否 主键
fid int 11 否 否 电影id
uid int 11 否 否 用户id
star int 11 否 是 评分
comment varchar 255 否 是 评价
create_at timestamp 11 否 是 创建时间
第5章 详细设计与代码实现
5.1 用户功能模块的实现
5.1.1 注册与登录
用户访问影院在线选座购票平台的注册页面, 用户点击注册按钮,系统显示注册表单,要求用户提供必要的信息,如用户名、密码、确认密码等。用户输入所需信息后,系统会对输入进行验证,确保信息的准确性和完整性。系统会检查用户名是否已被占用。用户注册页面如图5-1所示。
在这里插入图片描述

图5-1 用户注册界面展示
用户注册页面主要代码如下:
@Override
public R delete(String id) {
if (StrHelper.isEmpty(id)) {
return R.fail(ExceptionCode.NULL_POINT_EX.getCode(), getStrByKey(“ExceptionCode.NULL_POINT_EX”));
} else {
ViewGroup viewGroup = viewGroupMapper.selectById(id);
if (viewGroup == null) {
return R.fail(ExceptionCode.DATA_NOT_EXIST.getCode(), getStrByKey(“ExceptionCode.DATA_NOT_EXIST”));
}
LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(WebsiteViewGroup::getViewgroupId, id);
List websiteViewGroups = websiteViewGroupMapper.selectList(queryWrapper1);
if (ObjectUtil.isNotEmpty(websiteViewGroups)) {
return R.fail(getStrByKey(“viewgroup.website_EXIST”));
}
用户访问影院在线选座购票平台的登录页面,用户输入已注册的用户名和密码,并点击登录按钮。系统验证用户提供的用户名和密码是否匹配。系统会从数据库中查找与提供的用户名对应的用户信息,并对比用户提供的密码是否与数据库中存储的密码一致。如果用户名和密码验证通过,系统会将用户重定向到登录后的页面,显示电影排片主页。如果用户名和密码验证不通过,系统会显示错误消息,提示用户重新输入正确的用户名和密码。如图5-2所示。
在这里插入图片描述

图5-2 用户登录页面
5.1.2 影片浏览与搜索
用户进入影院在线选座购票平台的前台页面,显示影片列表页面。页面会展示当前正在上映或即将上映的电影列表,包括电影的海报、标题、类型、评分等信息。用户可以直接浏览这些电影。用户可以使用页面上的搜索框来搜索电影。用户可以输入电影标题、演员名、导演名等关键字进行搜索。用户输入关键字后,系统会根据关键字在电影数据库中进行匹配,并显示与关键字相关的电影列表。如图5-3、5-4所示。
在这里插入图片描述

图5-3 影片首页页面
在这里插入图片描述

图5-4 影片列表页面
用户可以通过点击电影海报或标题,进入单个电影的详情页面。详情页面通常包含更多详细信息,如电影时长、上映日期、影院放映时间表等如图5-5所示。
在这里插入图片描述

图5-5 影片详情页面
影片浏览页面主要代码如下:
public R dealViewGroupList(String websiteId) {
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ViewGroup::getWebsiteId, websiteId);
List viewGroups = viewGroupMapper.selectList(queryWrapper);
if (null != viewGroups && viewGroups.size() > 0) {
for (int i = 0; i < viewGroups.size(); i++) {
//viewGroups.get(i).getId();
LambdaQueryWrapper queryWrapper1 = new LambdaQueryWrapper<>();
queryWrapper1.eq(WebsiteViewGroup::getViewgroupId, viewGroups.get(i).getId());
List websiteViewGroups = websiteViewGroupMapper.selectList(queryWrapper1);
List websiteIdList = new ArrayList<>();
5.1.3 在线选座购票
用户进入影院在线选座购票平台的前台页面,并选择一个电影并进入相关的电影详情页面。在电影详情页面,用户可以查看该电影的放映时间表和可用座位情况。通常会显示一个座位图,标记已经被选中或已售出的座位。用户可以在座位图上选择自己想要坐的座位。用户可以直接点击座位,系统会自动将座位标记为选中状态。如图5-6所示。
在这里插入图片描述

图5-6 在线选座页面
用户选择好座位后,可以选择购买数量,并确认购票。系统会要求用户填写购票信息,联系方式。用户输入完购票信息后,系统会根据用户的选择生成订单,并显示订单信息、总价以及支付方式。如图5-7所示。
在这里插入图片描述

图5-7 加入购物车页面
加入购物车成功后系统会给出提示,如图5-8所示。
在这里插入图片描述

图5-8 加入购物车成功提示页面
页面上通常会有一个购物车图标,用户可以点击它进入购物车页面。用户点击购物车进入购物车页面后,可以查看所选择的电影票的详细信息,包括电影名称、影厅号、座位号、放映时间等。同时,还会显示每张电影票的价格以及总价。用户可以在购物车页面对购票进行修改,比如增加或减少购票数量,或者移除某些电影票。如图5-9所示。
在这里插入图片描述

图5-9 购物车页面
当用户确认所有购票信息无误后,可以点击结算或去结算按钮。系统通常会进行提示。一旦支付成功,系统会生成电影票,确认订单。如图5-10所示。
在这里插入图片描述

图5-10 确认结算提示页面
在线选座主要代码如下:
List viewGroupVOList = new ArrayList<>();
if (null != viewGroupList && viewGroupList.size() > 0) {
for (int i = 0; i < viewGroupList.size(); i++) {
ViewGroupVO viewGroupVO = new ViewGroupVO();
LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ViewViewGroup::getViewgroupId, viewGroupList.get(i).getId());
List viewViewGroupList = viewViewGroupMapper.selectList(queryWrapper);
List viewList = new ArrayList();
if (null != viewViewGroupList && viewViewGroupList.size() > 0) {
for (int j = 0; j < viewViewGroupList.size(); j++) {
View view = viewMapper.selectById(viewViewGroupList.get(j).getViewId());
viewList.add(view);
}
5.1.4 影片评分
用户在影院在线选座购票平台的前台页面进入电影详情页面,该页面通常包含电影的详细信息和观影评分功能。在电影详情页面,用户可以查看电影的剧情简介、演员表、导演信息等。用户可以寻找影片评分的区域,通常会有一个评分或星级评分的控件。用户可以使用鼠标或触摸屏选择合适的评分,例如点击星级评分控件中的星星来选择评分等级。当用户选择评分后,通常会有一个确认按钮功能,以便用户确认评分。用户还可以选择添加文字评论,以便表达对电影的更详细的意见和感受。如图5-11所示。
在这里插入图片描述

图5-11 电影评分页面
系统可以将这些评论展示给其他用户,以帮助他们做出更好的决策。如图5-12所示。
在这里插入图片描述

图5-12 查看电影评分页面
影片评分主要代码如下:
LambdaQueryWrapper viewLambdaQueryWrapper = new LambdaQueryWrapper<>();
viewLambdaQueryWrapper.eq(View::getWebsiteId,id)
.orderByDesc(View::getUpdateTime);
List views = viewMapper.selectList(viewLambdaQueryWrapper);
List treeViews = views.stream().filter(a -> ObjectUtil.isEmpty(a.getResourcelibId()))
.toList();
List viewsChange = views.stream()
filter(a -> a.getType() != StrPool.THREEINT)
.peek(a -> a.setResourcelibName(ObjectUtil.isEmpty(callResourcelibService.getLibNameById(a.getResourcelibId()).getData()) ? null : callResourcelibService.getLibNameById(a.getResourcelibId()).getData().toString()))
.toList();;
5.1.5 留言功能
用户在影院在线选座购票平台的前台页面找到留言板或相关的反馈功能入口。用户可以点击留言板以进入留言功能页面。在留言功能页面,用户通常会看到已有的留言列表,包括其他用户的留言和回复。如图5-13所示。
在这里插入图片描述

图5-13 查看留言列表页面
用户可以选择在留言列表下方找到输入框,以便于输入自己的留言。用户可以输入留言内容,可以是对电影的评论、对服务的意见、提问或建议等。用户输入完留言信息后,可以选择提交留言。如图5-14所示。
在这里插入图片描述

图5-14 留言页面
留言功能主要代码如下:
@Override
public R listByWebsiteIdGroupByResourcelib(String id) {
//根据WebsiteId查询出所有的视图信息
LambdaQueryWrapper viewLambdaQueryWrapper = new LambdaQueryWrapper<>();
viewLambdaQueryWrapper.eq(View::getWebsiteId,id);
List views = viewMapper.selectList(viewLambdaQueryWrapper);
List treeViews = views.stream().filter(a -> ObjectUtil.isEmpty(a.getResourcelibId()))
.sorted(Comparator.comparing(View::getUpdateTime,Comparator.nullsFirst(Comparator.reverseOrder())))
views.removeAll(treeViews)😉
5.2 管理员功能模块的实现
5.2.1 排片管理
管理员登录影院在线选座购票平台的后台管理界面。在排片管理功能页面,管理员可以查看当前影院的排片情况,包括已安排的电影、影厅、放映时间等信息。如图5-15所示。
在这里插入图片描述

图5-15 排片列表页面
管理员可以选择添加新的排片。点击添加排片按钮后,系统会弹出一个页面。在页面中, 管理员需要指定放映时间和日期。通过日期选择器和时间选择器来确定放映的具体时刻。管理员还可以设置特殊的放映选项,如3D、VIP场次等。可以通过勾选框或下拉列表进行选择。一旦管理员填好了排片信息,可以点击确认按钮以完成排片。系统会验证排片的合法性,如确认影厅未被占用,放映时间正确等。如果排片信息无误,系统会将相应的排片信息更新到系统数据库中,并在排片管理页面进行显示。如图5-16所示。
在这里插入图片描述

图5-16 新增排片页面
管理员选择新增电影的选项,有一个添加电影的按钮。系统跳转到新增电影页面,管理员会看到一个包含多个输入字段的表单。在新增电影的表单中,管理员需要输入电影的基本信息,例如电影名称、导演、演员、类型、时长、上映日期等。管理员可以上传电影海报或剧照,以便在电影详情页面中显示。管理员可以输入电影的剧情简介、评论或其他相关信息,以提供给用户详细了解电影。一旦管理员填写好电影的相关信息,可以点击确认按钮以完成新增电影操作。系统会验证电影信息的有效性和一致性,如检查是否有重复的电影名称,是否遗漏必填字段等。如果电影信息无误,则系统会将新增的电影信息保存到数据库中,并在电影列表中进行显示。如图5-17所示。
在这里插入图片描述

图5-17 新增影片页面
管理员选择想要删除的电影,会有一个删除按钮。管理员点击删除按钮。系统会弹出一个确认删除的提示框,以确保管理员意图删除该电影。如果管理员确认删除电影,请点击确认删除按钮。如图5-18所示。
在这里插入图片描述

图5-18 删除影片页面
在排片管理界面,管理员找到轮播图管理功能入口。进入轮播图管理页面后,管理员可以查看当前设置的轮播图列表和相关信息。如图5-19所示。
在这里插入图片描述

图5-19 轮播图列表页面
管理员选择新增轮播图的选项,会有一个添加轮播图的按钮。系统跳转到新增轮播图页面,管理员会看到一个包含多个输入字段的表单。在新增轮播图的表单中,管理员需要选择要上传的图片或轮播图。管理员可以为轮播图添加标题、描述或其他相关信息,以提供给用户了解轮播图内容。一旦管理员填写好轮播图的相关信息,可以点击确认按钮以完成新增轮播图操作。系统会验证轮播图信息的有效性和一致性,如检查是否上传了正确的图片格式、是否填写了必填字段等。如果轮播图信息无误,则系统会将新增的轮播图信息保存到数据库中,并在轮播图列表中进行显示。如图5-20所示。
在这里插入图片描述

图5-20 添加轮播图页面
拍片管理功能主要代码如下:
@Override
public R listByWebsiteIdAndViewGroupId(String viewgroupId, String websiteId) {
if(StrUtil.isBlank(websiteId)){
return R.fail(getStrByKey(“view.websiteId.null”));
}
if(StrUtil.isBlank(viewgroupId)){
return R.fail(getStrByKey(“view.viewgroupId.null”));
}
List views = viewMapper.listByWebsiteIdAndViewGroupId(viewgroupId, websiteId);
List treeViews = views.stream().filter(a -> ObjectUtil.isEmpty(a.getResourcelibId()))
.sorted(Comparator.comparing(View::getUpdateTime,Comparator.nullsFirst(Comparator.reverseOrder())))
.toList();
//去掉主页视图 剩下的为简要和详细视图 再根据resourcelib_id分组
views.removeAll(treeViews)😉
5.2.2 订单管理
管理员登录影院在线选座购票平台的后台管理界面。在后台管理界面,管理员找到订单管理功能入口。进入订单管理页面后,管理员可以看到当前的订单列表,包括订单号、金额、支付状态等。如图5-21所示。
在这里插入图片描述

图5-21 订单列表页面
在订单列表中,管理员可以选择要撤销的订单。管理员可以点击撤销按钮或选择相应的撤销选项。系统会弹出一个确认撤销的提示框,以确保管理员意图撤销该订单。如果管理员确认撤销订单,请点击确认撤销按钮。撤销成功后系统会发出提示。如图5-22所示。
在这里插入图片描述

图5-22 订单撤销成功提示页面
在订单列表中,管理员可以选择要上报的异常订单。管理员可以点击上报异常按钮。系统会弹出一个输入框需要填写上报人和上报原因,以确保管理员意图上报该订单异常。如果管理员确认上报订单异常,请点击确认上报按钮。系统会将相应的订单标记为异常,并记录异常信息。并弹框提示上传成功。如图5-23,5-24所示。
在这里插入图片描述

图5-23 上报异常订单页面
在这里插入图片描述

图5-24 上报成功提示页面
在订单管理页面中,管理员可以选择查看异常订单列表的选项。系统会跳转到异常订单列表页面,管理员可以查看当前的异常订单列表,包括订单号、上报人、异常处理状态等。如图5-25所示。
在这里插入图片描述

图5-25 异常订单列表页面
在异常订单列表中,管理员可以选择要处理的异常订单。管理员可以点击处理按钮选项。系统会跳转到处理异常订单页面,管理员需要填写处理结果,并进行相应的处理操作,如联系用户解决问题、取消订单并进行退款等。管理员完成处理后,系统会更新订单状态,并记录处理结果。如图5-26所示。
在这里插入图片描述

图5-26 异常订单处理页面
订单管理功能主要代码如下:
@Transactional(rollbackFor = Exception.class)
public R save(ViewVO viewVO) {
if(ObjectUtil.isEmpty(viewVO)){
return R.fail(ExceptionCode.NULL_POINT_EX.getCode(),getStrByKey(“ExceptionCode.NULL_POINT_EX”));
}
if(viewVO.getType()!=StrPool.ONEINT && viewVO.getType()!=StrPool.TWOINT && viewVO.getType()!=StrPool.THREEINT){
return R.fail(getStrByKey(“view.viewType.null”));
}
if(viewVO.getType() == StrPool.ONEINT || viewVO.getType() == StrPool.TWOINT){
if(ObjectUtil.isEmpty(viewVO.getResourcelibId())){
return R.fail(getStrByKey(“view.resourceId.null”));
}
}
if(ObjectUtil.isEmpty(viewVO.getViewBlocks())){
return R.fail(getStrByKey(“view.block.null”));
}
5.2.3 用户管理
在后台管理界面,管理员找到用户管理或相关功能入口。进入用户管理页面后,管理员可以查看当前注册的用户列表。管理员可以看到每个用户的基本信息,如用户名、手机号、邮箱等。如图5-27所示。
在这里插入图片描述

图5-27 用户列表页面
在用户列表中,管理员可以选择要修改密码的用户。管理员可以点击修改密码按钮选项。管理员需要输入新的密码。点击确认则修改成功,如图5-28所示。
在这里插入图片描述

图5-28 修改用户密码页面
5.2.4 员工管理
在后台管理界面,管理员找到员工管理功能入口。进入员工管理页面后,管理员可以查看当前注册的员工列表。管理员可以看到每个员工的基本信息,如姓名、工号、联系方式等。如图5-29所示。
在这里插入图片描述

图5-29 员工列表页面
在员工列表页面中,管理员可以选择新增员工的选项。系统会跳转到新增员工页面,并显示相应的员工信息填写表单。管理员需要输入员工的基本信息,如姓名、工号、职位、联系方式等。管理员可以选择分配一个初始密码给新员工。管理员需要确认填写的信息是否准确无误,并点击确认新增按钮。系统会进行验证并将新员工的基本信息保存到数据库中。如图5-30所示。
在这里插入图片描述

图5-30 新增员工页面
第6章 系统测试
6.1 测试目的
影院在线选座购票平台的测试目的是确保系统能够按照需求规格说明书的要求正常工作,并且保证系统具备较高的稳定性、可靠性、安全性等特性,以满足用户的需求和期望。通过系统的功能测试,确认系统中各个模块和功能是否按照需求规格说明书的要求正常运行。验证系统的查询、购票、座位选择、联合支付等功能是否满足用户需求。需验证系统在高并发、大数据和复杂业务条件下的响应速度、稳定性和负载能力。网络延迟、并发、并行的压力测试通过测量吞吐量、响应时间、CPU 和内存利用率、磁盘 I/O 带宽使用率、带宽利用率,来确认系统对于压力测试的表现是否符合指标和客户需求。通过功能测试、性能测试、安全测试等多种方法,发现系统中可能存在的缺陷、漏洞和安全隐患,并及时修复。通过完善的测试流程和测试用例,快速发现并控制系统的风险,以提高系统的可靠性和稳定性,从而提高用户体验和满意度。
6.2 测试方法
白盒测试(White Box Testing)是一种软件测试方法,它基于对系统的内部结构和代码的了解,以验证系统的内部逻辑和处理是否正确。在白盒测试中,测试人员知道被测试系统的内部实现细节,包括代码、算法、数据结构和逻辑等,这使得测试人员能够更深入地评估系统的质量和性能。白盒测试的目的是检查和评估系统的内部逻辑是否正确、代码是否存在错误或不符合预期行为。白盒测试主要强调测试用例的覆盖率,即通过测试用例来覆盖代码的各个路径,以确保系统的所有部分都经过了测试。白盒测试着重考虑边界条件,即测试系统在输入的边界情况下的行为,以验证系统对极端或异常情况的处理逻辑是否正确。白盒测试关注系统的控制流程和数据流程,通过分析系统的各个分支、循环和辅助函数来设计测试用例,以发现可能存在的逻辑错误。评估代码的结构、质量和规范是否符合预期。通过代码审查可以发现潜在的错误和漏洞,并提供改进和优化的建议[16]。
6.3 测试用例
6.3.1 用户登录模块测试
1)测试用例
当用户来到登录页面,进行登录时需要填写账号、密码、验证,网站会对操作进行检测,通过检测之后方能显示登录成功,输入错误则会显示登录失败。具体测试的用例如表6-1所示。
表 6­1 用户登录测试用例表
测试模式 操作 期望结果 实际结果
用户登录 输入用户账号,点击“登入”按钮 提示信息“用户名和密码”错误 提示信息“用户名和密码”错误
用户登录 输入用户密码,点击“登入”按钮 提示信息“用户名和密码”错误 提示信息“用户名和密码”错误
用户登录 输入用户账号、密码,点击“登入”按钮 登录成功 登录成功
6.3.2 管理员功能模块测试
1)测试用例
测试系统用户管理。管理模块测试用例如表6-2所示。
表6-2 管理模块测试用例表
系统名称 操作步骤 期望结果 实际结果
添加用户 点击“新增”按钮 数据库成功添加数据,页面提交信息显示成功 数据库成功添加数据,页面提交信息显示成功
修改用户 点击“编辑”按钮 数据库成功添加数据,前台更改完信息显示修改成功 数据库成功添加数据,前台更改完信息显示修改成功
删除用户 点击“删除”按钮 数据库成功添加数据,前台显示成功删除信息 数据库成功添加数据,前台显示成功删除信息
结 论
通过完成影院在线选座购票平台,可以实现电影院的全面数字化管理,包括在线电影票预订、排片计划优化、票务销售数据分析等功能,从而解决了传统售票方式下存在的诸多问题。首先,该系统使得用户可以通过网络平台方便快捷地预订电影票,不再需要排队等候,提升了用户的购票体验和满意度。其次,系统能够根据电影院的实际情况和用户偏好,优化排片计划,合理安排电影放映时间和场次,最大化利用电影院的资源,提高了票务销售效率和收入。此外,系统还提供了数据分析功能,能够为电影院提供销售趋势、用户偏好等方面的数据支持,帮助电影院制定精准的营销策略和资源配置方案。
然而,影院在线选座购票平台仍然存在一些不足之处。首先,部分用户可能对在线预订系统的操作不够熟悉,导致使用体验不佳,需要进一步提升用户的接受度和便利性。其次,系统在高峰期可能会出现服务器压力过大的情况,影响系统的稳定性和用户体验,需要进一步优化系统的性能和负载均衡能力。此外,系统可能存在安全隐患,如用户信息泄露等问题,需要加强数据加密和安全防护措施,保障用户信息的安全性。
未来,可以通过以下方式进一步优化影院在线选座购票平台。首先,可以引入更多先进的技术,如人工智能和大数据分析等,进一步提升系统的智能化水平和数据处理能力,实现更精准的用户推荐和销售预测。其次,可以加强系统的用户培训和技术支持,提升用户对在线预订系统的接受度和使用便利性。同时,还可以加强系统的安全性防护措施,确保用户信息的安全和隐私保护。最后,可以持续进行系统的更新和维护,及时修复系统bug和优化系统性能,保持系统的稳定运行和用户体验。
影院在线选座购票平台在未来有很大的发展潜力和展望。随着技术的不断发展,影院在线选座购票平台将更多地实现数字化和自动化。比如自动售票系统、在线选座、自助取票机等,将进一步提升用户体验和操作效率。基于人工智能和大数据分析的应用将在影院在线选座购票平台中得到广泛应用。通过分析用户的观影习惯和偏好,可以为用户提供个性化的推荐影片,提高票房销售和用户满意度。影院在线选座购票平台将借助互联网技术实现影院之间的网络化,比如跨影院票务系统的整合和联盟,用户可以通过一个平台购买不同影院的电影票。
未来的影院在线选座购票平台将更加便利、智能、个性化和互动化。随着技术的不断进步和用户需求的变化,影院在线选座购票平台将不断演进,为用户提供更好的观影体验和服务。
参考文献
[1] 李天翔,田林琳.在线购票网站的设计与实现[J].湖北农机化,2020 (14):81.
[2] 袁晓芳,蒋秋洁.基于O2O模式的电影购票服务平台设计[J].设计艺术研究,2020,9(02):120-125.
[3] 肖泉彬,何敏.基于JSP的电影购票系统设计与开发[J].电脑知识与技术,2020,16 (07):67-68+92.
[4] 蔡明山,刘磊,李俊峰.影院购票管理系统设计[J].榆林学院学报,2020,28 (06): 98-100.
[5] 谢靖壹,芦明.一种基于SSM框架技术的航空售票系统的设计与实现[J].电脑编程技巧与维护,2020(10):24-25+41.
[6] 李奕.基于移动互联网时代的“爱购”电影APP交互服务系统设计分析[J].湖北美术学院学报,2020(02): 118-122.
[7] 刘艳秋,卜永波,王冬青,等.基于微信小程序的电影票购票系统设计与实现[J].电脑编程技巧与维护,2021(12):68-70.
[8] 刘旭.基于MVC模式的网上订票系统分析与设计.2020(01):18-23.
[9] 肖娜,史争军,岳东辉.基于数据库的影院在线选座购票平台设计[J].电脑编程技巧与维护,2019(10):48-49.
[10] 王植,张钰,张鹏飞.影院订票系统设计与实现[J].电子设计工程,2016:41-46.
[11] 孙朝云,王秀松.现代影院售票系统计算机管理设计与实现[J].计算机应用与软件,2018,018(008):45-47.
[12] 赵蔷,李红.基于JSP的影院售票系统的设计与实现[J].价值工程,2017,(29):117-119.
[13] 冯枫添.基于Java的航空订票系统的设计与实现[J].无线互联科技,2016,(9):57-76.
[14] 鲁铮,吴瑕,张甜甜.基于ASP.NET的飞机订票系统的设计与实现[J].民营科技,2016,(4):49.
[15] 王南.Java编程在计算机应用软件中的应用特征与技术研究[J].信息记录材料,2022,23(04):130-132.
[16] 尹应荆.JAVA编程语言在计算机软件开发中的应用[J].石河子科技,2023(05):45-47.
[17] 程小红.基于Java程序设计语言中一维数组的应用[J].数字技术与应用,2023,41(08):31-34.
[18] 闫立誉.基于Java平台开发的软件保护技术探究[J].数字技术与应用,2023,41(08):199-201.
[19] 康晶晶,李青云.Java面向对象程序设计课程的教学实践[J].电子技术,2023,52(08):262-263.
[20] 李唯.基于产教融合的Java EE轻量级框架开发课程建设研究[J].电脑知识与技术,2023,19(23):151-153.
[21] Shenghan Yao, “Research on the relationship between film ticket price and film industry development in China”, Central South University, 2021.
[22] Lindholm T, Yellin F,Bracha G,et al. The Java virtual machine specification[M].Pearson Education,2019…
[23] Namoun A, Tufail A, Mehandjiev N, et al. An eco-friendly multimodal route guidance system for urban areas using multi-agent technology[J]. Applied Sciences, 2021, 11(5): 20-21.
致 谢
在本科论文的完成过程中,我受到了许多人的关心、支持和帮助,现在我想借此机会向他们表达我的真挚谢意。首先,我要感谢我的导师。感谢您在整个论文研究过程中对我的悉心指导和教诲。您给予了我充分的自由和机会去探索和探讨自己的研究兴趣,您的专业知识和丰富经验对我的研究起到了重要的指导作用。同时,您的严谨治学态度和对我不断的激励和鼓励,让我能够面对困难,坚持不懈地完成论文。
我还要感谢我的家人。感谢你们一直以来对我的支持与理解。在我研究的艰辛时刻,你们给予了我温暖和鼓励,让我有勇气面对困难和挑战。你们的支持是我坚持下去的动力和信心所在。我还要感谢我的同学和朋友们。感谢你们在学习和生活中的陪伴和帮助。我们一起度过了许多美好的时光,你们的智慧和思维的碰撞给我带来了新的灵感和启示。感谢你们对我的学习提供的帮助和建议,让我不断进步。
衷心地感谢所有给予我帮助和支持的人们。是你们的鼓励和帮助让我能够顺利完成我的本科论文。愿我的感激之情以这段文字表达,感谢你们的无私奉献和付出!

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值