You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
2.1 KiB
Go
56 lines
2.1 KiB
Go
package model
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gorm.io/gorm"
|
|
)
|
|
|
|
type User struct {
|
|
ID string `json:"id" gorm:"column:id; primaryKey;autoIncrement:false"`
|
|
UserName string `json:"username" gorm:"column:username; comment:'用户昵称'"`
|
|
PassWord string `json:"password" gorm:"column:password; comment:'密码'"`
|
|
Root int `json:"root" gorm:"comment:'权限'; default:0"`
|
|
Salt string `json:"salt" gorm:"comment:'密码盐'"`
|
|
RealName string `json:"realname" gorm:"column:realname; comment:'真实姓名'"`
|
|
Avatar string `json:"avatar" gorm:"comment:'头像'"`
|
|
LoginTime time.Time `json:"login_time" gorm:"comment:'登录时间';default:null"`
|
|
LoginIp string `json:"login_ip" gorm:"comment:'登录IP'"`
|
|
Disable int `json:"disable" gorm:"comment:'有效状态';default:0"`
|
|
DelFlag int `json:"del_flag" gorm:"comment:'删除状态';default:0"`
|
|
CreatedAt time.Time `json:"created_at" gorm:"column:created_at;comment:'创建时间'"`
|
|
UpdatedAt time.Time `json:"updated_at" gorm:"column:updated_at;comment:'修改时间'"`
|
|
DeletedAt gorm.DeletedAt `json:"deleted_at" gorm:"column:deleted_at;comment:'删除时间'"`
|
|
}
|
|
|
|
func (u User) TableName() string {
|
|
return "sys_auth_user"
|
|
}
|
|
|
|
func GetUserByUserName(db *gorm.DB, username string) (User, error) {
|
|
user := User{}
|
|
err := db.Where("username = ?", username).First(&user).Error
|
|
if err != nil && err != gorm.ErrRecordNotFound {
|
|
return user, err
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func GetUserById(db *gorm.DB, id string) (User, error) {
|
|
user := User{}
|
|
err := db.Where("id = ?", id).First(&user).Error
|
|
if err != nil && err != gorm.ErrRecordNotFound {
|
|
return user, err
|
|
}
|
|
return user, nil
|
|
}
|
|
|
|
func GetUserList(db *gorm.DB, username string, realname string, offset int, limit int) ([]User, error) {
|
|
users := []User{}
|
|
err := db.Order("created_at desc").Where("username like ? and realname like ?", "%"+username+"%", "%"+realname+"%").Offset(offset).Limit(limit).Find(&users).Error
|
|
if err != nil && err != gorm.ErrRecordNotFound {
|
|
return users, err
|
|
}
|
|
return users, nil
|
|
}
|