diff --git a/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java b/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java index 63f7089..64dcdbe 100644 --- a/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java +++ b/src/main/java/com/knowledge/base/infrastructure/config/ConstantConfig.java @@ -1,5 +1,6 @@ package com.knowledge.base.infrastructure.config; +import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** @@ -15,4 +16,6 @@ public class ConstantConfig { public static final DateTimeFormatter DTF = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + public static final LocalDateTime LONG_TERM_EXPIRE_TIME = LocalDateTime.of(9999, 12, 31, 23, 59, 59); + } diff --git a/src/main/java/com/knowledge/base/infrastructure/north/controller/FileQueryController.java b/src/main/java/com/knowledge/base/infrastructure/north/controller/FileQueryController.java index 599017a..7ea93b7 100644 --- a/src/main/java/com/knowledge/base/infrastructure/north/controller/FileQueryController.java +++ b/src/main/java/com/knowledge/base/infrastructure/north/controller/FileQueryController.java @@ -127,19 +127,40 @@ public class FileQueryController { Map item = new LinkedHashMap<>(); item.put("fileName", dto.getFileName()); item.put("url", dto.getUrl()); - if (dto.getExpireTime() != null) { - long days = Duration.between( - today.atStartOfDay(), - LocalDateTime.parse(dto.getExpireTime()).toLocalDate().atStartOfDay() - ).toDays(); - item.put("daysRemaining", Math.max(days, 0)); + // 格式化上传时间 + if (StrUtil.isNotBlank(dto.getUploadTime())) { + try { + LocalDateTime uploadTime = LocalDateTime.parse(dto.getUploadTime()); + item.put("uploadTime", uploadTime.format(ConstantConfig.DTF)); + } catch (Exception e) { + item.put("uploadTime", dto.getUploadTime()); + } } else { - item.put("daysRemaining", -1); + item.put("uploadTime", "-"); } + + // 格式化剩余天数 + if (StrUtil.isNotBlank(dto.getExpireTime())) { + try { + LocalDateTime expireTime = LocalDateTime.parse(dto.getExpireTime()); + if (expireTime.equals(ConstantConfig.LONG_TERM_EXPIRE_TIME)) { + item.put("daysRemaining", "长期有效"); + } else { + long days = Duration.between(LocalDateTime.now(), expireTime).toDays(); + item.put("daysRemaining", days >= 0 ? "还剩 " + days + " 天" : "已过期"); + } + } catch (Exception e) { + item.put("daysRemaining", "未知"); + } + } else { + item.put("daysRemaining", "未知"); + } + data.add(item); } + Map response = new LinkedHashMap<>(); response.put("total", result.getTotal()); response.put("currentCount", result.getList().size());