users.go 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. package models
  2. import (
  3. _ "gorm.io/driver/mysql"
  4. )
  5. type User struct {
  6. Model
  7. Name string `gorm:"size:50 index:idx_name not null default:''" json:"name"`
  8. Password string `gorm:"size:50 not null default:''" json:"password"`
  9. Nickname string `gorm:"size:50 not null default:''" json:"nickname"`
  10. Avator string `gorm:"size:255 not null default:''" json:"avator"`
  11. RoleName string `gorm:"-" json:"role_name"`
  12. RoleId string `gorm:"-" json:"role_id"`
  13. Enabled uint `gorm:"size:2 not null default:1" json:"enabled"`
  14. }
  15. func CreateUser(name string, password string, avator string, nickname string, enabled uint) uint {
  16. user := &User{
  17. Name: name,
  18. Password: password,
  19. Avator: avator,
  20. Nickname: nickname,
  21. Enabled: enabled,
  22. }
  23. DB.Create(user)
  24. return user.ID
  25. }
  26. func UpdateUser(id string, name string, password string, avator string, nickname string, enabled uint) {
  27. user := &User{
  28. Name: name,
  29. Avator: avator,
  30. Nickname: nickname,
  31. Enabled: enabled,
  32. }
  33. if password != "" {
  34. user.Password = password
  35. }
  36. DB.Model(&User{}).Where("id = ?", id).Updates(user)
  37. }
  38. func FindUser(username string) User {
  39. var user User
  40. DB.Where("name = ?", username).First(&user)
  41. return user
  42. }
  43. func FindUserById(id interface{}) User {
  44. var user User
  45. DB.Select("user.*,role.name role_name,role.id role_id").Joins("join user_role on user.id=user_role.user_id").Joins("join role on user_role.role_id=role.id").Where("user.id = ?", id).First(&user)
  46. return user
  47. }
  48. func DeleteUserById(id string) {
  49. DB.Where("id = ?", id).Delete(User{})
  50. }
  51. func FindUsers() []User {
  52. var users []User
  53. DB.Select("users.*,roles.name role_name").Joins("left join user_role on users.id=user_role.user_id").Joins("left join roles on user_role.role_id=roles.id").Order("users.id desc").Find(&users)
  54. return users
  55. }
  56. func FindUserRole(query interface{}, id interface{}) User {
  57. var user User
  58. DB.Select(query).Where("users.id = ?", id).Joins("join user_role on users.id=user_role.user_id").Joins("join roles on user_role.role_id=roles.id").First(&user)
  59. return user
  60. }