user.go 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110
  1. package dao
  2. import (
  3. "time"
  4. )
  5. // User 用户
  6. type User struct {
  7. ID int `gorm:"primary_key;type:int" json:"id"` //编号
  8. TenantId string `gorm:"type:varchar(12)" json:"tenantId"` //租户ID
  9. Code string `gorm:"type:varchar(12)" json:"code"` //用户编号
  10. Account string `gorm:"type:varchar(45)" json:"account"` //账号
  11. Password string `gorm:"type:varchar(45)" json:"password"` //密码
  12. Name string `gorm:"type:varchar(20)" json:"name"` //昵称
  13. RealName string `gorm:"type:varchar(12)" json:"realName"` //真名
  14. Avatar string `gorm:"type:varchar(500)" json:"avatar"` //头像
  15. Email string `gorm:"type:varchar(45)" json:"email"` //邮箱
  16. Phone string `gorm:"type:varchar(45)" json:"phone"` //手机
  17. Birthday string `gorm:"type:string" json:"birthday"` //生日
  18. Sex int `gorm:"type:smallint" json:"sex"` //生日
  19. RoleId int `gorm:"type:bigint" json:"roleId"` //角色id 数组,分隔
  20. CreateUser int `gorm:"type:int" json:"createUser"` //创建人
  21. CreateDept int `gorm:"type:int" json:"createDept"` //创建部门
  22. CreateTime time.Time `gorm:"autoCreateTime;column:create_time;type:datetime;" json:"createTime"` //新增时间
  23. UpdateUser int `gorm:"type:int" json:"updateUser"` //修改人
  24. UpdateTime time.Time `gorm:"autoUpdateTime;column:update_time;type:datetime;" json:"updateTime"` //修改时间
  25. Status int `gorm:"type:int " json:"status"` //状态
  26. IsDeleted int `gorm:"type:int" json:"isDeleted"` //是否删除 0=未删除,1=删除
  27. GroupId int `gorm:"type:int" json:"groupId"` //用户分组id
  28. BigScreenIndexCameraIds string `gorm:"type:varchar(255)" json:"bigScreenIndexCameraIds"` //数据大屏中摄像头保存位置
  29. SecuritySixScreen string `gorm:"type:varchar(255)" json:"securitySixScreen"` //安防页面六分屏
  30. }
  31. type JsonInt64 int64
  32. func (ji *JsonInt64) UnmarshalJSON() {
  33. }
  34. func (*User) TableName() string {
  35. return "user"
  36. }
  37. func (c *User) GetUser() error {
  38. return Db.Model(&c).Where(" is_deleted = 0").Find(&c).Error
  39. }
  40. func (c *User) GetUserByTenantId() error {
  41. return Db.Model(&c).Where("tenant_id = ? and is_deleted = 0", c.TenantId).Find(&c).Error
  42. }
  43. func (c *User) GetUserByPwd() error {
  44. return Db.Model(&c).Where("tenant_id = ? and account = ? and password = ? and is_deleted = 0", c.TenantId, c.Account, c.Password).First(&c).Error
  45. }
  46. func (c *User) GetUsers(offset, limit int) ([]User, int, error) {
  47. var users []User
  48. var counts int64
  49. db := Db.Model(&c)
  50. if c.Account != "" {
  51. db = db.Where("account like ?", "%"+c.Account+"%")
  52. }
  53. if c.RealName != "" {
  54. db = db.Where("real_name like ?", "%"+c.RealName+"%")
  55. }
  56. err := db.Where("is_deleted = 0").Offset(offset).Limit(limit).Find(&users).Error
  57. db1 := Db.Model(&c)
  58. db1.Where("is_deleted = 0").Count(&counts)
  59. return users, int(counts), err
  60. }
  61. func (c *User) Save() error {
  62. return Db.Model(&c).Save(&c).Error
  63. }
  64. func (c *User) Update() error {
  65. return Db.Model(&c).Where(" id = ? ", c.ID).Updates(&c).Error
  66. }
  67. func (c *User) Remove() error {
  68. return Db.Model(&c).Where("id = ?", c.ID).Updates(map[string]interface{}{"update_time": c.UpdateTime, "update_user": c.UpdateUser, "is_deleted": c.IsDeleted}).Error
  69. }
  70. func (c *User) UpdatePwd(pwd string) error {
  71. return Db.Model(&c).Where(" id = ? ", c.ID).Updates(map[string]interface{}{"password": pwd}).Error
  72. }
  73. func (c *User) GetAll() ([]User, error) {
  74. var users []User
  75. err := Db.Model(&c).Where("is_deleted = 0").Find(&users).Error
  76. return users, err
  77. }
  78. func (c *User) UpdateRoles(userIds []string, roleIds string) error {
  79. err := Db.Model(&c).Where("id in ?", userIds).Updates(map[string]interface{}{"role_id": roleIds}).Error
  80. return err
  81. }
  82. // IsExist :account是否已存在 true为存在,false不存在
  83. func (c *User) IsExist() bool {
  84. var s string
  85. Db.Model(&c).Select("account").Where("account = ?", c.Account).First(&s)
  86. return s != ""
  87. }
  88. // GetAvatar 查 avatar
  89. func (c *User) GetAvatar() {
  90. tx := Db.Model(&c)
  91. tx.Select("avatar").Where("tenant_id = ?", c.TenantId).Find(&c)
  92. }