98 lines
2.5 KiB
Go
98 lines
2.5 KiB
Go
package dao
|
||
|
||
import (
|
||
"fmt"
|
||
"gorm.io/gorm"
|
||
"videoplayer/proto"
|
||
)
|
||
|
||
type User struct {
|
||
gorm.Model
|
||
Name string `gorm:"column:name"`
|
||
Age int `gorm:"column:age"`
|
||
Email string `gorm:"column:email"`
|
||
Password string `gorm:"column:password"`
|
||
Gender string `gorm:"column:gender"`
|
||
Role string `gorm:"column:role"`
|
||
Redis bool `gorm:"column:redis"`
|
||
Run bool `gorm:"column:run"`
|
||
Upload bool `gorm:"column:upload"`
|
||
Avatar string `gorm:"column:avatar"`
|
||
CreateTime string `gorm:"column:create_time"`
|
||
UpdateTime string `gorm:"column:update_time"`
|
||
}
|
||
|
||
func CreateUser(name, password, email, gender string, age int) uint {
|
||
user := User{Name: name, Email: email, Password: password, Gender: gender, Age: age}
|
||
res := DB.Create(&user)
|
||
if res.Error != nil {
|
||
return 0
|
||
}
|
||
return user.ID
|
||
}
|
||
|
||
func DeleteUserByID(id int) int {
|
||
DB.Delete(&User{}, id)
|
||
return id
|
||
}
|
||
|
||
func FindUserByID(id int) []proto.User {
|
||
var users []proto.User
|
||
DB.Where("id = ?", id).First(&users)
|
||
return users
|
||
}
|
||
func FindUserByID2(id int) User {
|
||
var user User
|
||
DB.Where("id = ?", id).First(&user)
|
||
return user
|
||
}
|
||
|
||
func FindUserByUserID(id int) User {
|
||
var user User
|
||
DB.Where("id = ?", id).First(&user)
|
||
return user
|
||
}
|
||
|
||
func FindUserByName(name string) User {
|
||
var user User
|
||
fmt.Println("name:", name)
|
||
DB.Where("name = ?", name).First(&user)
|
||
return user
|
||
}
|
||
|
||
// 根据name模糊查询,邮箱也是,不查询密码
|
||
func FindUserByNameLike(name string) []proto.User {
|
||
var users []proto.User
|
||
DB.Where("name LIKE ? OR email LIKE ?", "%"+name+"%", "%"+name+"%").Find(&users).Limit(32)
|
||
return users
|
||
}
|
||
|
||
func FindUserByEmail(email string) User {
|
||
var user User
|
||
DB.Where("email = ?", email).First(&user)
|
||
return user
|
||
}
|
||
|
||
func UpdateUserByID(id int, name, password, email string) {
|
||
DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: name, Password: password, Email: email})
|
||
}
|
||
|
||
// 管理员修改用户信息
|
||
func UpdateUserByID2(id int, req proto.UpdateUserInfoReq) {
|
||
updateData := make(map[string]interface{})
|
||
updateData["Name"] = req.Username
|
||
updateData["Age"] = req.Age
|
||
updateData["Role"] = req.Role
|
||
updateData["Run"] = req.Run
|
||
updateData["Redis"] = req.Redis
|
||
updateData["Upload"] = req.Upload
|
||
updateData["Avatar"] = req.Avatar
|
||
updateData["Gender"] = req.Gender
|
||
DB.Model(&User{}).Where("id =?", id).Updates(updateData)
|
||
}
|
||
|
||
// 用户修改自己的信息
|
||
func UpdateUserByID3(id int, req proto.UpdateUserInfoReq) {
|
||
DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: req.Username, Age: req.Age, Avatar: req.Avatar, Gender: req.Gender})
|
||
}
|