package com.keao.edu.user.service;


import com.keao.edu.common.service.BaseService;
import com.keao.edu.user.entity.Organization;

import java.util.List;

public interface OrganizationService extends BaseService<Integer, Organization> {

    /**
     * 新增合作单位
     * @param organ
     */
    void add(Organization organ);

    /**
     * 修改合作单位
     * @param organization
     */
    void updateOrganization(Organization organization);

    /**
     * @describe 获取当前分部及其所有子合作单位编号
     * @author Joburgess
     * @date 2020.06.28
     * @param organId: 本单位编号
     * @param includeSelf: 是否包含本单位
     * @return java.util.List<java.lang.Integer>
     */
    List<Integer> getChildOrganIds(Integer organId, boolean includeSelf);

    /**
     * @describe 获取当前分部及其所有子合作单位
     * @author Joburgess
     * @date 2020.06.29
     * @param organId:
     * @return java.util.List<com.keao.edu.user.entity.Organization>
     */
    List<Organization> getChildOrgans(Integer organId, boolean includeSelf);

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

    /**
     * 删除
     * @param id
     */
    void del(Integer id);

    Organization getOrganization(Integer id);

    Organization findByUserId(Integer id);
}
