Bladeren bron

查询统计

liuyuqiang 2 jaren geleden
bovenliggende
commit
b436e99617

+ 44 - 0
sooka-admin/src/main/java/com/sooka/web/controller/schooldistrict/QueryStatisticsController.java

@@ -0,0 +1,44 @@
+package com.sooka.web.controller.schooldistrict;
+
+import com.sooka.common.core.controller.BaseController;
+import com.sooka.common.core.page.TableDataInfo;
+import com.sooka.system.domain.SysOperLog;
+import com.sooka.system.service.ISysOperLogService;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Controller;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.PostMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.ResponseBody;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * 查询统计Controller
+ *
+ * @author lyq
+ * @date 2023-02-23
+ */
+@Controller
+@RequestMapping("/schooldistrict/querystatistics")
+public class QueryStatisticsController extends BaseController {
+
+    @Autowired
+    private ISysOperLogService operLogService;
+
+    @RequiresPermissions("schooldistrict:querystatistics:view")
+    @GetMapping()
+    public String policestationvillage() {
+        return "schooldistrict/querystatistics";
+    }
+
+    @PostMapping("/list")
+    @ResponseBody
+    public TableDataInfo list(SysOperLog sysOperLog) {
+        startPage();
+        List<Map<String, Object>> resultList = operLogService.queryStatistics(sysOperLog);
+        return getDataTable(resultList);
+    }
+}

+ 80 - 0
sooka-admin/src/main/resources/templates/schooldistrict/querystatistics.html

@@ -0,0 +1,80 @@
+<!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('查询统计')" />
+	<th:block th:include="include :: bootstrap-select-css" />
+</head>
+<body class="gray-bg">
+	<div class="container-div">
+		<div class="row">
+			<div class="col-sm-12 search-collapse">
+				<form id="operlog-form">
+					<div class="select-list">
+						<ul>
+							<li class="select-time">
+								<label>查询时间: </label>
+								<input type="text" class="time-input" id="startTime" placeholder="开始时间" name="params[beginTime]"/>
+								<span>-</span>
+								<input type="text" class="time-input" id="endTime" placeholder="结束时间" name="params[endTime]"/>
+							</li>
+							<li>
+								<label>区间:</label>
+								<select name="params[format]">
+									<option th:text="年" th:value="'%Y'"></option>
+									<option th:text="月" th:value="'%Y-%m'"></option>
+									<option th:text="日" th:value="'%Y-%m-%d'"></option>
+									<option th:text="时" th:value="'%Y-%m-%d %H'"></option>
+								</select>
+							</li>
+							<li>
+								<a class="btn btn-primary btn-rounded btn-sm" onclick="$.table.search()"><i class="fa fa-search"></i>&nbsp;搜索</a>
+								<a class="btn btn-warning btn-rounded btn-sm" onclick="$.form.reset()"><i class="fa fa-refresh"></i>&nbsp;重置</a>
+							</li>
+						</ul>
+					</div>
+				</form>
+			</div>
+	        
+			<div class="col-sm-12 select-table table-striped">
+				<table id="bootstrap-table"></table>
+			</div>
+		</div>
+	</div>
+	
+	<th:block th:include="include :: footer" />
+	<th:block th:include="include :: bootstrap-select-js" />
+	<script th:inline="javascript">
+		var prefix = ctx + "schooldistrict/querystatistics";
+
+		$(function() {
+		    var options = {
+		        url: prefix + "/list",
+		        exportUrl: prefix + "/export",
+		        sortName: "time",
+		        sortOrder: "desc",
+		        modalName: "查询统计",
+		        escape: true,
+		        showPageGo: true,
+		        rememberSelected: true,
+		        columns: [{
+		        	field: 'state',
+		            checkbox: true
+		        },
+				{
+					field: 'ip',
+					title: '地址'
+				},
+		        {
+		            field: 'time',
+		            title: '时间'
+		        },
+		        {
+		            field: 'count',
+		            title: '查询次数'
+		        }]
+		    };
+		    $.table.init(options);
+		});
+	</script>
+</body>
+</html>

+ 7 - 0
sooka-system/src/main/java/com/sooka/system/mapper/SysOperLogMapper.java

@@ -1,6 +1,8 @@
 package com.sooka.system.mapper;
 
 import java.util.List;
+import java.util.Map;
+
 import com.sooka.system.domain.SysOperLog;
 
 /**
@@ -45,4 +47,9 @@ public interface SysOperLogMapper
      * 清空操作日志
      */
     public void cleanOperLog();
+
+    /**
+     * 查询统计
+     */
+    public List<Map<String,Object>> queryStatistics(SysOperLog sysOperLog);
 }

+ 7 - 0
sooka-system/src/main/java/com/sooka/system/service/ISysOperLogService.java

@@ -1,6 +1,8 @@
 package com.sooka.system.service;
 
 import java.util.List;
+import java.util.Map;
+
 import com.sooka.system.domain.SysOperLog;
 
 /**
@@ -45,4 +47,9 @@ public interface ISysOperLogService
      * 清空操作日志
      */
     public void cleanOperLog();
+
+    /**
+     * 查询统计
+     */
+    public List<Map<String,Object>> queryStatistics(SysOperLog sysOperLog);
 }

+ 9 - 0
sooka-system/src/main/java/com/sooka/system/service/impl/SysOperLogServiceImpl.java

@@ -1,6 +1,7 @@
 package com.sooka.system.service.impl;
 
 import java.util.List;
+import java.util.Map;
 
 import com.sooka.system.domain.SysOperLog;
 import com.sooka.system.mapper.SysOperLogMapper;
@@ -75,4 +76,12 @@ public class SysOperLogServiceImpl implements ISysOperLogService
     {
         operLogMapper.cleanOperLog();
     }
+
+    /**
+     * 查询统计
+     */
+    @Override
+    public List<Map<String,Object>> queryStatistics(SysOperLog sysOperLog) {
+        return operLogMapper.queryStatistics(sysOperLog);
+    }
 }

+ 16 - 0
sooka-system/src/main/resources/mapper/system/SysOperLogMapper.xml

@@ -80,4 +80,20 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
         truncate table sys_oper_log
     </update>
 
+	<select id="queryStatistics" resultType="map">
+		select
+		date_format( oper_time, #{params.format} ) time,
+		count(*) count,
+		oper_ip ip
+		from sys_oper_log
+		where business_type = 10
+		<if test="params.beginTime != null and params.beginTime != ''"><!-- 开始时间检索 -->
+			and date_format(oper_time,'%y%m%d') &gt;= date_format(#{params.beginTime},'%y%m%d')
+		</if>
+		<if test="params.endTime != null and params.endTime != ''"><!-- 结束时间检索 -->
+			and date_format(oper_time,'%y%m%d') &lt;= date_format(#{params.endTime},'%y%m%d')
+		</if>
+		group by DATE_FORMAT( oper_time, #{params.format} ),oper_ip
+		order by time desc
+	</select>
 </mapper>