videoplayer/dao/user.go

153 lines
4.7 KiB
Go
Raw Normal View History

package dao
import (
"fmt"
2024-06-03 17:13:23 +08:00
"gorm.io/gorm"
"videoplayer/proto"
)
type User struct {
2024-06-03 17:13:23 +08:00
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"`
2024-07-12 11:34:24 +08:00
Role string `gorm:"column:role"`
2024-07-19 09:43:17 +08:00
Redis bool `gorm:"column:redis"`
Run bool `gorm:"column:run"`
2024-08-30 11:28:27 +08:00
Upload bool `gorm:"column:upload"`
2024-12-04 18:23:49 +08:00
VideoFunc bool `gorm:"column:video_func"` //视频功能
DeviceFunc bool `gorm:"column:device_func"` //设备功能
CIDFunc bool `gorm:"column:cid_func"` //持续集成功能
2024-10-06 16:35:54 +08:00
Avatar string `gorm:"column:avatar"`
CreateTime string `gorm:"column:create_time"`
UpdateTime string `gorm:"column:update_time"`
}
2024-07-01 19:32:58 +08:00
func CreateUser(name, password, email, gender string, age int) uint {
user := User{Name: name, Email: email, Password: password, Gender: gender, Age: age}
2024-10-04 11:37:25 +08:00
res := DB.Create(&user)
2024-07-02 20:11:25 +08:00
if res.Error != nil {
return 0
}
return user.ID
}
func DeleteUserByID(id int) int {
res := DB.Delete(&User{}, id)
if res.Error != nil {
return 0
}
return id
}
2024-06-28 10:38:55 +08:00
func FindUserByID(id int) []proto.User {
var users []proto.User
2024-10-04 11:37:25 +08:00
DB.Where("id = ?", id).First(&users)
return users
}
func FindUserByID2(id int) User {
var user User
2024-10-04 11:37:25 +08:00
DB.Where("id = ?", id).First(&user)
return user
}
2024-07-07 11:57:33 +08:00
func FindUserByUserID(id int) User {
var user User
2024-10-04 11:37:25 +08:00
DB.Where("id = ?", id).First(&user)
2024-07-07 11:57:33 +08:00
return user
}
func FindUserByName(name string) User {
var user User
fmt.Println("name:", name)
2024-10-04 11:37:25 +08:00
DB.Where("name = ?", name).First(&user)
return user
}
// 根据name模糊查询邮箱也是,不查询密码
2024-06-28 10:38:55 +08:00
func FindUserByNameLike(name string) []proto.User {
var users []proto.User
2024-10-04 11:37:25 +08:00
DB.Where("name LIKE ? OR email LIKE ?", "%"+name+"%", "%"+name+"%").Find(&users).Limit(32)
return users
}
func FindUserByEmail(email string) User {
var user User
2024-10-04 11:37:25 +08:00
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})
}
2024-10-06 16:35:54 +08:00
2024-12-04 14:39:29 +08:00
// 管理员修改用户信息
2024-12-15 16:38:48 +08:00
func UpdateUserByID2(id int, req proto.UpdateUserInfoReq) error {
2024-12-04 14:55:35 +08:00
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
2024-12-04 18:23:49 +08:00
updateData["VideoFunc"] = req.VideoFunc
updateData["DeviceFunc"] = req.DeviceFunc
updateData["CIDFunc"] = req.CIDFunc
2024-12-04 14:55:35 +08:00
updateData["Avatar"] = req.Avatar
updateData["Gender"] = req.Gender
2024-12-15 16:38:48 +08:00
res := DB.Model(&User{}).Where("id =?", id).Updates(updateData)
if res.Error != nil {
return res.Error
}
return nil
2024-12-04 14:39:29 +08:00
}
// 用户修改自己的信息
func UpdateUserByID3(id int, req proto.UpdateUserInfoReq) error {
res := DB.Model(&User{}).Where("id = ?", id).Updates(User{Name: req.Username, Age: req.Age, Avatar: req.Avatar, Gender: req.Gender})
2024-12-15 16:38:48 +08:00
return res.Error
2024-10-06 16:35:54 +08:00
}
// 用户数据同步-添加
func AddUserSync(req proto.UserAddOrUpdate) uint {
res := DB.Exec("insert into users (id, created_at, updated_at, deleted_at, name, age, email, password,gender,role,redis,run,upload,video_func,device_func,cid_func,avatar,create_time,update_time) values (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?)", req.ID, req.CreatedAt, req.UpdatedAt, req.DeletedAt, req.Name, req.Age, req.Email, req.Password, req.Gender, req.Role, req.Redis, req.Run, req.Upload, req.VideoFunc, req.DeviceFunc, req.CIDFunc, req.Avatar, req.CreateTime, req.UpdateTime)
if res.Error != nil {
return 0
}
return req.ID
}
// 用户数据同步-更新
func UpdateUserSync(req proto.UserAddOrUpdate) uint {
res := DB.Exec("update users set created_at=?, updated_at=?, deleted_at=?, name=?, age=?, email=?, password=?,gender=?,role=?,redis=?,run=?,upload=?,video_func=?,device_func=?,cid_func=?,avatar=?,create_time=?,update_time=? where id=?", req.CreatedAt, req.UpdatedAt, req.DeletedAt, req.Name, req.Age, req.Email, req.Password, req.Gender, req.Role, req.Redis, req.Run, req.Upload, req.VideoFunc, req.DeviceFunc, req.CIDFunc, req.Avatar, req.CreateTime, req.UpdateTime, req.ID)
if res.Error != nil {
return 0
}
return req.ID
}
// 用户数据同步-删除
func DeleteUserSync(req proto.UserDelID) uint {
res := DB.Delete(&User{}, req.ID)
if res.Error != nil {
return 0
}
return req.ID
}
2024-12-11 17:43:44 +08:00
// 获取所有用户
func GetAllUser() []User {
var users []User
2024-12-11 17:43:44 +08:00
DB.Find(&users)
return users
}
2024-12-15 15:10:41 +08:00
// 用户数据同步
type UserSyncResp struct {
Update []User `json:"update" form:"update"` //更新用户
Add []User `json:"add" form:"add"` //添加用户
Delete []proto.UserDelID `json:"delete" form:"delete"` //删除用户
}