package com.zy.system.timer; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.core.common.Cools; import com.zy.system.entity.UserLogin; import com.zy.system.service.UserLoginService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; /** * token定时任务,删除过期的token */ @Component @Slf4j public class TokenTimer { @Autowired private UserLoginService userLoginService; @Autowired private LoadingConfigTimer loadingConfigTimer; @Value("${super.pwd}") private String superPwd; @Scheduled(cron = "0/30 * * * * ? ") public void timer() { if (loadingConfigTimer.getTokenNumber() == 1) { return; } List userLogins = userLoginService.selectList(new EntityWrapper<>()); for (UserLogin userLogin : userLogins) { String deToken = Cools.deTokn(userLogin.getToken(), superPwd); if (deToken != null) { long timestamp = Long.parseLong(deToken.substring(0, 13)); // 半小时后过期 if (System.currentTimeMillis() - timestamp > loadingConfigTimer.getTokenExpire()) { userLoginService.deleteById(userLogin.getId()); } } } } }