This commit is contained in:
2025-12-16 11:15:30 +08:00
4 changed files with 39 additions and 14 deletions

View File

@@ -1,7 +1,9 @@
package com.sdm.common.log.dto;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Data;
import java.time.LocalDateTime;
@@ -34,16 +36,19 @@ public class SysLogDTO {
* 创建者
*/
private String createBy;
private String creatorId;
/**
* 创建时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime createTime;
private String[] createTimeArr;
/**
* 更新时间
*/
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime updateTime;
/**
@@ -96,4 +101,10 @@ public class SysLogDTO {
*/
private Long tenantId;
@Schema(description = "当前页码")
private Integer current;
@Schema(description = "每页显示数量")
private Integer size;
}

View File

@@ -2,8 +2,10 @@ package com.sdm.system.controller;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.feign.inter.system.ISysLogFeignClient;
import com.sdm.common.log.dto.SysLogDTO;
import com.sdm.system.model.entity.SysLog;
import com.sdm.system.model.resp.DailyOnlineStateResp;
import com.sdm.system.model.resp.LoginStateResp;
import com.sdm.system.service.ISysLogService;
@@ -39,13 +41,12 @@ public class SystemLogController implements ISysLogFeignClient {
/**
* 分页查询
* @param page 分页对象
* @param sysLog 系统日志
* @return
*/
@GetMapping("/page")
public SdmResponse getLogPage(@ParameterObject Page page, @ParameterObject SysLogDTO sysLog) {
return logService.getLogByPage(page, sysLog);
public SdmResponse<PageDataResp<List<SysLogDTO>>> getLogPage(@ParameterObject SysLogDTO sysLog) {
return logService.getLogByPage(sysLog);
}
/**

View File

@@ -4,6 +4,7 @@ package com.sdm.system.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.log.dto.SysLogDTO;
import com.sdm.system.model.entity.SysLog;
import com.sdm.system.model.resp.DailyOnlineStateResp;
@@ -21,11 +22,10 @@ public interface ISysLogService extends IService<SysLog> {
/**
* 分页查询日志
* @param page
* @param sysLog
* @return
*/
SdmResponse getLogByPage(Page page, SysLogDTO sysLog);
SdmResponse<PageDataResp<List<SysLogDTO>>> getLogByPage(SysLogDTO sysLog);
/**
* 统计某时间段的用户登录数

View File

@@ -7,12 +7,17 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import com.sdm.common.common.SdmResponse;
import com.sdm.common.entity.req.system.UserQueryReq;
import com.sdm.common.entity.resp.PageDataResp;
import com.sdm.common.entity.resp.data.FileMetadataInfoResp;
import com.sdm.common.entity.resp.system.CIDUserResp;
import com.sdm.common.feign.impl.system.SysUserFeignClientImpl;
import com.sdm.common.log.dto.SysLogDTO;
import com.sdm.common.utils.CidSysUserUtil;
import com.sdm.common.utils.PageUtils;
import com.sdm.system.dao.SysLogMapper;
import com.sdm.system.model.dto.HourlyOnlineDto;
import com.sdm.system.model.entity.SysLog;
@@ -42,23 +47,31 @@ public class ISysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implem
SysUserFeignClientImpl sysUserFeignClient;
@Override
public SdmResponse<Page> getLogByPage(Page page, SysLogDTO sysLog) {
public SdmResponse<PageDataResp<List<SysLogDTO>>> getLogByPage(SysLogDTO sysLog) {
LambdaQueryWrapper<SysLog> wrapper = Wrappers.lambdaQuery();
if (StrUtil.isNotBlank(sysLog.getLogType())) {
wrapper.eq(SysLog::getLogType, sysLog.getLogType());
}
if (StrUtil.isNotBlank(sysLog.getCreateBy())) {
wrapper.eq(SysLog::getCreateBy, sysLog.getCreateBy());
if (StrUtil.isNotBlank(sysLog.getCreatorId())) {
wrapper.eq(SysLog::getCreateBy, sysLog.getCreatorId());
}
if (ArrayUtil.isNotEmpty(sysLog.getCreateTime())) {
if (ArrayUtil.isNotEmpty(sysLog.getCreateTimeArr())) {
wrapper.ge(SysLog::getCreateTime, sysLog.getCreateTimeArr()[0])
.le(SysLog::getCreateTime, sysLog.getCreateTimeArr()[1]);
}
PageHelper.startPage(sysLog.getCurrent(), sysLog.getSize());
List<SysLog> sysLogList = this.list(wrapper);
List<SysLogDTO> sysLogDTOList = sysLogList.stream().map(i -> {
SysLogDTO sysLogDTO = new SysLogDTO();
BeanUtils.copyProperties(i, sysLogDTO);
sysLogDTO.setCreatorId(i.getCreateBy());
return sysLogDTO;
}).toList();
setCreatorNames(sysLogDTOList);
Page<SysLog> pageData = baseMapper.selectPage(page, wrapper);
setCreatorNames(pageData.getRecords());
return SdmResponse.success(pageData);
PageInfo<SysLogDTO> page = new PageInfo<>(sysLogDTOList);
return PageUtils.getJsonObjectSdmResponse(sysLogDTOList, page);
}
@Override
@@ -78,12 +91,12 @@ public class ISysLogServiceImpl extends ServiceImpl<SysLogMapper, SysLog> implem
return SdmResponse.success(result);
}
private void setCreatorNames(List<SysLog> list) {
private void setCreatorNames(List<SysLogDTO> list) {
try {
if (ObjectUtils.isNotEmpty(list)) {
// 提取去重的 creatorId
List<String> creatorIds = list.stream()
.map(SysLog::getCreateBy)
.map(SysLogDTO::getCreateBy)
.filter(createBy -> !"anonymousUser".equals(createBy))
.distinct()
.toList();