From c68a2d376f67d60277001e3f748fbd71c5201af3 Mon Sep 17 00:00:00 2001 From: zhangqian <zhangqian@123.com> Date: 星期五, 08 十二月 2023 17:02:12 +0800 Subject: [PATCH] debug --- model/model.go | 29 +++++++++++++++++++---------- 1 files changed, 19 insertions(+), 10 deletions(-) diff --git a/model/model.go b/model/model.go index 920a3e6..aa1f864 100644 --- a/model/model.go +++ b/model/model.go @@ -8,9 +8,10 @@ "time" ) +type BigID uint + type CommonModel struct { - ID uint `gorm:"primary_key;autoIncrement:false" json:"-"` - IDStr string `json:"ID" gorm:"-"` + ID BigID `gorm:"primary_key"` CreatedAt time.Time UpdatedAt time.Time DeletedAt *time.Time `sql:"index"` @@ -20,21 +21,29 @@ if c.ID == 0 { id := snowflake.GenerateID() if id < 0 { + // 澶勭悊 ID 涓鸿礋鏁扮殑鎯呭喌锛堝彲閫夛級 id = snowflake.GenerateID() } - c.ID = uint(id) + c.ID = BigID(id) } } -func (c CommonModel) UnmarshalJSON(b []byte) (err error) { - id, err := strconv.ParseUint(c.IDStr, 10, 64) + +func (id *BigID) UnmarshalJSON(b []byte) error { + var idString string + if err := json.Unmarshal(b, &idString); err != nil { + return err + } + + idValue, err := strconv.ParseUint(idString, 10, 64) if err != nil { return err } - c.ID = uint(id) - return + + *id = BigID(idValue) + return nil } -func (c CommonModel) MarshalJSON() ([]byte, error) { - c.IDStr = strconv.FormatUint(uint64(c.ID), 10) - return json.Marshal(c) +func (id *BigID) MarshalJSON() ([]byte, error) { + idString := strconv.FormatUint(uint64(*id), 10) + return []byte(idString), nil } -- Gitblit v1.8.0