Files
full/module/base/mgt/internal/models/department.go

23 lines
1.9 KiB
Go
Raw Normal View History

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{})
// }