package hr import ( "WiiGoLibrary/framework/db/v1/utils/mssql/unique" "WiiGoLibrary/framework/hub/v1/dblib" "time" ) const PermissionTable = "hr_u_permission" const PositionPermissionTable = "hr_r_position_permission" // 权限类型常量 const ( // 组织管理权限 PermOrganizationView = 1001 // 组织查看权限 PermOrganizationCreate = 1002 // 组织创建权限 PermOrganizationUpdate = 1003 // 组织更新权限 PermOrganizationDelete = 1004 // 组织删除权限 // 岗位管理权限 PermPositionView = 2001 // 岗位查看权限 PermPositionCreate = 2002 // 岗位创建权限 PermPositionUpdate = 2003 // 岗位更新权限 PermPositionDelete = 2004 // 岗位删除权限 // 人员管理权限 PermStaffView = 3001 // 人员查看权限 PermStaffCreate = 3002 // 人员创建权限 PermStaffUpdate = 3003 // 人员更新权限 PermStaffDelete = 3004 // 人员删除权限 // 请假审批权限 PermLeaveApprove = 4001 // 请假审批权限 PermLeaveView = 4002 // 请假查看权限 // 工作流管理权限 PermWorkflowAdmin = 5001 // 工作流管理权限 // 系统管理权限 PermSystemAdmin = 9999 // 系统管理员权限 ) // PermissionModel 权限模型 type PermissionModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` PermissionID int `gorm:"column:PermissionID;type:INT;not null;uniqueIndex;" json:"PermissionID"` // 权限ID PermissionName string `gorm:"column:PermissionName;type:NVARCHAR(50);not null;" json:"PermissionName"` // 权限名称 PermissionCode string `gorm:"column:PermissionCode;type:NVARCHAR(50);not null;uniqueIndex;" json:"PermissionCode"` // 权限代码 Description string `gorm:"column:Description;type:NVARCHAR(200);" json:"Description"` // 权限描述 Category int16 `gorm:"column:Category;type:SMALLINT;not null;default:0;" json:"Category"` // 权限分类 RecordType int16 `gorm:"column:RecordType;not null;" json:"RecordType"` // 记录类型 RecordStatus int16 `gorm:"column:RecordStatus;not null;default:0;" json:"RecordStatus"` // 记录状态 CreateTime time.Time `gorm:"column:CreateTime;type:DATETIME;default:CURRENT_TIMESTAMP;<-:create;" json:"CreateTime"` UpdateTime time.Time `gorm:"column:UpdateTime;type:DATETIME;default:CURRENT_TIMESTAMP;autoUpdateTime;" json:"UpdateTime"` } // PositionPermissionModel 岗位权限关系模型 type PositionPermissionModel struct { RecordGuid unique.UUID `gorm:"column:RecordGuid;type:UNIQUEIDENTIFIER;primaryKey;not null;default:newid();" json:"RecordGuid"` PositionGuid unique.UUID `gorm:"column:PositionGuid;type:UNIQUEIDENTIFIER;index:idx_position_perm,priority:1;not null;" json:"PositionGuid"` // 岗位GUID PermissionGuid unique.UUID `gorm:"column:PermissionGuid;type:UNIQUEIDENTIFIER;index:idx_position_perm,priority:2;not null;" json:"PermissionGuid"` // 权限GUID PositionID int64 `gorm:"column:PositionID;type:BIGINT;not null;" json:"PositionID"` // 岗位ID PermissionID int `gorm:"column:PermissionID;type:INT;not null;" json:"PermissionID"` // 权限ID GrantType int16 `gorm:"column:GrantType;type:SMALLINT;not null;default:0;" json:"GrantType"` // 授权类型:0-直接授权,1-继承授权 RecordType int16 `gorm:"column:RecordType;not null;" json:"RecordType"` // 记录类型 RecordStatus int16 `gorm:"column:RecordStatus;not null;default:0;" json:"RecordStatus"` // 记录状态 CreateTime time.Time `gorm:"column:CreateTime;type:DATETIME;default:CURRENT_TIMESTAMP;<-:create;" json:"CreateTime"` UpdateTime time.Time `gorm:"column:UpdateTime;type:DATETIME;default:CURRENT_TIMESTAMP;autoUpdateTime;" json:"UpdateTime"` } func init() { dblib.DBIns.RegisterAutoMigrateModel(&PermissionModel{}) dblib.DBIns.RegisterAutoMigrateModel(&PositionPermissionModel{}) } func (p *PermissionModel) TableName() string { return PermissionTable } func (pp *PositionPermissionModel) TableName() string { return PositionPermissionTable } func PermissionInstance() *PermissionModel { return &PermissionModel{ RecordGuid: unique.NewV4(), RecordType: 0, RecordStatus: 0, } } func PositionPermissionInstance() *PositionPermissionModel { return &PositionPermissionModel{ RecordGuid: unique.NewV4(), GrantType: 0, RecordType: 0, RecordStatus: 0, } }