package system import ( "context" "errors" ) // AuthorityBtnRepo 角色按钮权限仓储接口 type AuthorityBtnRepo interface { GetAuthorityBtn(ctx context.Context, authorityId, menuId uint) ([]uint, error) SetAuthorityBtn(ctx context.Context, authorityId, menuId uint, btnIds []uint) error CanRemoveAuthorityBtn(ctx context.Context, btnId uint) error } // AuthorityBtnUsecase 角色按钮权限用例 type AuthorityBtnUsecase struct { repo AuthorityBtnRepo } // NewAuthorityBtnUsecase 创建角色按钮权限用例 func NewAuthorityBtnUsecase(repo AuthorityBtnRepo) *AuthorityBtnUsecase { return &AuthorityBtnUsecase{repo: repo} } // GetAuthorityBtn 获取角色按钮权限 func (uc *AuthorityBtnUsecase) GetAuthorityBtn(ctx context.Context, authorityId, menuId uint) ([]uint, error) { return uc.repo.GetAuthorityBtn(ctx, authorityId, menuId) } // SetAuthorityBtn 设置角色按钮权限 func (uc *AuthorityBtnUsecase) SetAuthorityBtn(ctx context.Context, authorityId, menuId uint, btnIds []uint) error { return uc.repo.SetAuthorityBtn(ctx, authorityId, menuId, btnIds) } // CanRemoveAuthorityBtn 检查按钮是否可以删除 func (uc *AuthorityBtnUsecase) CanRemoveAuthorityBtn(ctx context.Context, btnId uint) error { return uc.repo.CanRemoveAuthorityBtn(ctx, btnId) } var ErrBtnInUse = errors.New("此按钮正在被使用无法删除")