

package com.jeelowcode.framework.utils.adapter;

import com.jeelowcode.framework.utils.model.JeeLowCodeDept;
import com.jeelowcode.framework.utils.model.JeeLowCodeDict;
import com.jeelowcode.framework.utils.model.JeeLowCodeRole;
import com.jeelowcode.framework.utils.model.JeeLowTenant;
import com.jeelowcode.framework.utils.params.JeeLowCodeDeptParam;
import com.jeelowcode.framework.utils.params.JeeLowCodeDictParam;
import com.jeelowcode.framework.utils.params.JeeLowCodeUserParam;

import java.util.List;
import java.util.Map;
import java.util.Set;

/**
 * 适配器 相关接口
 */
public interface IJeeLowCodeAdapter {

    //获取当前在线人id
    Long getOnlineUserId();

    //获取当前在线人账号
    String getOnlineUserName();
    String getOnlineUserName(Long userId);

    //获取当前在线人名称
    String getOnlineUserNickName();

    //获取当前在线人部门id
    Long getOnlineUserDeptId();
    String getOnlineUserDeptName();


    //获取当前在线人id
    Long getTenantId();


    //是否不用租户
    boolean getTenantIsIgnore();

    //获取所有租户列表
    List<JeeLowTenant> getTenantList();

    //获取字典列表
    List<JeeLowCodeDict> getDictList(JeeLowCodeDictParam param);

    //获取部门列表
    List<JeeLowCodeDept> getDeptList(JeeLowCodeDeptParam param);

    //获取所有角色列表
    List<JeeLowCodeRole> getRoleList();

    List<Map<String,Object>> getUserInfoList(List<Long> userIdList);

    //回显用户
    List<Map<String,Object>> getUserViewList(List<Long> userIdList);
    //回显部门
    List<Map<String,Object>> getDeptViewList(List<Long> deptIdList);


    //获取用户分页列表
    Object getUserPage(Integer pageNo, Integer pageSize, JeeLowCodeUserParam param);

    Object getUserPageByUserIds(Integer pageNo, Integer pageSize, List<Long> userIdList);

    //初始化-新增数据默认项
    void initSaveDefaultData(Map<String, Object> map);

    //初始化-修改数据默认项
    void initUpdateDefaultData(Map<String, Object> map);

    //获取不用租户的表
    Set<String> getTenantIgnoreTable();
    //不用租户的url
    Set<String> getTenantIgnoreUrl();

    //获取是否开启租户
    boolean getTenantEnable();
}
