From 11c681e1ad7b92dfc7bf0c8fc11f4c088bb3823b Mon Sep 17 00:00:00 2001 From: bcjang Date: Wed, 6 Aug 2025 18:51:08 +0900 Subject: [PATCH] =?UTF-8?q?logTime=20=ED=83=80=EC=9E=85=EC=B2=98=EB=A6=AC?= =?UTF-8?q?=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mongodb/domain/HistoryLogInfoBase.java | 26 +++++++++++++++++-- .../admin/scheduler/MigrationService.java | 4 +-- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/src/main/java/com/caliverse/admin/mongodb/domain/HistoryLogInfoBase.java b/src/main/java/com/caliverse/admin/mongodb/domain/HistoryLogInfoBase.java index 6df4182..f0f3020 100644 --- a/src/main/java/com/caliverse/admin/mongodb/domain/HistoryLogInfoBase.java +++ b/src/main/java/com/caliverse/admin/mongodb/domain/HistoryLogInfoBase.java @@ -4,12 +4,16 @@ import com.caliverse.admin.domain.entity.FieldChange; import com.caliverse.admin.domain.entity.HISTORYTYPEDETAIL; import com.caliverse.admin.mongodb.entity.DBType; import com.caliverse.admin.mongodb.entity.EDBOperationType; +import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; import org.springframework.data.annotation.Id; +import org.springframework.data.mongodb.core.mapping.Field; import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.time.format.DateTimeParseException; import java.util.List; @Getter @@ -20,7 +24,7 @@ public class HistoryLogInfoBase implements historyLog { @Id private String id; private DBType dbType; - private LocalDateTime timestamp; + private String timestamp; private EDBOperationType operationType; private HISTORYTYPEDETAIL historyType; private String tableName; @@ -30,6 +34,24 @@ public class HistoryLogInfoBase implements historyLog { private String userId; private String userIP; + public LocalDateTime getTimestampAsLocalDateTime() { + if (timestamp == null || timestamp.isEmpty()) { + return null; + } + + try { + // 기본 형식 시도 + return LocalDateTime.parse(timestamp, DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")); + } catch (DateTimeParseException e1) { + try { + // ISO 형식 시도 + return LocalDateTime.parse(timestamp, DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss")); + } catch (DateTimeParseException e2) { + throw new IllegalArgumentException("Unable to parse timestamp: " + timestamp); + } + } + } + public HistoryLogInfoBase(DBType dbType, LocalDateTime timestamp, EDBOperationType operationType, @@ -42,7 +64,7 @@ public class HistoryLogInfoBase implements historyLog { String userIP ) { this.dbType = dbType; - this.timestamp = timestamp; + this.timestamp = timestamp != null ? timestamp.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")) : null; this.operationType = operationType; this.historyType = historyType; this.tableName = tableName; diff --git a/src/main/java/com/caliverse/admin/scheduler/MigrationService.java b/src/main/java/com/caliverse/admin/scheduler/MigrationService.java index 650695c..6ca1a15 100644 --- a/src/main/java/com/caliverse/admin/scheduler/MigrationService.java +++ b/src/main/java/com/caliverse/admin/scheduler/MigrationService.java @@ -58,7 +58,7 @@ public class MigrationService { CompletableFuture logFuture = businessLogService.saveLog( LogCategory.DYNAMODB, LogStatus.SUCCESS, - history.getTimestamp(), + history.getTimestampAsLocalDateTime(), "", domain, history.getUserId(), @@ -96,7 +96,7 @@ public class MigrationService { CompletableFuture logFuture = businessLogService.saveLog( LogCategory.DYNAMODB, LogStatus.SUCCESS, - history.getTimestamp(), + history.getTimestampAsLocalDateTime(), "", domain, history.getUserId(),