XuqmGroup-Server/xuqm-bugcollect-service/src/main/java/com/xuqm/bugcollect/entity/LogIssueEventEntity.java
XuqmGroup 4acec019f7 feat(bugcollect): buildId 支持相同版本多包 sourcemap 与精确符号化
- V6 迁移:log_sourcemaps 新增 build_id 列,唯一键改为
  (app_key, platform, app_version, build_id, bundle_name);
  log_issue_events 新增 build_id 列
- SourcemapService: 按 buildId 精确匹配,找不到时回退到最新上传
  (findFirstByUploadedAtDesc);存储路径包含 buildId 目录
- LogService: 修复 symbolication 事件查找 bug(原使用 issueId 查
  event 表,现改为 eventId);事件保存后取返回值获取正确 ID
- LogController/DTO: upload 接口新增可选 buildId 参数;事件批量
  上报 DTO 新增 buildId 字段
- tenant-service: 补充 bugcollect-api-url 配置项

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-22 16:49:38 +08:00

143 行
4.4 KiB
Java

package com.xuqm.bugcollect.entity;
import jakarta.persistence.*;
import java.time.LocalDateTime;
@Entity
@Table(name = "log_issue_events")
public class LogIssueEventEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(nullable = false)
private Long issueId;
@Column(length = 64)
private String eventId;
@Column(nullable = false, length = 64)
private String appKey;
@Column(length = 20)
private String level;
@Column(length = 128)
private String userId;
@Column(length = 128)
private String sessionId;
@Column(length = 200)
private String exceptionType;
@Column(columnDefinition = "TEXT")
private String exceptionValue;
@Column(columnDefinition = "TEXT")
private String message;
@Column(columnDefinition = "LONGTEXT")
private String stack;
@Column(name = "stack_symbolicated", columnDefinition = "LONGTEXT")
private String stackSymbolicated;
@Column(columnDefinition = "JSON")
private String breadcrumbs;
@Column(columnDefinition = "JSON")
private String tags;
@Column(length = 16)
private String platform;
@Column(name = "app_version", length = 32)
private String release;
@Column(length = 32)
private String buildId;
@Column(length = 50)
private String environment;
@Column(columnDefinition = "JSON")
private String device;
@Column(length = 100)
private String sdkName;
@Column(length = 20)
private String sdkVersion;
@Column(nullable = false)
private LocalDateTime createdAt;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public Long getIssueId() { return issueId; }
public void setIssueId(Long issueId) { this.issueId = issueId; }
public String getEventId() { return eventId; }
public void setEventId(String eventId) { this.eventId = eventId; }
public String getAppKey() { return appKey; }
public void setAppKey(String appKey) { this.appKey = appKey; }
public String getLevel() { return level; }
public void setLevel(String level) { this.level = level; }
public String getUserId() { return userId; }
public void setUserId(String userId) { this.userId = userId; }
public String getSessionId() { return sessionId; }
public void setSessionId(String sessionId) { this.sessionId = sessionId; }
public String getExceptionType() { return exceptionType; }
public void setExceptionType(String exceptionType) { this.exceptionType = exceptionType; }
public String getExceptionValue() { return exceptionValue; }
public void setExceptionValue(String exceptionValue) { this.exceptionValue = exceptionValue; }
public String getMessage() { return message; }
public void setMessage(String message) { this.message = message; }
public String getStack() { return stack; }
public void setStack(String stack) { this.stack = stack; }
public String getStackSymbolicated() { return stackSymbolicated; }
public void setStackSymbolicated(String stackSymbolicated) { this.stackSymbolicated = stackSymbolicated; }
public String getBreadcrumbs() { return breadcrumbs; }
public void setBreadcrumbs(String breadcrumbs) { this.breadcrumbs = breadcrumbs; }
public String getTags() { return tags; }
public void setTags(String tags) { this.tags = tags; }
public String getPlatform() { return platform; }
public void setPlatform(String platform) { this.platform = platform; }
public String getRelease() { return release; }
public void setRelease(String release) { this.release = release; }
public String getBuildId() { return buildId; }
public void setBuildId(String buildId) { this.buildId = buildId; }
public String getEnvironment() { return environment; }
public void setEnvironment(String environment) { this.environment = environment; }
public String getDevice() { return device; }
public void setDevice(String device) { this.device = device; }
public String getSdkName() { return sdkName; }
public void setSdkName(String sdkName) { this.sdkName = sdkName; }
public String getSdkVersion() { return sdkVersion; }
public void setSdkVersion(String sdkVersion) { this.sdkVersion = sdkVersion; }
public LocalDateTime getCreatedAt() { return createdAt; }
public void setCreatedAt(LocalDateTime createdAt) { this.createdAt = createdAt; }
}