Просмотр исходного кода

Merge branch 'master' of http://47.100.18.120:3000/LiuQin/CinemaDemo

jacksenma 7 лет назад
Родитель
Сommit
6d6dbee92c

+ 34 - 0
src/main/resources/static/css/adminPromotion.css

@@ -0,0 +1,34 @@
+.activity-container {
+    display: flex;
+    width: 100%;
+    min-height: 200px;
+    margin: 20px 0;
+}
+.activity-card {
+    padding: 20px;
+    display: flex;
+    flex-direction: column;
+    flex-basis: 70%;
+    justify-content: space-around;
+
+}
+
+.activity-line {
+    display: flex;
+    align-items: baseline;
+}
+
+.activity-coupon {
+    flex-basis: 30%;
+    display: flex;
+    flex-direction: column;
+    padding: 20px;
+    color: #fff;
+    justify-content: space-around;
+
+}
+
+.content-header {
+    display: flex;
+    justify-content: space-between;
+}

+ 2 - 11
src/main/resources/static/js/adminCinemaStatistic.js

@@ -31,7 +31,7 @@ $(document).ready(function() {
                     legend: {
                         x : 'center',
                         y : 'bottom',
-                        data:['rose1','rose2','rose3','rose4','rose5','rose6','rose7','rose8']
+                        data:nameList
                     },
                     toolbox: {
                         show : true,
@@ -54,16 +54,7 @@ $(document).ready(function() {
                             radius : [30, 110],
                             center : ['50%', '50%'],
                             roseType : 'area',
-                            data:[
-                                {value:10, name:'rose1'},
-                                {value:5, name:'rose2'},
-                                {value:15, name:'rose3'},
-                                {value:25, name:'rose4'},
-                                {value:20, name:'rose5'},
-                                {value:35, name:'rose6'},
-                                {value:30, name:'rose7'},
-                                {value:40, name:'rose8'}
-                            ]
+                            data:tableData
                         }
                     ]
                 };

+ 1 - 1
src/main/resources/static/js/adminMovieManage.js

@@ -75,7 +75,7 @@ $(document).ready(function(){
                 "<div class='movie-info'>" +
                 "<div class='movie-title'>" +
                 "<span class='primary-text'>" + movie.name + "</span>" +
-                "<span class='label "+(movie.showState ? 'primary-bg' : 'error-bg')+"'>" + (movie.status ? '上映中' : '未上映') + "</span>" +
+                "<span class='label "+(!movie.status ? 'primary-bg' : 'error-bg')+"'>" + (movie.status ? '已下架' : (new Date(movie.startDate)>=new Date()?'未上映':'热映中')) + "</span>" +
                 "<span class='movie-want'><i class='icon-heart error-text'></i>" + (movie.likeCount || 0) + "人想看</span>" +
                 "</div>" +
                 "<div class='movie-description dark-text'><span>" + movie.description + "</span></div>" +

+ 135 - 0
src/main/resources/static/js/adminPromotionManage.js

@@ -0,0 +1,135 @@
+$(document).ready(function() {
+
+    getAllMovies();
+
+    getActivities();
+
+    function getActivities() {
+        getRequest(
+            '/activity/get',
+            function (res) {
+                var activities = res.content;
+                renderActivities(activities);
+            },
+            function (error) {
+                alert(JSON.stringify(error));
+            }
+        );
+    }
+    
+    function renderActivities(activities) {
+        $(".content-activity").empty();
+        var activitiesDomStr = "";
+
+        activities.forEach(function (activity) {
+            var movieDomStr = "";
+            if(activity.movieList.length){
+                activity.movieList.forEach(function (movie) {
+                    movieDomStr += "<li class='activity-movie primary-text'>"+movie.name+"</li>";
+                });
+            }else{
+                movieDomStr = "<li class='activity-movie primary-text'>所有热映电影</li>";
+            }
+
+            activitiesDomStr+=
+                "<div class='activity-container'>" +
+                "    <div class='activity-card card'>" +
+                "       <div class='activity-line'>" +
+                "           <span class='title'>"+activity.name+"</span>" +
+                "           <span class='gray-text'>"+activity.description+"</span>" +
+                "       </div>" +
+                "       <div class='activity-line'>" +
+                "           <span>活动时间:"+formatDate(new Date(activity.startTime))+"至"+formatDate(new Date(activity.endTime))+"</span>" +
+                "       </div>" +
+                "       <div class='activity-line'>" +
+                "           <span>参与电影:</span>" +
+                "               <ul>"+movieDomStr+"</ul>" +
+                "       </div>" +
+                "    </div>" +
+                "    <div class='activity-coupon primary-bg'>" +
+                "        <span class='title'>优惠券:"+activity.coupon.name+"</span>" +
+                "        <span class='title'>满"+activity.coupon.targetAmount+"减<span class='error-text title'>"+activity.coupon.discountAmount+"</span></span>" +
+                "        <span class='gray-text'>"+activity.coupon.description+"</span>" +
+                "    </div>" +
+                "</div>";
+        });
+        $(".content-activity").append(activitiesDomStr);
+    }
+
+    function getAllMovies() {
+        getRequest(
+            '/movie/all/exclude/off',
+            function (res) {
+                var movieList = res.content;
+                $('#activity-movie-input').append("<option value="+ -1 +">所有电影</option>");
+                movieList.forEach(function (movie) {
+                    $('#activity-movie-input').append("<option value="+ movie.id +">"+movie.name+"</option>");
+                });
+            },
+            function (error) {
+                alert(error);
+            }
+        );
+    }
+
+    $("#activity-form-btn").click(function () {
+       var form = {
+           name: $("#activity-name-input").val(),
+           description: $("#activity-description-input").val(),
+           startTime: $("#activity-start-date-input").val(),
+           endTime: $("#activity-end-date-input").val(),
+           movieList: [...selectedMovieIds],
+           couponForm: {
+               description: $("#coupon-name-input").val(),
+               name: $("#coupon-description-input").val(),
+               targetAmount: $("#coupon-target-input").val(),
+               discountAmount: $("#coupon-discount-input").val(),
+               startTime: $("#activity-start-date-input").val(),
+               endTime: $("#activity-end-date-input").val()
+           }
+       };
+
+        postRequest(
+            '/activity/publish',
+            form,
+            function (res) {
+                if(res.success){
+                    getActivities();
+                    $("#activityModal").modal('hide');
+                } else {
+                    alert(res.message);
+                }
+            },
+            function (error) {
+                alert(JSON.stringify(error));
+            }
+        );
+    });
+
+    //ES6新api 不重复集合 Set
+    var selectedMovieIds = new Set();
+    var selectedMovieNames = new Set();
+
+    $('#activity-movie-input').change(function () {
+        var movieId = $('#activity-movie-input').val();
+        var movieName = $('#activity-movie-input').children('option:selected').text();
+        if(movieId==-1){
+            selectedMovieIds.clear();
+            selectedMovieNames.clear();
+        } else {
+            selectedMovieIds.add(movieId);
+            selectedMovieNames.add(movieName);
+        }
+        renderSelectedMovies();
+    });
+
+    //渲染选择的参加活动的电影
+    function renderSelectedMovies() {
+        $('#selected-movies').empty();
+        var moviesDomStr = "";
+        selectedMovieNames.forEach(function (movieName) {
+            moviesDomStr += "<span class='label label-primary'>"+movieName+"</span>";
+        });
+        $('#selected-movies').append(moviesDomStr);
+    }
+});

+ 1 - 18
src/main/resources/static/js/adminScheduleManage.js

@@ -8,23 +8,6 @@ var colors = [
     'steelblue'
 ];
 
-function formatDate(date){
-    var year = date.getFullYear();
-    var month = date.getMonth()+1+'';
-    var day = date.getDate()+'';
-    month.length===1 && (month = '0'+month)
-    day.length===1 && (day = '0'+day)
-    return year+'-'+month+'-'+day;
-}
-
-function formatTime(date){
-    var hour = date.getHours()+'';
-    var minutes = date.getMinutes()+'';
-    hour.length===1 && (hour = '0'+hour)
-    minutes.length===1 && (minutes = '0'+minutes)
-    return hour+":"+minutes;
-}
-
 $(document).ready(function() {
     var hallId,
         scheduleDate = formatDate(new Date()),
@@ -114,7 +97,7 @@ $(document).ready(function() {
 
     function getAllMovies() {
         getRequest(
-            '/movie/all',
+            '/movie/all/exclude/off',
             function (res) {
                 var movieList = res.content;
                 movieList.forEach(function (movie) {

+ 19 - 0
src/main/resources/static/js/request.js

@@ -1,3 +1,4 @@
+//全局请求方法 包括 一些公共方法
 function getRequest(url, onSuccess, onError) {
     $.ajax({
         type: 'GET',
@@ -34,6 +35,24 @@ function deleteRequest(url, data, onSuccess, onError) {
     });
 }
 
+
+function formatDate(date){
+    var year = date.getFullYear();
+    var month = date.getMonth()+1+'';
+    var day = date.getDate()+'';
+    month.length===1 && (month = '0'+month)
+    day.length===1 && (day = '0'+day)
+    return year+'-'+month+'-'+day;
+}
+
+function formatTime(date){
+    var hour = date.getHours()+'';
+    var minutes = date.getMinutes()+'';
+    hour.length===1 && (hour = '0'+hour)
+    minutes.length===1 && (minutes = '0'+minutes)
+    return hour+":"+minutes;
+}
+
 $(document).ready(function () {
 
     //全局事件

+ 1 - 1
src/main/resources/static/js/userMovie.js

@@ -24,7 +24,7 @@ $(document).ready(function(){
                 "<div class='movie-info'>" +
                 "<div class='movie-title'>" +
                 "<span class='primary-text'>" + movie.name + "</span>" +
-                "<span class='label "+(movie.showState ? 'primary-bg' : 'error-bg')+"'>" + (movie.status ? '上映中' : '未上映') + "</span>" +
+                "<span class='label "+(!movie.status ? 'primary-bg' : 'error-bg')+"'>" + (movie.status ? '已下架' : (new Date(movie.startDate)>=new Date()?'未上映':'热映中')) + "</span>" +
                 "<span class='movie-want'><i class='icon-heart error-text'></i>" + (movie.likeCount || 0) + "人想看</span>" +
                 "</div>" +
                 "<div class='movie-description dark-text'><span>" + movie.description + "</span></div>" +

+ 87 - 0
src/main/resources/templates/adminPromotionManage.html

@@ -6,10 +6,14 @@
     <link rel="stylesheet" type="text/css" href="/css/common.css"/>
     <link rel="stylesheet" type="text/css" href="/css/bootstrap.css"/>
     <link rel="stylesheet" type="text/css" href="/css/font-awesome.min.css"/>
+    <link rel="stylesheet" type="text/css" href="/css/adminPromotion.css"/>
+
 
     <script src="/js/jquery.js"></script>
     <script src="/js/bootstrap.js"></script>
     <script src="/js/request.js"></script>
+    <script src="/js/adminPromotionManage.js"></script>
+
 </head>
 <body>
 <div class="main-container">
@@ -29,8 +33,91 @@
     <div class="content-container">
         <div class="content-header">
             <span class="title gray-text">活动管理</span>
+            <button type="button" class="btn btn-primary" data-backdrop="static" data-toggle="modal" data-target="#activityModal"><i class="icon-plus-sign"></i> 发布活动</button>
         </div>
+        <div class="content-activity">
 
+        </div>
+    </div>
+</div>
+<div class="modal fade" id="activityModal" tabindex="-1" role="dialog" aria-labelledby="movieModalLabel">
+    <div class="modal-dialog" role="document">
+        <div class="modal-content">
+            <div class="modal-header">
+                <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
+                <h4 class="modal-title" id="activytyModalLabel">发布活动</h4>
+            </div>
+            <div class="modal-body">
+                <form class="form-horizontal" role="form">
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-name-input"><span class="error-text">*</span>活动名称</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="activity-name-input" placeholder="请输入活动名称">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-description-input">活动描述</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="activity-description-input" placeholder="请输入活动描述">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-start-date-input"><span class="error-text">*</span>开始日期</label>
+                        <div class="col-sm-10">
+                            <input type="date" class="form-control" id="activity-start-date-input" placeholder="请输入活动开始日期">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-end-date-input"><span class="error-text">*</span>结束日期</label>
+                        <div class="col-sm-10">
+                            <input type="date" class="form-control" id="activity-end-date-input" placeholder="请输入活动结束日期">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="coupon-name-input"><span class="error-text">*</span>奖券名称</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="coupon-name-input" placeholder="请输入优惠券名称">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="coupon-description-input"><span class="error-text">*</span>奖券描述</label>
+                        <div class="col-sm-10">
+                            <input type="text" class="form-control" id="coupon-description-input" placeholder="请输入优惠券描述">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="coupon-target-input"><span class="error-text">*</span>需满金额</label>
+                        <div class="col-sm-10">
+                            <input type="number" class="form-control" id="coupon-target-input" placeholder="请输入参与活动需满金额">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="coupon-discount-input"><span class="error-text">*</span>优惠金额</label>
+                        <div class="col-sm-10">
+                            <input type="number" class="form-control" id="coupon-discount-input" placeholder="请输入优惠金额">
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-movie-input">参与电影</label>
+                        <div class="col-sm-10">
+                            <select id="activity-movie-input" class="form-control">
+                            </select>
+                            <p class="help-block">不选择代表所有电影</p>
+                        </div>
+                    </div>
+                    <div class="form-group">
+                        <label class="col-sm-2 control-label" for="activity-movie-input">已选电影</label>
+                        <div id="selected-movies" class="col-sm-10">
+
+                        </div>
+                    </div>
+                </form>
+            </div>
+            <div class="modal-footer">
+                <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
+                <button type="button" class="btn btn-primary" id="activity-form-btn">确认</button>
+            </div>
+        </div>
     </div>
 </div>
 </body>