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

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
}