diff --git a/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java b/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java index fae4022bc..331442f90 100644 --- a/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java +++ b/nladmin-system/src/main/java/org/nl/modules/logging/repository/LogRepository.java @@ -36,4 +36,8 @@ public interface LogRepository extends JpaRepository, JpaSpecification @Modifying @Query(value = "delete from sys_log where log_type = ?1", nativeQuery = true) void deleteByLogType(String logType); + + @Modifying + @Query(value = "delete from sys_log where log_type = ?1 and DATEDIFF(NOW(),create_time) >= 15", nativeQuery = true) + void delAfterDay(String logType); } diff --git a/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java b/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java index e9fadd072..ecfc8d900 100644 --- a/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java +++ b/nladmin-system/src/main/java/org/nl/modules/logging/service/LogService.java @@ -79,4 +79,14 @@ public interface LogService { * 删除所有INFO日志 */ void delAllByInfo(); + + /** + * 删除15天之前的错误日志 + */ + void delAfterDay15ByError(); + + /** + * 删除15天之前的INFO日志 + */ + void delAfterDay15ByInfo(); } diff --git a/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java b/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java index caaffddfe..3d19d502c 100644 --- a/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java +++ b/nladmin-system/src/main/java/org/nl/modules/logging/service/impl/LogServiceImpl.java @@ -155,4 +155,16 @@ public class LogServiceImpl implements LogService { public void delAllByInfo() { logRepository.deleteByLogType("INFO"); } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delAfterDay15ByError() { + logRepository.delAfterDay("ERROR"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public void delAfterDay15ByInfo() { + logRepository.delAfterDay("INFO"); + } } diff --git a/nladmin-system/src/main/java/org/nl/modules/security/rest/AuthorizationController.java b/nladmin-system/src/main/java/org/nl/modules/security/rest/AuthorizationController.java index 923ab5eb3..36e79ddad 100644 --- a/nladmin-system/src/main/java/org/nl/modules/security/rest/AuthorizationController.java +++ b/nladmin-system/src/main/java/org/nl/modules/security/rest/AuthorizationController.java @@ -118,10 +118,11 @@ public class AuthorizationController { put("user", jsonObject); }}; + // 使redis获取过期的token redisUtils.set("my-satoken", StpUtil.getTokenValue(), StpUtil.getTokenTimeout()); // 保存在线信息 -// onlineUserService.save(userDto, StpUtil.getTokenValue(), request); + onlineUserService.save(userDto, StpUtil.getTokenValue(), request); return ResponseEntity.ok(authInfo); } @@ -159,7 +160,7 @@ public class AuthorizationController { @ApiOperation("退出登录") @DeleteMapping(value = "/logout") public ResponseEntity logout(HttpServletRequest request) { -// onlineUserService.logout(StpUtil.getTokenValue()); + onlineUserService.logout(StpUtil.getTokenValue()); StpUtil.logout(); return new ResponseEntity<>(HttpStatus.OK); } diff --git a/nladmin-system/src/main/java/org/nl/modules/security/service/OnlineUserService.java b/nladmin-system/src/main/java/org/nl/modules/security/service/OnlineUserService.java index 0687fa613..e4b8b5e1a 100644 --- a/nladmin-system/src/main/java/org/nl/modules/security/service/OnlineUserService.java +++ b/nladmin-system/src/main/java/org/nl/modules/security/service/OnlineUserService.java @@ -15,6 +15,7 @@ */ package org.nl.modules.security.service; +import cn.dev33.satoken.stp.StpUtil; import cn.hutool.core.util.StrUtil; import lombok.extern.slf4j.Slf4j; import org.nl.modules.common.utils.*; @@ -61,7 +62,7 @@ public class OnlineUserService { } catch (Exception e) { log.error(e.getMessage(),e); } - redisUtils.set(token, onlineUserDto, 60*60*1000); + redisUtils.set(token, onlineUserDto, StpUtil.getTokenTimeout()); } /** @@ -84,19 +85,22 @@ public class OnlineUserService { * @return / */ public List getAll(String filter){ -// List keys = redisUtils.scan(properties.getOnlineKey() + "*"); -// Collections.reverse(keys); + List keys = redisUtils.scan("*"); + Collections.reverse(keys); List onlineUserDtos = new ArrayList<>(); -// for (String key : keys) { -// OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); -// if(StrUtil.isNotEmpty(filter)){ -// if(onlineUserDto.toString().contains(filter)){ -// onlineUserDtos.add(onlineUserDto); -// } -// } else { -// onlineUserDtos.add(onlineUserDto); -// } -// } + for (String key : keys) { + if (key.length() == 1511) { + OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); + if(StrUtil.isNotEmpty(filter)){ + if(onlineUserDto.toString().contains(filter)){ + onlineUserDtos.add(onlineUserDto); + } + } else { + onlineUserDtos.add(onlineUserDto); + } + } + + } onlineUserDtos.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime())); return onlineUserDtos; } diff --git a/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java b/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java index 95d001d9f..be9986e4f 100644 --- a/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java +++ b/nladmin-system/src/main/java/org/nl/wms/autotask/CleanLog.java @@ -1,6 +1,8 @@ package org.nl.wms.autotask; +import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; +import org.nl.modules.logging.service.LogService; import org.springframework.stereotype.Component; /** @@ -8,9 +10,16 @@ import org.springframework.stereotype.Component; */ @Slf4j @Component +@RequiredArgsConstructor public class CleanLog { + private final LogService logService; + public void run(){ - log.info("run 执行成功"); + // 删除所有异常日志 + logService.delAfterDay15ByError(); + // 删除所有操作日志 + logService.delAfterDay15ByInfo(); + log.info("删除所有异常/操作日志 执行成功"); } }