From 1b997fc4bfdf8b79ee7b192e3eb504536d64b3c2 Mon Sep 17 00:00:00 2001 From: jack ning Date: Fri, 4 Jul 2025 11:24:27 +0800 Subject: [PATCH] update --- .../bytedesk/core/message/MessagePersistService.java | 10 ++++++---- .../com/bytedesk/core/message/MessageProtobuf.java | 8 ++++++++ 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessagePersistService.java b/modules/core/src/main/java/com/bytedesk/core/message/MessagePersistService.java index 1a1d653f7c..7dbf8a054f 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessagePersistService.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessagePersistService.java @@ -2,7 +2,7 @@ * @Author: jackning 270580156@qq.com * @Date: 2024-04-16 18:04:37 * @LastEditors: jackning 270580156@qq.com - * @LastEditTime: 2025-07-04 11:14:16 + * @LastEditTime: 2025-07-04 11:21:47 * @Description: bytedesk.com https://github.com/Bytedesk/bytedesk * Please be aware of the BSL license restrictions before installing Bytedesk IM – * selling, reselling, or hosting Bytedesk IM as a service is a breach of the terms and automatically terminates your rights under the license. @@ -41,7 +41,6 @@ public class MessagePersistService { public void persist(String messageJSON) { // log.info("persist: {}", messageJSON); MessageProtobuf messageProtobuf = MessageProtobuf.fromJson(messageJSON); - //JSON.parseObject(messageJSON, MessageProtobuf.class); // MessageTypeEnum type = messageProtobuf.getType(); String threadUid = messageProtobuf.getThread().getUid(); @@ -75,6 +74,11 @@ public class MessagePersistService { if (MessageStatusEnum.SENDING.equals(messageProtobuf.getStatus())) { message.setStatus(MessageStatusEnum.SUCCESS.name()); } + // 手动设置 createdAt,确保时间字段正确映射 + if (messageProtobuf.getCreatedAtDateTime() != null) { + message.setCreatedAt(messageProtobuf.getCreatedAtDateTime()); + } + // message content: 8, createdAt: 2025-07-04T11:21:05+08:00[Asia/Shanghai], messageProtobuf createdAt: 2025-07-04 11:21:05 log.info("message content: {}, createdAt: {}, messageProtobuf createdAt: {}", message.getContent(), message.getCreatedAt(), messageProtobuf.getCreatedAt()); Optional threadOpt = threadRestService.findByUid(threadUid); if (threadOpt.isPresent()) { @@ -84,8 +88,6 @@ public class MessagePersistService { log.info("thread not found, uid: {}", threadUid); return; } - // message.setThreadUid(threadUid); - // message.setTopic(threadTopic); message.setUser(messageProtobuf.getUser().toJson()); message.setUserUid(messageProtobuf.getUser().getUid()); // diff --git a/modules/core/src/main/java/com/bytedesk/core/message/MessageProtobuf.java b/modules/core/src/main/java/com/bytedesk/core/message/MessageProtobuf.java index 25a5f9b0d7..1efd91521d 100644 --- a/modules/core/src/main/java/com/bytedesk/core/message/MessageProtobuf.java +++ b/modules/core/src/main/java/com/bytedesk/core/message/MessageProtobuf.java @@ -73,6 +73,14 @@ public class MessageProtobuf implements Serializable { return BdDateUtils.formatDatetimeToString(createdAt); } + /** + * 获取原始的创建时间 + * @return ZonedDateTime 原始时间对象 + */ + public ZonedDateTime getCreatedAtDateTime() { + return createdAt; + } + public static MessageProtobuf fromJson(String user) { return JSON.parseObject(user, MessageProtobuf.class); }