package com.ytpm.middle.service;

import com.ytpm.general.Result;
import com.ytpm.general.ResultTable;
import com.ytpm.middle.param.MiddlePermissionParam;
import com.ytpm.middle.view.DropDownVO;
import com.ytpm.middle.view.MiddlePermissionVO;
import com.ytpm.middle.view.MiddleUserInfo;

public interface PermissionService {
    /**
     * 查询权限列表
     */
    ResultTable<MiddlePermissionVO> queryTree(MiddlePermissionParam param);

    /**
     * 新增权限
     */
    Result<String> addOne(MiddlePermissionParam param);
    /**
     * 修改权限
     */
    Result<String> updateOne(MiddlePermissionParam param);

    /**
     * 删除权限
     */
    Result<String> delOne(int permissionId, String userId);

    /**
     * 查询权限下拉列表
     */
    ResultTable<DropDownVO> permissionDropList();

    /**
     * 根据用户角色查询权限列表
     */
    ResultTable<MiddlePermissionVO> getMenuByRole(MiddleUserInfo userInfo);

    /**
     * 根据菜单获取权限列表
     */
    ResultTable<MiddlePermissionVO> getPermissionByMenu(Integer permissionId, MiddleUserInfo userInfo);

    /**
     * 根据角色查询权限列表
     */
    ResultTable<MiddlePermissionVO> queryTreeByRole(Integer roleId);
}
