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}) }