package model import ( "dy-admin/internal/pcmserver/common" "gorm.io/gorm" ) type Role struct { RoleID int `json:"roleId" gorm:"primaryKey;autoIncrement;comment:角色编码"` RoleName string `json:"roleName" form:"roleName" gorm:"size:128;comment:角色名称"` Status string `json:"status" form:"status" gorm:"size:4;comment:角色状态"` RoleSort int `json:"roleSort" gorm:"comment:角色排序"` Remark string `json:"remark" gorm:"size:255;"` MenuIds []int `json:"menuIds" gorm:"-"` DeptIds []int `json:"deptIds" gorm:"-"` DataScope string `json:"dataScope" gorm:"size:128;"` SysDept []Dept `json:"sysDept" gorm:"many2many:sys_role_dept;foreignKey:RoleID;joinForeignKey:RoleID;References:DeptID;joinReferences:DeptID"` SysMenu []Menu `json:"sysMenu" gorm:"many2many:sys_role_menu;foreignKey:RoleID;joinForeignKey:RoleID;References:MenuID;joinReferences:MenuID"` SysUser []User `json:"sysUser" gorm:"many2many:sys_user_role;foreignKey:RoleID;joinForeignKey:RoleID;References:UserID;joinReferences:UserID"` common.ControlBy common.ModelTime } func (m *Role) TableName() string { return "sys_roles" } func (m *Role) AllowOrderField() map[string]struct{} { orderMap := make(map[string]struct{}, 6) orderMap["roleSort"] = struct{}{} return orderMap } func (m *Role) AfterFind(_ *gorm.DB) error { menuIds := make([]int, 0, len(m.MenuIds)) for _, menu := range m.SysMenu { menuIds = append(menuIds, menu.MenuID) } deptIds := make([]int, 0, len(m.SysDept)) for _, dept := range m.SysDept { deptIds = append(deptIds, dept.DeptID) } m.MenuIds = menuIds m.DeptIds = deptIds return nil }