Просмотр исходного кода

[26110502] 数据补传主键冲突修复: data_report_log由外部服务写显式ID致自增序列失步, IdType.AUTO插入撞pkey(id=2), 实体改ASSIGN_ID雪花ID不经DB序列, id加ToStringSerializer防前端JS 2^53精度丢失(file/content回传)

Co-authored-by: Qwen-Coder <qwen-coder@alibabacloud.com>
taosj 4 часов назад
Родитель
Сommit
4c09847f38

+ 9 - 2
forecast-backend-server/src/main/java/com/ufo/project/forecast/fileupload/domain/DataReportLog.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
 
@@ -18,8 +20,13 @@ import org.apache.commons.lang3.builder.ToStringStyle;
 @TableName("data_report_log")
 public class DataReportLog
 {
-    /** 日志主键ID */
-    @TableId(value = "id", type = IdType.AUTO)
+    /**
+     * 日志主键ID
+     * 雪花ID客户端生成(ASSIGN_ID): 该表由外部服务写入显式ID, DB自增序列与max(id)失步, 依赖AUTO会主键冲突
+     * 序列化为字符串: 雪花ID超过JS Number安全整数(2^53), 前端回传file/content/{id}需保持精度
+     */
+    @TableId(value = "id", type = IdType.ASSIGN_ID)
+    @JsonSerialize(using = ToStringSerializer.class)
     private Long id;
 
     /** 文件类型:supershort|short|medium */