mirror of
http://git.pig4cloud.com/pig/pigx.git
synced 2026-11-08 04:39:00 +08:00
feat(syslog): 增加对不同数据库的日志汇总查询支持
This commit is contained in:
1 parent
ce07c9dcb9
commit
ea6940378c
3 files changed
+67
-1
No files matched your search
+3
@@ -172,7 +172,10 @@ public class MybatisPlusConfiguration implements WebMvcConfigurer {
|
||||
public DatabaseIdProvider databaseIdProvider() {
|
||||
VendorDatabaseIdProvider databaseIdProvider = new VendorDatabaseIdProvider();
|
||||
Properties properties = new Properties();
|
||||
properties.setProperty("Oracle", "oracle");
|
||||
properties.setProperty("SQL Server", "mssql");
|
||||
properties.setProperty("DM DBMS", "dm");
|
||||
properties.setProperty("KingbaseES", "kingbase");
|
||||
databaseIdProvider.setProperties(properties);
|
||||
return databaseIdProvider;
|
||||
}
|
||||
|
||||
+19
-1
@@ -19,6 +19,9 @@
|
||||
|
||||
package com.pig4cloud.pigx.admin.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DatePattern;
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.date.TemporalAccessorUtil;
|
||||
import cn.hutool.core.util.ArrayUtil;
|
||||
import cn.hutool.core.util.StrUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
@@ -38,7 +41,9 @@ import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
import java.time.temporal.TemporalAccessor;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
@@ -127,7 +132,7 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
||||
Map<String, Map<String, Object>> resultMap = new TreeMap<>();
|
||||
|
||||
for (Map<String, Object> row : logSumList) {
|
||||
String createTime = row.get(SysLog.Fields.createTime).toString();
|
||||
String createTime = formatCreateTime(row.get(SysLog.Fields.createTime));
|
||||
Map<String, Object> logSum = resultMap.computeIfAbsent(createTime, key -> {
|
||||
Map<String, Object> item = new LinkedHashMap<>();
|
||||
item.put(SysLog.Fields.createTime, key);
|
||||
@@ -139,4 +144,17 @@ public class SysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> impleme
|
||||
return new ArrayList<>(resultMap.values());
|
||||
}
|
||||
|
||||
private String formatCreateTime(Object createTime) {
|
||||
if (createTime == null) {
|
||||
return StrUtil.EMPTY;
|
||||
}
|
||||
if (createTime instanceof Date date) {
|
||||
return DateUtil.format(date, DatePattern.NORM_DATE_PATTERN);
|
||||
}
|
||||
if (createTime instanceof TemporalAccessor temporalAccessor) {
|
||||
return TemporalAccessorUtil.format(temporalAccessor, DatePattern.NORM_DATE_PATTERN);
|
||||
}
|
||||
return createTime.toString();
|
||||
}
|
||||
|
||||
}
|
||||
@@ -27,8 +27,53 @@
|
||||
COUNT(*) AS "logCount"
|
||||
FROM sys_log
|
||||
WHERE create_time >= #{startTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY DATE(create_time), log_type
|
||||
ORDER BY DATE(create_time), log_type
|
||||
</select>
|
||||
|
||||
<select id="selectLogSum" databaseId="oracle" resultType="java.util.Map">
|
||||
SELECT TRUNC(create_time) AS "createTime",
|
||||
log_type AS "logType",
|
||||
COUNT(*) AS "logCount"
|
||||
FROM sys_log
|
||||
WHERE create_time >= #{startTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY TRUNC(create_time), log_type
|
||||
ORDER BY TRUNC(create_time), log_type
|
||||
</select>
|
||||
|
||||
<select id="selectLogSum" databaseId="mssql" resultType="java.util.Map">
|
||||
SELECT CAST(create_time AS date) AS "createTime",
|
||||
log_type AS "logType",
|
||||
COUNT(*) AS "logCount"
|
||||
FROM sys_log
|
||||
WHERE create_time >= #{startTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY CAST(create_time AS date), log_type
|
||||
ORDER BY CAST(create_time AS date), log_type
|
||||
</select>
|
||||
|
||||
<select id="selectLogSum" databaseId="dm" resultType="java.util.Map">
|
||||
SELECT TO_CHAR(create_time, 'YYYY-MM-DD') AS "createTime",
|
||||
log_type AS "logType",
|
||||
COUNT(*) AS "logCount"
|
||||
FROM sys_log
|
||||
WHERE create_time >= #{startTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY TO_CHAR(create_time, 'YYYY-MM-DD'), log_type
|
||||
ORDER BY TO_CHAR(create_time, 'YYYY-MM-DD'), log_type
|
||||
</select>
|
||||
|
||||
<select id="selectLogSum" databaseId="kingbase" resultType="java.util.Map">
|
||||
SELECT TO_CHAR(create_time, 'YYYY-MM-DD') AS "createTime",
|
||||
log_type AS "logType",
|
||||
COUNT(*) AS "logCount"
|
||||
FROM sys_log
|
||||
WHERE create_time >= #{startTime}
|
||||
AND del_flag = '0'
|
||||
GROUP BY TO_CHAR(create_time, 'YYYY-MM-DD'), log_type
|
||||
ORDER BY TO_CHAR(create_time, 'YYYY-MM-DD'), log_type
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
Reference in new issue
Block a user