admin_user.go 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117
  1. package forms
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. type UserLoginReq struct {
  7. UserName string `form:"user_name" json:"user_name" binding:"required,min=1,max=30"`
  8. Password string `form:"password" json:"password" binding:"required,min=1,max=40"`
  9. }
  10. type UserLoginRes struct {
  11. ID int64 `json:"id"`
  12. UserName string `json:"user_name"`
  13. Nickname string `json:"nickname"`
  14. Status int32 `json:"status"`
  15. Avatar string `json:"avatar"`
  16. Token string `json:"token"`
  17. }
  18. type UserRegisterReq struct {
  19. Nickname string `form:"nickname" json:"nickname" binding:"required,min=2,max=30"`
  20. UserName string `form:"user_name" json:"user_name" binding:"required,min=2,max=30"`
  21. Password string `form:"password" json:"password" binding:"required,min=6,max=40"`
  22. }
  23. type UserMeReq struct {
  24. ID int64 `json:"user_id"`
  25. UserName string `json:"user_name"`
  26. RoleId int64 `json:"role_id"`
  27. Avatar string `json:"avatar"`
  28. Nickname string `json:"nickname"`
  29. Permissions []UserLoginPermissions `json:"permissions"`
  30. IsSuper bool `json:"isSuper"`
  31. }
  32. type UserLoginPermissions struct {
  33. Label string `json:"label" description:"标签"`
  34. Value string `json:"value" description:"值"`
  35. }
  36. type AdminUserListReq struct {
  37. ListReq
  38. Sn string `json:"sn" form:"sn"`
  39. Cdk string `json:"cdk" form:"cdk"`
  40. CreatedAt []int64 `json:"created_at" form:"created_at[]"`
  41. Time []time.Time
  42. }
  43. func (req *AdminUserListReq) Check() error {
  44. if req.CreatedAt != nil && len(req.CreatedAt) != 2 {
  45. return errors.New("生成时间必须选择一个区间或者留空")
  46. }
  47. if len(req.CreatedAt) == 2 {
  48. if req.CreatedAt[0] > req.CreatedAt[1] {
  49. return errors.New("生成时间选择的区间值不合理")
  50. }
  51. // 默认是毫秒
  52. req.CreatedAt[0] = req.CreatedAt[0] / 1000
  53. req.CreatedAt[1] = req.CreatedAt[1] / 1000
  54. }
  55. return nil
  56. }
  57. type AdminUserListModel struct {
  58. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
  59. RoleID int64 `gorm:"column:role_id" json:"role_id"`
  60. UserName string `gorm:"column:user_name" json:"user_name"` // 用户名
  61. //PasswordDigest string `gorm:"column:password_digest" json:"password_digest"` // 密码
  62. Nickname string `gorm:"column:nickname" json:"nickname"` // 昵称
  63. Mobile string `gorm:"column:mobile" json:"mobile"` // 手机号
  64. FeishuUserName string `gorm:"column:feishu_username" json:"feishu_username"` // 飞书用户名
  65. FeishuEmployeeId string `gorm:"column:feishu_employee_id" json:"feishu_employee_id"` // 飞书用户工号ID
  66. Avatar string `gorm:"column:avatar" json:"avatar"`
  67. Status int32 `gorm:"column:status;default:1" json:"status"` // 状态
  68. CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` // 创建时间
  69. UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` // 更新时间
  70. RoleName string `json:"roleName"`
  71. }
  72. type AdminUserEditReq struct {
  73. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
  74. RoleID int64 `gorm:"column:role_id" json:"role_id"`
  75. UserName string `gorm:"column:user_name" json:"user_name"` // 用户名
  76. PasswordDigest string `gorm:"column:password_digest" json:"password_digest"` // 密码
  77. Password string `gorm:"column:password" json:"password"` // 密码
  78. Nickname string `gorm:"column:nickname" json:"nickname"` // 昵称
  79. Avatar string `gorm:"column:avatar" json:"avatar"`
  80. Status int32 `gorm:"column:status;default:1" json:"status"` // 状态
  81. }
  82. type AdminUserResetPasswordReq struct {
  83. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"`
  84. Password string `gorm:"column:password" json:"password"` // 密码
  85. }
  86. type AdminUserUpdatePasswordReq struct {
  87. NewPassword string `gorm:"column:newPassword" json:"newPassword"`
  88. OldPassword string `gorm:"column:oldPassword" json:"oldPassword"`
  89. }
  90. func (req *AdminUserUpdatePasswordReq) Check() error {
  91. if req.NewPassword == "" {
  92. return errors.New("新密码不能为空")
  93. }
  94. if req.OldPassword == "" {
  95. return errors.New("老密码不能为空")
  96. }
  97. if req.OldPassword == req.NewPassword {
  98. return errors.New("新老密码不能一样")
  99. }
  100. return nil
  101. }