基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

news2024/12/23 15:40:51

基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现

🍅 作者主页 网顺技术团队
🍅 欢迎点赞 👍 收藏 ⭐留言 📝
🍅 文末获取源码联系方式 📝
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
👇🏻 精彩专栏推荐订阅👇🏻 不然下次找不到哟
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

文章目录

  • 基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现
  • 主要技术框架:spring、 springmvc、 springboot、mybatis 、 jquery 、templates模板 、bootstarp.js tomcat、maven、拦截器等
  • 主要功能实现:
    • 前端主要功能实现 :
    • 后台主要功能实现:
  • 主要截图展示:
    • 前台影院首页:
    • 电影信息:
    • 电影详情:
    • 电影评价:
    • 选座功能:
    • 选座主要前端代码设计:
    • 提交订单:
    • 影片订单详情/取票:
    • 影院信息:
    • 影院详情:
    • 资讯信息:
    • 我的个人中心:
  • 后台主要功能设计:
    • 后台系统主页:
  • 菜单管理:
    • 用户管理:
    • 电影管理:
    • 添加电影信息:
    • 添加电影前端代码:
    • 评价管理:
    • 影厅管理:
    • 排片管理:
    • 订单管理:
  • 数据库主要表设计:
    • 用户表
    • 电影表:

文章目录

  • 基于JavaWeb开发的java springboot+mybatis电影售票网站管理系统前台+后台设计和实现
  • 主要技术框架:spring、 springmvc、 springboot、mybatis 、 jquery 、templates模板 、bootstarp.js tomcat、maven、拦截器等
  • 主要功能实现:
    • 前端主要功能实现 :
    • 后台主要功能实现:
  • 主要截图展示:
    • 前台影院首页:
    • 电影信息:
    • 电影详情:
    • 电影评价:
    • 选座功能:
    • 选座主要前端代码设计:
    • 提交订单:
    • 影片订单详情/取票:
    • 影院信息:
    • 影院详情:
    • 资讯信息:
    • 我的个人中心:
  • 后台主要功能设计:
    • 后台系统主页:
  • 菜单管理:
    • 用户管理:
    • 电影管理:
    • 添加电影信息:
    • 添加电影前端代码:
    • 评价管理:
    • 影厅管理:
    • 排片管理:
    • 订单管理:
  • 数据库主要表设计:
    • 用户表
    • 电影表:

主要技术框架:spring、 springmvc、 springboot、mybatis 、 jquery 、templates模板 、bootstarp.js tomcat、maven、拦截器等

主要功能实现:

前端主要功能实现 :

影院首页、轮播图展示、电影查看、热门影院、热门电影、热门资讯等、影院查看、电影资讯查看、电影信息详情查看、查看场次、电影座位选座购票、电影评论、订单支付、查看订单信息、帮助说明、个人中心、我的影评、我的账户余额等

后台主要功能实现:

后台主页树状图大数据信息查看、对影院个数据进行统计、主要统计有、入住影院、场次、注册用户、订单信息、放映场次、充值、票房等数据统计展示。
具体业务模块为:
系统设置、菜单管理、用户管理、角色管理、日志管理、地域信息管理、电影管理、评价管理、影厅管理、拍片管理、资讯管理、资讯分类管理、用户管理、订单管理、支付管理等

主要截图展示:

前台影院首页:

项目启动进入电影主页、主要查看电影轮播信息以及热门电影、热门影院和资讯等信息、用户可以登录注册、登录后可以查看个人信息、订单、以及帮助中心等具体功能操作。
在这里插入图片描述
在这里插入图片描述

电影信息:

点击电影信息查看正在热映或即将上映的电影信息、可以查看列表、点击可以查看详情信息
在这里插入图片描述

电影详情:

电影详情模块主要查看电影详情信息、以及在线选票功能或查看评价电影信息
在这里插入图片描述

电影评价:

用户可以查看具体选座信息以及对电影进行评价
在这里插入图片描述

选座功能:

用户点击选座购票进入购票页面、选择场次、选座、支付、提交订单
在这里插入图片描述

选座主要前端代码设计:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=990, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta charset="utf-8" />
    <meta name="renderer" content="webkit">
    <title>猫眼电影票网_电影在线选座购票平台</title>
    <meta name="keywords" content="猫眼电影票,猫眼电影票网,猫眼电影院,猫眼影票,猫眼电影,电影票,电影"/>
    <meta name="description" content="猫眼电影票网是猫眼最大的电影票在线选座平台,同时猫眼电影票网还提供电影排期,影院信息查询、猫眼本土电影行业资讯等服务。看电影,来猫眼电影票选座"/>
    <#include "../common/head-css.ftl"/>
    <link href="/home/css/jquery.jPages.css" rel="stylesheet" />
</head>
<body>
	<#include "../common/header.ftl"/> 
<div id="body" class="main">
<div class="wrapper-film-chooseseat">
    <div class="tip-nav-choosseeat">
        <ul>
            <li class="wd1">1.选择影片场次</li>
            <li class="wd2 act">2.在线选座</li>
            <li class="wd3">3.确认订单支付</li>
            <li class="wd4">4.影院取票观影</li>
        </ul>
    </div>
    <div class="fiml-chooseseat fn-clear">
        <div class="film-choose-seat">
            <div class="bg_screen clearfix"><span>荧幕</span></div>
            <div class="seat-description fn-acenter">
                <p class="fn-clear">
                    <img src="/home/images/seat_able.png" /><span>可选</span>
                    <img class="pl10" src="/home/images/seat_seled.png" /><span>已选</span>
                    <img class="pl10" src="/home/images/seat_unable.png" /><span>已售</span>
                    <img class="pl10" src="/home/images/seat_love.png" />
                    <img src="/home/images/seat_love.png" /><span>情侣座</span>
                    </p>
            </div>
            <div class="box-seat-des">
                <div id="seatcontainer">
                	<table id="seattable" class="seatdt">
                		<tbody>
                			<#list cinemaHallSeatList as cinemaHallSeat>
		                      <#if cinemaHallSeat.x == 1>
		                      <tr>
		                      </#if>
                				<td class="show-seat" style="width:38px;position:relative;cursor:pointer;padding-bottom:5px;" seatcol="${cinemaHallSeat.x}" seatrow="${cinemaHallSeat.y}" seatno="${cinemaHallSeat.id}" status="${cinemaHallSeat.status}" type="${cinemaHallSeat.type}" onclick="seatClick(this)">
                					<div class="seatno" style="width:38px;top:6px;"><#if cinemaHallSeat.status == 1 && cinemaHallSeat.type == 1>${cinemaHallSeat.x}</#if></div>
                					<#if cinemaHallSeat.status == 1>
                					<#if cinemaHallSeat.type == 2>
                					<img style="z-index:120;" width="38px" height="30px" src="/home/images/seat_love.png">
                					<#else>
                					<img style="z-index:120;" width="38px" height="30px" src="/home/images/seat_able.png">
                					</#if>
                					<#else>
                					<img style="z-index:120;" width="38px" height="30px" src="/home/images/seat_unable.png">
                					</#if>
                				</td>
                			  <#if cinemaHallSeat.x == cinemaHallSession.cinemaHall.maxX>
		                      </tr>
		                      </#if>
		                    </#list>
                		</tbody>
                	</table>
                </div>
            </div>
            <table id="indextable" class="seatdt">
            	<tbody>
            		<#list 1..cinemaHallSession.cinemaHall.maxY as y>
            		<tr style="height:35px;">
            			<td align="center" valign="middle">${y}</td>
            		</tr>
            		</#list>
            	</tbody>
            </table>
        </div>
        <div class="box-film-info">
            <div class="film-info">
                <h2>${cinemaHallSession.movie.name}</h2>
                <p>片长:${cinemaHallSession.movie.time}分钟</p>
                <p>语言:${cinemaHallSession.movie.language.getName()}</p>
                <span class="pic"><img src="/photo/view?filename=${cinemaHallSession.movie.mainPic}" width="72" height="100" /></span>
            </div>
            <div class="film-detail">
                <p><span class="cor999">影院:</span><span>${cinemaHallSession.cinema.name}</span></p>
                <p><span class="cor999">影厅:</span><span>${cinemaHallSession.cinemaHall.name}</span></p>
                <p><span class="cor999">票价:</span><span>${cinemaHallSession.newPrice} 元/张</span></p>
                <div class="screen-info fn-clear">
                    <span class="cor999">场次:</span>
                    <span class="red">${cinemaHallSession.startTime}</span>
                    <span class="change-showtime"></span>
                    <div class="box-screen-today">
                    </div>
                </div>
                <div class="box-seatchoose">
                    <div id="seatchoose" class="fn-clear">
                        <div id="lblmsg" class="cor999">请选择座位</div>
                    </div>
                    <p class="tip">已选择<em>0</em>个座位,再次点击座位可以取消</p>
                    <span class="tg cor999">座位:</span>
                </div>
                
            </div>
            <div class="choose-result">
                <p class="total"><span class="cor999">总计:</span><strong>0</strong><em class="fn-bold"></em></p>
                <p><a class="btn" id="btnconfirm" href="javascript:void(0)">立即购票</a></p>
            </div>
        </div>
    </div>
    <div class="tip-description-choosseeat">
        <h3><span class="titb">使用说明</span></h3>
        <p>
            1.选择你要预定的座位,重复点击取消所选座位。<br />
            2.每笔订单最多可选购4张电影票,情侣座不单卖。<br />
            3.选座时,请尽量选择相邻座位,请不要留下单个座位。<br />
            4.下单后请于15分钟内完成支付,超时系统将不保留座位。<br />
            5.电影票售出后暂不支持退换。<br />
            6.购票过程产生的各项咨询,请拨打客户电话400-660-5335。
        </p>
    </div>
</div>
</div>
<#include "../common/footer-js.ftl"/> 
<script src="/home/js/jquery.jPages.min.js" type="text/javascript"></script>
<#include "../common/footer.ftl"/> 
<#include "../common/login-dialog.ftl"/>
<script type="text/javascript">
$(document).ready(function(){
	 //提交订单
	 $("#btnconfirm").click(function(){
	 	if(selectedSeats == null || selectedSeats == 'undefined'){
	 		alert('请至少选择一个座位!');
	 		return;
	 	}
	 	var data = {};
	 	data.cinema_hall_session_id = ${cinemaHallSession.id};
	 	data.cinema_hall_seat_ids = JSON.stringify(selectedSeats);
	 	ajaxRequest('/home/order/generate_order','post',data,function(rst){
	 		//订单提交成功,跳转到支付页面
	 		window.location.href = '/home/order/order_pay?order_sn=' + rst.data;
	 	});
	 });
	 //遍历所有的座位,根据订单中的值改变其状态
	 $(".show-seat").each(function(i,e){
	 	if(orderSeats.includes(parseInt($(e).attr('seatno')))){
	 		$(e).attr('status',0);
	 		$(e).children("img").attr('src','/home/images/seat_unable.png');
	 		$(e).children(".seatno").text('');
	 	}
	 });
});
var NormalPrice = parseFloat("${cinemaHallSession.newPrice}");
var selectedSeatMax = ${selectedSeatMax};
var selectedSeats;
var orderSeats = ${orderSeatList!"[]"};
function seatClick(e){
	if($(e).attr('status') == 1){
		if($(e).attr('selected') != 'selected'){
			if($('td[selected="selected"]').length >= selectedSeatMax){
				alert('最多可选择' + selectedSeatMax + '个座位!')
				return;
			}
			$(e).children("img").attr('src','/home/images/seat_seled.png');
			$(e).attr('selected','selected');
		}else{
			if($(e).attr('type') == '2'){
				$(e).children("img").attr('src','/home/images/seat_love.png');
				$(e).removeAttr('selected');
			}else{
				$(e).children("img").attr('src','/home/images/seat_able.png');
				$(e).removeAttr('selected');
			}
		}
		setSeat();
	}
}
function setSeat() {
    var html = '';
    selectedSeats = new Array();
    $('td[selected="selected"]').each(function(i,e){
	    var seatno = $(e).attr('seatno');
	    var seatrow = $(e).attr('seatrow');
	    var seatcol = $(e).attr('seatcol');
	    html += '<div id="' + seatno + '" class="seatinfo">' + seatrow + "排" + seatcol + "座" + '</div>';
    	selectedSeats.push({id:seatno});
    });
    $("#seatchoose div.seatinfo").remove();
    $("#seatchoose").append(html);
    var selectedNum = $('td[selected="selected"]').length;
    if(selectedNum <= 0){
    	$("#lblmsg").show();
    }else{
    	$("#lblmsg").hide();
    }
    $(".choose-result .total strong").text(NormalPrice * selectedNum);
    $(".tip em").text(selectedNum);
}
</script>
</body>
</html>

提交订单:

提交订单模拟支付完成购票操作
在这里插入图片描述

影片订单详情/取票:

在我的个人中心查看购票信息、订单详情以及我的评论和余额管理等具体操作、这个整个流程是非常完善的
在这里插入图片描述
在这里插入图片描述

影院信息:

在这里插入图片描述

影院详情:

点击进入查看影院详情信息、电影排片、影院介绍、影院评论等功能
在这里插入图片描述

资讯信息:

用户可以查看一些管理员发布的资讯信息、
在这里插入图片描述

我的个人中心:

在这里插入图片描述

后台主要功能设计:

后台管理员登录页面、后台主要功能有菜单管理、用户管理、角色管理、日志管理、地域信息管理、电影管理、评价管理、影厅管理、拍片管理、资讯管理、资讯分类管理、用户管理、订单管理、支付管理等、太多了我就不一一截图了
在这里插入图片描述

后台系统主页:

对影院个数据进行统计、主要统计有、入住影院、场次、注册用户、订单信息、放映场次、充值、票房等数据统计展示。
在这里插入图片描述

菜单管理:

点击菜单管理查看后台菜单信息、管理员可以对菜单进行添加、修改、删除等一系列操作。
在这里插入图片描述

用户管理:

在这里插入图片描述

电影管理:

在这里插入图片描述

添加电影信息:

在这里插入图片描述

添加电影前端代码:

<!DOCTYPE html>
<html lang="zh">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <meta name="viewport" content="width=990, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />
    <meta charset="utf-8" />
    <meta name="renderer" content="webkit">
    <title>猫眼电影票网_电影在线选座购票平台</title>
    <meta name="keywords" content="猫眼电影票,猫眼电影票网,猫眼电影院,猫眼影票,猫眼电影,电影票,电影"/>
    <meta name="description" content="猫眼电影票网是猫眼最大的电影票在线选座平台,同时猫眼电影票网还提供电影排期,影院信息查询、猫眼本土电影行业资讯等服务。看电影,来猫眼电影票选座"/>
    <#include "../common/head-css.ftl"/>
    <link href="/home/css/jquery.jPages.css" rel="stylesheet" />
</head>
<body>
	<#include "../common/header.ftl"/> 
<div id="body" class="main">
<div class="wrap-detail">
    <div class="wrapper-film-infodetail" style="background:url(/home/images/ico_bg_3.jpg) repeat-y center top;">
        <div class="box-film-infodetail">
            <div class="film-info-detail">
                <h1>
                    <span>${movie.name}</span>
                    <em>${movie.rate!"0"}</em>
 
                </h1>
                <p class="excellent">${movie.abs!"暂无信息"}</p>
                <p>
                    <span>导演:</span>
                    <span>${movie.directedBy}</span>
                </p>
                <p class="actor">
                    <span>主演:</span>
                    <span class="con">${movie.actor}</span>
                </p>
                <p>
                    <span>语言:</span>
                    <span>${movie.language.getName()}</span>
                </p>
                <p>
                    <span>片长:</span>
                    <span>${movie.time} 分钟</span>
                </p>
                <p>
                    <span>上映:</span>
                    <span>${movie.showTime}</span>
                </p>
                <p class="intro ovhide">
                    <span>剧情:</span>
                    <span class="con" data-t="<#if movie.info?length gt 118>${movie.info?substring(0,118)}...<#else>${movie.info}</#if>">${movie.info}</span>
                </p>
                <span class="img-main"><img src="/photo/view?filename=${movie.mainPic}" width="210" height="285" alt="${movie.name}" /></span>
                <div class="bdsharebuttonbox" data-tag="share_2">
                    <a class="bds_more" data-cmd="more">分享</a>
                </div>
                <a href="javascript:void(0);" class="flag">展开</a>
            </div>
        </div>
    </div>
 
    <div class="container fn-clear">
            <div class="film-pics-detail">
                <ul class="fn-clear">
                            <#if movie.video?? && movie.video?length gt 0>
                            <li>
                                <a class="filmVideo">
                                	<img src="/photo/view?filename=${movie.mainPic}" width="150" height="100" /></a>
                                <a href="javascript:void(0)" rel="#verlayVideo" class="video-play"></a>
                            </li>
                            </#if>
                            <#list movie.pictureList as pic>
                                <li>
                                    <a rel="#verlayPics" href="javascript:void(0)" class="filmPics">
                                    	<img data-index="0" src="/photo/view?filename=${pic}" width="150" height="100" />
                                    </a>
                                    <#if pic_index gt 2>
                                    <#break>
                                    </#if>
                                </li>
                            </#list>
 
                </ul>
                <div class="total">
                    <p class="bd">
                        <span>剧照:</span>
                        <strong>${movie.pictureList?size}</strong>
                    </p>
                    <p>
                        <span>视频:</span>
                        <strong><#if movie.video?? && movie.video?length gt 0>1<#else>0</#if></strong>
                    </p>
                </div>
            </div>
                    <div class="film-schedule-detail pt30">
                <div class="schedule-filte">
                    <div class="title">
                        <span class="pq">排期购票</span>
                        <span data-rel="#scrollComment" name="scrollComment" class="do-flim-comment">影评</span>
                    </div>
                    <div class="cinema">
                        <ul class="fn-clear">
                            <#if distinctCinemaHallSessionList?size == 0>
                            	暂无影院
                            <#else>
                            <#list distinctCinemaHallSessionList as cinemaHallSession>
                            <#if ylrc_area??>
                            <#if ylrc_area.id == cinemaHallSession.cinema.area.cityId>
                            <li data-cid="${cinemaHallSession.cinema.id}" data-address="${cinemaHallSession.cinema.address}" data-name="${cinemaHallSession.cinema.name}">
                                <a href="javascript:void(0);">${cinemaHallSession.cinema.name}</a>
                            </li>
                            </#if>
                            <#else>
                            <li data-cid="${cinemaHallSession.cinema.id}" data-address="${cinemaHallSession.cinema.address}" data-name="${cinemaHallSession.cinema.name}">
                                <a href="javascript:void(0);">${cinemaHallSession.cinema.name}</a>
                            </li>
                            </#if>
                            </#list>
                            </#if>
                        </ul>
                        <span class="tg cor999">影院:</span>
                    </div>
                    <div class="date">
                        <ul class="fn-clear film-date-list">
                            <#if distinctShowDateCinemaHallSessionList?size == 0>
                            	暂无排期
                            <#else>
                            <#list distinctShowDateCinemaHallSessionList as cinemaHallSession>
                            <#if ylrc_area??>
                            <#if ylrc_area.id == cinemaHallSession.cinema.area.cityId>
                            <li data-index="0" data-cid="${cinemaHallSession.cinema.id}">
                                <a href="javascript:void(0);">${cinemaHallSession.showDate}</a>
                            </li>
                            </#if>
                            <#else>
                            <li data-index="0" data-cid="${cinemaHallSession.cinema.id}">
                                <a href="javascript:void(0);">${cinemaHallSession.showDate}</a>
                            </li>
                            </#if>
                            </#list>
                            </#if>
                        </ul>
                        <span class="tg cor999">日期:</span>
                    </div>
                </div>
                <div class="title pb10 pt30 cinematb">
                    <span class="titb"><a href="" id="focus-cinema"></a></span>
                    <span class="cor999 pl10" id="focus-cinema-address"></span>
                </div>
                <div class="schedule-list" id="focus-schedule-list">
 
                </div>
            </div>
        <div class="comment-hot-detail pt30 fn-clear">
            <div class="comment">
                <div class="title pb10" id="scrollComment">
                    <span class="titb">用户评论</span>
                    <span>共${commentList?size}条评论</span>
                </div>
                <div class="message-send">
                    <div class="box-send">
                        <div class="do-box-score">
                            <div class="do-score" data-average="0" data-id="doscore"></div>
                            <span class="result">请评分</span>
                        </div>
                        <div id="recomment" class="do-message" contenteditable="true"></div>
                    </div>
                    <p class="fn-clear pt30">
                        <a href="javascript:void(0)" class="btn fn-right" id="submit-comment">发表评论</a>
                    </p>
                    <span class="photo">
                    	<#if ylrc_account??>
                    	<img id="userheader" src="/photo/view?filename=${ylrc_account.headPic}" width="64" height="64" />
                    	<#else>
                    	<img id="userheader" src="/home/images/ico_tb_lg.png" width="64" height="64" />
                    	</#if>
                    </span>
                </div>
                <div class="message-list pt30">
                    <ul id="message-container">
                    	<#list commentList as comment>
                    	<li>
                            <div class="username-score fn-clear">
                                <span class="fn-left">${comment.account.nickname!comment.account.mobile?replace(comment.account.mobile?substring(3,7),"****")}</span>
                                <p class="fn-left ypscore" data-average="${comment.rate}" data-id="${comment.id}">
								</p>
                            </div>
                            <p class="message-con">${comment.content}</p>
                            <p class="time">
                                    <span class="fn-right">${comment.createTime}</span>
                            </p>
                            <span class="photo">
                                    <img src="/photo/view?filename=${comment.account.headPic}" width="64" height="64">
                            </span>
                        </li>
                        </#list>
                    </ul>
                    <#if commentList?? && commentList?size gt 0>
                    <div class="fn-acenter">
		                <div class="jpage"></div>
		            </div>
                    <#else>
                    <p class="error">还没有评论,抢个沙发~</p>
                    </#if>
                </div>
            </div>
            <div class="film-hot">
                <div class="title pb10">
                    <span class="titb">正在热映</span>
                </div>
                <ul>
                    <#list topMovieList as topMovie>
                    <li>
                        <h3 class="overhide">
                            <a href="detail?id=${topMovie.id}" >
                            	<#if topMovie.name?length gt 25>
                        		${topMovie.name?substring(0,25)}...
                        		<#else>
                        		${topMovie.name}
                        		</#if>
                            </a>
                        </h3>
                        <div class="score" data-average="${topMovie.rate!"0"}" data-id="${topMovie.id}"></div>
                        <p class="info">
                            ${topMovie.abs!"暂无"}
                        </p>
                        <span class="img">
                        	<a href="detail?id=${topMovie.id}" >
                        		<img src="/photo/view?filename=${topMovie.mainPic}" width="72" height="100" />
                        	</a>
                        </span>
                    </li>
                    </#list>
                </ul>
            </div>
        </div>
    </div>
</div>
<div class="verlayPics" id="verlayPics">
    <div id="slider" class="verlay-film-pics">
        <ul class="slides">
                <#list movie.pictureList as pic>
                <li>
                    <img src="/photo/view?filename=${pic}" width="600" height="400" />
                </li>
                </#list>
        </ul>
    </div>
    <div id="carousel" class="verlay-film-thumb">
        <ul class="slides">
                <#list movie.pictureList as pic>
                <li data-i="0">
                    <img src="/photo/view?filename=${pic}" width="120" height="80" />
                </li>
                </#list>
        </ul>
    </div>
</div>
<div class="verlayVideo" id="verlayVideo">
    <div class="box-video">
        <ul class="slides">
           <#if movie.video?? && movie.video?length gt 0> 
               <li data-thumb="/photo/view?filename=${movie.mainPic}" data-video="/download/download_video?filename=${movie.video}">
                    <object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="600" height="400">
                        <param name="movie" value="/home/images/flvplayer.swf" />
                        <param name="quality" value="high" />
                        <param name="allowFullScreen" value="true" />
                        <param name="IsAutoPlay" value="1" />
                        <param name="wmode" value="transparent" />
                        <param name="FlashVars" value="vcastr_file=/download/download_video?filename=${movie.video}" />
                        <embed src="/home/images/flvplayer.swf" allowfullscreen="true" flashvars="vcastr_file=/download/download_video?filename=${movie.video}" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="400"></embed>
                    </object>
                </li>
           </#if>
        </ul>
    </div>
</div>
</div>
<#include "../common/footer-js.ftl"/> 
<script src="/home/js/jquery.jPages.min.js" type="text/javascript"></script>
<#include "../common/footer.ftl"/> 
<#include "../common/login-dialog.ftl"/>
<script type="text/javascript">
$(document).ready(function(){
	 $("#submit-comment").click(function(){
	 	var content = $("#recomment").html();
	 	var score = $(this).parent().parent().find(".result>em").text();
        if (!score) {
            alert("请评分!");
            return;
        }
        if(content == ''){
		 	alert("请填写评价内容!");
		 	return;
        }
        var data = {rate:score,content:content,'movie.id':${movie.id}};
        ajaxRequest('/home/comment/comment_movie','post',data,function(rst){
        	alert('评价成功!');
        	window.location.reload();
        });
	 });
	 
    
    var dataCon;
    if ($(".intro .con").height() > 52) {
        dataCon = $(".intro .con").text();
        $(".intro .con").text($(".intro .con").attr("data-t"));
        $(".film-info-detail .flag").show();
    }
    $(".film-info-detail .flag").toggle(function () {
        $(".intro .con").text(dataCon)
        $(this).css("bottom", "30px").text("收起");
        $(".intro").removeClass("ovhide").addClass("tag");
    }, function () {
        $(".intro .con").text($(".intro .con").attr("data-t"));
        $(this).css("bottom", "40px").text("展开")
        $(".intro").removeClass("tag").addClass("ovhide");
    });
    $(".message-list .jpage").jPages({
        containerID: "message-container",
        perPage: 10,
        delay: 30,
        fallback: 200,
        minHeight: false,
        previous: "上一页",
        next: "下一页"
    });
    $(".do-flim-comment").click(function () {
        $("html, body").animate({
            scrollTop: $($(this).attr("data-rel")).offset().top + "px"
        }, {
            duration: 500,
            easing: "swing"
        });
        return false;
    });
    $("#recomment").focus(function () {
        if ("${ylrc_account!"false"}".toLowerCase() == "false") {
            $(".boxLogin").overlay({ api: true }).load();
            return false;
        }
    });
    $(".message-send .do-score").jRating({
        rateMax: 10,
        sendRequest: false,
        rateInfosX: -35,
        rateInfosY: 15,
        canRateAgain: true,
        nbRates: 5,
        bigStarsPath: '/home/images/ico_tb_stars.png',
        onClick: function (e, r) {
            $(".do-box-score .result").html("<em>" + r + "</em>" + "分");
            if ("${ylrc_account!"false"}".toLowerCase() == "false") {
                $(".boxLogin").overlay({ api: true }).load();
            }
        }
    });
    $('.score').jRating({
        rateMax: 10,
        isDisabled: true,
        bigStarsPath: '/home/images/ico_tb_stars.png'
    });
    $('.ypscore').jRating({
        rateMax: 10,
        isDisabled: true,
        bigStarsPath: '/home/images/ico_tb_stars.png'
    });
    $('.score').each(function () {
        if ($(this).attr("data-average") != "0") {
            var html = "<span class='jscore'>" + $(this).attr("data-average") + "</span>";
            $(this).append(html);
        }
    });	
    $(".schedule-filte .cinema li").live('click', function () {
        $(this).siblings().removeClass("act").end().addClass("act");
        var cid = $(this).attr('data-cid')
        var name = $(this).attr('data-name')
        var address = $(this).attr('data-address')
        $(".film-date-list li").each(function (i,e) {
            if($(e).attr("data-cid") != cid) {
                $(e).addClass("fn-hide");
            }else{
            	$(e).removeClass("fn-hide");
            }
        });
        $("#focus-cinema").text(name);
        $("#focus-cinema").attr('href','/home/cinema/detail?id='+cid);
        $("#focus-cinema-address").text(address);
    });
    $(".film-date-list li").live('click', function () {
        $(this).siblings().removeClass("act").end().addClass("act");
        var mid = ${movie.id};
        var cid = $(".schedule-filte .cinema li[class='act']").attr("data-cid");
        var showDate = $(this).children("a").text();
    	$.get("get_show_session",{mid:mid,cid:cid,showDate:showDate},function(data,status){
	        $("#focus-schedule-list").empty();
	        $("#focus-schedule-list").append(data);
	    });
    });
    $(".schedule-filte .cinema li:first").trigger("click");
    $(".film-date-list li:first").trigger("click");
});
var test;
var $slider;
$(".filmPics").overlay({
    closeOnClick: false,
    top: 'center',
    mask: {
        color: '#333',
        closeSpeed: 700,
        opacity: 0.8
    },
    onBeforeLoad: function () {
        $('body').on('mousewheel', function (e) {
            scrollFunc(e);
        });
    },
    onLoad: function (e) {
        $('#carousel').flexslider({
            animation: "slide",
            controlNav: false,
            directionNav:false,
            animationLoop: false,
            slideshow: false,
            itemWidth: 120,
            startAt: $(e.target).attr("data-index"),
            asNavFor: '#slider'
        });
        $('#slider').flexslider({
            animation: "fade",
            controlNav: false,
            animationLoop: false,
            slideshow: false,
            startAt: $(e.target).attr("data-index"),
            sync: "#carousel",
            after: function () {
                $(".verlay-film-thumb .flex-direction-nav").show();
                var idx = parseInt($("#carousel .slides li.flex-active-slide").attr("data-i"));
                if (((idx + 1) % 5) == 0) {
                    $("#carousel").flexslider("next");
                }
            }
        });
        $(".filmPics").each(function (i) {
            $(this).click(function () {
                $('#carousel').flexslider(i);
                $('#slider').flexslider(i);
            });
        });
    },
    onClose: function () {
        $('body').off('mousewheel');
    }
});
$(".video-play").overlay({
    closeOnClick: false,
    top: 'center',
    mask: {
        color: '#333',
        closeSpeed: 100,
        opacity: 0.8
    },
    onBeforeLoad: function () {
        $('body').on('mousewheel', function (e) {
            scrollFunc(e);
        });
    },
    onBeforeLoad: function (e) {
        $('.box-video').flexslider({
            animation: "fade",
            slideshow: false,
            controlNav: "thumbnails",
            after: function (e) {
                var video = $(".box-video .slides li").eq(e.currentSlide);
                var html = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="600" height="400">';
                html += '<param name="movie" value="/home/images/flvplayer.swf" />';
                html += '<param name="quality" value="high" />';
                html += '<param name="allowFullScreen" value="true" />';
                html += '<param name="wmode" value="transparent"/>';
                html += '<param name="FlashVars" value="vcastr_file=' + video.attr("data-video") + '&&IsAutoPlay=1" />';
                html += '<embed src="/home/images/flvplayer.swf" allowfullscreen="true" flashvars="vcastr_file=' + video.attr("data-video") + '&&IsAutoPlay=1" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="600" height="400"></embed>';
                html += '</object>';
                video.siblings().empty();
                video.html(html);
            }
        });
        $("#verlayVideo .flex-control-thumbs li").each(function () {
            $(this).css("backgroundImage", "url('" + $(this).find("img").attr("src") + "')");
            $(this).find("img").attr("src", "/home/images/ico_tb_5.png");
        });
 
    },
    onClose: function () {
        $('body').off('mousewheel');
    }
});
window._bd_share_config = {
        share: [{
            "tag": "share_2",
            "bdSize": 32
        }]
    }
with (document) 0[(getElementsByTagName('head')[0] || body).appendChild(createElement('script')).src = 'http://bdimg.share.baidu.com/static/api/js/share.js?cdnversion=' + ~(-new Date() / 36e5)];
</script>
</body>
</html>

评价管理:

在这里插入图片描述

影厅管理:

在这里插入图片描述

排片管理:

在这里插入图片描述

订单管理:

在这里插入图片描述

数据库主要表设计:

用户表

CREATE TABLE `NewTable` (
`id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`create_time`  datetime NOT NULL ,
`update_time`  datetime NOT NULL ,
`email`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`head_pic`  varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`mobile`  varchar(12) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`password`  varchar(32) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`sex`  int(11) NULL DEFAULT NULL ,
`status`  int(11) NULL DEFAULT NULL ,
`username`  varchar(18) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`role_id`  bigint(20) NULL DEFAULT NULL ,
PRIMARY KEY (`id`),
FOREIGN KEY (`role_id`) REFERENCES `movie_role` (`id`) ON DELETE RESTRICT ON UPDATE RESTRICT,
UNIQUE INDEX `UK_btsosjytrl4hu7fnm1intcpo8` (`username`) USING BTREE ,
INDEX `FKg09b8o67eu61st68rv6nk8npj` (`role_id`) USING BTREE 
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=6
ROW_FORMAT=COMPACT
;
 

电影表:

CREATE TABLE `NewTable` (
`id`  bigint(20) NOT NULL AUTO_INCREMENT ,
`create_time`  datetime NOT NULL ,
`update_time`  datetime NOT NULL ,
`abs`  varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`actor`  varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`area`  int(11) NULL DEFAULT NULL ,
`directed_by`  varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`info`  varchar(1280) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`language`  int(11) NOT NULL ,
`name`  varchar(64) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`picture`  varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`rate`  decimal(19,2) NULL DEFAULT NULL ,
`show_time`  datetime NULL DEFAULT NULL ,
`time`  int(11) NULL DEFAULT NULL ,
`total_money`  decimal(19,2) NULL DEFAULT NULL ,
`type`  varchar(128) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`video`  varchar(512) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
`is_show`  bit(1) NULL DEFAULT NULL ,
`rate_count`  int(11) NULL DEFAULT NULL ,
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
DEFAULT CHARACTER SET=utf8 COLLATE=utf8_general_ci
AUTO_INCREMENT=18
ROW_FORMAT=COMPACT
;
 

获取源码
总体来说这个项目功能相对还是比较简单优秀的、适合初学者作为课程设计和毕业设计参考
🍅 查看下方微信号获取联系方式 承接各种定制系统 📝
🚀🚀🚀精彩系列推荐
Java毕设项目精品实战案例《1000套》
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux实践】实验二:LINUX操作基础

【Linux实践】实验二&#xff1a;LINUX操作基础 实验目的实验内容实验步骤及结果1. 打开终端2. 关闭计算机命令3. 查看帮助文档4. 修改计算机主机名5. 显示月历和时间6. 统计行数、字符数、单词数 这章开始要涉及到命令了&#xff0c;其他关于命令的内容可以看我 2021年写的笔记…

量水堰计的校准与维护:确保测量结果的准确性

量水堰计作为水利工程中用于测量和调节水流量的重要设备&#xff0c;其准确性和可靠性直接关系到水利设施的正常运行及数据收集的精度。因此&#xff0c;定期校准与维护量水堰计是确保测量结果准确性的关键步骤。本文将从量水堰计的校准方法和周期&#xff0c;以及日常维护保养…

wifi贴码推广能赚钱吗?wifi贴码怎么跟商家沟通?

大家好&#xff0c;我是鲸天科技千千&#xff0c;大家都知道我是做开发的&#xff0c;平时会给大家分享一些互联网相关的创业项目和网络技巧&#xff0c;感兴趣的可以给我点个关注。 最近WiFi这个项目很多朋友来问我&#xff0c;我是前两年就接触过这个&#xff0c;所以比较了…

望繁信科技携流程智能解决方案亮相CNDS 2024新能源产业数智峰会

9月13日&#xff0c;CNDS 2024中国新能源产业数智峰会在北京圆满落幕。本次峰会以“走向数字新能源”为主题&#xff0c;汇聚了来自新能源领域的顶尖领袖、专家学者及知名企业代表&#xff0c;共同探讨数字化技术在新能源行业中的创新应用和发展趋势。上海望繁信科技有限公司&a…

中秋出游热度十足!喆啡酒店如何巧妙捕捉多元旅游需求?

中秋假期临近&#xff0c;多家旅游OTA平台陆续发布旅游热度预测&#xff0c;皆认为中秋小长假有望延续暑期旅游热度。马蜂窝大数据显示&#xff0c;“中秋去哪”关键词近一周热度环比上涨110%&#xff0c;且“中秋3日游”关键词的热度更是大涨175%。消费趋势方面&#xff0c;受…

CAT1 DTU软硬件设计开源资料分析(TCP协议+GNSS定位版本 )

一、CAT1 DTU方案简介&#xff1a; 远程终端单元DTU&#xff0c;一种针对通信距离较长和工业现场环境恶劣而设计的具有模块化结构的、特殊的计算机测控单元&#xff0c;它将末端检测仪表和执行机构与远程控制中心相连接。 奇迹TCP DTUGNSS版本DTU&#xff0c;用于将远程现场的…

【面试干货】软件测试面试题汇总

我把软件测试面试的整个题库都搬来啦&#xff0c;面试能拿下80%&#xff0c;剩下就看你满不满意公司的开价咯。以下答案都是我自己写的&#xff0c;大家根据自己的经历稍作改动&#xff0c;答案仅供参考哦&#xff01;题库持续更新&#xff0c;需要PDF版可以点击文末小卡片领取…

Unity3d 以鼠标位置点为中心缩放视角(正交模式下)

思路整理&#xff1a; 缩放前&#xff1a; 缩放后&#xff1a; 记录缩放前鼠标的屏幕坐标 A&#xff0c;计算鼠标位置对应的世界坐标 A_world 缩放完成后&#xff0c;根据当前屏幕下A所对应的世界坐标A1_world 计算A1_world 和 A_world 的偏移量 移动摄像机 代码&#xff…

将5s1的搜索难度曲线二次归一化

在行列可自由变换的平面上&#xff0c;5点结构只有34个 (A,B)---6*30*2---(0,1)(1,0) 分类A和B&#xff0c;让A是34个5点结构&#xff0c;让B全是0。收敛误差为7e-4&#xff0c;收敛199次取迭代次数平均值&#xff0c; 让训练集A-B矩阵的高分别是5&#xff0c;6.当高为5的时候…

陪护小程序|陪护小程序成品|陪护小程序源码

陪护系统是为提供病人及其家属更好的服务而开发的一种软件系统。在开发陪护系统时&#xff0c;有一些注意事项是需要考虑的。 首先&#xff0c;需要明确陪护系统的主要功能和目标群体。陪护系统可以包括病人信息管理、医护人员协作、医药管理、预约挂号等功能。我们需要确定开发…

项目管理 | 一文读懂什么是敏捷开发管理

在快速变化的商业环境中&#xff0c;项目管理方式也在不断演进&#xff0c;其中敏捷开发管理因其高效、灵活和适应性强的特点&#xff0c;逐渐成为众多企业和团队的首选。本文将详细解析敏捷开发管理的定义、具体内容及其核心角色&#xff0c;帮助读者全面理解这一先进的项目管…

Python基础语法(3)上

函数 函数是什么 编程中的函数和数学中的函数有一定的相似之处. 数学上的函数&#xff0c;比如 y sin x&#xff0c;x 取不同的值&#xff0c;y 就会得到不同的结果 编程中的函数是一段可以被重复使用的代码片段 代码示例&#xff1a;求数列的和&#xff0c;不使用函数 …

教育培训小程序开发,简单实用的入门指南

教育培训小程序可以帮助教育机构和个人老师提供更灵活的在线教学服务&#xff0c;满足学生的学习需求。对于初学者来说&#xff0c;开发一个功能齐全的教育培训小程序并不复杂&#xff0c;只需掌握一些基础的开发知识和工具即可。本文将带你了解如何使用微信小程序开发工具&…

如何准备技术面试?

大家好&#xff0c;我是老三&#xff0c;好久没更新了&#xff0c;翻出之前的一篇旧稿&#xff0c;是一篇总纲性质的文章——如何准备一场技术面试。这篇文章原本的开头是写给金三银四的&#xff0c;转眼就“金九银十”了&#xff0c;每一年都是最差的一年&#xff0c;又是未来…

跨平台开发新视角:利用Android WebView实现Web内容的原生体验

在移动应用开发领域&#xff0c;跨平台解决方案一直是一个热门话题。开发者们不断寻求能够同时在iOS和Android平台上提供一致用户体验的方法。而Android的WebView组件&#xff0c;作为一个强大的工具&#xff0c;允许开发者在Android应用中嵌入Web内容&#xff0c;为用户提供接…

Python(三)-流程控制

目录 Python三大基本语句 if语句 if-else语句 if..elif...else... if嵌套语句 for循环 while循环 死循环 while嵌套 break语句 continue语句 案例-猜拳游戏 Python三大基本语句 &#xff08;1&#xff09;顺序语句 &#xff08;2&#xff09;分支语句 &#xff…

P3489 [POI2009] WIE-Hexer

*原题链接* 最短路状态压缩 不愧是POI的题&#xff0c;看题面知道要求加了一些限制的最短路&#xff0c;看数据范围很容易想到状态压缩。 求解最短路就用堆优化dijkstra好了。 至于状态压缩&#xff0c;我们对原数组再开一维&#xff0c;表示此时“剑的集合”&#xff0c;相…

设计模式之组合设计模式

一、组合设计模式概念 组合模式 (Component) 是一种结构型设计模式&#xff0c;将对象组合成树形结构以表示“部分-整体”的层次结构。 组合模式使得用户对单个对象和组合对象的使用具有唯一性。 适用场景 想要表示对象的部分-整体层次结构。想要客户端忽略组合对象与单个对象的…

基于扣子(Coze)打造第一个智能体——个性化对话机器人

文章目录 一&#xff0c;智能体体验二&#xff0c;动手打造一个自己的智能体1&#xff0c;主页点击创建机器人1.1 创建一个新的机器人1.2 修订Bot基础信息1.3 工具编排信息修订人设和回复逻辑、增补开场白等 2&#xff0c;使用插件优化机器人3&#xff0c;使用工作流优化机器人…

2024/9/14 408大题专项训练之存储系统

组相联映射怎么算组号&#xff1f; 有cache总大小/路数xcache大小 物理地址与虚拟地址位数不一定相等&#xff0c;但是她们页内地址和块内地址位数是一样的&#xff01;