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("UserID = ?", newUser.ID).Updates(newUser).Error }