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 |   33 ++++++++++++++-------------------
 1 files changed, 14 insertions(+), 19 deletions(-)

diff --git a/model/model.go b/model/model.go
index 533c35d..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" json:"-"`
-	IDStr     string `json:"ID" gorm:"-"`
+	ID        BigID `gorm:"primary_key"`
 	CreatedAt time.Time
 	UpdatedAt time.Time
 	DeletedAt *time.Time `sql:"index"`
@@ -23,32 +24,26 @@
 			// 澶勭悊 ID 涓鸿礋鏁扮殑鎯呭喌锛堝彲閫夛級
 			id = snowflake.GenerateID()
 		}
-		c.ID = uint(id)
+		c.ID = BigID(id)
 	}
 }
 
-func (c *CommonModel) UnmarshalJSON(b []byte) error {
-	var data map[string]interface{}
-	if err := json.Unmarshal(b, &data); err != nil {
+func (id *BigID) UnmarshalJSON(b []byte) error {
+	var idString string
+	if err := json.Unmarshal(b, &idString); err != nil {
 		return err
 	}
 
-	if idStr, ok := data["ID"].(string); ok {
-		id, err := strconv.ParseUint(idStr, 10, 64)
-		if err != nil {
-			return err
-		}
-		c.ID = uint(id)
-		c.IDStr = idStr
+	idValue, err := strconv.ParseUint(idString, 10, 64)
+	if err != nil {
+		return err
 	}
 
+	*id = BigID(idValue)
 	return nil
 }
 
-func (c *CommonModel) MarshalJSON() ([]byte, error) {
-	if c.ID != 0 && c.IDStr == "" {
-		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