ExpiryStatusTask.java 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. package com.ymwk.icvp.task;
  2. import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
  3. import com.ymwk.icvp.pki.entity.CertificateEntity;
  4. import com.ymwk.icvp.pki.mapper.CertificateMapper;
  5. import com.ymwk.icvp.signature.entity.Seal;
  6. import com.ymwk.icvp.signature.mapper.SealMapper;
  7. import lombok.extern.slf4j.Slf4j;
  8. import org.springframework.scheduling.annotation.Scheduled;
  9. import org.springframework.stereotype.Component;
  10. import java.time.LocalDateTime;
  11. @Slf4j
  12. @Component
  13. public class ExpiryStatusTask {
  14. private final CertificateMapper certificateMapper;
  15. private final SealMapper sealMapper;
  16. public ExpiryStatusTask(CertificateMapper certificateMapper, SealMapper sealMapper) {
  17. this.certificateMapper = certificateMapper;
  18. this.sealMapper = sealMapper;
  19. }
  20. @Scheduled(initialDelay = 0, fixedDelay = 3_600_000)
  21. public void updateExpiredStatuses() {
  22. LocalDateTime now = LocalDateTime.now();
  23. int expiredCertificates = certificateMapper.update(
  24. null,
  25. new LambdaUpdateWrapper<CertificateEntity>()
  26. .set(CertificateEntity::getStatus, "2")
  27. .in(CertificateEntity::getStatus, "1", "3")
  28. .lt(CertificateEntity::getValidTo, now)
  29. );
  30. int expiredSeals = sealMapper.update(
  31. null,
  32. new LambdaUpdateWrapper<Seal>()
  33. .set(Seal::getSealStatus, 4)
  34. .set(Seal::getUpdateTime, now)
  35. .set(Seal::getUpdateBy, "system")
  36. .in(Seal::getSealStatus, 1, 2)
  37. .lt(Seal::getValidEndTime, now)
  38. );
  39. if (expiredCertificates > 0 || expiredSeals > 0) {
  40. log.info("过期状态更新完成: certificates={}, seals={}", expiredCertificates, expiredSeals);
  41. }
  42. }
  43. }