2dbc89b902
- 后端:error_reports 表 + POST /api/v1/public/errors + GET /api/v1/admin/errors - Flutter:ErrorReporter 单例,60s 去重,fire-and-forget,不影响用户 - main.dart:FlutterError 和 Zone 错误自动上报 - 打印异常:catch 块加 reportError,Windows 打印问题可自动采集堆栈 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
21 lines
1.1 KiB
Go
21 lines
1.1 KiB
Go
package model
|
|
|
|
import "time"
|
|
|
|
// ErrorReport 客户端错误上报记录(系统级,不做多租户隔离)
|
|
type ErrorReport struct {
|
|
ID uint64 `gorm:"primaryKey;autoIncrement" json:"id"`
|
|
CreatedAt time.Time `json:"created_at"`
|
|
ErrorType string `gorm:"size:30;not null;index" json:"error_type"` // flutter_error / zone_error / caught_exception
|
|
AppVersion string `gorm:"size:30" json:"app_version"`
|
|
Platform string `gorm:"size:20" json:"platform"` // ios/android/web/windows/macos
|
|
Username string `gorm:"size:50;index" json:"username"`
|
|
ShopID uint64 `gorm:"index" json:"shop_id"`
|
|
ShopNo string `gorm:"size:50" json:"shop_no"`
|
|
Role string `gorm:"size:20" json:"role"`
|
|
ClientIP string `gorm:"size:60" json:"client_ip"`
|
|
ErrorMsg string `gorm:"type:text;not null" json:"error_msg"`
|
|
StackTrace string `gorm:"type:text" json:"stack_trace"`
|
|
OccurredAt time.Time `json:"occurred_at"`
|
|
}
|