role.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package model
  2. import (
  3. "dy-admin/internal/pcmserver/common"
  4. "gorm.io/gorm"
  5. )
  6. type Role struct {
  7. RoleID int `json:"roleId" gorm:"primaryKey;autoIncrement;comment:角色编码"`
  8. RoleName string `json:"roleName" form:"roleName" gorm:"size:128;comment:角色名称"`
  9. Status string `json:"status" form:"status" gorm:"size:4;comment:角色状态"`
  10. RoleSort int `json:"roleSort" gorm:"comment:角色排序"`
  11. Remark string `json:"remark" gorm:"size:255;"`
  12. MenuIds []int `json:"menuIds" gorm:"-"`
  13. DeptIds []int `json:"deptIds" gorm:"-"`
  14. DataScope string `json:"dataScope" gorm:"size:128;"`
  15. SysDept []Dept `json:"sysDept" gorm:"many2many:sys_role_dept;foreignKey:RoleID;joinForeignKey:RoleID;References:DeptID;joinReferences:DeptID"`
  16. SysMenu []Menu `json:"sysMenu" gorm:"many2many:sys_role_menu;foreignKey:RoleID;joinForeignKey:RoleID;References:MenuID;joinReferences:MenuID"`
  17. SysUser []User `json:"sysUser" gorm:"many2many:sys_user_role;foreignKey:RoleID;joinForeignKey:RoleID;References:UserID;joinReferences:UserID"`
  18. common.ControlBy
  19. common.ModelTime
  20. }
  21. func (m *Role) TableName() string {
  22. return "sys_roles"
  23. }
  24. func (m *Role) AllowOrderField() map[string]struct{} {
  25. orderMap := make(map[string]struct{}, 6)
  26. orderMap["roleSort"] = struct{}{}
  27. return orderMap
  28. }
  29. func (m *Role) AfterFind(_ *gorm.DB) error {
  30. menuIds := make([]int, 0, len(m.MenuIds))
  31. for _, menu := range m.SysMenu {
  32. menuIds = append(menuIds, menu.MenuID)
  33. }
  34. deptIds := make([]int, 0, len(m.SysDept))
  35. for _, dept := range m.SysDept {
  36. deptIds = append(deptIds, dept.DeptID)
  37. }
  38. m.MenuIds = menuIds
  39. m.DeptIds = deptIds
  40. return nil
  41. }