user.go 4.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. package dao
  2. import (
  3. "time"
  4. )
  5. // User 用户
  6. type User struct {
  7. ID int64 `gorm:"primary_key" json:"id"` //编号
  8. TenantId string `gorm:"type:varchar(12);default '000000'" 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:datetime" json:"birthday"` //生日
  18. Sex int `gorm:"type:smallint" json:"sex"` //生日
  19. RoleId string `gorm:"type:varchar(1000)" json:"roleId"` //角色id 数组,分隔
  20. DeptId string `gorm:"type:varchar(1000)" json:"deptId"` //部门id 数组,分隔
  21. PostId string `gorm:"type:varchar(1000)" json:"postId"` //岗位id 数组,分隔
  22. CreateUser int64 `gorm:"type:bigint" json:"createUser"` //创建人
  23. CreateDept int64 `gorm:"type:bigint" json:"createDept"` //创建部门
  24. CreateTime time.Time `gorm:"type:datetime" json:"createTime"` //新增时间
  25. UpdateUser int64 `gorm:"type:bigint" json:"updateUser"` //修改人
  26. UpdateTime time.Time `gorm:"type:datetime" json:"updateTime"` //修改时间
  27. Status int `gorm:"type:int " json:"status"` //状态
  28. IsDeleted int `gorm:"type:int" json:"isDeleted"` //是否删除 0=未删除,1=删除
  29. GroupId int `gorm:"type:int" json:"groupId"` //用户分组id
  30. BigScreenIndexCameraIds string `gorm:"type:varchar(255)" json:"bigScreenIndexCameraIds"` //数据大屏中摄像头保存位置
  31. SecuritySixScreen string `gorm:"type:varchar(255)" json:"securitySixScreen"` //安防页面六分屏
  32. }
  33. func (User) TableName() string {
  34. return "user"
  35. }
  36. func (c *User) GetUser() error {
  37. return Db.Debug().Model(&c).Where("id = ? and is_deleted = 0", c.ID).Find(&c).Error
  38. }
  39. func (c *User) GetUserByPwd() error {
  40. return Db.Debug().Model(&c).Where("tenant_id = ? and account = ? and password = ? and is_deleted = 0", c.TenantId, c.Account, c.Password).Find(&c).Error
  41. }
  42. func (c User) GetUsers(offset, limit int) ([]User, error) {
  43. var users []User
  44. db := Db.Debug().Model(&c)
  45. if c.Account != "" {
  46. db = db.Where("account like ?", "%"+c.Account+"%")
  47. }
  48. if c.RealName != "" {
  49. db = db.Where("real_name like ?", "%"+c.RealName+"%")
  50. }
  51. err := db.Where("is_deleted = 0").Offset(offset).Limit(limit).Find(&users).Error
  52. return users, err
  53. }
  54. func (c *User) Save() error {
  55. return Db.Debug().Model(&c).Save(&c).Error
  56. }
  57. func (c *User) Update() error {
  58. return Db.Debug().Model(&c).Where(" id = ? ", c.ID).Update(&c).Error
  59. }
  60. func (c *User) Remove() error {
  61. return Db.Debug().Model(&c).Where("id = ?", c.ID).Updates(map[string]interface{}{"update_time": c.UpdateTime, "update_user": c.UpdateUser, "is_deleted": c.IsDeleted}).Error
  62. }
  63. func (c *User) UpdatePwd(pwd string) error {
  64. return Db.Debug().Model(&c).Where(" id = ? ", c.ID).Updates(map[string]interface{}{"password": pwd}).Error
  65. }
  66. func (c *User) GetAll() ([]User, error) {
  67. var users []User
  68. err := Db.Debug().Model(&c).Where("is_deleted = 0").Find(&users).Error
  69. return users, err
  70. }
  71. func (c *User) UpdateRoles(userIds []string, roleIds string) error {
  72. err := Db.Debug().Model(&c).Where("id in ?", userIds).Updates(map[string]interface{}{"role_id": roleIds}).Error
  73. return err
  74. }