23 lines
1.9 KiB
Go
23 lines
1.9 KiB
Go
|
|
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{})
|
||
|
|
// }
|