admin_role.go 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  1. package forms
  2. import (
  3. "errors"
  4. "time"
  5. )
  6. type AdminRoleListReq struct {
  7. ListReq
  8. Sn string `json:"sn" form:"sn"`
  9. Cdk string `json:"cdk" form:"cdk"`
  10. CreatedAt []int64 `json:"created_at" form:"created_at[]"`
  11. Time []time.Time
  12. }
  13. func (req *AdminRoleListReq) Check() error {
  14. if req.CreatedAt != nil && len(req.CreatedAt) != 2 {
  15. return errors.New("生成时间必须选择一个区间或者留空")
  16. }
  17. if len(req.CreatedAt) == 2 {
  18. if req.CreatedAt[0] > req.CreatedAt[1] {
  19. return errors.New("生成时间选择的区间值不合理")
  20. }
  21. // 默认是毫秒
  22. req.CreatedAt[0] = req.CreatedAt[0] / 1000
  23. req.CreatedAt[1] = req.CreatedAt[1] / 1000
  24. }
  25. return nil
  26. }
  27. type AdminRoleListModel struct {
  28. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"` // 角色ID
  29. Name string `gorm:"column:name;not null" json:"name"` // 角色名称
  30. Key string `gorm:"column:key;not null" json:"key"` // 角色权限字符串
  31. Permissions interface{} `gorm:"column:permissions" json:"permissions"` // 权限分配
  32. Pages interface{} `gorm:"column:pages" json:"pages"` // 页面分配
  33. Systems interface{} `gorm:"column:systems" json:"systems"` // 系统分配
  34. Remark string `gorm:"column:remark" json:"remark"` // 备注
  35. Sort int32 `gorm:"column:sort;not null" json:"sort"` // 排序
  36. Status int32 `gorm:"column:status;not null;default:1" json:"status"` // 角色状态
  37. CreatedAt time.Time `gorm:"column:created_at" json:"created_at"` // 创建时间
  38. UpdatedAt time.Time `gorm:"column:updated_at" json:"updated_at"` // 更新时间
  39. }
  40. type AdminRoleEditReq struct {
  41. ID int64 `gorm:"column:id;primaryKey;autoIncrement:true" json:"id"` // 角色ID
  42. Name string `gorm:"column:name;not null" json:"name"` // 角色名称
  43. Key string `gorm:"column:key;not null" json:"key"` // 角色权限字符串
  44. Remark string `gorm:"column:remark" json:"remark"` // 备注
  45. Sort int32 `gorm:"column:sort;not null" json:"sort"` // 排序
  46. Status int32 `gorm:"column:status;not null;default:1" json:"status"` // 角色状态
  47. Permissions map[int32][]int32 `json:"permissions"` // 权限分配
  48. Pages map[int32][]int32 `json:"pages"` // 页面分配
  49. Systems []int32 `json:"systems"` // 系统分配
  50. }
  51. type AdminRoleReq struct {
  52. ID int64 `json:"id" form:"id"`
  53. }
  54. type Menu struct {
  55. Id int32 `json:"id"`
  56. Component string `json:"component"`
  57. Meta *MenuMeta `json:"meta"`
  58. Name string `json:"name"`
  59. Path string `json:"path"`
  60. Redirect string `json:"redirect"`
  61. Children []*Menu `json:"children"`
  62. }
  63. type MenuMeta struct {
  64. Icon string `json:"icon"`
  65. Sort int32 `json:"sort"`
  66. Title string `json:"title"`
  67. Hidden bool `json:"hidden,omitempty"`
  68. ActiveMenu string `json:"activeMenu,omitempty"`
  69. IsRoot bool `json:"isRoot,omitempty"`
  70. IsSuper bool `json:"isSuper,omitempty"`
  71. }