package com.sunda.spmsuser.service;

import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.sunda.spmscommon.ResponseResult;
import com.sunda.spmsuser.entity.SpmsPermission;

import java.util.List;
import java.util.Map;

/**
 * <p>
 * spms权限表 服务类
 * </p>
 *
 * @author Wayne
 * @since 2021-01-25
 */
public interface ISpmsPermissionService extends IService<SpmsPermission> {

    /** 根据用户工号查询权限 */
    List<SpmsPermission> getUserPerms(String userId);

    /** 获取所有菜单路由及权限控制 */
    List<Map<String, Object>> getAllPerm();

    /** 获取所有角色权限关系数据 */
    List<Map<String, Object>> getRolePerm();

    /** 根据用户传入信息，创建或更新权限信息表 
     * @param userId */
    ResponseResult createSpmsPerm(JSONObject doc, String userId);

    /** 根据用户工号查询用户关联权限信息 */
    List<Map<String, Object>> getPermsByUserId(String userId);
    
    /**
     * 删除权限信息
     * @param jsonObject
     * @param userId
     * @return
     */
	ResponseResult deleteSpmsPerm(JSONObject doc, String userId);
	
	/**
	 * 分页查询权限信息
	 * @param jsonObject
	 * @return
	 */
	IPage findPermListByPage(JSONObject jsonObject);
	
	/**
	 * 根据条件查询权限信息
	 * @param jsonObject
	 * @return
	 */
	List<Map<String, Object>> findPermList(JSONObject jsonObject);
	
	/**
	 * 根据角色ID查询角色下的权限
	 * @param jsonObject
	 * @return
	 */
	List<Map<String, Object>> getPermListByRoleId(JSONObject jsonObject);
}
