diff --git a/src/main/java/org/springblade/modules/system/controller/LogApiController.java b/src/main/java/org/springblade/modules/system/controller/LogApiController.java index e3bcebd..c8d3ca4 100644 --- a/src/main/java/org/springblade/modules/system/controller/LogApiController.java +++ b/src/main/java/org/springblade/modules/system/controller/LogApiController.java @@ -66,6 +66,9 @@ public class LogApiController { public R> logOnList(@ApiIgnore LogDTO log, Query query) { // HttpServletRequest request = WebUtil.getRequest(); + if(log.getLogType() == null || (!log.getLogType().equals("1") && !log.getLogType().equals("2"))){ + return R.fail("日志类型入参有误(logType in ('1','2'))"); + } List logList = logService.logOnList(log); return R.data(logList); } diff --git a/src/main/java/org/springblade/modules/system/dto/LogDTO.java b/src/main/java/org/springblade/modules/system/dto/LogDTO.java index eae54f8..221cdcd 100644 --- a/src/main/java/org/springblade/modules/system/dto/LogDTO.java +++ b/src/main/java/org/springblade/modules/system/dto/LogDTO.java @@ -18,5 +18,6 @@ public class LogDTO { // 日志类型:1登录日志 2修改日志 private String logType; + // 用户id private String userId; } diff --git a/src/main/java/org/springblade/modules/system/service/ILogApiService.java b/src/main/java/org/springblade/modules/system/service/ILogApiService.java index 8960d6b..79b4503 100644 --- a/src/main/java/org/springblade/modules/system/service/ILogApiService.java +++ b/src/main/java/org/springblade/modules/system/service/ILogApiService.java @@ -5,7 +5,6 @@ import com.baomidou.mybatisplus.extension.service.IService; import org.springblade.core.log.model.LogApi; import org.springblade.modules.system.dto.LogDTO; import org.springblade.modules.system.vo.LogRecord; -import org.springblade.modules.system.vo.LogVO; import java.util.List; import java.util.Map; diff --git a/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java index b38acc9..2cc4a6a 100644 --- a/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java +++ b/src/main/java/org/springblade/modules/system/service/impl/LogApiServiceImpl.java @@ -31,28 +31,32 @@ public class LogApiServiceImpl extends ServiceImpl impleme @Override public List logOnList(LogDTO log) { + if(log.getUserId() != null){ + User user = UserCache.getUser(Long.valueOf(log.getUserId())); + log.setUserId(user.getAccount()); + } + // 按照月份查询日志所有数据 + List logs = baseMapper.logOnList(log); + + // 返回集合创建 List logRecords = new LinkedList<>(); LogRecord logRecord = new LogRecord(); + // yyyy-MM-dd 日期格式转换 SimpleDateFormat formatter1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); - // yyyy-MM年月日志标识 + // yyyy-MM 年月日志标识 SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM"); - // 按照月份查询日志所有数据 - List logs = baseMapper.logOnList(log); - // 记录年月 AtomicReference yearMonth = new AtomicReference<>(null); // logs遍历计数器 - AtomicInteger count = new AtomicInteger(0); + AtomicInteger count = new AtomicInteger(1); // logs总长度 int totalLogs = logs.size(); // 遍历日志数据 -// logs.forEach(logInfo -> { - for (LogVO logInfo:logs){ + for (LogVO logInfo:logs){ - count.incrementAndGet(); // 当前年月 String currentYearMonth = formatter.format(logInfo.getCreateTime()); @@ -75,23 +79,20 @@ public class LogApiServiceImpl extends ServiceImpl impleme if (yearMonth.get().equals(currentYearMonth)) { // 将该条数据插入logs logRecord.getLogs().add(logInfo); - }else{ // 当前年月不等于记录年月 // 将当前年月赋值给记录年月 yearMonth.set(currentYearMonth); // 将上一组数据存入 for (LogVO logVO : logRecord.getLogs()){ - User user = UserCache.getUser(logVO.getTenantId(), logVO.getCreateBy()); - if(user != null){ - logVO.setRealName(user.getRealName()); - logVO.setTitle(user.getRealName() + logVO.getTitle()); + User user1 = UserCache.getUser(logVO.getTenantId(), logVO.getCreateBy()); + if(user1 != null){ + logVO.setRealName(user1.getRealName()); + logVO.setTitle(user1.getRealName() + logVO.getTitle()); } // formatter1.format(logVO.getCreateTime()).substring(8); String substring = formatter1.format(logVO.getCreateTime()).substring(8); logVO.setTime(substring.substring(0,2) + "日" + substring.substring(2)); - - } logRecords.add(logRecord); @@ -110,21 +111,26 @@ public class LogApiServiceImpl extends ServiceImpl impleme } } + // 最后一次遍历,提交最后一组对象 if (count.get() == totalLogs) { - for (LogVO logVO : logRecord.getLogs()){ - User user = UserCache.getUser(logVO.getTenantId(), logVO.getCreateBy()); - if(user != null){ - logVO.setRealName(user.getRealName()); - logVO.setTitle(user.getRealName() + logVO.getTitle()); + // 遍历单条日志内容 + for (LogVO logVO : logRecord.getLogs()) { + // 查询缓存中的用户内容 + User user1 = UserCache.getUser(logVO.getTenantId(), logVO.getCreateBy()); + if(user1 != null){ + logVO.setRealName(user1.getRealName()); + logVO.setTitle(user1.getRealName() + logVO.getTitle()); } - String substring = formatter1.format(logVO.getCreateTime()).substring(8); logVO.setTime(substring.substring(0,2) + "日" + substring.substring(2)); - } + // 最后一次执行的逻辑,将logRecord保存 logRecords.add(logRecord); } + + // 计数器增加 + count.incrementAndGet(); }; // logs.forEach(logVO -> {