From 579f77937c4968c7e472703d7632b3d27bc37b51 Mon Sep 17 00:00:00 2001 From: ldrop Date: Mon, 24 Mar 2025 15:05:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=B8=9A=E5=8A=A1=E7=9B=91=E6=8E=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../monitor/SysOperlogController.java | 21 ++++++ .../ruoyi/system/mapper/SysOperLogMapper.java | 22 ++++++ .../system/service/ISysOperLogService.java | 22 ++++++ .../service/impl/SysOperLogServiceImpl.java | 23 ++++++ .../mapper/system/SysOperLogMapper.xml | 73 +++++++++++++++++++ 5 files changed, 161 insertions(+) diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java index 44c8e14..f2f7cba 100644 --- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java +++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/monitor/SysOperlogController.java @@ -1,6 +1,8 @@ package com.ruoyi.web.controller.monitor; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.security.access.prepost.PreAuthorize; @@ -14,6 +16,7 @@ import org.springframework.web.bind.annotation.RestController; import com.ruoyi.common.annotation.Log; import com.ruoyi.common.core.controller.BaseController; import com.ruoyi.common.core.domain.AjaxResult; +import com.ruoyi.common.core.domain.R; import com.ruoyi.common.core.page.TableDataInfo; import com.ruoyi.common.enums.BusinessType; import com.ruoyi.common.utils.poi.ExcelUtil; @@ -81,4 +84,22 @@ public class SysOperlogController extends BaseController operLogService.cleanOperLog(); return success(); } + + @Operation(summary = "业务监控") + @GetMapping("/business") + public R> business(SysOperLog operLog) { + // 查询并获取统计数据 + List> successStats = operLogService.getSuccessOperationStats(operLog); + List> failureStats = operLogService.getFailureOperationStats(operLog); + List> statusStats = operLogService.getStatusStats(operLog); + List> moduleOperationStats = operLogService.getModuleOperationStats(operLog); + // 创建一个新的 Map 来组织数据 + Map result = new LinkedHashMap<>(); + result.put("successStats", successStats); + result.put("failureStats", failureStats); + result.put("statusStats", statusStats); + result.put("moduleOperationStats", moduleOperationStats); + result.put("total", successStats.size() + failureStats.size() + statusStats.size() + moduleOperationStats.size()); + return R.ok(result); + } } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java index 2ae6457..16d3ca1 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysOperLogMapper.java @@ -1,6 +1,8 @@ package com.ruoyi.system.mapper; import java.util.List; +import java.util.Map; + import com.ruoyi.system.domain.SysOperLog; /** @@ -45,4 +47,24 @@ public interface SysOperLogMapper * 清空操作日志 */ public void cleanOperLog(); + + /** + * 获取成功操作的统计信息 + */ + public List> getSuccessOperationStats(SysOperLog operLog); + + /** + * 获取失败操作的统计信息 + */ + public List> getFailureOperationStats(SysOperLog operLog); + + /** + * 获取按状态分类的操作统计信息 + */ + public List> getStatusStats(SysOperLog operLog); + + /** + * 获取按模块和操作类型分类的操作统计信息 + */ + public List> getModuleOperationStats(SysOperLog operLog); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java index 4fd8e5a..686abc8 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/ISysOperLogService.java @@ -1,6 +1,8 @@ package com.ruoyi.system.service; import java.util.List; +import java.util.Map; + import com.ruoyi.system.domain.SysOperLog; /** @@ -45,4 +47,24 @@ public interface ISysOperLogService * 清空操作日志 */ public void cleanOperLog(); + + /** + * 获取成功操作的统计信息 + */ + List> getSuccessOperationStats(SysOperLog operLog); + + /** + * 获取失败操作的统计信息 + */ + List> getFailureOperationStats(SysOperLog operLog); + + /** + * 获取按状态分类的操作统计信息 + */ + List> getStatusStats(SysOperLog operLog); + + /** + * 获取按模块和操作类型分类的操作统计信息 + */ + List> getModuleOperationStats(SysOperLog operLog); } diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java index 5489815..7489242 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysOperLogServiceImpl.java @@ -1,8 +1,11 @@ package com.ruoyi.system.service.impl; import java.util.List; +import java.util.Map; + import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; + import com.ruoyi.system.domain.SysOperLog; import com.ruoyi.system.mapper.SysOperLogMapper; import com.ruoyi.system.service.ISysOperLogService; @@ -73,4 +76,24 @@ public class SysOperLogServiceImpl implements ISysOperLogService { operLogMapper.cleanOperLog(); } + + @Override + public List> getSuccessOperationStats(SysOperLog operLog) { + return operLogMapper.getSuccessOperationStats(operLog); + } + + @Override + public List> getFailureOperationStats(SysOperLog operLog) { + return operLogMapper.getFailureOperationStats(operLog); + } + + @Override + public List> getStatusStats(SysOperLog operLog) { + return operLogMapper.getStatusStats(operLog); + } + + @Override + public List> getModuleOperationStats(SysOperLog operLog) { + return operLogMapper.getModuleOperationStats(operLog); + } } diff --git a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml index 96bc621..a4f3922 100644 --- a/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml +++ b/ruoyi-system/src/main/resources/mapper/system/SysOperLogMapper.xml @@ -43,6 +43,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" AND business_type = #{businessType} + + AND request_method = #{requestMethod} + AND business_type in @@ -81,4 +84,74 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" truncate table sys_oper_log + + + + AND title like concat('%', #{title}, '%') + + + AND business_type = #{businessType} + + + AND request_method = #{requestMethod} + + + AND business_type in + + #{businessType} + + + + AND status = #{status} + + + AND oper_time >= #{params.beginTime} + + + AND oper_time <= #{params.endTime} + + + + + + + + + + + + + \ No newline at end of file -- Gitee