package cn.estsh.i3plus.core.api.iservice.busi;

import cn.estsh.i3plus.pojo.base.bean.ListPager;
import cn.estsh.i3plus.pojo.base.common.Pager;
import cn.estsh.i3plus.pojo.platform.bean.SessionUser;
import cn.estsh.i3plus.pojo.platform.bean.SysOrganize;
import io.swagger.annotations.ApiOperation;

import java.util.List;

/**
 * @Description : 组织业务接口
 * @Reference   :
 * @Author      : wei.peng
 * @Date        : 2018-10-22 16:58:42.941
 * @Modify      :
 **/
public interface ISysOrganizeService {

    /**
     * @param organize
     */
    @ApiOperation(value = "更新组织",notes = "传入持久化组织对象，进行更新")
    void updateSysOrganize(SysOrganize organize);

    /**
     * 修改 组织状态
     * @param id        组织ID
     * @param status    组织状态
     * @param user      当前会话用户
     */
    @ApiOperation(value = "修改组织状态",notes = "")
    void updateSysOrganizeStatus(Long id, int status, SessionUser user);

    /**
     * 根据Key 删除数据
     * @param id
     */
    @ApiOperation(value = "删除组织信息",notes = "根据 ID 删除组织信息")
    void deleteSysOrganizeById(Long id);

    /**
     * 根据id批量删除
     * @param ids id数组
     * @return
     */
    @ApiOperation(value = "删除组织信息",notes = "根据 ID 批量删除组织信息")
    void deleteSysOrganizeByIds(Long[] ids);

    /**
     * 新增数据
     * @param organize
     * @return
     */
    @ApiOperation(value = "新增组织信息")
    SysOrganize insertSysOrganize(SysOrganize organize);

    /**
     * 查询所有数据
     * @return
     */
    @ApiOperation(value = "查询组织信息",notes = "查询所有组织信息")
    List<SysOrganize> listSysOrganize();

    /**
     * 复杂查询
     * @param organize
     * @param pager
     * @return
     */
    @ApiOperation(value = "查询组织信息",notes = "查询 组织信息(分页、组合)")
    ListPager<SysOrganize> querySysOrganize(SysOrganize organize, Pager pager);

    /**
     * 根据id 数据
     * @param id
     * @return
     */
    @ApiOperation(value = "查询组织信息",notes = "根据ID查询组织信息")
    SysOrganize getSysOrganizeById(Long id);

    /**
     * 查询组织个数
     * @return
     */
    @ApiOperation(value = "查询组织个数")
    long getSysOrganizeCount();
}
