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