diff --git a/pkg/utils/uuid.go b/pkg/utils/uuid.go index b724c9e..3dfb7fa 100644 --- a/pkg/utils/uuid.go +++ b/pkg/utils/uuid.go @@ -9,19 +9,37 @@ import ( "time" ) -var uuidint = 0 -var lock sync.Mutex +type UuidUtil struct { + lock sync.Mutex + uuidint int +} -func CreateUUID() string { - lock.Lock() - defer lock.Unlock() +var Uuid = &UuidUtil{} + +func (u *UuidUtil) CreateUUID() string { + u.lock.Lock() + defer u.lock.Unlock() // 生成基于字符串的 UUID - key := fmt.Sprintln(Get192Ip(), time.Now().Format("2006-01-02_15-04-05"), uuidint) - uuidint++ + key := fmt.Sprintln(IP.Get192Ip(), time.Now().Format("2006-01-02_15-04-05"), u.uuidint) + u.uuidint++ u1 := uuid.NewSHA1(uuid.Nil, []byte(key)) return u1.String() } +type IpUtil struct { + Ip string +} + +var IP = &IpUtil{} + +func (i *IpUtil) Get192Ip() string { + if i.Ip == "" { + i.Ip = Get192Ip() + return i.Ip + } + return i.Ip +} + func Get192Ip() string { interfaces, err := net.Interfaces() if err != nil { diff --git a/repo/user.go b/repo/user.go index 8a7a1fb..742c46a 100644 --- a/repo/user.go +++ b/repo/user.go @@ -14,7 +14,7 @@ var UserRepo *User func (*User) GetUserInfo(db *gorm.DB) *models.Users { var users models.Users db.Find(&users) - ip := utils.Get192Ip() + ip := utils.IP.Get192Ip() if users.Ip != ip { current, err := user.Current() if err != nil { diff --git a/views/createErlangCard.go b/views/createErlangCard.go index 832c360..d6d5139 100644 --- a/views/createErlangCard.go +++ b/views/createErlangCard.go @@ -19,8 +19,8 @@ var erlangCard *models.ErlangCards func CreateErlangCard(w fyne.Window) fyne.CanvasObject { if erlangCard == nil { erlangCard = &models.ErlangCards{ - UUID: utils.CreateUUID(), - UserIp: utils.Get192Ip(), + UUID: utils.Uuid.CreateUUID(), + UserIp: utils.IP.Get192Ip(), } } var ( @@ -48,7 +48,7 @@ func CreateErlangCard(w fyne.Window) fyne.CanvasObject { } dialog.ShowInformation("ok", "创建成功", w) // 更换 - erlangCard.UUID = utils.CreateUUID() + erlangCard.UUID = utils.Uuid.CreateUUID() }) return container.NewBorder(container.NewHBox(widget.NewLabel("新建"), widget.NewSeparator()), diff --git a/views/erlangCard.go b/views/erlangCard.go index b917542..5f9a060 100644 --- a/views/erlangCard.go +++ b/views/erlangCard.go @@ -28,7 +28,7 @@ func myCardsViews(w fyne.Window) fyne.CanvasObject { func ErlangCardView(w fyne.Window, data *models.ErlangCards) fyne.CanvasObject { if data == nil { data = &models.ErlangCards{ - UUID: utils.CreateUUID(), + UUID: utils.Uuid.CreateUUID(), Title: "玩家获取", Text: "玩家获取脚本", VarName: []string{"服务器ID", "玩家UID"},