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 44c8e144aaa5e94f0291cdddad2a200ac86f05b8..f2f7cba94bdabaa5e80d5c49bef5dfd22f0a73ca 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 2ae6457f78ccc9f960f398342dda1714192641ac..16d3ca1cbc638e398c67337f7293426ef570c8d1 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 4fd8e5a851cbfe51b6536bb9e90068223f382bdc..686abc8f6f60ebccc189e55d8faa515460f766d4 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 54898152e3dc4557121e3b1044f662853f9ea701..748924240999368332d056fd8c071657daaedfc5 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 96bc6218aeeb8eac44a9eb92c481dda71834307b..a4f3922aad1e7a3726ea8c038ce29f9ab1b820f6 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