usermodel.go 4.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. // 模块模型-用户
  2. // 秒寻科技
  3. // zt 2024-01-04
  4. package usermodel
  5. import (
  6. "ipsomc/core/dao/mysql/mysqlmodel"
  7. )
  8. // PC端管理员
  9. type Operator struct {
  10. mysqlmodel.BaseModelDB
  11. UserTypeID uint8 `json:"user_type_id" gorm:"default:1"` //用户类型。1:平台管理员,2:系统管理员,3:项目操作员
  12. UserName string `json:"user_name" gorm:"size:32;unique_index"` //用户名(登录名)
  13. Password string `json:"password" gorm:"size:512"` //密码,加密保存
  14. Nickname string `json:"nickname" gorm:"size:32"` //昵称
  15. Name string `json:"name" gorm:"size:16"` //操作员姓名
  16. Sex int `json:"sex" gorm:"defautl:3"` //用户性别 1:男 2:女 3:未知
  17. Telephone string `json:"telephone" gorm:"size:32"` //用户手机号码
  18. Avatar string `json:"avatar" gorm:"size:256"` //用户头像
  19. Role string `json:"role" gorm:"size:text"` //逗号分隔的角色ID字符串 //角色ID构成的字符串,逗号分隔 //包含的角色,以逗号分隔的角色ID字符串
  20. NewPassword string `json:"new_password" gorm:"-"` //新改密码
  21. Token string `json:"token" gorm:"-"` //用户token
  22. CompanyName string `json:"company_name" gorm:"-"` //临时接收前端注册的数据(公司名称)
  23. TempPassword string `json:"temp_password" gorm:"-"` //临时传递原始密码使用
  24. VerifyID string `json:"verify_id" gorm:"-"` //验证码ID
  25. VerifyCode string `json:"verify_code" gorm:"-"` //验证码
  26. BelongingCompanyID int `json:"belonging_company_id" gorm:"-"` //
  27. }
  28. type RspOperator struct {
  29. ID int `json:"id"` //记录的ID
  30. CompanyID int `json:"company_id"` //公司ID
  31. CompanyName string `json:"company_name"` //公司名称
  32. ProjectID int `json:"project_id"` //项目ID(项目编号由由后台维护,前端可读不可写)
  33. UserTypeID uint8 `json:"user_type_id"` //用户类型
  34. Nickname string `json:"nickname"` //昵称
  35. Sex int `json:"sex"` //用户性别 1:男 2:女 3:未知
  36. Avatar string `json:"avatar"` //用户头像 //角色ID构成的字符串,逗号分隔 //包含的角色,以逗号分隔的角色ID字符串
  37. Token string `json:"token"` //用户token
  38. }
  39. // 管理角色
  40. type Role struct {
  41. mysqlmodel.BaseModelDB
  42. TypeID uint8 `json:"type_id" gorm:"default:2"` //角色类型,1:平台管理角色,2:其他管理角色
  43. Name string `json:"name" gorm:"size:64"` //角色名称
  44. Desc string `json:"desc" gorm:"size:128"` //角色描述
  45. Permission string `json:"permission" gorm:"size:text"` //该角色拥有的权限,以逗号分隔的字符串
  46. }
  47. // 管理权限,包括页面权限和按钮权限两种
  48. type Permission struct {
  49. mysqlmodel.BaseModelDB
  50. Pid int `json:"pid" gorm:"default:0"` //上级权限ID,无上级则为0
  51. TypeID int `json:"type_id" gorm:"default:1"` //权限类型,1:页面权限,2:按钮权限
  52. Name string `json:"name" gorm:"size:32"` //权限名称
  53. Flag string `json:"flag" gorm:"size:32"` //权限标识符,可以是页面名称,也可以是按钮名称
  54. Desc string `json:"desc" gorm:"size:128"` //权限描述
  55. }
  56. // 页面和菜单权限
  57. type MenuBtnPermission struct {
  58. Pid int `json:"pid"` //上级权限ID,无上级则为0
  59. TypeID int `json:"type_id"` //权限类型,1:页面权限,2:按钮权限
  60. Name string `json:"name"` //权限名称
  61. Flag string `json:"flag"` //权限标识符,可以是页面名称,也可以是按钮名称
  62. }
  63. // 返回给前端的操作员权限
  64. type RspOperatorPermission struct {
  65. Menus []MenuBtnPermission `json:"menus"` //菜单权限
  66. Btns []MenuBtnPermission `json:"btns"` //按钮权限
  67. }