在线用户显示、定时删除日志

This commit is contained in:
lyd
2022-10-11 18:31:03 +08:00
parent a683ec765a
commit e942dbd4c5
6 changed files with 56 additions and 16 deletions

View File

@@ -36,4 +36,8 @@ public interface LogRepository extends JpaRepository<Log,Long>, JpaSpecification
@Modifying @Modifying
@Query(value = "delete from sys_log where log_type = ?1", nativeQuery = true) @Query(value = "delete from sys_log where log_type = ?1", nativeQuery = true)
void deleteByLogType(String logType); 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);
} }

View File

@@ -79,4 +79,14 @@ public interface LogService {
* 删除所有INFO日志 * 删除所有INFO日志
*/ */
void delAllByInfo(); void delAllByInfo();
/**
* 删除15天之前的错误日志
*/
void delAfterDay15ByError();
/**
* 删除15天之前的INFO日志
*/
void delAfterDay15ByInfo();
} }

View File

@@ -155,4 +155,16 @@ public class LogServiceImpl implements LogService {
public void delAllByInfo() { public void delAllByInfo() {
logRepository.deleteByLogType("INFO"); 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");
}
} }

View File

@@ -118,10 +118,11 @@ public class AuthorizationController {
put("user", jsonObject); put("user", jsonObject);
}}; }};
// 使redis获取过期的token
redisUtils.set("my-satoken", StpUtil.getTokenValue(), StpUtil.getTokenTimeout()); redisUtils.set("my-satoken", StpUtil.getTokenValue(), StpUtil.getTokenTimeout());
// 保存在线信息 // 保存在线信息
// onlineUserService.save(userDto, StpUtil.getTokenValue(), request); onlineUserService.save(userDto, StpUtil.getTokenValue(), request);
return ResponseEntity.ok(authInfo); return ResponseEntity.ok(authInfo);
} }
@@ -159,7 +160,7 @@ public class AuthorizationController {
@ApiOperation("退出登录") @ApiOperation("退出登录")
@DeleteMapping(value = "/logout") @DeleteMapping(value = "/logout")
public ResponseEntity<Object> logout(HttpServletRequest request) { public ResponseEntity<Object> logout(HttpServletRequest request) {
// onlineUserService.logout(StpUtil.getTokenValue()); onlineUserService.logout(StpUtil.getTokenValue());
StpUtil.logout(); StpUtil.logout();
return new ResponseEntity<>(HttpStatus.OK); return new ResponseEntity<>(HttpStatus.OK);
} }

View File

@@ -15,6 +15,7 @@
*/ */
package org.nl.modules.security.service; package org.nl.modules.security.service;
import cn.dev33.satoken.stp.StpUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.modules.common.utils.*; import org.nl.modules.common.utils.*;
@@ -61,7 +62,7 @@ public class OnlineUserService {
} catch (Exception e) { } catch (Exception e) {
log.error(e.getMessage(),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 / * @return /
*/ */
public List<OnlineUserDto> getAll(String filter){ public List<OnlineUserDto> getAll(String filter){
// List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*"); List<String> keys = redisUtils.scan("*");
// Collections.reverse(keys); Collections.reverse(keys);
List<OnlineUserDto> onlineUserDtos = new ArrayList<>(); List<OnlineUserDto> onlineUserDtos = new ArrayList<>();
// for (String key : keys) { for (String key : keys) {
// OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key); if (key.length() == 1511) {
// if(StrUtil.isNotEmpty(filter)){ OnlineUserDto onlineUserDto = (OnlineUserDto) redisUtils.get(key);
// if(onlineUserDto.toString().contains(filter)){ if(StrUtil.isNotEmpty(filter)){
// onlineUserDtos.add(onlineUserDto); if(onlineUserDto.toString().contains(filter)){
// } onlineUserDtos.add(onlineUserDto);
// } else { }
// onlineUserDtos.add(onlineUserDto); } else {
// } onlineUserDtos.add(onlineUserDto);
// } }
}
}
onlineUserDtos.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime())); onlineUserDtos.sort((o1, o2) -> o2.getLoginTime().compareTo(o1.getLoginTime()));
return onlineUserDtos; return onlineUserDtos;
} }

View File

@@ -1,6 +1,8 @@
package org.nl.wms.autotask; package org.nl.wms.autotask;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import org.nl.modules.logging.service.LogService;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
/** /**
@@ -8,9 +10,16 @@ import org.springframework.stereotype.Component;
*/ */
@Slf4j @Slf4j
@Component @Component
@RequiredArgsConstructor
public class CleanLog { public class CleanLog {
private final LogService logService;
public void run(){ public void run(){
log.info("run 执行成功"); // 删除所有异常日志
logService.delAfterDay15ByError();
// 删除所有操作日志
logService.delAfterDay15ByInfo();
log.info("删除所有异常/操作日志 执行成功");
} }
} }