ssm+vue645基于web的电影购票系统设计与实现


博主介绍:专注于Java(springboot ssm 等开发框架) vue  .net  php phython node.js    uniapp 微信小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设,从业十五余年开发设计教学工作
☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟
我的博客空间发布了1500+毕设题目 方便大家学习使用
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人
更多项目地址 介绍  翰文编程CSDN博客 翰文编程-CSDN博客
文末下方有源码获取地址

4.2 功能结构设计

图4.1即为设计的管理员功能结构,管理员权限操作的功能包括管理用户,管理电影类型,管理电影,其中电影管理包括电影场次管理,电影评价管理,电影收藏管理,电影订单管理等子模块。

图4.1 管理员功能结构

图4.2即为设计的用户功能结构,用户权限操作的功能包括选择电影场次,选择观影座位,购买电影票,管理电影订单,收藏电影等。

图4.2 用户功能结构

4.3 数据库设计

电影购票系统运行中产生的数据需要按照提前设置的存储规则进行保存,设计出一个符合项目的最优数据存储格式,因为它能减少用户的等待时间,还可以对系统的请求在最短时间内进行响应。所以,对数据库设计时,需要对功能需求进行详细的拆分,以及对业务状态的细分,然后设计具体的存储规则,保证数据库能正常运作,缩短数据处理时间,并在一定程度上降低数据冗余,节省存储空间。

4.3.1 数据库概念设计

实体-联系图还有一个名称即E-R图,是Entity Relationship Diagram各英文单词首字母的缩写,它这种概念模型通常用于对现实世界进行描述。同时它还是一种能够直观表达数据中实体,联系,属性的有效手段。绘制E-R图能够选择的工具也有很多,但是Office Visio 这款软件在E-R图的绘制上一般都是作为首选工具,因为它是基于可视化处理,使用它创建E-R图非常简单。使用基本的E-R图构成元素,比如椭圆,菱形,矩形,还有实线段来表达对应的信息,椭圆代表属性,即实体的特征,矩形代表实体,即数据库中的一个具体数据表,菱形代表实体中相互关系,实线段主要是完成椭圆,矩形,菱形的连接。

(1)图4.4即为电影这个实体所拥有的属性值。

图4.4 电影实体属性图

(2)图4.5即为电影订单这个实体所拥有的属性值。

图4.5 电影订单实体属性图

(3)图4.6即为管理员这个实体所拥有的属性值。

图4.6 管理员实体属性图

  1. 图4.7即为用户这个实体所拥有的属性值。

图4.7 用户实体属性图

  1. 图4.8即为上面介绍的实体中存在的联系。

图4.8 实体间关系E-R图

4.3.2 数据库物理设计

本小节主要任务即是根据上述内容进行数据存储结构的设计,实体的属性就用来表示字段名称,不同的字段表示的数据类型以及取值都不相同,以及该表各个字段是否能够保持空等进行说明,设计完成一张数据表的结构之后,在保存时同样要命名,尽量选择英文名称进行命名并保存,还不容易导致系统出错。接下来就对设计的表进行简单说明。

表4.1 电影表

字段

注释

类型

id (主键)

主键

int(11)

dianying_name

电影名称

varchar(200)

dianying_photo

电影照片

varchar(200)

dianying_types

电影类型

int(11)

dianying_old_money

电影原价

decimal(10,2)

dianying_new_money

现价

decimal(10,2)

zuowei_number

座位

int(11)

dianying_clicknum

电影热度

int(11)

shangxia_types

是否上架

int(11)

dianying_delete

逻辑删除

int(11)

dianying_content

电影简介

text

create_time

创建时间

timestamp

表4.2 电影场次表

字段

注释

类型

id (主键)

主键

int(11)

dianying_id

电影

int(11)

dianying_changci_yingyuan_name

影院名称

varchar(200)

dianying_changci_yingyuan_fangyingting

放映厅

varchar(200)

dianying_changci_yingyuan_address

放映地点

varchar(200)

fangying_kaishi_shijian

放映开始时间

varchar(200)

fangying_jieshu_shijian

放映结束时间

varchar(200)

create_time

创建时间

timestamp

表4.3 电影收藏表

字段

注释

类型

id (主键)

主键

int(11)

dianying_id

电影

int(11)

yonghu_id

用户

int(11)

dianying_collection_types

类型

int(11)

insert_time

收藏时间

timestamp

create_time

创建时间

timestamp

表4.4 电影评价表

字段

注释

类型

id (主键)

主键

int(11)

dianying_id

电影

int(11)

yonghu_id

用户

int(11)

dianying_commentback_text

评价内容

text

insert_time

评价时间

timestamp

reply_text

回复内容

text

update_time

回复时间

timestamp

create_time

创建时间

timestamp

表4.5 电影订单表

字段

注释

类型

id (主键)

主键

int(11)

dianying_order_uuid_number

订单号

varchar(200)

dianying_id

电影

int(11)

dianying_changci_id

电影场次

int(11)

yonghu_id

用户

int(11)

dianying_order_true_price

实付价格

decimal(10,2)

dianying_order_types

订单类型

int(11)

dianying_order_payment_types

支付类型

int(11)

buy_zuowei_number

购买的座位

varchar(200)

buy_zuowei_time

订购日期

date

insert_time

订单创建时间

timestamp

create_time

创建时间

timestamp

表4.6 管理员表

字段

注释

类型

id (主键)

主键

bigint(20)

username

用户名

varchar(100)

password

密码

varchar(100)

role

角色

varchar(100)

addtime

新增时间

timestamp

表4.7 用户表

字段

注释

类型

id (主键)

主键

int(11)

username

账户

varchar(200)

password

密码

varchar(200)

yonghu_name

用户姓名

varchar(200)

yonghu_phone

用户手机号

varchar(200)

yonghu_id_number

用户身份证号

varchar(200)

yonghu_photo

用户头像

varchar(200)

sex_types

性别

int(11)

yonghu_email

电子邮箱

varchar(200)

new_money

余额

decimal(10,2)

create_time

创建时间

timestamp


5 系统实现

编程人员在搭建的开发环境中,会让各种编程技术一起呈现出最终效果。本节就展示关键部分的页面效果。

5.1 管理员功能实现

5.1.1 电影管理

图5.1 即为编码实现的电影管理界面,电影信息有电影类型,电影原价,现价,座位,电影热度等信息,管理员修改登记出错误的电影信息,查询电影等。

图5.1 电影管理界面

5.1.2 电影场次管理

图5.2 即为编码实现的电影场次管理界面,电影场次信息包括影院名称,放映厅,放映开始时间,放映结束时间等,管理员可以使用修改功能更改登记有误的电影场次信息,可以删除需要删除的电影场次信息。

图5.2 电影场次管理界面

5.1.3 电影评价管理

图5.3 即为编码实现的电影评价管理界面,用户观影后,对电影发布的评价信息会在电影评价管理界面展示,管理员不仅可以查看电影评价,还能回复评价电影的用户。

图5.3 电影评价管理界面

5.1.4 电影订单管理

图5.4 即为编码实现的电影订单管理界面,管理员可以对电影订单进行检票,可以查看电影订单详情,可以通过电影名称或用户姓名来查询电影订单。

图5.4 电影订单管理界面

5.1.5 用户管理

图5.5 即为编码实现的用户管理界面,用户的注册信息包括用户头像,电子邮箱,性别,姓名等信息也能让管理员查看和修改,删除。

图5.5 用户管理界面

5.2 用户功能实现

5.2.1 电影信息

图5.6 即为编码实现的电影信息界面,用户查看电影售价信息,电影热度信息,查看电影评论。用户可以在电影信息界面选择场次,选择观影座位号,然后购买电影票。

图5.6 电影信息界面

电影选座  界面 主要代码:

         <!-- 座位 --><div class="seat-list" :style='{"padding":"10px 0 10px 0","boxShadow":"0 0 5px var(--publicMainColor, #808080)","margin":"10px 0 0 0","backgroundColor":"rgba(255, 255, 255, 1)","borderRadius":"20px","borderWidth":"0","borderStyle":"solid"}'><div style="width: 100%"><span style="font-size: 40px;float: left;margin-left: 1%;width: 99%;">座位列表</span><span style="width: 99%;margin-top: 12px;margin-right: 1%;"><span style="width: 20%;">场次:</span><el-select v-model="dianyingChangciId" filterable placeholder="请选择放映厅" @change ="zuoweiChange" style="width: 92%"><el-optionv-for="(item,index) in dianyingChangciList"v-bind:key="item.id":label="'影院名称:['+item.dianyingChangciYingyuanName+'],放映厅:['+item.dianyingChangciYingyuanFangyingting+'],放映地点:['+item.dianyingChangciYingyuanAddress+'],放映开始时间:['+item.fangyingKaishiShijian+'],放映结束时间:['+item.fangyingJieshuShijian+']'":value="item.id"></el-option></el-select></span><span style="width: 29%;margin-top: 12px;margin-right: 1%;"><span style="width: 20%;">订购日期:</span><el-date-picker style="width:35%" v-model="buyZuoweiTime" :picker-options="buyZuoweiTimeOptions" @change ="zuoweiChange" type="date" placeholder="选择日期"></el-date-picker></span><button @click="addDianyingOrder()" style="height:auto;" :style='{"padding":"0 10px","boxShadow":"0 0 0px rgba(255,0,0,.3)","margin":"0 5px","borderColor":"rgba(0,0,0,.3)","backgroundColor":"rgba(23, 124, 176, 1)","color":"rgba(255, 255, 255, 1)","borderRadius":"6px","borderWidth":"0","width":"auto","lineHeight":"40px","fontSize":"16px","borderStyle":"solid"}' type="button" class="layui-btn btn-submit">立即购买</button></div><label style="background: var(--publicMainColor);width:1000px;height: 1px;margin: 10px 0px 10px"></label><div v-for="(item,index) in zuoweiNumberList " v-bind:key="index" class="seat-item"><img @click="selectTip()"        v-if="item.select"         class="seat-icon" src="../../img/select.png"        /><img @click="selectSeat(item)"   v-else-if="!item.active"   class="seat-icon" src="../../img/unselect.png"      /><img @click="unselectSeat(item)" v-else                     class="seat-icon" src="../../img/selectActive.png"  /><span>{{item.name}}</span></div></div>

选座位主要代码:

 <!-- 座位 -->// 选座座位selectSeat(item) {item.active = true;},// 取消选择座位unselectSeat(item) {item.active = false;},// 提示该座位已经被选择了selectTip() {layer.msg(`该座位已被预定`, {time: 2000,icon: 5});},zuoweiChange() {let _this = this;if(layui.jquery.type(this.buyZuoweiTime) === "date"){//如果类型是日期的话,要格式化成字符串, 否则后台没法查询_this.buyZuoweiTime =layui.util.toDateString(this.buyZuoweiTime, 'yyyy-MM-dd');}layui.http.request(`dianyingOrder/list`, 'get', {page: 1,limit: 100,dianyingId: vue.detail.id,dianyingOrderDelete: 1,buyZuoweiTimeStart:_this.buyZuoweiTime ,buyZuoweiTimeEnd: _this.buyZuoweiTime,zhengchangdingdan: "不为空",dianyingChangciId: _this.dianyingChangciId,}, function (res) {//生成默认座位_this.zuoweiNumberList = [];for (let i = 1; i <= _this.detail.zuoweiNumber; i++) {_this.zuoweiNumberList.push({name: `${i}号`,select: false,active: false});}//生成座位被使用if (res.data.list.length > 0) {res.data.list.forEach(element => {if (element.buyZuoweiNumber != null) {for (let i = 0; i < element.buyZuoweiNumber.split(',').length; i++) {_this.zuoweiNumberList[element.buyZuoweiNumber.split(',')[i] - 1].select = true;}}});}});},}});

5.2.2 电影订单

图5.7 即为编码实现的电影订单界面,用户购买电影票之后,系统自动跳转至电影订单界面,在电影订单界面,用户可以对已支付订单退款,对已完成订单评价等。

图5.7 电影订单界面


大家点赞、收藏、关注、评论啦  其他的定制服务  下方联系卡片↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓ 或者私信作者
 

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Spark RDD

概念 RDD是一种抽象&#xff0c;是Spark对于分布式数据集的抽象&#xff0c;它用于囊括所有内存中和磁盘中的分布式数据实体 RDD 与 数组对比 对比项数组RDD概念类型数据结构实体数据模型抽象数据跨度单机进程内跨进程、跨计算节点数据构成数组元素数据分片(Partitions)数据…

java-数据结构

一.链表 单向链表 /单向链表 public class SinglyLinkedList implements Iterable<Integer> {//头节点private Node head null;//头指针//节点类private static class Node{int value;//值Node next;//下一个节点的指针public Node(int value, Node next) {this.val…

pycharm与anaconda下的pyside6的安装记录

一、打开anaconda虚拟环境的命令行窗口&#xff0c;pip install&#xff0c;加入清华源&#xff1a; pip install PySide6 -i https://pypi.tuna.tsinghua.edu.cn/simple 二、打开pycharm&#xff0c;在文件--设置--工具--外部工具中配置一下三项&#xff1a; 1、 QtDesigner…

成本累计曲线:项目预算的秘密武器

在项目管理的过程中&#xff0c;成本控制是影响项目成败的关键因素之一&#xff0c;而其中“成本累计曲线”就像是一位财务导航员&#xff0c;为项目的成本控制和进度监控提供了极大的帮助。那么&#xff0c;什么是成本累计曲线&#xff1f;它包含哪些步骤&#xff1f;如何应用…

[0152].第3节:IDEA中工程与模块

我的后端学习大纲 IDEA大纲 1、Project和Module的概念&#xff1a; 2、Module操作&#xff1a; 2.1.创建Module: 2.2.删除Module&#xff1a; 2.3.导入Module&#xff1a; 1.导入外来模块的代码&#xff1a; 查看Project Structure&#xff0c;选择import module&#xff1a…

【Linux网络】UdpSocket

目录 套接字 socket编程 源IP地址和目的IP地址 端口号 网络字节序 socket常用API socket结构 UDP UDP协议&#xff08;用户数据报协议&#xff09; 创建套接字 绑定 通信 udp_echo_server:简单的回显服务器和客户端代码 dict_server:简单的英译汉的网络字典 chat_…

双11猫咪好物盛典开启,线上抢购不停 购物清单新鲜出炉

双十一购物狂欢节终于到了&#xff01;铲屎官们想好要给猫咪添置什么好东西了吗&#xff1f;还不知道怎么选的看过来啦~这里整理了一份双十一购物清单&#xff0c;快看看有没有你需要的吧&#xff01; 双十一养猫必购1&#xff1a;CEWEY自动猫砂盆 CEWEY自动猫砂盆真的是我最爱…

magic-api简单使用二:自定义返回结果

背景 在上一章 中我们学习了搭建项目和导入文件&#xff0c; 这二天稍微有点时间&#xff0c;研究下这个magic-api的写法。 后续如果需要维护或者更改&#xff0c;也能在项目中尽快上手。 今天我们主要学习自定义返回结果&#xff0c;当然也可以使用官方的。不需要任何更改。…

二百七十、Kettle——ClickHouse中增量导入清洗数据错误表

一、目的 比如原始数据100条&#xff0c;清洗后&#xff0c;90条正确数据在DWD层清洗表&#xff0c;10条错误数据在DWD层清洗数据错误表&#xff0c;所以清洗数据错误表任务一定要放在清洗表任务之后。 更关键的是&#xff0c;Hive中原本的SQL语句&#xff0c;放在ClickHouse…

【Nas】X-Doc:jellyfin“该客户端与媒体不兼容,服务器未发送兼容的媒体格式”问题解决方案

【Nas】X-Doc&#xff1a;jellyfin“该客户端与媒体不兼容&#xff0c;服务器未发送兼容的媒体格式”问题解决方案 当使用Jellyfin播放视频时出现“该客户端与媒体不兼容&#xff0c;服务器未发送兼容的媒体格式”&#xff0c;这是与硬件解码和ffmpeg设置有关系&#xff0c;具体…

linux应急响应-1

声明&#xff1a;部分内容来源于网络&#xff0c;只是新手练习 靶场环境来自于知攻善防实验室 概述&#xff1a; 一、整体过程 初始环境设置 将Linux centOS 7配置为图形化界面&#xff0c;通过yum groupinstall “X Window System” -y和yum groupinstall “GNOME Desktop”&a…

视频去水印软件推荐:6款去水印工具值得一试

在视频创作和分享的过程中&#xff0c;水印往往会成为影响美观和平台推流。幸运的是&#xff0c;市面上有许多视频去水印软件能够帮助我们轻松解决这一问题。本文将为大家推荐几款实用的视频去水印软件&#xff0c;并详细介绍它们的功能和去除水印的方法。 1.影忆 功能介绍&…

MaxKB: 一款基于大语言模型的知识库问答系统

嗨, 大家好, 我是徐小夕. 之前一直在社区分享零代码&低代码的技术实践&#xff0c;最近也在研究多模态文档引擎相关的产品, 在社区发现一款非常有意思的知识库问答系统——MaxKB, 它支持通过大语言模型和RAG技术来为知识库赋能,今天就和大家分享一下这款项目. PS: 它提供了…

Java NIO2 异步IO支持

NIO2 从 Java 7 在之前的NIO基础上&#xff0c;它提供了异步 IO 操作、文件系统访问增强等诸多功能 路径&#xff08;Path&#xff09;接口 Path 接口代表了文件系统的路径。它可以用来定位一个文件或目录。 提供了多种方法来解析、转换和查询路径信息。Paths 类提供了一些静…

上市公司数字经济与实体经济融合发展程度测算数据(2008-2022年)-最新出炉_附下载链接

上市公司数字经济与实体经济融合发展程度测算数据&#xff08;2008-2022年&#xff09; 下载链接-点它&#x1f449;&#x1f449;&#x1f449;&#xff1a;上市公司数字经济与实体经济融合发展程度测算数据&#xff08;2008-2022年&#xff09;-最新出炉.zip 一、引言 随着…

Prompt Engineering (Prompt工程)

2 prompt工程2大原则 2.1 给出清晰&#xff0c;详细的指令 策略1&#xff1a;使用分割符清晰的指示输出的不同部分&#xff0c;比如"",<>,<\tag>等分隔符 策略2&#xff1a;指定一个结构化的输出&#xff0c;比如json,html等格式 策略3&#xff1a;要…

Nginx防盗链配置

1. 什么是盗链? 盗链是指服务提供商自己不提供服务的内容&#xff0c;通过技术手段绕过其它有利益的最终用户界面&#xff08;如广告&#xff09;&#xff0c;直接在自己的网站上向最终用户提供其它服务提供商的服务内容&#xff0c;骗取最终用户的浏览和点击率。受益者不提供…

ppt设计软件哪个好?这5个在线ppt工具不容错过!

职场人每天的办公日常&#xff0c;大概率都离不开PPT&#xff0c;不管是制作季度汇报&#xff0c;还是向团队展示各类方案&#xff0c;诸如此类的场景都会用到ppt。 ppt是一个看重视觉效果的演示媒介&#xff0c;可以说它的外观精美与否&#xff0c;很大程度上决定了观众或潜在…

LC20. 有效的括号

用来熟悉一下栈的应用之括号匹配 题目链接 下面是大致思路 1.初始化:创建一个空栈,用于存储左括号。&#xff08;LC这题不用&#xff0c;自己写完整的需要&#xff09; 2.遍历字符串:从左到右依次扫描字符串中的每个字符。 3.处理左括号:如果是左括号,将其压入栈中。 4.处理右…

8. 性能指标

博客补充&#xff1a;CUDA C 最佳实践指南-CSDN博客https://blog.csdn.net/qq_62704693/article/details/141267262?spm1001.2014.3001.5502 在尝试优化 CUDA 代码时&#xff0c;了解如何准确测量性能并了解带宽在性能测量中的作用是值得的。本章讨论如何使用 CPU 计时器和 C…