50 lines
905 B
Go
50 lines
905 B
Go
package repo
|
|
|
|
import (
|
|
"gorm.io/gorm"
|
|
"os/user"
|
|
"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)
|
|
}
|
|
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
|
|
}
|