From 7793f82009bcdb5fcdfe5e91daab211ab1705bf7 Mon Sep 17 00:00:00 2001 From: Charles7c Date: Mon, 25 Mar 2024 23:25:37 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=87=8D=E6=9E=84=E6=97=A5?= =?UTF-8?q?=E5=BF=97=E7=AE=A1=E7=90=86=E7=9B=B8=E5=85=B3=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- continew-admin-monitor/pom.xml | 6 - .../monitor/model/query/LoginLogQuery.java | 57 -------- .../monitor/model/query/SystemLogQuery.java | 57 -------- .../monitor/model/resp/LoginLogResp.java | 81 ----------- .../monitor/model/resp/OperationLogResp.java | 81 ----------- .../monitor/model/resp/SystemLogResp.java | 79 ----------- .../monitor/service/impl/LogServiceImpl.java | 133 ------------------ continew-admin-system/pom.xml | 6 + .../config/{ => file}/FileRecorderImpl.java | 2 +- .../{ => file}/FileStorageConfigLoader.java | 2 +- .../system/config/log}/LogConfiguration.java | 4 +- .../system/config/log}/LogDaoLocalImpl.java | 8 +- .../admin/system}/enums/LogStatusEnum.java | 2 +- .../admin/system}/mapper/LogMapper.java | 29 ++-- .../admin/system}/model/entity/LogDO.java | 4 +- .../admin/system/model/query/LogQuery.java | 41 +++--- .../model/resp/DashboardAccessTrendResp.java | 2 +- .../resp/DashboardGeoDistributionResp.java | 2 +- .../resp/DashboardPopularModuleResp.java | 2 +- .../model/resp/DashboardTotalResp.java | 2 +- .../system/model/resp/LogDetailResp.java | 88 ++++++++++-- .../admin/system}/model/resp/LogResp.java | 68 +++++++-- .../system}/service/DashboardService.java | 10 +- .../admin/system}/service/LogService.java | 42 ++---- .../service/impl/DashboardServiceImpl.java | 12 +- .../system/service/impl/LogServiceImpl.java | 115 +++++++++++++++ .../src/main/resources/mapper/LogMapper.xml | 28 +++- .../webapi/common/DashboardController.java | 10 +- .../admin/webapi/monitor/LogController.java | 87 ------------ .../admin/webapi/system/LogController.java | 63 +++++++++ 30 files changed, 421 insertions(+), 702 deletions(-) delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/LoginLogQuery.java delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/SystemLogQuery.java delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LoginLogResp.java delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/OperationLogResp.java delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogResp.java delete mode 100644 continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/LogServiceImpl.java rename continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/{ => file}/FileRecorderImpl.java (98%) rename continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/{ => file}/FileStorageConfigLoader.java (97%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config => continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log}/LogConfiguration.java (92%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config => continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log}/LogDaoLocalImpl.java (95%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/enums/LogStatusEnum.java (95%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/mapper/LogMapper.java (71%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/entity/LogDO.java (95%) rename continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/OperationLogQuery.java => continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/query/LogQuery.java (66%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/resp/DashboardAccessTrendResp.java (96%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/resp/DashboardGeoDistributionResp.java (96%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/resp/DashboardPopularModuleResp.java (96%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/resp/DashboardTotalResp.java (96%) rename continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogDetailResp.java => continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogDetailResp.java (58%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/model/resp/LogResp.java (51%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/service/DashboardService.java (76%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/service/LogService.java (61%) rename {continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor => continew-admin-system/src/main/java/top/charles7c/continew/admin/system}/service/impl/DashboardServiceImpl.java (85%) create mode 100644 continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/LogServiceImpl.java rename {continew-admin-monitor => continew-admin-system}/src/main/resources/mapper/LogMapper.xml (66%) delete mode 100644 continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/monitor/LogController.java create mode 100644 continew-admin-webapi/src/main/java/top/charles7c/continew/admin/webapi/system/LogController.java diff --git a/continew-admin-monitor/pom.xml b/continew-admin-monitor/pom.xml index e2f89258..2b4f642c 100644 --- a/continew-admin-monitor/pom.xml +++ b/continew-admin-monitor/pom.xml @@ -13,12 +13,6 @@ 系统监控模块(存放系统监控相关业务功能,例如:在线用户、日志管理等) - - - top.charles7c.continew - continew-starter-log-httptrace-pro - - top.charles7c.continew diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/LoginLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/LoginLogQuery.java deleted file mode 100644 index 90f157f2..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/LoginLogQuery.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.model.query; - -import cn.hutool.core.date.DatePattern; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; -import top.charles7c.continew.starter.data.core.annotation.Query; -import top.charles7c.continew.starter.data.core.enums.QueryType; - -import java.io.Serial; -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -/** - * 登录日志查询条件 - * - * @author Charles7c - * @since 2023/1/16 23:25 - */ -@Data -@Schema(description = "登录日志查询条件") -public class LoginLogQuery implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 登录状态 - */ - @Schema(description = "登录状态(1:成功;2:失败)", example = "1") - private Integer status; - - /** - * 登录时间 - */ - @Schema(description = "登录时间", example = "2023-08-08 00:00:00,2023-08-08 23:59:59") - @Query(type = QueryType.BETWEEN) - @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) - private List createTime; -} diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/SystemLogQuery.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/SystemLogQuery.java deleted file mode 100644 index 076f1420..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/SystemLogQuery.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.model.query; - -import cn.hutool.core.date.DatePattern; -import io.swagger.v3.oas.annotations.media.Schema; -import lombok.Data; -import org.springframework.format.annotation.DateTimeFormat; -import top.charles7c.continew.starter.data.core.annotation.Query; -import top.charles7c.continew.starter.data.core.enums.QueryType; - -import java.io.Serial; -import java.io.Serializable; -import java.util.Date; -import java.util.List; - -/** - * 系统日志查询条件 - * - * @author Charles7c - * @since 2023/1/17 23:31 - */ -@Data -@Schema(description = "系统日志查询条件") -public class SystemLogQuery implements Serializable { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 链路 ID - */ - @Schema(description = "链路 ID", example = "904846526308876288") - private String traceId; - - /** - * 创建时间 - */ - @Schema(description = "创建时间", example = "2023-08-08 00:00:00,2023-08-08 23:59:59") - @Query(type = QueryType.BETWEEN) - @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) - private List createTime; -} diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LoginLogResp.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LoginLogResp.java deleted file mode 100644 index 919b53e7..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LoginLogResp.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.model.resp; - -import java.io.Serial; - -import lombok.Data; - -import io.swagger.v3.oas.annotations.media.Schema; - -import top.charles7c.continew.admin.monitor.enums.LogStatusEnum; - -/** - * 登录日志信息 - * - * @author Charles7c - * @since 2023/1/16 23:19 - */ -@Data -@Schema(description = "登录日志信息") -public class LoginLogResp extends LogResp { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 登录行为 - */ - @Schema(description = "登录行为", example = "用户登录") - private String description; - - /** - * 登录状态 - */ - @Schema(description = "登录状态(1:成功;2:失败)", type = "Integer", allowableValues = {"1", "2"}, example = "1") - private LogStatusEnum status; - - /** - * 登录 IP - */ - @Schema(description = "登录 IP", example = "192.168.0.1") - private String ip; - - /** - * 登录地点 - */ - @Schema(description = "登录地点", example = "中国北京北京市") - private String address; - - /** - * 浏览器 - */ - @Schema(description = "浏览器", example = "Chrome 115.0.0.0") - private String browser; - - /** - * 操作系统 - */ - @Schema(description = "操作系统", example = "Windows 10") - private String os; - - /** - * 错误信息 - */ - @Schema(description = "错误信息") - private String errorMsg; -} diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/OperationLogResp.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/OperationLogResp.java deleted file mode 100644 index a470a1ca..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/OperationLogResp.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.model.resp; - -import java.io.Serial; - -import lombok.Data; - -import io.swagger.v3.oas.annotations.media.Schema; - -import top.charles7c.continew.admin.monitor.enums.LogStatusEnum; - -/** - * 操作日志信息 - * - * @author Charles7c - * @since 2023/1/14 18:27 - */ -@Data -@Schema(description = "操作日志信息") -public class OperationLogResp extends LogResp { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 操作内容 - */ - @Schema(description = "操作内容", example = "新增数据") - private String description; - - /** - * 所属模块 - */ - @Schema(description = "所属模块", example = "部门管理") - private String module; - - /** - * 操作 IP - */ - @Schema(description = "操作 IP", example = "192.168.0.1") - private String ip; - - /** - * 操作地点 - */ - @Schema(description = "操作地点", example = "中国北京北京市") - private String address; - - /** - * 浏览器 - */ - @Schema(description = "浏览器", example = "Chrome 115.0.0.0") - private String browser; - - /** - * 操作状态 - */ - @Schema(description = "操作状态(1:成功;2:失败)", type = "Integer", allowableValues = {"1", "2"}, example = "1") - private LogStatusEnum status; - - /** - * 错误信息 - */ - @Schema(description = "错误信息") - private String errorMsg; -} diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogResp.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogResp.java deleted file mode 100644 index c0046436..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogResp.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.model.resp; - -import java.io.Serial; - -import lombok.Data; - -import io.swagger.v3.oas.annotations.media.Schema; - -/** - * 系统日志信息 - * - * @author Charles7c - * @since 2023/1/17 23:29 - */ -@Data -@Schema(description = "系统日志信息") -public class SystemLogResp extends LogResp { - - @Serial - private static final long serialVersionUID = 1L; - - /** - * 状态码 - */ - @Schema(description = "状态码", example = "200") - private Integer statusCode; - - /** - * 请求方式 - */ - @Schema(description = "请求方式", example = "POST") - private String requestMethod; - - /** - * 请求 URL - */ - @Schema(description = "请求 URL", example = "http://api.charles7c.top/system/dept") - private String requestUrl; - - /** - * IP - */ - @Schema(description = "IP", example = "192.168.0.1") - private String ip; - - /** - * 地址 - */ - @Schema(description = "地址", example = "中国北京北京市") - private String address; - - /** - * 浏览器 - */ - @Schema(description = "浏览器", example = "Chrome 115.0.0.0") - private String browser; - - /** - * 耗时(ms) - */ - @Schema(description = "耗时(ms)", example = "58") - private Long timeTaken; -} diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/LogServiceImpl.java b/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/LogServiceImpl.java deleted file mode 100644 index efe0422f..00000000 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/LogServiceImpl.java +++ /dev/null @@ -1,133 +0,0 @@ -/* - * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -package top.charles7c.continew.admin.monitor.service.impl; - -import cn.crane4j.annotation.AutoOperate; -import cn.hutool.core.bean.BeanUtil; -import cn.hutool.core.util.StrUtil; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import lombok.RequiredArgsConstructor; -import lombok.extern.slf4j.Slf4j; -import org.springframework.stereotype.Service; -import top.charles7c.continew.admin.common.constant.SysConstants; -import top.charles7c.continew.admin.monitor.mapper.LogMapper; -import top.charles7c.continew.admin.monitor.model.entity.LogDO; -import top.charles7c.continew.admin.monitor.model.query.LoginLogQuery; -import top.charles7c.continew.admin.monitor.model.query.OperationLogQuery; -import top.charles7c.continew.admin.monitor.model.query.SystemLogQuery; -import top.charles7c.continew.admin.monitor.model.resp.*; -import top.charles7c.continew.admin.monitor.service.LogService; -import top.charles7c.continew.starter.core.util.ReflectUtils; -import top.charles7c.continew.starter.core.util.validate.CheckUtils; -import top.charles7c.continew.starter.data.mybatis.plus.query.QueryWrapperHelper; -import top.charles7c.continew.starter.extension.crud.model.query.PageQuery; -import top.charles7c.continew.starter.extension.crud.model.resp.PageResp; - -import java.util.List; -import java.util.Map; - -/** - * 系统日志业务实现 - * - * @author Charles7c - * @since 2022/12/23 20:12 - */ -@Slf4j -@Service -@RequiredArgsConstructor -public class LogServiceImpl implements LogService { - - private final LogMapper logMapper; - - @Override - @AutoOperate(type = OperationLogResp.class, on = "list") - public PageResp page(OperationLogQuery query, PageQuery pageQuery) { - QueryWrapper queryWrapper = QueryWrapperHelper.build(query); - // 限定查询信息 - List fieldNameList = ReflectUtils.getNonStaticFieldsName(OperationLogResp.class); - List columnNameList = fieldNameList.stream() - .filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX)) - .map(StrUtil::toUnderlineCase) - .toList(); - queryWrapper.select(columnNameList); - // 分页查询 - IPage page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); - return PageResp.build(page, OperationLogResp.class); - } - - @Override - @AutoOperate(type = LoginLogResp.class, on = "list") - public PageResp page(LoginLogQuery query, PageQuery pageQuery) { - QueryWrapper queryWrapper = QueryWrapperHelper.build(query); - queryWrapper.eq("module", "登录"); - // 限定查询信息 - List fieldNameList = ReflectUtils.getNonStaticFieldsName(LoginLogResp.class); - List columnNameList = fieldNameList.stream() - .filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX)) - .map(StrUtil::toUnderlineCase) - .toList(); - queryWrapper.select(columnNameList); - // 分页查询 - IPage page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); - return PageResp.build(page, LoginLogResp.class); - } - - @Override - @AutoOperate(type = SystemLogResp.class, on = "list") - public PageResp page(SystemLogQuery query, PageQuery pageQuery) { - QueryWrapper queryWrapper = QueryWrapperHelper.build(query); - // 限定查询信息 - List fieldNameList = ReflectUtils.getNonStaticFieldsName(SystemLogResp.class); - List columnNameList = fieldNameList.stream() - .filter(n -> !n.endsWith(SysConstants.DESCRIPTION_FIELD_SUFFIX)) - .map(StrUtil::toUnderlineCase) - .toList(); - queryWrapper.select(columnNameList); - // 分页查询 - IPage page = logMapper.selectPage(pageQuery.toPage(), queryWrapper); - return PageResp.build(page, SystemLogResp.class); - } - - @Override - @AutoOperate(type = SystemLogDetailResp.class) - public SystemLogDetailResp get(Long id) { - LogDO logDO = logMapper.selectById(id); - CheckUtils.throwIfNotExists(logDO, "LogDO", "ID", id); - return BeanUtil.copyProperties(logDO, SystemLogDetailResp.class); - } - - @Override - public DashboardTotalResp getDashboardTotal() { - return logMapper.selectDashboardTotal(); - } - - @Override - public List listDashboardAccessTrend(Integer days) { - return logMapper.selectListDashboardAccessTrend(days); - } - - @Override - public List listDashboardPopularModule() { - return logMapper.selectListDashboardPopularModule(); - } - - @Override - public List> listDashboardGeoDistribution() { - return logMapper.selectListDashboardGeoDistribution(); - } -} diff --git a/continew-admin-system/pom.xml b/continew-admin-system/pom.xml index 3da3103e..3b6e0bec 100644 --- a/continew-admin-system/pom.xml +++ b/continew-admin-system/pom.xml @@ -13,6 +13,12 @@ 系统管理模块(存放系统管理相关业务功能,例如:部门管理、角色管理、用户管理等) + + + top.charles7c.continew + continew-starter-log-httptrace-pro + + top.charles7c.continew diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileRecorderImpl.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileRecorderImpl.java similarity index 98% rename from continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileRecorderImpl.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileRecorderImpl.java index 8f770d35..d9aff9fc 100644 --- a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileRecorderImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileRecorderImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.system.config; +package top.charles7c.continew.admin.system.config.file; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.EscapeUtil; diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileStorageConfigLoader.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileStorageConfigLoader.java similarity index 97% rename from continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileStorageConfigLoader.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileStorageConfigLoader.java index a7838015..6f24f3da 100644 --- a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/FileStorageConfigLoader.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/file/FileStorageConfigLoader.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.system.config; +package top.charles7c.continew.admin.system.config.file; import java.util.List; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogConfiguration.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogConfiguration.java similarity index 92% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogConfiguration.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogConfiguration.java index 933d3c8f..b31b4e42 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogConfiguration.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogConfiguration.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.config; +package top.charles7c.continew.admin.system.config.log; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; -import top.charles7c.continew.admin.monitor.mapper.LogMapper; +import top.charles7c.continew.admin.system.mapper.LogMapper; import top.charles7c.continew.admin.system.service.UserService; import top.charles7c.continew.starter.log.core.dao.LogDao; import top.charles7c.continew.starter.log.httptracepro.autoconfigure.ConditionalOnEnabledLog; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogDaoLocalImpl.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogDaoLocalImpl.java similarity index 95% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogDaoLocalImpl.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogDaoLocalImpl.java index 1ce6bdaf..1263fd99 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/config/LogDaoLocalImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/config/log/LogDaoLocalImpl.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.config; +package top.charles7c.continew.admin.system.config.log; import cn.dev33.satoken.SaManager; import cn.dev33.satoken.stp.StpUtil; @@ -28,9 +28,9 @@ import org.springframework.scheduling.annotation.Async; import top.charles7c.continew.admin.auth.model.req.AccountLoginReq; import top.charles7c.continew.admin.common.constant.SysConstants; -import top.charles7c.continew.admin.monitor.enums.LogStatusEnum; -import top.charles7c.continew.admin.monitor.mapper.LogMapper; -import top.charles7c.continew.admin.monitor.model.entity.LogDO; +import top.charles7c.continew.admin.system.enums.LogStatusEnum; +import top.charles7c.continew.admin.system.mapper.LogMapper; +import top.charles7c.continew.admin.system.model.entity.LogDO; import top.charles7c.continew.admin.system.service.UserService; import top.charles7c.continew.starter.core.constant.StringConstants; import top.charles7c.continew.starter.core.util.ExceptionUtils; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/enums/LogStatusEnum.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/enums/LogStatusEnum.java similarity index 95% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/enums/LogStatusEnum.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/enums/LogStatusEnum.java index b340d8f0..e65e8909 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/enums/LogStatusEnum.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/enums/LogStatusEnum.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.enums; +package top.charles7c.continew.admin.system.enums; import lombok.Getter; import lombok.RequiredArgsConstructor; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/mapper/LogMapper.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/mapper/LogMapper.java similarity index 71% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/mapper/LogMapper.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/mapper/LogMapper.java index a0e2e1a5..a928a151 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/mapper/LogMapper.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/mapper/LogMapper.java @@ -14,19 +14,19 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.mapper; - -import java.util.List; -import java.util.Map; +package top.charles7c.continew.admin.system.mapper; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.Constants; import org.apache.ibatis.annotations.Param; - -import top.charles7c.continew.admin.monitor.model.entity.LogDO; -import top.charles7c.continew.admin.monitor.model.resp.DashboardAccessTrendResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardPopularModuleResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardTotalResp; +import top.charles7c.continew.admin.system.model.entity.LogDO; +import top.charles7c.continew.admin.system.model.resp.*; import top.charles7c.continew.starter.data.mybatis.plus.base.BaseMapper; +import java.util.List; +import java.util.Map; + /** * 系统日志 Mapper * @@ -35,6 +35,16 @@ */ public interface LogMapper extends BaseMapper { + /** + * 分页查询列表 + * + * @param page 分页条件 + * @param queryWrapper 查询条件 + * @return 分页列表信息 + */ + IPage selectLogPage(@Param("page") IPage page, + @Param(Constants.WRAPPER) QueryWrapper queryWrapper); + /** * 查询仪表盘总计信息 * @@ -46,7 +56,6 @@ public interface LogMapper extends BaseMapper { * 查询仪表盘访问趋势信息 * * @param days 日期数 - * * @return 仪表盘访问趋势信息 */ List selectListDashboardAccessTrend(@Param("days") Integer days); diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/entity/LogDO.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/LogDO.java similarity index 95% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/entity/LogDO.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/LogDO.java index f92d478b..41b673ee 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/entity/LogDO.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/entity/LogDO.java @@ -14,12 +14,12 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.entity; +package top.charles7c.continew.admin.system.model.entity; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; -import top.charles7c.continew.admin.monitor.enums.LogStatusEnum; +import top.charles7c.continew.admin.system.enums.LogStatusEnum; import java.io.Serial; import java.io.Serializable; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/OperationLogQuery.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/query/LogQuery.java similarity index 66% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/OperationLogQuery.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/query/LogQuery.java index a4a3c545..1caf2f10 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/query/OperationLogQuery.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/query/LogQuery.java @@ -14,14 +14,12 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.query; +package top.charles7c.continew.admin.system.model.query; import cn.hutool.core.date.DatePattern; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; -import top.charles7c.continew.starter.data.core.annotation.Query; -import top.charles7c.continew.starter.data.core.enums.QueryType; import java.io.Serial; import java.io.Serializable; @@ -29,43 +27,52 @@ import java.util.List; /** - * 操作日志查询条件 + * 日志查询条件 * * @author Charles7c * @since 2023/1/15 11:43 */ @Data -@Schema(description = "操作日志查询条件") -public class OperationLogQuery implements Serializable { +@Schema(description = "日志查询条件") +public class LogQuery implements Serializable { @Serial private static final long serialVersionUID = 1L; /** - * 操作内容 + * 日志描述 */ - @Schema(description = "操作内容", example = "新增数据") - @Query(type = QueryType.LIKE) + @Schema(description = "日志描述", example = "新增数据") private String description; /** - * 操作状态 + * 所属模块 */ - @Schema(description = "操作状态(1:成功;2:失败)", example = "1") - private Integer status; + @Schema(description = "所属模块", example = "所属模块") + private String module; + + /** + * IP + */ + @Schema(description = "IP", example = "192.168.0.1") + private String ip; + + /** + * 操作人 + */ + @Schema(description = "操作人", example = "admin") + private String createUserString; /** * 操作时间 */ @Schema(description = "操作时间", example = "2023-08-08 00:00:00,2023-08-08 23:59:59") - @Query(type = QueryType.BETWEEN) @DateTimeFormat(pattern = DatePattern.NORM_DATETIME_PATTERN) private List createTime; /** - * 操作人 + * 状态 */ - @Schema(description = "操作人", example = "张三") - @Query(columns = "create_user") - private Long uid; + @Schema(description = "状态(1:成功;2:失败)", example = "1") + private Integer status; } diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardAccessTrendResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardAccessTrendResp.java similarity index 96% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardAccessTrendResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardAccessTrendResp.java index 7dc63af5..ac047c53 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardAccessTrendResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardAccessTrendResp.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; import java.io.Serial; import java.io.Serializable; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardGeoDistributionResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardGeoDistributionResp.java similarity index 96% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardGeoDistributionResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardGeoDistributionResp.java index 42ffaa77..9ab11dfd 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardGeoDistributionResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardGeoDistributionResp.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; import java.io.Serial; import java.io.Serializable; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardPopularModuleResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardPopularModuleResp.java similarity index 96% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardPopularModuleResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardPopularModuleResp.java index ad8413ce..215fd669 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardPopularModuleResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardPopularModuleResp.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; import java.io.Serial; import java.io.Serializable; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardTotalResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardTotalResp.java similarity index 96% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardTotalResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardTotalResp.java index 6d89aab2..4caa8e48 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/DashboardTotalResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/DashboardTotalResp.java @@ -14,7 +14,7 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; import java.io.Serial; import java.io.Serializable; diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogDetailResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogDetailResp.java similarity index 58% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogDetailResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogDetailResp.java index 989ef2cc..f39dfa33 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/SystemLogDetailResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogDetailResp.java @@ -14,26 +14,40 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; +import cn.crane4j.annotation.Assemble; +import cn.crane4j.annotation.Mapping; +import cn.crane4j.annotation.condition.ConditionOnPropertyNotNull; +import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; +import top.charles7c.continew.admin.common.constant.ContainerConstants; +import top.charles7c.continew.admin.system.enums.LogStatusEnum; import java.io.Serial; +import java.io.Serializable; +import java.time.LocalDateTime; /** - * 系统日志详情信息 + * 日志详情信息 * * @author Charles7c * @since 2023/1/18 20:19 */ @Data -@Schema(description = "系统日志详情信息") -public class SystemLogDetailResp extends LogResp { +@Schema(description = "日志详情信息") +public class LogDetailResp implements Serializable { @Serial private static final long serialVersionUID = 1L; + /** + * ID + */ + @Schema(description = "ID", example = "1") + private Long id; + /** * 链路 ID */ @@ -41,16 +55,16 @@ public class SystemLogDetailResp extends LogResp { private String traceId; /** - * 状态码 + * 日志描述 */ - @Schema(description = "状态码", example = "200") - private Integer statusCode; + @Schema(description = "日志描述", example = "新增数据") + private String description; /** - * 请求方式 + * 所属模块 */ - @Schema(description = "请求方式", example = "POST") - private String requestMethod; + @Schema(description = "所属模块", example = "部门管理") + private String module; /** * 请求 URL @@ -58,6 +72,12 @@ public class SystemLogDetailResp extends LogResp { @Schema(description = "请求 URL", example = "http://api.charles7c.top/system/dept") private String requestUrl; + /** + * 请求方式 + */ + @Schema(description = "请求方式", example = "POST") + private String requestMethod; + /** * 请求头 */ @@ -70,6 +90,12 @@ public class SystemLogDetailResp extends LogResp { @Schema(description = "请求体", example = "{\"name\": \"测试部\",...}") private String requestBody; + /** + * 状态码 + */ + @Schema(description = "状态码", example = "200") + private Integer statusCode; + /** * 响应头 */ @@ -82,6 +108,12 @@ public class SystemLogDetailResp extends LogResp { @Schema(description = "响应体", example = "{\"success\":true},...") private String responseBody; + /** + * 耗时(ms) + */ + @Schema(description = "耗时(ms)", example = "58") + private Long timeTaken; + /** * IP */ @@ -89,9 +121,9 @@ public class SystemLogDetailResp extends LogResp { private String ip; /** - * 地址 + * IP 归属地 */ - @Schema(description = "地址", example = "中国北京北京市") + @Schema(description = "IP 归属地", example = "中国北京北京市") private String address; /** @@ -107,8 +139,34 @@ public class SystemLogDetailResp extends LogResp { private String os; /** - * 耗时(ms) + * 状态 */ - @Schema(description = "耗时(ms)", example = "58") - private Long timeTaken; + @Schema(description = "状态(1:成功;2:失败)", type = "Integer", allowableValues = {"1", "2"}, example = "1") + private LogStatusEnum status; + + /** + * 错误信息 + */ + @Schema(description = "错误信息") + private String errorMsg; + + /** + * 创建人 + */ + @JsonIgnore + @ConditionOnPropertyNotNull + @Assemble(container = ContainerConstants.USER_NICKNAME, props = @Mapping(ref = "createUserString")) + private Long createUser; + + /** + * 创建人 + */ + @Schema(description = "创建人", example = "张三") + private String createUserString; + + /** + * 创建时间 + */ + @Schema(description = "创建时间", example = "2023-08-08 08:08:08", type = "string") + private LocalDateTime createTime; } diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LogResp.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogResp.java similarity index 51% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LogResp.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogResp.java index bf371ec2..848c7384 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/model/resp/LogResp.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/model/resp/LogResp.java @@ -14,27 +14,25 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.model.resp; +package top.charles7c.continew.admin.system.model.resp; -import cn.crane4j.annotation.Assemble; -import cn.crane4j.annotation.Mapping; -import cn.crane4j.annotation.condition.ConditionOnPropertyNotNull; import com.fasterxml.jackson.annotation.JsonIgnore; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import top.charles7c.continew.admin.common.constant.ContainerConstants; +import top.charles7c.continew.admin.system.enums.LogStatusEnum; import java.io.Serial; import java.io.Serializable; import java.time.LocalDateTime; /** - * 基础日志信息 + * 日志信息 * * @author Charles7c - * @since 2023/1/17 21:43 + * @since 2023/1/14 18:27 */ @Data +@Schema(description = "日志信息") public class LogResp implements Serializable { @Serial @@ -46,12 +44,64 @@ public class LogResp implements Serializable { @Schema(description = "ID", example = "1") private Long id; + /** + * 日志描述 + */ + @Schema(description = "日志描述", example = "新增数据") + private String description; + + /** + * 所属模块 + */ + @Schema(description = "所属模块", example = "部门管理") + private String module; + + /** + * 耗时(ms) + */ + @Schema(description = "耗时(ms)", example = "58") + private Long timeTaken; + + /** + * IP + */ + @Schema(description = "IP", example = "192.168.0.1") + private String ip; + + /** + * IP 归属地 + */ + @Schema(description = "IP 归属地", example = "中国北京北京市") + private String address; + + /** + * 浏览器 + */ + @Schema(description = "浏览器", example = "Chrome 115.0.0.0") + private String browser; + + /** + * 操作系统 + */ + @Schema(description = "操作系统", example = "Windows 10") + private String os; + + /** + * 状态 + */ + @Schema(description = "状态(1:成功;2:失败)", type = "Integer", allowableValues = {"1", "2"}, example = "1") + private LogStatusEnum status; + + /** + * 错误信息 + */ + @Schema(description = "错误信息") + private String errorMsg; + /** * 创建人 */ @JsonIgnore - @ConditionOnPropertyNotNull - @Assemble(container = ContainerConstants.USER_NICKNAME, props = @Mapping(ref = "createUserString")) private Long createUser; /** diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/DashboardService.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/DashboardService.java similarity index 76% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/DashboardService.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/DashboardService.java index f8b246b1..b64fecab 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/DashboardService.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/DashboardService.java @@ -14,15 +14,11 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.service; +package top.charles7c.continew.admin.system.service; -import java.util.List; +import top.charles7c.continew.admin.system.model.resp.*; -import top.charles7c.continew.admin.monitor.model.resp.DashboardAccessTrendResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardGeoDistributionResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardPopularModuleResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardTotalResp; -import top.charles7c.continew.admin.system.model.resp.DashboardAnnouncementResp; +import java.util.List; /** * 仪表盘业务接口 diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/LogService.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/LogService.java similarity index 61% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/LogService.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/LogService.java index 8527a0a5..6cd544fb 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/LogService.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/LogService.java @@ -14,12 +14,10 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.service; +package top.charles7c.continew.admin.system.service; -import top.charles7c.continew.admin.monitor.model.query.LoginLogQuery; -import top.charles7c.continew.admin.monitor.model.query.OperationLogQuery; -import top.charles7c.continew.admin.monitor.model.query.SystemLogQuery; -import top.charles7c.continew.admin.monitor.model.resp.*; +import top.charles7c.continew.admin.system.model.query.LogQuery; +import top.charles7c.continew.admin.system.model.resp.*; import top.charles7c.continew.starter.extension.crud.model.query.PageQuery; import top.charles7c.continew.starter.extension.crud.model.resp.PageResp; @@ -35,43 +33,25 @@ public interface LogService { /** - * 分页查询操作日志列表 + * 分页查询列表 * * @param query 查询条件 * @param pageQuery 分页查询条件 - * @return 操作日志分页信息 + * @return 分页列表信息 */ - PageResp page(OperationLogQuery query, PageQuery pageQuery); + PageResp page(LogQuery query, PageQuery pageQuery); /** - * 分页查询登录日志列表 + * 查看详情 * - * @param query 查询条件 - * @param pageQuery 分页查询条件 - * @return 登录日志分页信息 + * @param id ID + * @return 详情信息 */ - PageResp page(LoginLogQuery query, PageQuery pageQuery); - - /** - * 分页查询系统日志列表 - * - * @param query 查询条件 - * @param pageQuery 分页查询条件 - * @return 系统日志分页信息 - */ - PageResp page(SystemLogQuery query, PageQuery pageQuery); - - /** - * 查看系统日志详情 - * - * @param logId 日志 ID - * @return 系统日志详情 - */ - SystemLogDetailResp get(Long logId); + LogDetailResp get(Long id); /** * 查询仪表盘总计信息 - * + * * @return 仪表盘总计信息 */ DashboardTotalResp getDashboardTotal(); diff --git a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/DashboardServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/DashboardServiceImpl.java similarity index 85% rename from continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/DashboardServiceImpl.java rename to continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/DashboardServiceImpl.java index 3ad312d2..d541cc9f 100644 --- a/continew-admin-monitor/src/main/java/top/charles7c/continew/admin/monitor/service/impl/DashboardServiceImpl.java +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/DashboardServiceImpl.java @@ -14,20 +14,16 @@ * limitations under the License. */ -package top.charles7c.continew.admin.monitor.service.impl; +package top.charles7c.continew.admin.system.service.impl; import cn.hutool.core.convert.Convert; import cn.hutool.core.util.NumberUtil; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; -import top.charles7c.continew.admin.monitor.model.resp.DashboardAccessTrendResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardGeoDistributionResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardPopularModuleResp; -import top.charles7c.continew.admin.monitor.model.resp.DashboardTotalResp; -import top.charles7c.continew.admin.monitor.service.DashboardService; -import top.charles7c.continew.admin.monitor.service.LogService; -import top.charles7c.continew.admin.system.model.resp.DashboardAnnouncementResp; +import top.charles7c.continew.admin.system.model.resp.*; import top.charles7c.continew.admin.system.service.AnnouncementService; +import top.charles7c.continew.admin.system.service.DashboardService; +import top.charles7c.continew.admin.system.service.LogService; import java.math.BigDecimal; import java.util.List; diff --git a/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/LogServiceImpl.java b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/LogServiceImpl.java new file mode 100644 index 00000000..ea6d598e --- /dev/null +++ b/continew-admin-system/src/main/java/top/charles7c/continew/admin/system/service/impl/LogServiceImpl.java @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2022-present Charles7c Authors. All Rights Reserved. + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package top.charles7c.continew.admin.system.service.impl; + +import cn.crane4j.annotation.AutoOperate; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.StrUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; +import lombok.RequiredArgsConstructor; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import top.charles7c.continew.admin.system.mapper.LogMapper; +import top.charles7c.continew.admin.system.model.entity.LogDO; +import top.charles7c.continew.admin.system.model.query.LogQuery; +import top.charles7c.continew.admin.system.model.resp.*; +import top.charles7c.continew.admin.system.service.LogService; +import top.charles7c.continew.starter.core.util.validate.CheckUtils; +import top.charles7c.continew.starter.core.util.validate.ValidationUtils; +import top.charles7c.continew.starter.extension.crud.model.query.PageQuery; +import top.charles7c.continew.starter.extension.crud.model.resp.PageResp; + +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 系统日志业务实现 + * + * @author Charles7c + * @since 2022/12/23 20:12 + */ +@Slf4j +@Service +@RequiredArgsConstructor +public class LogServiceImpl implements LogService { + + private final LogMapper logMapper; + + @Override + public PageResp page(LogQuery query, PageQuery pageQuery) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + // 构建条件 + String description = query.getDescription(); + if (StrUtil.isNotBlank(description)) { + queryWrapper.and(q -> q.like("t1.description", description).or().like("t1.module", description)); + } + String module = query.getModule(); + if (StrUtil.isNotBlank(module)) { + queryWrapper.eq("t1.module", module); + } + String ip = query.getIp(); + if (StrUtil.isNotBlank(ip)) { + queryWrapper.and(q -> q.like("t1.ip", ip).or().like("t1.address", ip)); + } + String createUserString = query.getCreateUserString(); + if (StrUtil.isNotBlank(createUserString)) { + queryWrapper.and(q -> q.like("t2.username", createUserString).or().like("t2.nickname", createUserString)); + } + List createTimeList = query.getCreateTime(); + if (CollUtil.isNotEmpty(createTimeList)) { + ValidationUtils.throwIf(createTimeList.size() != 2, "[{}] 必须是一个范围", "createTime"); + queryWrapper.between("t1.create_time", createTimeList.get(0), createTimeList.get(1)); + } + Integer status = query.getStatus(); + if (null != status) { + queryWrapper.eq("t1.status", status); + } + IPage page = logMapper.selectLogPage(pageQuery.toPage(), queryWrapper); + return PageResp.build(page); + } + + @Override + @AutoOperate(type = LogDetailResp.class) + public LogDetailResp get(Long id) { + LogDO logDO = logMapper.selectById(id); + CheckUtils.throwIfNotExists(logDO, "LogDO", "ID", id); + return BeanUtil.copyProperties(logDO, LogDetailResp.class); + } + + @Override + public DashboardTotalResp getDashboardTotal() { + return logMapper.selectDashboardTotal(); + } + + @Override + public List listDashboardAccessTrend(Integer days) { + return logMapper.selectListDashboardAccessTrend(days); + } + + @Override + public List listDashboardPopularModule() { + return logMapper.selectListDashboardPopularModule(); + } + + @Override + public List> listDashboardGeoDistribution() { + return logMapper.selectListDashboardGeoDistribution(); + } +} diff --git a/continew-admin-monitor/src/main/resources/mapper/LogMapper.xml b/continew-admin-system/src/main/resources/mapper/LogMapper.xml similarity index 66% rename from continew-admin-monitor/src/main/resources/mapper/LogMapper.xml rename to continew-admin-system/src/main/resources/mapper/LogMapper.xml index eb69f249..d7fb113a 100644 --- a/continew-admin-monitor/src/main/resources/mapper/LogMapper.xml +++ b/continew-admin-system/src/main/resources/mapper/LogMapper.xml @@ -1,7 +1,27 @@ - - + SELECT + t1.id, + t1.description, + t1.module, + t1.time_taken, + t1.ip, + t1.address, + t1.browser, + t1.os, + t1.status, + t1.error_msg, + t1.create_user, + t1.create_time, + t2.nickname AS createUserString + FROM sys_log AS t1 + LEFT JOIN sys_user AS t2 ON t2.id = t1.create_user + ${ew.customSqlSegment} + + +