package models import coreTypes "git.apinb.com/bsm-sdk/core/types" // 部门模型(应用->部门->权限:每个应用拥有不同的部门) type MgtDepartment struct { coreTypes.Std_IICUDS // 标准字段 AppID uint `gorm:"column:app_id;default:0" json:"app_id,omitempty"` // 所属应用ID Name string `gorm:"column:name;" json:"name,omitempty"` // 部门名称 ParentID uint `gorm:"column:parent_id;default:0" json:"parent_id,omitempty"` // 父部门ID LeaderID uint `gorm:"column:leader_id;" json:"leader_id,omitempty"` // 部门负责人ID Leader MgtUser `gorm:"foreignKey:LeaderID;references:ID" json:"leader"` // 部门负责人 Users []MgtUser `gorm:"many2many:mgt_link_user_dpt;foreignKey:ID;joinForeignKey:dpt_id;References:ID;joinReferences:user_id" json:"users,omitempty"` Roles []MgtRole `gorm:"many2many:mgt_link_dpt_role;foreignKey:ID;joinForeignKey:dpt_id;References:ID;joinReferences:role_id" json:"roles,omitempty"` // 部门关联的角色(部门替代用户组) Permissions []MgtPermission `gorm:"many2many:mgt_link_dpt_pmn;foreignKey:ID;joinForeignKey:dpt_id;References:ID;joinReferences:pmn_id" json:"permissions,omitempty"` // 部门关联的权限 PmnApplication []MgtApplication `gorm:"many2many:mgt_link_dpt_pmn;foreignKey:ID;joinForeignKey:dpt_id;References:ID;joinReferences:app_id" json:"pmn_application,omitempty"` // 部门权限按应用聚合(树形用) Children []MgtDepartment `gorm:"foreignKey:ParentID;references:ID" json:"children,omitempty"` // 子部门 } // func init() { // database.AppendMigrate(&Department{}) // }