package com.keao.edu.user.dao;


import com.keao.edu.common.dal.BaseDAO;
import com.keao.edu.user.entity.Organization;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface OrganizationDao extends BaseDAO<Integer, Organization> {

    /**
     * @describe 获取指定机构下的所有合作单位
     * @author Joburgess
     * @date 2020.06.18
     * @param tenantId:
     * @return
     */
    List<Organization> getByTenant(@Param("tenantId") String tenantId);

    /**
     * @describe 获取指定单位所有下级单位的编号
     * @author Joburgess
     * @date 2020.06.28
     * @param parentOrganIdTag:
     * @return java.util.List<java.lang.Integer>
     */
    List<Integer> getChildOrganIds(@Param("parentOrganIdTag") String parentOrganIdTag);

    /**
     * @describe 获取指定单位所有下级单位
     * @author Joburgess
     * @date 2020.06.28
     * @param parentOrganIdTag:
     * @return java.util.List<java.lang.Integer>
     */
    List<Organization> getChildOrgans(@Param("parentOrganIdTag") String parentOrganIdTag);

    /**
     * @describe 获取下一级所有合作单位编号
     * @author Joburgess
     * @date 2020.06.28
     * @param organId: 当前合作单位
     * @return java.util.List<java.lang.Integer>
     */
    List<Integer> getNextLevelOrganIds(@Param("organId") Integer organId);

    /**
     * @describe 获取指定的合作单位
     * @author Joburgess
     * @date 2020.07.07
     * @param organIds:
     * @return java.util.List<com.keao.edu.user.entity.Organization>
     */
    List<Organization> getOrgans(@Param("organIds") List<Integer> organIds);

    Organization findByUserId(Integer userId);
}
