Files
2024-10-18 15:11:40 +08:00

59 lines
1.1 KiB
Go

package repo
import (
"gorm.io/gorm"
"os/user"
"time"
"work_cation/cfg"
"work_cation/models"
"work_cation/pkg/utils"
)
type userRepo struct {
isNew bool
users models.Users
}
var User = &userRepo{}
func (u *userRepo) GetUserInfo(db *gorm.DB) *models.Users {
if u.isNew {
return &u.users
}
var users models.Users
ip := utils.IP.Get192Ip()
db.Where("ip = ?", ip).Find(&users)
if users.Ip != ip {
current, err := user.Current()
if err != nil {
current = &user.User{Name: ip}
}
users = models.Users{
ID: utils.Uuid.CreateUUID(),
Ip: ip,
Name: current.Username,
Cover: "",
Email: "",
Phone: "",
Address: "友嘉",
}
db.Create(&users)
}
if users.Port != cfg.T.ServerAddr {
users.Port = cfg.T.ServerAddr
users.UpdateTx = time.Now()
db.Model(&models.Users{}).Where("id = ?", users.ID).
Updates(users)
}
u.isNew = true
u.users = users
return &users
}
func (u *userRepo) Update(db *gorm.DB, newUser *models.Users) error {
u.isNew = false
return db.Model(&models.Users{}).Where("id = ?", newUser.ID).
Updates(newUser).Error
}