在线用户显示、定时删除日志
This commit is contained in:
@@ -36,4 +36,8 @@ public interface LogRepository extends JpaRepository<Log,Long>, 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);
|
||||
}
|
||||
|
||||
@@ -79,4 +79,14 @@ public interface LogService {
|
||||
* 删除所有INFO日志
|
||||
*/
|
||||
void delAllByInfo();
|
||||
|
||||
/**
|
||||
* 删除15天之前的错误日志
|
||||
*/
|
||||
void delAfterDay15ByError();
|
||||
|
||||
/**
|
||||
* 删除15天之前的INFO日志
|
||||
*/
|
||||
void delAfterDay15ByInfo();
|
||||
}
|
||||
|
||||
@@ -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");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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<Object> logout(HttpServletRequest request) {
|
||||
// onlineUserService.logout(StpUtil.getTokenValue());
|
||||
onlineUserService.logout(StpUtil.getTokenValue());
|
||||
StpUtil.logout();
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
@@ -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<OnlineUserDto> getAll(String filter){
|
||||
// List<String> keys = redisUtils.scan(properties.getOnlineKey() + "*");
|
||||
// Collections.reverse(keys);
|
||||
List<String> keys = redisUtils.scan("*");
|
||||
Collections.reverse(keys);
|
||||
List<OnlineUserDto> 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;
|
||||
}
|
||||
|
||||
@@ -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("删除所有异常/操作日志 执行成功");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user