Files
go-chat/models/user_basic.go
2024-07-31 21:04:03 +08:00

70 lines
1.9 KiB
Go

package models
import (
"fmt"
"go-chat/utils"
"gorm.io/gorm"
"time"
)
type UserBasic struct {
gorm.Model
Username string
Password string
Avatar string
Phone string `valid:"matches(^1[3-9]{1}\\d{9}$)"`
Email string `valid:"email"`
Identity string
ClientIp string
ClientPort string
LoginTime *time.Time `gorm:"default:null"`
HeartbeatTime *time.Time `gorm:"default:null"`
LoginOutTime *time.Time `gorm:"column:login_out_time" json:"login_out_time"`
IsLogout bool
DeviceInfo string
Salt string
}
func (table *UserBasic) TableName() string {
return "user_basic"
}
func GetUserList() []*UserBasic {
data := make([]*UserBasic, 10)
utils.InitMySQL().Find(&data)
return data
}
func CreateUser(user UserBasic) *gorm.DB {
return utils.InitMySQL().Create(&user)
}
func DeleteUser(user UserBasic) *gorm.DB {
return utils.InitMySQL().Delete(&user)
}
func UpdateUser(user UserBasic) *gorm.DB {
return utils.InitMySQL().Model(&user).Updates(UserBasic{Username: user.Username, Password: user.Password, Phone: user.Phone, Email: user.Email, Avatar: user.Avatar})
}
func FindUserByName(name string) UserBasic {
user := UserBasic{}
utils.InitMySQL().Where("username = ?", name).Find(&user)
return user
}
func FindUserByPhone(phone string) *gorm.DB {
user := UserBasic{}
return utils.InitMySQL().Where("phone= ?", phone).Find(&user)
}
func FindUserByEmail(email string) *gorm.DB {
user := UserBasic{}
return utils.InitMySQL().Where("email = ?", email).First(&user)
}
func FindUserByNameAndPwd(name string, password string) UserBasic {
user := UserBasic{}
utils.InitMySQL().Where("name = ? and password = ?", name, password).First(&user)
//token加密
str := fmt.Sprintf("%d", time.Now().Unix())
temp := utils.MD5Encode(str)
utils.InitMySQL().Model(&user).Where("id = ?", user.ID).Update("identity", temp)
return user
}