Memory_LG 1 mēnesi atpakaļ
vecāks
revīzija
9139fd0b75

+ 9 - 0
qmjszx-admin/src/main/java/beilv/web/controller/admissionticket/AdmissionTicketController.java

@@ -136,4 +136,13 @@ public class AdmissionTicketController extends BaseController {
     public AjaxResult makeAnAppointment(AdmissionTicket beilvAdmissionTicket){
         return toAjax(beilvAdmissionTicketService.updateBeilvAdmissionTicket(beilvAdmissionTicket));
     }
+
+    /**
+     * 手动核销
+     */
+    @PostMapping("/confirm")
+    @ResponseBody
+    public AjaxResult confirm(AdmissionTicket beilvAdmissionTicket){
+        return toAjax(beilvAdmissionTicketService.confirm(beilvAdmissionTicket));
+    }
 }

+ 0 - 2
qmjszx-admin/src/main/java/beilv/web/controller/competition/CompetitionController.java

@@ -92,8 +92,6 @@ public class CompetitionController extends BaseController {
     @PostMapping("/add")
     @ResponseBody
     public AjaxResult addSave(Competition competition) {
-
-
         return toAjax(competitionService.insertCompetition(competition));
     }
 

+ 2 - 0
qmjszx-admin/src/main/resources/application.yml

@@ -151,10 +151,12 @@ rsa:
 wx:
   pay:
     appId: wxe44c64c20fa20d69
+#    appId: wxf02cdfd83ef8ce4d
     apiV3Key: #商户私钥key
     notifyUrl: #支付回调地址
     merchantId: #商户id
     appSecret: bbaaa2292da0bcc3336dc2a0f2f8493a
+#    appSecret: 228a6905484fbf9c3e571962c92c7e7e
     privateKeyPath: #证书认证是生成文件
     merchantserialNumber: #证书序列号
 

+ 98 - 80
qmjszx-admin/src/main/resources/templates/admissionticket/admissionTicket.html

@@ -1,62 +1,65 @@
 <!DOCTYPE html>
-<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<html lang="zh" xmlns:th="http://www.thymeleaf.org">
 <head>
-    <th:block th:include="include :: header('约球购票列表')" />
+    <th:block th:include="include :: header('约球购票列表')"/>
 </head>
 <body class="gray-bg">
-     <div class="container-div">
-        <div class="row">
-            <div class="col-sm-12 search-collapse">
-                <form id="formId">
-                    <div class="select-list">
-                        <ul>
-                            <li>
-                                <label>门票日期:</label>
-                                <input type="text" class="time-input" placeholder="请选择门票日期" name="ticketDate" th:value="${ticketDate}"/>
-                            </li>
-                            <li>
-                                <label>场地名称:</label>
-                                <input type="text" name="siteName" th:value="${siteName}" data-template="请输入场地名称"/>
-                            </li>
-                            <li>
-                                <label>场地类型:</label>
-                                <select name="siteType" th:with="type=${@dict.getType('site_type')}">
-                                    <option value="">所有</option>
-                                    <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
-                                            th:value="${dict.dictValue}"></option>
-                                </select>
-                            </li>
-                            <li>
-                                <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
-                                <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
-                            </li>
-                        </ul>
-                    </div>
-                </form>
-            </div>
-            <div class="col-sm-12 select-table table-striped">
-                <table id="bootstrap-table"></table>
-            </div>
+<div class="container-div">
+    <div class="row">
+        <div class="col-sm-12 search-collapse">
+            <form id="formId">
+                <div class="select-list">
+                    <ul>
+                        <li>
+                            <label>门票日期:</label>
+                            <input type="text" class="time-input" placeholder="请选择门票日期" name="ticketDate"
+                                   th:value="${ticketDate}"/>
+                        </li>
+                        <li>
+                            <label>场地名称:</label>
+                            <input type="text" name="siteName" th:value="${siteName}" data-template="请输入场地名称"/>
+                        </li>
+                        <li>
+                            <label>场地类型:</label>
+                            <select name="siteType" th:with="type=${@dict.getType('site_type')}">
+                                <option value="">所有</option>
+                                <option th:each="dict : ${type}" th:text="${dict.dictLabel}"
+                                        th:value="${dict.dictValue}"></option>
+                            </select>
+                        </li>
+                        <li>
+                            <a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i
+                                    class="fa fa-search"></i>&nbsp;搜索</a>
+                            <a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i
+                                    class="fa fa-refresh"></i>&nbsp;重置</a>
+                        </li>
+                    </ul>
+                </div>
+            </form>
+        </div>
+        <div class="col-sm-12 select-table table-striped">
+            <table id="bootstrap-table"></table>
         </div>
     </div>
-    <th:block th:include="include :: footer" />
-    <script th:inline="javascript">
-        var editFlag = [[${@permission.hasPermi('admissionticket:AdmissionTicket:edit')}]];
-        var removeFlag = [[${@permission.hasPermi('admissionticket:AdmissionTicket:remove')}]];
-        var siteTypeDatas = [[${@dict.getType('site_type')}]];
-        var prefix = ctx + "admissionticket";
+</div>
+<th:block th:include="include :: footer"/>
+<script th:inline="javascript">
+    var editFlag = [[${@permission.hasPermi('admissionticket:AdmissionTicket:edit')}]];
+    var removeFlag = [[${@permission.hasPermi('admissionticket:AdmissionTicket:remove')}]];
+    var siteTypeDatas = [[${@dict.getType('site_type')}]];
+    var prefix = ctx + "admissionticket";
 
-        $(function() {
-            var options = {
-                url: prefix + "/list",
-                createUrl: prefix + "/add",
-                updateUrl: prefix + "/edit/{id}",
-                removeUrl: prefix + "/remove",
-                exportUrl: prefix + "/export",
-                modalName: "约球购票",
-                columns: [{
-                    checkbox: true
-                },
+    $(function () {
+        var options = {
+            url: prefix + "/list",
+            createUrl: prefix + "/add",
+            updateUrl: prefix + "/edit/{id}",
+            removeUrl: prefix + "/remove",
+            exportUrl: prefix + "/export",
+            modalName: "约球购票",
+            columns: [{
+                checkbox: true
+            },
                 {
                     field: 'venueName',
                     title: '场馆名称'
@@ -68,7 +71,7 @@
                 {
                     field: 'siteType',
                     title: '场地类型',
-                    formatter: function(value, row, index) {
+                    formatter: function (value, row, index) {
                         return $.table.selectDictLabel(siteTypeDatas, value);
                     }
                 },
@@ -90,37 +93,52 @@
                     formatter: function (value, row, index) {
                         return statusTools(row);
                     }
+                }, {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function (value, row, index) {
+                        var actions = [];
+                        if(row.admissionTicketStatus==="2"){
+                            actions.push('<a class="btn btn-danger btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="confirm(\'' + row.id + '\')"><i class="fa fa-edit"></i>核销</a>');
+                        }
+                        return actions.join('');
+                    }
                 }]
-            };
-            $.table.init(options);
-        });
+        };
+        $.table.init(options);
+    })
+    ;
 
-        function statusTools(row) {
-            if (row.admissionTicketStatus === "0") {
-                return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.id + '\')"></i> ';
-            }else if(row.admissionTicketStatus === "1"){
-                return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.id + '\')"></i> ';
-            }else if(row.admissionTicketStatus === "2"){
-                return "已预定"
-            }else if(row.admissionTicketStatus === "3"){
-                return "已锁定"
-            }else if(row.admissionTicketStatus === "4"){
-                return "已核销"
-            }
-            /*else {
-                return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.id + '\')"></i> ';
-            }*/
+    function statusTools(row) {
+        if (row.admissionTicketStatus === "0") {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.id + '\')"></i> ';
+        } else if (row.admissionTicketStatus === "1") {
+            return '<i class=\"fa fa-toggle-off text-info fa-2x\" onclick="enable(\'' + row.id + '\')"></i> ';
+        } else if (row.admissionTicketStatus === "2") {
+            return "已预定"
+        } else if (row.admissionTicketStatus === "3") {
+            return "已锁定"
+        } else if (row.admissionTicketStatus === "4") {
+            return "已核销"
         }
+        /*else {
+            return '<i class=\"fa fa-toggle-on text-info fa-2x\" onclick="disable(\'' + row.id + '\')"></i> ';
+        }*/
+    }
 
-        /* 用户管理-停用 */
-        function disable(id) {
-            $.operate.post(prefix + "/makeAnAppointment", { "id": id, "admissionTicketStatus": "1" });
-        }
+    function confirm(id){
+        $.operate.post(prefix + "/confirm", {"id": id, "admissionTicketStatus": "4"});
+    }
 
-        /* 用户管理启用 */
-        function enable(id) {
-            $.operate.post(prefix + "/makeAnAppointment", { "id": id, "admissionTicketStatus": "0" });
-        }
-    </script>
+    /* 用户管理-停用 */
+    function disable(id) {
+        $.operate.post(prefix + "/makeAnAppointment", {"id": id, "admissionTicketStatus": "1"});
+    }
+
+    /* 用户管理启用 */
+    function enable(id) {
+        $.operate.post(prefix + "/makeAnAppointment", {"id": id, "admissionTicketStatus": "0"});
+    }
+</script>
 </body>
 </html>

+ 1 - 1
qmjszx-admin/src/main/resources/templates/card/card.html

@@ -112,7 +112,7 @@
                     align: 'center',
                     formatter: function(value, row, index) {
                         var actions = [];
-                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="stream(\'' + row.id + '\')"><i class="fa fa-edit"></i>流水</a> ');
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="stream(\'' + row.id + '\')"><i class="fa fa-edit"></i>约球记录</a> ');
                         if (row.state==='3'){
                             actions.push('<a class="btn btn-danger btn-xs ' + refundCard + '" href="javascript:void(0)" onclick="refundCard1(\'' + row.id + '\', \'' + row.recordId + '\', \'' + row.remainingNumber + '\')"><i class="fa fa-remove"></i>退卡</a>');
                         }

+ 17 - 2
qmjszx-admin/src/main/resources/templates/competition/add.html

@@ -194,8 +194,7 @@
     function submitHandler() {
         var applyStartTime = $('#applyStartTime').val()
         var applyEndTime = $('#applyEndTime').val()
-        var currentTime = new Date().toISOString().slice(0, 16); // 当前时间,格式为 YYYY-MM-DD HH:MM
-
+        var currentTime = getNowDate() // 当前时间,格式为 YYYY-MM-DD HH:MM
 
         if ($.validate.form()) {
 
@@ -225,6 +224,22 @@
         autoclose: true
     });
 
+    function getNowDate(){
+        // 获取当前时间
+        var now = new Date();
+
+        // 格式化日期和时间
+        var year = now.getFullYear(); // 获取年份
+        var month = ("0" + (now.getMonth() + 1)).slice(-2); // 获取月份,加1是因为 getMonth() 返回的月份是从0开始的
+        var day = ("0" + now.getDate()).slice(-2); // 获取日期
+        var hours = ("0" + now.getHours()).slice(-2); // 获取小时
+        var minutes = ("0" + now.getMinutes()).slice(-2); // 获取分钟
+
+        // 拼接成所需的格式
+        return year + "-" + month + "-" + day + " " + hours + ":" + minutes;
+
+    }
+
     $(function () {
         $('.summernote').summernote({
             lang: 'zh-CN',

+ 34 - 1
qmjszx-admin/src/main/resources/templates/competition/edit.html

@@ -133,7 +133,25 @@
         });
 
         function submitHandler() {
+
+            var applyStartTime = $('#applyStartTime').val()
+            var applyEndTime = $('#applyEndTime').val()
+            var currentTime = getNowDate(); // 当前时间,格式为 YYYY-MM-DD HH:MM
+
             if ($.validate.form()) {
+
+                // 检查赛事开始时间不能小于当前时间
+                if (applyStartTime < currentTime) {
+                    $.modal.alertWarning("赛事开始时间不能小于当前时间");
+                    return false;
+                }
+
+                // 检查赛事结束时间不能小于赛事开始时间
+                if (applyEndTime < applyStartTime) {
+                    $.modal.alertWarning("赛事结束时间不能小于赛事开始时间");
+                    return false;
+                }
+
                 $.operate.save(prefix + "/edit", $('#form-competition-edit').serialize());
             }
         }
@@ -148,8 +166,23 @@
             autoclose: true
         });
 
+        function getNowDate(){
+            // 获取当前时间
+            var now = new Date();
+
+            // 格式化日期和时间
+            var year = now.getFullYear(); // 获取年份
+            var month = ("0" + (now.getMonth() + 1)).slice(-2); // 获取月份,加1是因为 getMonth() 返回的月份是从0开始的
+            var day = ("0" + now.getDate()).slice(-2); // 获取日期
+            var hours = ("0" + now.getHours()).slice(-2); // 获取小时
+            var minutes = ("0" + now.getMinutes()).slice(-2); // 获取分钟
+
+            // 拼接成所需的格式
+            return year + "-" + month + "-" + day + " " + hours + ":" + minutes;
+
+        }
+
         $(function() {
-            console.log()
 
             $('.summernote').each(function(i) {
                 $('#' + this.id).summernote({

+ 0 - 9
qmjszx-admin/src/main/resources/templates/system/site/site.html

@@ -29,15 +29,6 @@
                 <a class="btn btn-success" onclick="$.operate.addToSet()" shiro:hasPermission="system:site:add">
                     <i class="fa fa-plus"></i> 添加
                 </a>
-<!--                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:site:edit">-->
-<!--                    <i class="fa fa-edit"></i> 修改-->
-<!--                </a>-->
-<!--                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:site:remove">-->
-<!--                    <i class="fa fa-remove"></i> 删除-->
-<!--                </a>-->
-<!--                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:site:export">-->
-<!--                    <i class="fa fa-download"></i> 导出-->
-<!--                </a>-->
             </div>
             <div class="col-sm-12 select-table table-striped">
                 <table id="bootstrap-table"></table>

+ 2 - 0
qmjszx-business/src/main/java/beilv/admissionticket/service/IAdmissionTicketService.java

@@ -59,4 +59,6 @@ public interface IAdmissionTicketService {
     void updateTicketStatus(List<String> ids, String ticketStatus);
 
     Map<String, Object> getThresholdValue(String ticketId);
+
+    int confirm(AdmissionTicket beilvAdmissionTicket);
 }

+ 5 - 0
qmjszx-business/src/main/java/beilv/admissionticket/service/impl/AdmissionTicketServiceImpl.java

@@ -105,4 +105,9 @@ public class AdmissionTicketServiceImpl implements IAdmissionTicketService {
     public Map<String, Object> getThresholdValue(String ticketId) {
         return beilvAdmissionTicketMapper.getThresholdValue(ticketId);
     }
+
+    @Override
+    public int confirm(AdmissionTicket beilvAdmissionTicket) {
+        return beilvAdmissionTicketMapper.updateBeilvAdmissionTicket(beilvAdmissionTicket);
+    }
 }

+ 1 - 2
qmjszx-business/src/main/resources/mapper/card/UserMembershipCardMapper.xml

@@ -49,13 +49,12 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
             <if test="remainingNumber != null "> and a.remaining_number = #{remainingNumber}</if>
             <if test="version != null  and version != ''"> and a.version = #{version}</if>
             <if test="mobile != null  and mobile != ''"> and b.mobile like concat('%', #{mobile}, '%')</if>
-            <if test="cardName != null  and cardName != ''"> and c.name like concat('%', #{cardName}, '%')</if>
+            <if test="cardName != null  and cardName != ''"> and c.card_name like concat('%', #{cardName}, '%')</if>
             <if test="cardType != null  and cardType != ''"> and c.card_type = #{cardType}</if>
             <if test="state != null  and state != ''">
                 <choose>
                     <when test="state == 'hasClubCard'">
                         and a.remaining_number > 0
-
                     </when>
                     <otherwise>
                         and a.state = #{state}