Jelajahi Sumber

时段管理 球场管理 场馆信息

lchao 5 bulan lalu
induk
melakukan
ba582964c8
27 mengubah file dengan 2759 tambahan dan 0 penghapusan
  1. 59 0
      qmjszx-admin/src/main/resources/templates/system/session/add.html
  2. 60 0
      qmjszx-admin/src/main/resources/templates/system/session/edit.html
  3. 117 0
      qmjszx-admin/src/main/resources/templates/system/session/session.html
  4. 122 0
      qmjszx-admin/src/main/resources/templates/system/site/add.html
  5. 127 0
      qmjszx-admin/src/main/resources/templates/system/site/edit.html
  6. 141 0
      qmjszx-admin/src/main/resources/templates/system/site/site.html
  7. 146 0
      qmjszx-admin/src/main/resources/templates/system/venue/add.html
  8. 157 0
      qmjszx-admin/src/main/resources/templates/system/venue/edit.html
  9. 126 0
      qmjszx-admin/src/main/resources/templates/system/venue/venue.html
  10. 130 0
      qmjszx-business/src/main/java/beilv/session/controller/BeilvSessionController.java
  11. 98 0
      qmjszx-business/src/main/java/beilv/session/domain/BeilvSession.java
  12. 63 0
      qmjszx-business/src/main/java/beilv/session/mapper/BeilvSessionMapper.java
  13. 63 0
      qmjszx-business/src/main/java/beilv/session/service/IBeilvSessionService.java
  14. 96 0
      qmjszx-business/src/main/java/beilv/session/service/impl/BeilvSessionServiceImpl.java
  15. 128 0
      qmjszx-business/src/main/java/beilv/site/controller/BeilvSiteController.java
  16. 158 0
      qmjszx-business/src/main/java/beilv/site/domain/BeilvSite.java
  17. 61 0
      qmjszx-business/src/main/java/beilv/site/mapper/BeilvSiteMapper.java
  18. 61 0
      qmjszx-business/src/main/java/beilv/site/service/IBeilvSiteService.java
  19. 94 0
      qmjszx-business/src/main/java/beilv/site/service/impl/BeilvSiteServiceImpl.java
  20. 130 0
      qmjszx-business/src/main/java/beilv/venue/controller/BeilvVenueController.java
  21. 145 0
      qmjszx-business/src/main/java/beilv/venue/domain/BeilvVenue.java
  22. 63 0
      qmjszx-business/src/main/java/beilv/venue/mapper/BeilvVenueMapper.java
  23. 63 0
      qmjszx-business/src/main/java/beilv/venue/service/IBeilvVenueService.java
  24. 96 0
      qmjszx-business/src/main/java/beilv/venue/service/impl/BeilvVenueServiceImpl.java
  25. 74 0
      qmjszx-business/src/main/resources/mapper/session/BeilvSessionMapper.xml
  26. 92 0
      qmjszx-business/src/main/resources/mapper/site/BeilvSiteMapper.xml
  27. 89 0
      qmjszx-business/src/main/resources/mapper/venue/BeilvVenueMapper.xml

+ 59 - 0
qmjszx-admin/src/main/resources/templates/system/session/add.html

@@ -0,0 +1,59 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增时段管理')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-session-add">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">分类id:</label>
+                    <div class="col-sm-8">
+                        <select name="siteType" class="form-control" th:with="type=${@dict.getType('site_type')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">时段:</label>
+                    <div class="col-sm-8">
+                        <input name="session" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">价格:</label>
+                    <div class="col-sm-8">
+                        <input name="price" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆id:</label>
+                    <div class="col-sm-8">
+                        <input name="venueId" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/session"
+        $("#form-session-add").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/add", $('#form-session-add').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 60 - 0
qmjszx-admin/src/main/resources/templates/system/session/edit.html

@@ -0,0 +1,60 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改时段管理')" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-session-edit" th:object="${beilvSession}">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">分类id:</label>
+                    <div class="col-sm-8">
+                        <select name="siteType" class="form-control" th:with="type=${@dict.getType('site_type')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{siteType}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">时段:</label>
+                    <div class="col-sm-8">
+                        <input name="session" th:field="*{session}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">价格:</label>
+                    <div class="col-sm-8">
+                        <input name="price" th:field="*{price}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆id:</label>
+                    <div class="col-sm-8">
+                        <input name="venueId" th:field="*{venueId}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/session";
+        $("#form-session-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-session-edit').serialize());
+            }
+        }
+    </script>
+</body>
+</html>

+ 117 - 0
qmjszx-admin/src/main/resources/templates/system/session/session.html

@@ -0,0 +1,117 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <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>分类id:</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>
+                                <label>时段:</label>
+                                <input type="text" name="session"/>
+                            </li>
+                            <li>
+                                <label>价格:</label>
+                                <input type="text" name="price"/>
+                            </li>
+                            <li>
+                                <label>场馆id:</label>
+                                <input type="text" name="venueId"/>
+                            </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="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:session:add">
+                    <i class="fa fa-plus"></i> 添加
+                </a>
+                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:session:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:session:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:session:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('system:session:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('system:session:remove')}]];
+        var siteTypeDatas = [[${@dict.getType('site_type')}]];
+        var prefix = ctx + "system/session";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "时段管理",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field: 'id',
+                    title: 'id',
+                    visible: false
+                },
+                {
+                    field: 'siteType',
+                    title: '分类id',
+                    formatter: function(value, row, index) {
+                       return $.table.selectDictLabel(siteTypeDatas, value);
+                    }
+                },
+                {
+                    field: 'session',
+                    title: '时段'
+                },
+                {
+                    field: 'price',
+                    title: '价格'
+                },
+                {
+                    field: 'venueId',
+                    title: '场馆id'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

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

@@ -0,0 +1,122 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增球场管理')" />
+    <th:block th:include="include :: summernote-css" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-site-add">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">名称:</label>
+                    <div class="col-sm-8">
+                        <input name="name" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">分类id:</label>
+                    <div class="col-sm-8">
+                        <select name="siteType" class="form-control" th:with="type=${@dict.getType('site_type')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">封面:</label>
+                    <div class="col-sm-8">
+                        <input name="cover" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">简介:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" class="form-control" name="intro">
+                        <div class="summernote" id="intro"></div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">价格:</label>
+                    <div class="col-sm-8">
+                        <input name="price" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">温馨提示:</label>
+                    <div class="col-sm-8">
+                        <input name="warmReminder" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆id:</label>
+                    <div class="col-sm-8">
+                        <input name="venueId" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: summernote-js" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/site"
+        $("#form-site-add").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/add", $('#form-site-add').serialize());
+            }
+        }
+
+        $(function() {
+            $('.summernote').summernote({
+                lang: 'zh-CN',
+                dialogsInBody: true,
+                callbacks: {
+                    onChange: function(contents, $edittable) {
+                        $("input[name='" + this.id + "']").val(contents);
+                    },
+                    onImageUpload: function(files) {
+                        var obj = this;
+                    	var data = new FormData();
+                    	data.append("file", files[0]);
+                    	$.ajax({
+                            type: "post",
+                            url: ctx + "common/upload",
+                    		data: data,
+                    		cache: false,
+                    		contentType: false,
+                    		processData: false,
+                    		dataType: 'json',
+                    		success: function(result) {
+                    		    if (result.code == web_status.SUCCESS) {
+                    		        $('#' + obj.id).summernote('insertImage', result.url);
+                    		    } else {
+                    		        $.modal.alertError(result.msg);
+                    		    }
+                    		},
+                    		error: function(error) {
+                    		    $.modal.alertWarning("图片上传失败。");
+                    		}
+                    	});
+                    }
+                }
+            });
+        });
+    </script>
+</body>
+</html>

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

@@ -0,0 +1,127 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改球场管理')" />
+    <th:block th:include="include :: summernote-css" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-site-edit" th:object="${beilvSite}">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">名称:</label>
+                    <div class="col-sm-8">
+                        <input name="name" th:field="*{name}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">分类id:</label>
+                    <div class="col-sm-8">
+                        <select name="siteType" class="form-control" th:with="type=${@dict.getType('site_type')}">
+                            <option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}" th:field="*{siteType}"></option>
+                        </select>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">封面:</label>
+                    <div class="col-sm-8">
+                        <input name="cover" th:field="*{cover}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">简介:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" class="form-control" th:field="*{intro}">
+                        <div class="summernote" id="intro"></div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">价格:</label>
+                    <div class="col-sm-8">
+                        <input name="price" th:field="*{price}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">温馨提示:</label>
+                    <div class="col-sm-8">
+                        <input name="warmReminder" th:field="*{warmReminder}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆id:</label>
+                    <div class="col-sm-8">
+                        <input name="venueId" th:field="*{venueId}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: summernote-js" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/site";
+        $("#form-site-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-site-edit').serialize());
+            }
+        }
+
+        $(function() {
+            $('.summernote').each(function(i) {
+                $('#' + this.id).summernote({
+                    lang: 'zh-CN',
+                    dialogsInBody: true,
+                    callbacks: {
+                        onChange: function(contents, $edittable) {
+                            $("input[name='" + this.id + "']").val(contents);
+                        },
+                        onImageUpload: function(files) {
+                            var obj = this;
+                            var data = new FormData();
+                            data.append("file", files[0]);
+                            $.ajax({
+                                type: "post",
+                                url: ctx + "common/upload",
+                                data: data,
+                                cache: false,
+                                contentType: false,
+                                processData: false,
+                                dataType: 'json',
+                                success: function(result) {
+                                    if (result.code == web_status.SUCCESS) {
+                                        $('#' + obj.id).summernote('insertImage', result.url);
+                                    } else {
+                                        $.modal.alertError(result.msg);
+                                    }
+                                },
+                                error: function(error) {
+                                    $.modal.alertWarning("图片上传失败。");
+                                }
+                            });
+                        }
+                    }
+                });
+                var content = $("input[name='" + this.id + "']").val();
+                $('#' + this.id).summernote('code', content);
+            })
+        });
+    </script>
+</body>
+</html>

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

@@ -0,0 +1,141 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <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" name="name"/>
+                            </li>
+                            <li>
+                                <label>分类id:</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>
+                                <label>封面:</label>
+                                <input type="text" name="cover"/>
+                            </li>
+                            <li>
+                                <label>价格:</label>
+                                <input type="text" name="price"/>
+                            </li>
+                            <li>
+                                <label>温馨提示:</label>
+                                <input type="text" name="warmReminder"/>
+                            </li>
+                            <li>
+                                <label>场馆id:</label>
+                                <input type="text" name="venueId"/>
+                            </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="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" 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>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('system:site:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('system:site:remove')}]];
+        var siteTypeDatas = [[${@dict.getType('site_type')}]];
+        var prefix = ctx + "system/site";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "球场管理",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field: 'id',
+                    title: 'id',
+                    visible: false
+                },
+                {
+                    field: 'name',
+                    title: '名称'
+                },
+                {
+                    field: 'siteType',
+                    title: '分类id',
+                    formatter: function(value, row, index) {
+                       return $.table.selectDictLabel(siteTypeDatas, value);
+                    }
+                },
+                {
+                    field: 'cover',
+                    title: '封面'
+                },
+                {
+                    field: 'intro',
+                    title: '简介'
+                },
+                {
+                    field: 'price',
+                    title: '价格'
+                },
+                {
+                    field: 'warmReminder',
+                    title: '温馨提示'
+                },
+                {
+                    field: 'siteStatus',
+                    title: '状态'
+                },
+                {
+                    field: 'venueId',
+                    title: '场馆id'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 146 - 0
qmjszx-admin/src/main/resources/templates/system/venue/add.html

@@ -0,0 +1,146 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('新增场馆信息')" />
+    <th:block th:include="include :: datetimepicker-css" />
+    <th:block th:include="include :: bootstrap-fileinput-css"/>
+    <th:block th:include="include :: summernote-css" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-venue-add">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">图片:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" name="cover">
+                        <div class="file-loading">
+                            <input class="form-control file-upload" id="cover" name="file" type="file">
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">地址:</label>
+                    <div class="col-sm-8">
+                        <input name="address" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">电话:</label>
+                    <div class="col-sm-8">
+                        <input name="phoneNumber" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">营业时间:</label>
+                    <div class="col-sm-8">
+                        <div class="input-group date">
+                            <input name="businessHours" class="form-control" placeholder="yyyy-MM-dd" type="text">
+                            <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆介绍:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" class="form-control" name="venueIntroduction">
+                        <div class="summernote" id="venueIntroduction"></div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场地服务:</label>
+                    <div class="col-sm-8">
+                        <input name="venueService" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">开始前N分钟不可预定:</label>
+                    <div class="col-sm-8">
+                        <input name="thresholdValue" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: datetimepicker-js" />
+    <th:block th:include="include :: bootstrap-fileinput-js"/>
+    <th:block th:include="include :: summernote-js" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/venue"
+        $("#form-venue-add").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/add", $('#form-venue-add').serialize());
+            }
+        }
+
+        $("input[name='businessHours']").datetimepicker({
+            format: "yyyy-mm-dd",
+            minView: "month",
+            autoclose: true
+        });
+
+        $(".file-upload").fileinput({
+            uploadUrl: ctx + 'common/upload',
+            maxFileCount: 1,
+            autoReplace: true
+        }).on('fileuploaded', function (event, data, previewId, index) {
+            $("input[name='" + event.currentTarget.id + "']").val(data.response.url)
+        }).on('fileremoved', function (event, id, index) {
+            $("input[name='" + event.currentTarget.id + "']").val('')
+        })
+
+        $(function() {
+            $('.summernote').summernote({
+                lang: 'zh-CN',
+                dialogsInBody: true,
+                callbacks: {
+                    onChange: function(contents, $edittable) {
+                        $("input[name='" + this.id + "']").val(contents);
+                    },
+                    onImageUpload: function(files) {
+                        var obj = this;
+                    	var data = new FormData();
+                    	data.append("file", files[0]);
+                    	$.ajax({
+                            type: "post",
+                            url: ctx + "common/upload",
+                    		data: data,
+                    		cache: false,
+                    		contentType: false,
+                    		processData: false,
+                    		dataType: 'json',
+                    		success: function(result) {
+                    		    if (result.code == web_status.SUCCESS) {
+                    		        $('#' + obj.id).summernote('insertImage', result.url);
+                    		    } else {
+                    		        $.modal.alertError(result.msg);
+                    		    }
+                    		},
+                    		error: function(error) {
+                    		    $.modal.alertWarning("图片上传失败。");
+                    		}
+                    	});
+                    }
+                }
+            });
+        });
+    </script>
+</body>
+</html>

+ 157 - 0
qmjszx-admin/src/main/resources/templates/system/venue/edit.html

@@ -0,0 +1,157 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" >
+<head>
+    <th:block th:include="include :: header('修改场馆信息')" />
+    <th:block th:include="include :: datetimepicker-css" />
+    <th:block th:include="include :: bootstrap-fileinput-css"/>
+    <th:block th:include="include :: summernote-css" />
+</head>
+<body class="white-bg">
+    <div class="wrapper wrapper-content animated fadeInRight ibox-content">
+        <form class="form-horizontal m" id="form-venue-edit" th:object="${beilvVenue}">
+            <input name="id" th:field="*{id}" type="hidden">
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">图片:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" name="cover" th:field="*{cover}">
+                       <div class="file-loading">
+                            <input class="form-control file-upload" id="cover" name="file" type="file">
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">地址:</label>
+                    <div class="col-sm-8">
+                        <input name="address" th:field="*{address}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">电话:</label>
+                    <div class="col-sm-8">
+                        <input name="phoneNumber" th:field="*{phoneNumber}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">营业时间:</label>
+                    <div class="col-sm-8">
+                        <div class="input-group date">
+                            <input name="businessHours" th:value="${#dates.format(beilvVenue.businessHours, 'yyyy-MM-dd')}" class="form-control" placeholder="yyyy-MM-dd" type="text">
+                            <span class="input-group-addon"><i class="fa fa-calendar"></i></span>
+                        </div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场馆介绍:</label>
+                    <div class="col-sm-8">
+                        <input type="hidden" class="form-control" th:field="*{venueIntroduction}">
+                        <div class="summernote" id="venueIntroduction"></div>
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">场地服务:</label>
+                    <div class="col-sm-8">
+                        <input name="venueService" th:field="*{venueService}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+            <div class="col-xs-12">
+                <div class="form-group">
+                    <label class="col-sm-3 control-label">开始前N分钟不可预定:</label>
+                    <div class="col-sm-8">
+                        <input name="thresholdValue" th:field="*{thresholdValue}" class="form-control" type="text">
+                    </div>
+                </div>
+            </div>
+        </form>
+    </div>
+    <th:block th:include="include :: footer" />
+    <th:block th:include="include :: datetimepicker-js" />
+    <th:block th:include="include :: bootstrap-fileinput-js"/>
+    <th:block th:include="include :: summernote-js" />
+    <script th:inline="javascript">
+        var prefix = ctx + "system/venue";
+        $("#form-venue-edit").validate({
+            focusCleanup: true
+        });
+
+        function submitHandler() {
+            if ($.validate.form()) {
+                $.operate.save(prefix + "/edit", $('#form-venue-edit').serialize());
+            }
+        }
+
+        $("input[name='businessHours']").datetimepicker({
+            format: "yyyy-mm-dd",
+            minView: "month",
+            autoclose: true
+        });
+
+        $(".file-upload").each(function (i) {
+            var val = $("input[name='" + this.id + "']").val()
+            $(this).fileinput({
+                'uploadUrl': ctx + 'common/upload',
+                initialPreviewAsData: true,
+                initialPreview: [val],
+                maxFileCount: 1,
+                autoReplace: true
+            }).on('fileuploaded', function (event, data, previewId, index) {
+                $("input[name='" + event.currentTarget.id + "']").val(data.response.url)
+            }).on('fileremoved', function (event, id, index) {
+                $("input[name='" + event.currentTarget.id + "']").val('')
+            })
+            $(this).fileinput('_initFileActions');
+        });
+
+        $(function() {
+            $('.summernote').each(function(i) {
+                $('#' + this.id).summernote({
+                    lang: 'zh-CN',
+                    dialogsInBody: true,
+                    callbacks: {
+                        onChange: function(contents, $edittable) {
+                            $("input[name='" + this.id + "']").val(contents);
+                        },
+                        onImageUpload: function(files) {
+                            var obj = this;
+                            var data = new FormData();
+                            data.append("file", files[0]);
+                            $.ajax({
+                                type: "post",
+                                url: ctx + "common/upload",
+                                data: data,
+                                cache: false,
+                                contentType: false,
+                                processData: false,
+                                dataType: 'json',
+                                success: function(result) {
+                                    if (result.code == web_status.SUCCESS) {
+                                        $('#' + obj.id).summernote('insertImage', result.url);
+                                    } else {
+                                        $.modal.alertError(result.msg);
+                                    }
+                                },
+                                error: function(error) {
+                                    $.modal.alertWarning("图片上传失败。");
+                                }
+                            });
+                        }
+                    }
+                });
+                var content = $("input[name='" + this.id + "']").val();
+                $('#' + this.id).summernote('code', content);
+            })
+        });
+    </script>
+</body>
+</html>

+ 126 - 0
qmjszx-admin/src/main/resources/templates/system/venue/venue.html

@@ -0,0 +1,126 @@
+<!DOCTYPE html>
+<html lang="zh" xmlns:th="http://www.thymeleaf.org" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro">
+<head>
+    <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" name="address"/>
+                            </li>
+                            <li>
+                                <label>电话:</label>
+                                <input type="text" name="phoneNumber"/>
+                            </li>
+                            <li>
+                                <label>营业时间:</label>
+                                <input type="text" class="time-input" placeholder="请选择营业时间" name="businessHours"/>
+                            </li>
+                            <li>
+                                <label>场地服务:</label>
+                                <input type="text" name="venueService"/>
+                            </li>
+                            <li>
+                                <label>开始前N分钟不可预定:</label>
+                                <input type="text" name="thresholdValue"/>
+                            </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="btn-group-sm" id="toolbar" role="group">
+                <a class="btn btn-success" onclick="$.operate.add()" shiro:hasPermission="system:venue:add">
+                    <i class="fa fa-plus"></i> 添加
+                </a>
+                <a class="btn btn-primary single disabled" onclick="$.operate.edit()" shiro:hasPermission="system:venue:edit">
+                    <i class="fa fa-edit"></i> 修改
+                </a>
+                <a class="btn btn-danger multiple disabled" onclick="$.operate.removeAll()" shiro:hasPermission="system:venue:remove">
+                    <i class="fa fa-remove"></i> 删除
+                </a>
+                <a class="btn btn-warning" onclick="$.table.exportExcel()" shiro:hasPermission="system:venue:export">
+                    <i class="fa fa-download"></i> 导出
+                </a>
+            </div>
+            <div class="col-sm-12 select-table table-striped">
+                <table id="bootstrap-table"></table>
+            </div>
+        </div>
+    </div>
+    <th:block th:include="include :: footer" />
+    <script th:inline="javascript">
+        var editFlag = [[${@permission.hasPermi('system:venue:edit')}]];
+        var removeFlag = [[${@permission.hasPermi('system:venue:remove')}]];
+        var prefix = ctx + "system/venue";
+
+        $(function() {
+            var options = {
+                url: prefix + "/list",
+                createUrl: prefix + "/add",
+                updateUrl: prefix + "/edit/{id}",
+                removeUrl: prefix + "/remove",
+                exportUrl: prefix + "/export",
+                modalName: "场馆信息",
+                columns: [{
+                    checkbox: true
+                },
+                {
+                    field: 'id',
+                    title: 'id',
+                    visible: false
+                },
+                {
+                    field: 'cover',
+                    title: '图片'
+                },
+                {
+                    field: 'address',
+                    title: '地址'
+                },
+                {
+                    field: 'phoneNumber',
+                    title: '电话'
+                },
+                {
+                    field: 'businessHours',
+                    title: '营业时间'
+                },
+                {
+                    field: 'venueIntroduction',
+                    title: '场馆介绍'
+                },
+                {
+                    field: 'venueService',
+                    title: '场地服务'
+                },
+                {
+                    field: 'thresholdValue',
+                    title: '开始前N分钟不可预定'
+                },
+                {
+                    title: '操作',
+                    align: 'center',
+                    formatter: function(value, row, index) {
+                        var actions = [];
+                        actions.push('<a class="btn btn-success btn-xs ' + editFlag + '" href="javascript:void(0)" onclick="$.operate.edit(\'' + row.id + '\')"><i class="fa fa-edit"></i>编辑</a> ');
+                        actions.push('<a class="btn btn-danger btn-xs ' + removeFlag + '" href="javascript:void(0)" onclick="$.operate.remove(\'' + row.id + '\')"><i class="fa fa-remove"></i>删除</a>');
+                        return actions.join('');
+                    }
+                }]
+            };
+            $.table.init(options);
+        });
+    </script>
+</body>
+</html>

+ 130 - 0
qmjszx-business/src/main/java/beilv/session/controller/BeilvSessionController.java

@@ -0,0 +1,130 @@
+package beilv.session.controller;
+
+import java.util.List;
+
+import beilv.session.domain.BeilvSession;
+import beilv.session.service.IBeilvSessionService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import beilv.common.annotation.Log;
+import beilv.common.enums.BusinessType;
+
+import beilv.common.core.controller.BaseController;
+import beilv.common.core.domain.AjaxResult;
+import beilv.common.utils.poi.ExcelUtil;
+import beilv.common.core.page.TableDataInfo;
+
+/**
+ * 时段管理Controller
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+@Controller
+@RequestMapping("/system/session")
+public class BeilvSessionController extends BaseController
+{
+    private String prefix = "system/session";
+
+    @Autowired
+    private IBeilvSessionService beilvSessionService;
+
+    @RequiresPermissions("system:session:view")
+    @GetMapping()
+    public String session()
+    {
+        return prefix + "/session";
+    }
+
+    /**
+     * 查询时段管理列表
+     */
+    @RequiresPermissions("system:session:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(BeilvSession beilvSession)
+    {
+        startPage();
+        List<BeilvSession> list = beilvSessionService.selectBeilvSessionList(beilvSession);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出时段管理列表
+     */
+    @RequiresPermissions("system:session:export")
+    @Log(title = "时段管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ResponseBody
+    public AjaxResult export(BeilvSession beilvSession)
+    {
+        List<BeilvSession> list = beilvSessionService.selectBeilvSessionList(beilvSession);
+        ExcelUtil<BeilvSession> util = new ExcelUtil<BeilvSession>(BeilvSession.class);
+        return util.exportExcel(list, "时段管理数据");
+    }
+
+    /**
+     * 新增时段管理
+     */
+    @RequiresPermissions("system:session:add")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存时段管理
+     */
+    @RequiresPermissions("system:session:add")
+    @Log(title = "时段管理", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(BeilvSession beilvSession)
+    {
+        return toAjax(beilvSessionService.insertBeilvSession(beilvSession));
+    }
+
+    /**
+     * 修改时段管理
+     */
+    @RequiresPermissions("system:session:edit")
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Long id, ModelMap mmap)
+    {
+        BeilvSession beilvSession = beilvSessionService.selectBeilvSessionById(id);
+        mmap.put("beilvSession", beilvSession);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存时段管理
+     */
+    @RequiresPermissions("system:session:edit")
+    @Log(title = "时段管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(BeilvSession beilvSession)
+    {
+        return toAjax(beilvSessionService.updateBeilvSession(beilvSession));
+    }
+
+    /**
+     * 删除时段管理
+     */
+    @RequiresPermissions("system:session:remove")
+    @Log(title = "时段管理", businessType = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids)
+    {
+        return toAjax(beilvSessionService.deleteBeilvSessionByIds(ids));
+    }
+}

+ 98 - 0
qmjszx-business/src/main/java/beilv/session/domain/BeilvSession.java

@@ -0,0 +1,98 @@
+package beilv.session.domain;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import beilv.common.annotation.Excel;
+import beilv.common.core.domain.BaseEntity;
+
+/**
+ * 时段管理对象 beilv_session
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public class BeilvSession extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 分类id */
+    @Excel(name = "分类id")
+    private String siteType;
+
+    /** 时段 */
+    @Excel(name = "时段")
+    private String session;
+
+    /** 价格 */
+    @Excel(name = "价格")
+    private BigDecimal price;
+
+    /** 场馆id */
+    @Excel(name = "场馆id")
+    private Long venueId;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setSiteType(String siteType) 
+    {
+        this.siteType = siteType;
+    }
+
+    public String getSiteType() 
+    {
+        return siteType;
+    }
+
+    public void setSession(String session) 
+    {
+        this.session = session;
+    }
+
+    public String getSession() 
+    {
+        return session;
+    }
+
+    public void setPrice(BigDecimal price) 
+    {
+        this.price = price;
+    }
+
+    public BigDecimal getPrice() 
+    {
+        return price;
+    }
+
+    public void setVenueId(Long venueId) 
+    {
+        this.venueId = venueId;
+    }
+
+    public Long getVenueId() 
+    {
+        return venueId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("siteType", getSiteType())
+            .append("session", getSession())
+            .append("price", getPrice())
+            .append("venueId", getVenueId())
+            .toString();
+    }
+}

+ 63 - 0
qmjszx-business/src/main/java/beilv/session/mapper/BeilvSessionMapper.java

@@ -0,0 +1,63 @@
+package beilv.session.mapper;
+
+
+import beilv.session.domain.BeilvSession;
+
+import java.util.List;
+
+/**
+ * 时段管理Mapper接口
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public interface BeilvSessionMapper 
+{
+    /**
+     * 查询时段管理
+     * 
+     * @param id 时段管理主键
+     * @return 时段管理
+     */
+    public BeilvSession selectBeilvSessionById(Long id);
+
+    /**
+     * 查询时段管理列表
+     * 
+     * @param beilvSession 时段管理
+     * @return 时段管理集合
+     */
+    public List<BeilvSession> selectBeilvSessionList(BeilvSession beilvSession);
+
+    /**
+     * 新增时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    public int insertBeilvSession(BeilvSession beilvSession);
+
+    /**
+     * 修改时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    public int updateBeilvSession(BeilvSession beilvSession);
+
+    /**
+     * 删除时段管理
+     * 
+     * @param id 时段管理主键
+     * @return 结果
+     */
+    public int deleteBeilvSessionById(Long id);
+
+    /**
+     * 批量删除时段管理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBeilvSessionByIds(String[] ids);
+}

+ 63 - 0
qmjszx-business/src/main/java/beilv/session/service/IBeilvSessionService.java

@@ -0,0 +1,63 @@
+package beilv.session.service;
+
+
+import beilv.session.domain.BeilvSession;
+
+import java.util.List;
+
+/**
+ * 时段管理Service接口
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public interface IBeilvSessionService 
+{
+    /**
+     * 查询时段管理
+     * 
+     * @param id 时段管理主键
+     * @return 时段管理
+     */
+    public BeilvSession selectBeilvSessionById(Long id);
+
+    /**
+     * 查询时段管理列表
+     * 
+     * @param beilvSession 时段管理
+     * @return 时段管理集合
+     */
+    public List<BeilvSession> selectBeilvSessionList(BeilvSession beilvSession);
+
+    /**
+     * 新增时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    public int insertBeilvSession(BeilvSession beilvSession);
+
+    /**
+     * 修改时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    public int updateBeilvSession(BeilvSession beilvSession);
+
+    /**
+     * 批量删除时段管理
+     * 
+     * @param ids 需要删除的时段管理主键集合
+     * @return 结果
+     */
+    public int deleteBeilvSessionByIds(String ids);
+
+    /**
+     * 删除时段管理信息
+     * 
+     * @param id 时段管理主键
+     * @return 结果
+     */
+    public int deleteBeilvSessionById(Long id);
+}

+ 96 - 0
qmjszx-business/src/main/java/beilv/session/service/impl/BeilvSessionServiceImpl.java

@@ -0,0 +1,96 @@
+package beilv.session.service.impl;
+
+import java.util.List;
+
+import beilv.session.domain.BeilvSession;
+import beilv.session.mapper.BeilvSessionMapper;
+import beilv.session.service.IBeilvSessionService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import beilv.common.core.text.Convert;
+
+/**
+ * 时段管理Service业务层处理
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+@Service
+public class BeilvSessionServiceImpl implements IBeilvSessionService
+{
+    @Autowired
+    private BeilvSessionMapper beilvSessionMapper;
+
+    /**
+     * 查询时段管理
+     * 
+     * @param id 时段管理主键
+     * @return 时段管理
+     */
+    @Override
+    public BeilvSession selectBeilvSessionById(Long id)
+    {
+        return beilvSessionMapper.selectBeilvSessionById(id);
+    }
+
+    /**
+     * 查询时段管理列表
+     * 
+     * @param beilvSession 时段管理
+     * @return 时段管理
+     */
+    @Override
+    public List<BeilvSession> selectBeilvSessionList(BeilvSession beilvSession)
+    {
+        return beilvSessionMapper.selectBeilvSessionList(beilvSession);
+    }
+
+    /**
+     * 新增时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    @Override
+    public int insertBeilvSession(BeilvSession beilvSession)
+    {
+        return beilvSessionMapper.insertBeilvSession(beilvSession);
+    }
+
+    /**
+     * 修改时段管理
+     * 
+     * @param beilvSession 时段管理
+     * @return 结果
+     */
+    @Override
+    public int updateBeilvSession(BeilvSession beilvSession)
+    {
+        return beilvSessionMapper.updateBeilvSession(beilvSession);
+    }
+
+    /**
+     * 批量删除时段管理
+     * 
+     * @param ids 需要删除的时段管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvSessionByIds(String ids)
+    {
+        return beilvSessionMapper.deleteBeilvSessionByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除时段管理信息
+     * 
+     * @param id 时段管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvSessionById(Long id)
+    {
+        return beilvSessionMapper.deleteBeilvSessionById(id);
+    }
+}

+ 128 - 0
qmjszx-business/src/main/java/beilv/site/controller/BeilvSiteController.java

@@ -0,0 +1,128 @@
+package beilv.site.controller;
+
+import java.util.List;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import beilv.common.annotation.Log;
+import beilv.common.enums.BusinessType;
+import beilv.site.domain.BeilvSite;
+import beilv.site.service.IBeilvSiteService;
+import beilv.common.core.controller.BaseController;
+import beilv.common.core.domain.AjaxResult;
+import beilv.common.utils.poi.ExcelUtil;
+import beilv.common.core.page.TableDataInfo;
+
+/**
+ * 球场管理Controller
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+@Controller
+@RequestMapping("/system/site")
+public class BeilvSiteController extends BaseController
+{
+    private String prefix = "system/site";
+
+    @Autowired
+    private IBeilvSiteService beilvSiteService;
+
+    @RequiresPermissions("system:site:view")
+    @GetMapping()
+    public String site()
+    {
+        return prefix + "/site";
+    }
+
+    /**
+     * 查询球场管理列表
+     */
+    @RequiresPermissions("system:site:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(BeilvSite beilvSite)
+    {
+        startPage();
+        List<BeilvSite> list = beilvSiteService.selectBeilvSiteList(beilvSite);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出球场管理列表
+     */
+    @RequiresPermissions("system:site:export")
+    @Log(title = "球场管理", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ResponseBody
+    public AjaxResult export(BeilvSite beilvSite)
+    {
+        List<BeilvSite> list = beilvSiteService.selectBeilvSiteList(beilvSite);
+        ExcelUtil<BeilvSite> util = new ExcelUtil<BeilvSite>(BeilvSite.class);
+        return util.exportExcel(list, "球场管理数据");
+    }
+
+    /**
+     * 新增球场管理
+     */
+    @RequiresPermissions("system:site:add")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存球场管理
+     */
+    @RequiresPermissions("system:site:add")
+    @Log(title = "球场管理", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(BeilvSite beilvSite)
+    {
+        return toAjax(beilvSiteService.insertBeilvSite(beilvSite));
+    }
+
+    /**
+     * 修改球场管理
+     */
+    @RequiresPermissions("system:site:edit")
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Long id, ModelMap mmap)
+    {
+        BeilvSite beilvSite = beilvSiteService.selectBeilvSiteById(id);
+        mmap.put("beilvSite", beilvSite);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存球场管理
+     */
+    @RequiresPermissions("system:site:edit")
+    @Log(title = "球场管理", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(BeilvSite beilvSite)
+    {
+        return toAjax(beilvSiteService.updateBeilvSite(beilvSite));
+    }
+
+    /**
+     * 删除球场管理
+     */
+    @RequiresPermissions("system:site:remove")
+    @Log(title = "球场管理", businessType = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids)
+    {
+        return toAjax(beilvSiteService.deleteBeilvSiteByIds(ids));
+    }
+}

+ 158 - 0
qmjszx-business/src/main/java/beilv/site/domain/BeilvSite.java

@@ -0,0 +1,158 @@
+package beilv.site.domain;
+
+import java.math.BigDecimal;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import beilv.common.annotation.Excel;
+import beilv.common.core.domain.BaseEntity;
+
+/**
+ * 球场管理对象 beilv_site
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public class BeilvSite extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 名称 */
+    @Excel(name = "名称")
+    private String name;
+
+    /** 分类id */
+    @Excel(name = "分类id")
+    private String siteType;
+
+    /** 封面 */
+    @Excel(name = "封面")
+    private String cover;
+
+    /** 简介 */
+    @Excel(name = "简介")
+    private String intro;
+
+    /** 价格 */
+    @Excel(name = "价格")
+    private BigDecimal price;
+
+    /** 温馨提示 */
+    @Excel(name = "温馨提示")
+    private String warmReminder;
+
+    /** 状态 */
+    @Excel(name = "状态")
+    private String siteStatus;
+
+    /** 场馆id */
+    @Excel(name = "场馆id")
+    private Long venueId;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setName(String name) 
+    {
+        this.name = name;
+    }
+
+    public String getName() 
+    {
+        return name;
+    }
+
+    public void setSiteType(String siteType) 
+    {
+        this.siteType = siteType;
+    }
+
+    public String getSiteType() 
+    {
+        return siteType;
+    }
+
+    public void setCover(String cover) 
+    {
+        this.cover = cover;
+    }
+
+    public String getCover() 
+    {
+        return cover;
+    }
+
+    public void setIntro(String intro) 
+    {
+        this.intro = intro;
+    }
+
+    public String getIntro() 
+    {
+        return intro;
+    }
+
+    public void setPrice(BigDecimal price) 
+    {
+        this.price = price;
+    }
+
+    public BigDecimal getPrice() 
+    {
+        return price;
+    }
+
+    public void setWarmReminder(String warmReminder) 
+    {
+        this.warmReminder = warmReminder;
+    }
+
+    public String getWarmReminder() 
+    {
+        return warmReminder;
+    }
+
+    public void setSiteStatus(String siteStatus) 
+    {
+        this.siteStatus = siteStatus;
+    }
+
+    public String getSiteStatus() 
+    {
+        return siteStatus;
+    }
+
+    public void setVenueId(Long venueId) 
+    {
+        this.venueId = venueId;
+    }
+
+    public Long getVenueId() 
+    {
+        return venueId;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("name", getName())
+            .append("siteType", getSiteType())
+            .append("cover", getCover())
+            .append("intro", getIntro())
+            .append("price", getPrice())
+            .append("warmReminder", getWarmReminder())
+            .append("siteStatus", getSiteStatus())
+            .append("venueId", getVenueId())
+            .toString();
+    }
+}

+ 61 - 0
qmjszx-business/src/main/java/beilv/site/mapper/BeilvSiteMapper.java

@@ -0,0 +1,61 @@
+package beilv.site.mapper;
+
+import java.util.List;
+import beilv.site.domain.BeilvSite;
+
+/**
+ * 球场管理Mapper接口
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public interface BeilvSiteMapper 
+{
+    /**
+     * 查询球场管理
+     * 
+     * @param id 球场管理主键
+     * @return 球场管理
+     */
+    public BeilvSite selectBeilvSiteById(Long id);
+
+    /**
+     * 查询球场管理列表
+     * 
+     * @param beilvSite 球场管理
+     * @return 球场管理集合
+     */
+    public List<BeilvSite> selectBeilvSiteList(BeilvSite beilvSite);
+
+    /**
+     * 新增球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    public int insertBeilvSite(BeilvSite beilvSite);
+
+    /**
+     * 修改球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    public int updateBeilvSite(BeilvSite beilvSite);
+
+    /**
+     * 删除球场管理
+     * 
+     * @param id 球场管理主键
+     * @return 结果
+     */
+    public int deleteBeilvSiteById(Long id);
+
+    /**
+     * 批量删除球场管理
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBeilvSiteByIds(String[] ids);
+}

+ 61 - 0
qmjszx-business/src/main/java/beilv/site/service/IBeilvSiteService.java

@@ -0,0 +1,61 @@
+package beilv.site.service;
+
+import java.util.List;
+import beilv.site.domain.BeilvSite;
+
+/**
+ * 球场管理Service接口
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+public interface IBeilvSiteService 
+{
+    /**
+     * 查询球场管理
+     * 
+     * @param id 球场管理主键
+     * @return 球场管理
+     */
+    public BeilvSite selectBeilvSiteById(Long id);
+
+    /**
+     * 查询球场管理列表
+     * 
+     * @param beilvSite 球场管理
+     * @return 球场管理集合
+     */
+    public List<BeilvSite> selectBeilvSiteList(BeilvSite beilvSite);
+
+    /**
+     * 新增球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    public int insertBeilvSite(BeilvSite beilvSite);
+
+    /**
+     * 修改球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    public int updateBeilvSite(BeilvSite beilvSite);
+
+    /**
+     * 批量删除球场管理
+     * 
+     * @param ids 需要删除的球场管理主键集合
+     * @return 结果
+     */
+    public int deleteBeilvSiteByIds(String ids);
+
+    /**
+     * 删除球场管理信息
+     * 
+     * @param id 球场管理主键
+     * @return 结果
+     */
+    public int deleteBeilvSiteById(Long id);
+}

+ 94 - 0
qmjszx-business/src/main/java/beilv/site/service/impl/BeilvSiteServiceImpl.java

@@ -0,0 +1,94 @@
+package beilv.site.service.impl;
+
+import java.util.List;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import beilv.site.mapper.BeilvSiteMapper;
+import beilv.site.domain.BeilvSite;
+import beilv.site.service.IBeilvSiteService;
+import beilv.common.core.text.Convert;
+
+/**
+ * 球场管理Service业务层处理
+ * 
+ * @author lc
+ * @date 2025-01-06
+ */
+@Service
+public class BeilvSiteServiceImpl implements IBeilvSiteService 
+{
+    @Autowired
+    private BeilvSiteMapper beilvSiteMapper;
+
+    /**
+     * 查询球场管理
+     * 
+     * @param id 球场管理主键
+     * @return 球场管理
+     */
+    @Override
+    public BeilvSite selectBeilvSiteById(Long id)
+    {
+        return beilvSiteMapper.selectBeilvSiteById(id);
+    }
+
+    /**
+     * 查询球场管理列表
+     * 
+     * @param beilvSite 球场管理
+     * @return 球场管理
+     */
+    @Override
+    public List<BeilvSite> selectBeilvSiteList(BeilvSite beilvSite)
+    {
+        return beilvSiteMapper.selectBeilvSiteList(beilvSite);
+    }
+
+    /**
+     * 新增球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    @Override
+    public int insertBeilvSite(BeilvSite beilvSite)
+    {
+        return beilvSiteMapper.insertBeilvSite(beilvSite);
+    }
+
+    /**
+     * 修改球场管理
+     * 
+     * @param beilvSite 球场管理
+     * @return 结果
+     */
+    @Override
+    public int updateBeilvSite(BeilvSite beilvSite)
+    {
+        return beilvSiteMapper.updateBeilvSite(beilvSite);
+    }
+
+    /**
+     * 批量删除球场管理
+     * 
+     * @param ids 需要删除的球场管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvSiteByIds(String ids)
+    {
+        return beilvSiteMapper.deleteBeilvSiteByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除球场管理信息
+     * 
+     * @param id 球场管理主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvSiteById(Long id)
+    {
+        return beilvSiteMapper.deleteBeilvSiteById(id);
+    }
+}

+ 130 - 0
qmjszx-business/src/main/java/beilv/venue/controller/BeilvVenueController.java

@@ -0,0 +1,130 @@
+package beilv.venue.controller;
+
+import java.util.List;
+
+import beilv.venue.domain.BeilvVenue;
+import beilv.venue.service.IBeilvVenueService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.ui.ModelMap;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PathVariable;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+import beilv.common.annotation.Log;
+import beilv.common.enums.BusinessType;
+
+import beilv.common.core.controller.BaseController;
+import beilv.common.core.domain.AjaxResult;
+import beilv.common.utils.poi.ExcelUtil;
+import beilv.common.core.page.TableDataInfo;
+
+/**
+ * 场馆信息Controller
+ * 
+ * @author ruoyi
+ * @date 2025-01-06
+ */
+@Controller
+@RequestMapping("/system/venue")
+public class BeilvVenueController extends BaseController
+{
+    private String prefix = "system/venue";
+
+    @Autowired
+    private IBeilvVenueService beilvVenueService;
+
+    @RequiresPermissions("system:venue:view")
+    @GetMapping()
+    public String venue()
+    {
+        return prefix + "/venue";
+    }
+
+    /**
+     * 查询场馆信息列表
+     */
+    @RequiresPermissions("system:venue:list")
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(BeilvVenue beilvVenue)
+    {
+        startPage();
+        List<BeilvVenue> list = beilvVenueService.selectBeilvVenueList(beilvVenue);
+        return getDataTable(list);
+    }
+
+    /**
+     * 导出场馆信息列表
+     */
+    @RequiresPermissions("system:venue:export")
+    @Log(title = "场馆信息", businessType = BusinessType.EXPORT)
+    @PostMapping("/export")
+    @ResponseBody
+    public AjaxResult export(BeilvVenue beilvVenue)
+    {
+        List<BeilvVenue> list = beilvVenueService.selectBeilvVenueList(beilvVenue);
+        ExcelUtil<BeilvVenue> util = new ExcelUtil<BeilvVenue>(BeilvVenue.class);
+        return util.exportExcel(list, "场馆信息数据");
+    }
+
+    /**
+     * 新增场馆信息
+     */
+    @RequiresPermissions("system:venue:add")
+    @GetMapping("/add")
+    public String add()
+    {
+        return prefix + "/add";
+    }
+
+    /**
+     * 新增保存场馆信息
+     */
+    @RequiresPermissions("system:venue:add")
+    @Log(title = "场馆信息", businessType = BusinessType.INSERT)
+    @PostMapping("/add")
+    @ResponseBody
+    public AjaxResult addSave(BeilvVenue beilvVenue)
+    {
+        return toAjax(beilvVenueService.insertBeilvVenue(beilvVenue));
+    }
+
+    /**
+     * 修改场馆信息
+     */
+    @RequiresPermissions("system:venue:edit")
+    @GetMapping("/edit/{id}")
+    public String edit(@PathVariable("id") Long id, ModelMap mmap)
+    {
+        BeilvVenue beilvVenue = beilvVenueService.selectBeilvVenueById(id);
+        mmap.put("beilvVenue", beilvVenue);
+        return prefix + "/edit";
+    }
+
+    /**
+     * 修改保存场馆信息
+     */
+    @RequiresPermissions("system:venue:edit")
+    @Log(title = "场馆信息", businessType = BusinessType.UPDATE)
+    @PostMapping("/edit")
+    @ResponseBody
+    public AjaxResult editSave(BeilvVenue beilvVenue)
+    {
+        return toAjax(beilvVenueService.updateBeilvVenue(beilvVenue));
+    }
+
+    /**
+     * 删除场馆信息
+     */
+    @RequiresPermissions("system:venue:remove")
+    @Log(title = "场馆信息", businessType = BusinessType.DELETE)
+    @PostMapping( "/remove")
+    @ResponseBody
+    public AjaxResult remove(String ids)
+    {
+        return toAjax(beilvVenueService.deleteBeilvVenueByIds(ids));
+    }
+}

+ 145 - 0
qmjszx-business/src/main/java/beilv/venue/domain/BeilvVenue.java

@@ -0,0 +1,145 @@
+package beilv.venue.domain;
+
+import java.util.Date;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.commons.lang3.builder.ToStringBuilder;
+import org.apache.commons.lang3.builder.ToStringStyle;
+import beilv.common.annotation.Excel;
+import beilv.common.core.domain.BaseEntity;
+
+/**
+ * 场馆信息对象 beilv_venue
+ * 
+ * @author ruoyi
+ * @date 2025-01-06
+ */
+public class BeilvVenue extends BaseEntity
+{
+    private static final long serialVersionUID = 1L;
+
+    /** id */
+    private Long id;
+
+    /** 图片 */
+    @Excel(name = "图片")
+    private String cover;
+
+    /** 地址 */
+    @Excel(name = "地址")
+    private String address;
+
+    /** 电话 */
+    @Excel(name = "电话")
+    private String phoneNumber;
+
+    /** 营业时间 */
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @Excel(name = "营业时间", width = 30, dateFormat = "yyyy-MM-dd")
+    private Date businessHours;
+
+    /** 场馆介绍 */
+    @Excel(name = "场馆介绍")
+    private String venueIntroduction;
+
+    /** 场地服务 */
+    @Excel(name = "场地服务")
+    private String venueService;
+
+    /** 开始前N分钟不可预定 */
+    @Excel(name = "开始前N分钟不可预定")
+    private String thresholdValue;
+
+    public void setId(Long id) 
+    {
+        this.id = id;
+    }
+
+    public Long getId() 
+    {
+        return id;
+    }
+
+    public void setCover(String cover) 
+    {
+        this.cover = cover;
+    }
+
+    public String getCover() 
+    {
+        return cover;
+    }
+
+    public void setAddress(String address) 
+    {
+        this.address = address;
+    }
+
+    public String getAddress() 
+    {
+        return address;
+    }
+
+    public void setPhoneNumber(String phoneNumber) 
+    {
+        this.phoneNumber = phoneNumber;
+    }
+
+    public String getPhoneNumber() 
+    {
+        return phoneNumber;
+    }
+
+    public void setBusinessHours(Date businessHours) 
+    {
+        this.businessHours = businessHours;
+    }
+
+    public Date getBusinessHours() 
+    {
+        return businessHours;
+    }
+
+    public void setVenueIntroduction(String venueIntroduction) 
+    {
+        this.venueIntroduction = venueIntroduction;
+    }
+
+    public String getVenueIntroduction() 
+    {
+        return venueIntroduction;
+    }
+
+    public void setVenueService(String venueService) 
+    {
+        this.venueService = venueService;
+    }
+
+    public String getVenueService() 
+    {
+        return venueService;
+    }
+
+    public void setThresholdValue(String thresholdValue) 
+    {
+        this.thresholdValue = thresholdValue;
+    }
+
+    public String getThresholdValue() 
+    {
+        return thresholdValue;
+    }
+
+    @Override
+    public String toString() {
+        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
+            .append("id", getId())
+            .append("cover", getCover())
+            .append("address", getAddress())
+            .append("phoneNumber", getPhoneNumber())
+            .append("businessHours", getBusinessHours())
+            .append("venueIntroduction", getVenueIntroduction())
+            .append("venueService", getVenueService())
+            .append("thresholdValue", getThresholdValue())
+            .toString();
+    }
+}

+ 63 - 0
qmjszx-business/src/main/java/beilv/venue/mapper/BeilvVenueMapper.java

@@ -0,0 +1,63 @@
+package beilv.venue.mapper;
+
+
+import beilv.venue.domain.BeilvVenue;
+
+import java.util.List;
+
+/**
+ * 场馆信息Mapper接口
+ * 
+ * @author ruoyi
+ * @date 2025-01-06
+ */
+public interface BeilvVenueMapper 
+{
+    /**
+     * 查询场馆信息
+     * 
+     * @param id 场馆信息主键
+     * @return 场馆信息
+     */
+    public BeilvVenue selectBeilvVenueById(Long id);
+
+    /**
+     * 查询场馆信息列表
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 场馆信息集合
+     */
+    public List<BeilvVenue> selectBeilvVenueList(BeilvVenue beilvVenue);
+
+    /**
+     * 新增场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    public int insertBeilvVenue(BeilvVenue beilvVenue);
+
+    /**
+     * 修改场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    public int updateBeilvVenue(BeilvVenue beilvVenue);
+
+    /**
+     * 删除场馆信息
+     * 
+     * @param id 场馆信息主键
+     * @return 结果
+     */
+    public int deleteBeilvVenueById(Long id);
+
+    /**
+     * 批量删除场馆信息
+     * 
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteBeilvVenueByIds(String[] ids);
+}

+ 63 - 0
qmjszx-business/src/main/java/beilv/venue/service/IBeilvVenueService.java

@@ -0,0 +1,63 @@
+package beilv.venue.service;
+
+
+import beilv.venue.domain.BeilvVenue;
+
+import java.util.List;
+
+/**
+ * 场馆信息Service接口
+ * 
+ * @author ruoyi
+ * @date 2025-01-06
+ */
+public interface IBeilvVenueService 
+{
+    /**
+     * 查询场馆信息
+     * 
+     * @param id 场馆信息主键
+     * @return 场馆信息
+     */
+    public BeilvVenue selectBeilvVenueById(Long id);
+
+    /**
+     * 查询场馆信息列表
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 场馆信息集合
+     */
+    public List<BeilvVenue> selectBeilvVenueList(BeilvVenue beilvVenue);
+
+    /**
+     * 新增场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    public int insertBeilvVenue(BeilvVenue beilvVenue);
+
+    /**
+     * 修改场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    public int updateBeilvVenue(BeilvVenue beilvVenue);
+
+    /**
+     * 批量删除场馆信息
+     * 
+     * @param ids 需要删除的场馆信息主键集合
+     * @return 结果
+     */
+    public int deleteBeilvVenueByIds(String ids);
+
+    /**
+     * 删除场馆信息信息
+     * 
+     * @param id 场馆信息主键
+     * @return 结果
+     */
+    public int deleteBeilvVenueById(Long id);
+}

+ 96 - 0
qmjszx-business/src/main/java/beilv/venue/service/impl/BeilvVenueServiceImpl.java

@@ -0,0 +1,96 @@
+package beilv.venue.service.impl;
+
+import java.util.List;
+
+import beilv.venue.domain.BeilvVenue;
+import beilv.venue.mapper.BeilvVenueMapper;
+import beilv.venue.service.IBeilvVenueService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import beilv.common.core.text.Convert;
+
+/**
+ * 场馆信息Service业务层处理
+ * 
+ * @author ruoyi
+ * @date 2025-01-06
+ */
+@Service
+public class BeilvVenueServiceImpl implements IBeilvVenueService
+{
+    @Autowired
+    private BeilvVenueMapper beilvVenueMapper;
+
+    /**
+     * 查询场馆信息
+     * 
+     * @param id 场馆信息主键
+     * @return 场馆信息
+     */
+    @Override
+    public BeilvVenue selectBeilvVenueById(Long id)
+    {
+        return beilvVenueMapper.selectBeilvVenueById(id);
+    }
+
+    /**
+     * 查询场馆信息列表
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 场馆信息
+     */
+    @Override
+    public List<BeilvVenue> selectBeilvVenueList(BeilvVenue beilvVenue)
+    {
+        return beilvVenueMapper.selectBeilvVenueList(beilvVenue);
+    }
+
+    /**
+     * 新增场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    @Override
+    public int insertBeilvVenue(BeilvVenue beilvVenue)
+    {
+        return beilvVenueMapper.insertBeilvVenue(beilvVenue);
+    }
+
+    /**
+     * 修改场馆信息
+     * 
+     * @param beilvVenue 场馆信息
+     * @return 结果
+     */
+    @Override
+    public int updateBeilvVenue(BeilvVenue beilvVenue)
+    {
+        return beilvVenueMapper.updateBeilvVenue(beilvVenue);
+    }
+
+    /**
+     * 批量删除场馆信息
+     * 
+     * @param ids 需要删除的场馆信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvVenueByIds(String ids)
+    {
+        return beilvVenueMapper.deleteBeilvVenueByIds(Convert.toStrArray(ids));
+    }
+
+    /**
+     * 删除场馆信息信息
+     * 
+     * @param id 场馆信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteBeilvVenueById(Long id)
+    {
+        return beilvVenueMapper.deleteBeilvVenueById(id);
+    }
+}

+ 74 - 0
qmjszx-business/src/main/resources/mapper/session/BeilvSessionMapper.xml

@@ -0,0 +1,74 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="beilv.session.mapper.BeilvSessionMapper">
+    
+    <resultMap type="BeilvSession" id="BeilvSessionResult">
+        <result property="id"    column="id"    />
+        <result property="siteType"    column="site_type"    />
+        <result property="session"    column="session"    />
+        <result property="price"    column="price"    />
+        <result property="venueId"    column="venue_id"    />
+    </resultMap>
+
+    <sql id="selectBeilvSessionVo">
+        select id, site_type, session, price, venue_id from beilv_session
+    </sql>
+
+    <select id="selectBeilvSessionList" parameterType="BeilvSession" resultMap="BeilvSessionResult">
+        <include refid="selectBeilvSessionVo"/>
+        <where>  
+            <if test="siteType != null  and siteType != ''"> and site_type = #{siteType}</if>
+            <if test="session != null  and session != ''"> and session = #{session}</if>
+            <if test="price != null "> and price = #{price}</if>
+            <if test="venueId != null "> and venue_id = #{venueId}</if>
+        </where>
+    </select>
+    
+    <select id="selectBeilvSessionById" parameterType="Long" resultMap="BeilvSessionResult">
+        <include refid="selectBeilvSessionVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBeilvSession" parameterType="BeilvSession">
+        insert into beilv_session
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="siteType != null">site_type,</if>
+            <if test="session != null">session,</if>
+            <if test="price != null">price,</if>
+            <if test="venueId != null">venue_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="siteType != null">#{siteType},</if>
+            <if test="session != null">#{session},</if>
+            <if test="price != null">#{price},</if>
+            <if test="venueId != null">#{venueId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBeilvSession" parameterType="BeilvSession">
+        update beilv_session
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="siteType != null">site_type = #{siteType},</if>
+            <if test="session != null">session = #{session},</if>
+            <if test="price != null">price = #{price},</if>
+            <if test="venueId != null">venue_id = #{venueId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBeilvSessionById" parameterType="Long">
+        delete from beilv_session where id = #{id}
+    </delete>
+
+    <delete id="deleteBeilvSessionByIds" parameterType="String">
+        delete from beilv_session where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 92 - 0
qmjszx-business/src/main/resources/mapper/site/BeilvSiteMapper.xml

@@ -0,0 +1,92 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="beilv.site.mapper.BeilvSiteMapper">
+    
+    <resultMap type="BeilvSite" id="BeilvSiteResult">
+        <result property="id"    column="id"    />
+        <result property="name"    column="name"    />
+        <result property="siteType"    column="site_type"    />
+        <result property="cover"    column="cover"    />
+        <result property="intro"    column="intro"    />
+        <result property="price"    column="price"    />
+        <result property="warmReminder"    column="warm_reminder"    />
+        <result property="siteStatus"    column="site_status"    />
+        <result property="venueId"    column="venue_id"    />
+    </resultMap>
+
+    <sql id="selectBeilvSiteVo">
+        select id, name, site_type, cover, intro, price, warm_reminder, site_status, venue_id from beilv_site
+    </sql>
+
+    <select id="selectBeilvSiteList" parameterType="BeilvSite" resultMap="BeilvSiteResult">
+        <include refid="selectBeilvSiteVo"/>
+        <where>  
+            <if test="name != null  and name != ''"> and name like concat('%', #{name}, '%')</if>
+            <if test="siteType != null  and siteType != ''"> and site_type = #{siteType}</if>
+            <if test="cover != null  and cover != ''"> and cover = #{cover}</if>
+            <if test="intro != null  and intro != ''"> and intro = #{intro}</if>
+            <if test="price != null "> and price = #{price}</if>
+            <if test="warmReminder != null  and warmReminder != ''"> and warm_reminder = #{warmReminder}</if>
+            <if test="siteStatus != null  and siteStatus != ''"> and site_status = #{siteStatus}</if>
+            <if test="venueId != null "> and venue_id = #{venueId}</if>
+        </where>
+    </select>
+    
+    <select id="selectBeilvSiteById" parameterType="Long" resultMap="BeilvSiteResult">
+        <include refid="selectBeilvSiteVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBeilvSite" parameterType="BeilvSite" useGeneratedKeys="true" keyProperty="id">
+        insert into beilv_site
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="name != null">name,</if>
+            <if test="siteType != null">site_type,</if>
+            <if test="cover != null">cover,</if>
+            <if test="intro != null">intro,</if>
+            <if test="price != null">price,</if>
+            <if test="warmReminder != null">warm_reminder,</if>
+            <if test="siteStatus != null">site_status,</if>
+            <if test="venueId != null">venue_id,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="name != null">#{name},</if>
+            <if test="siteType != null">#{siteType},</if>
+            <if test="cover != null">#{cover},</if>
+            <if test="intro != null">#{intro},</if>
+            <if test="price != null">#{price},</if>
+            <if test="warmReminder != null">#{warmReminder},</if>
+            <if test="siteStatus != null">#{siteStatus},</if>
+            <if test="venueId != null">#{venueId},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBeilvSite" parameterType="BeilvSite">
+        update beilv_site
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="name != null">name = #{name},</if>
+            <if test="siteType != null">site_type = #{siteType},</if>
+            <if test="cover != null">cover = #{cover},</if>
+            <if test="intro != null">intro = #{intro},</if>
+            <if test="price != null">price = #{price},</if>
+            <if test="warmReminder != null">warm_reminder = #{warmReminder},</if>
+            <if test="siteStatus != null">site_status = #{siteStatus},</if>
+            <if test="venueId != null">venue_id = #{venueId},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBeilvSiteById" parameterType="Long">
+        delete from beilv_site where id = #{id}
+    </delete>
+
+    <delete id="deleteBeilvSiteByIds" parameterType="String">
+        delete from beilv_site where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>

+ 89 - 0
qmjszx-business/src/main/resources/mapper/venue/BeilvVenueMapper.xml

@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="beilv.venue.mapper.BeilvVenueMapper">
+    
+    <resultMap type="BeilvVenue" id="BeilvVenueResult">
+        <result property="id"    column="id"    />
+        <result property="cover"    column="cover"    />
+        <result property="address"    column="address"    />
+        <result property="phoneNumber"    column="phone_number"    />
+        <result property="businessHours"    column="business_hours"    />
+        <result property="venueIntroduction"    column="venue_introduction"    />
+        <result property="venueService"    column="venue_service"    />
+        <result property="thresholdValue"    column="threshold_value"    />
+    </resultMap>
+
+    <sql id="selectBeilvVenueVo">
+        select id, cover, address, phone_number, business_hours, venue_introduction, venue_service, threshold_value from beilv_venue
+    </sql>
+
+    <select id="selectBeilvVenueList" parameterType="BeilvVenue" resultMap="BeilvVenueResult">
+        <include refid="selectBeilvVenueVo"/>
+        <where>  
+            <if test="cover != null  and cover != ''"> and cover = #{cover}</if>
+            <if test="address != null  and address != ''"> and address = #{address}</if>
+            <if test="phoneNumber != null  and phoneNumber != ''"> and phone_number = #{phoneNumber}</if>
+            <if test="businessHours != null "> and business_hours = #{businessHours}</if>
+            <if test="venueIntroduction != null  and venueIntroduction != ''"> and venue_introduction = #{venueIntroduction}</if>
+            <if test="venueService != null  and venueService != ''"> and venue_service = #{venueService}</if>
+            <if test="thresholdValue != null  and thresholdValue != ''"> and threshold_value = #{thresholdValue}</if>
+        </where>
+    </select>
+    
+    <select id="selectBeilvVenueById" parameterType="Long" resultMap="BeilvVenueResult">
+        <include refid="selectBeilvVenueVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertBeilvVenue" parameterType="BeilvVenue">
+        insert into beilv_venue
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="id != null">id,</if>
+            <if test="cover != null">cover,</if>
+            <if test="address != null">address,</if>
+            <if test="phoneNumber != null">phone_number,</if>
+            <if test="businessHours != null">business_hours,</if>
+            <if test="venueIntroduction != null">venue_introduction,</if>
+            <if test="venueService != null">venue_service,</if>
+            <if test="thresholdValue != null">threshold_value,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="id != null">#{id},</if>
+            <if test="cover != null">#{cover},</if>
+            <if test="address != null">#{address},</if>
+            <if test="phoneNumber != null">#{phoneNumber},</if>
+            <if test="businessHours != null">#{businessHours},</if>
+            <if test="venueIntroduction != null">#{venueIntroduction},</if>
+            <if test="venueService != null">#{venueService},</if>
+            <if test="thresholdValue != null">#{thresholdValue},</if>
+         </trim>
+    </insert>
+
+    <update id="updateBeilvVenue" parameterType="BeilvVenue">
+        update beilv_venue
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="cover != null">cover = #{cover},</if>
+            <if test="address != null">address = #{address},</if>
+            <if test="phoneNumber != null">phone_number = #{phoneNumber},</if>
+            <if test="businessHours != null">business_hours = #{businessHours},</if>
+            <if test="venueIntroduction != null">venue_introduction = #{venueIntroduction},</if>
+            <if test="venueService != null">venue_service = #{venueService},</if>
+            <if test="thresholdValue != null">threshold_value = #{thresholdValue},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteBeilvVenueById" parameterType="Long">
+        delete from beilv_venue where id = #{id}
+    </delete>
+
+    <delete id="deleteBeilvVenueByIds" parameterType="String">
+        delete from beilv_venue where id in 
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+
+</mapper>