package com.boman.system.service;

import com.boman.domain.BomanGroupUser;
import com.boman.domain.SysDept;
import com.boman.domain.BomanGroup;
import com.boman.domain.SysUser;
import com.boman.domain.dto.AjaxResult;
import com.boman.system.domain.vo.TreeSelect;

import java.util.List;

/**
 * 自定义组 服务层
 * 
 * @author ruoyi
 */
public interface IBomanGroupService
{
    /**
     * 查询自定义组管理数据
     * 
     * @param bomanGroup 自定义组信息
     * @return 自定义组信息集合
     */
    public List<BomanGroup> selectGroupList(BomanGroup bomanGroup);

    /**
     * 根据部门ID查询信息
     * 
     * @param id 部门ID
     * @return 部门信息
     */
    public BomanGroup selectGroupById(Long id);

    /**
     * 查询组织是否存在用户
     * 
     * @param ids 组织ID
     * @return 结果 true 存在 false 不存在
     */
    public boolean checkGroupExistUser(Long[] ids);

    /**
     * 校验组织名称是否唯一
     * 
     * @param bomanGroup 组织信息
     * @return 结果
     */
    public String checkGroupNameUnique(BomanGroup bomanGroup);

    /**
     * 新增保存组织信息
     * 
     * @param bomanGroup 部门信息
     * @return 结果
     */
    public int insertGroup(BomanGroup bomanGroup);

    /**
     * 修改保存组织信息
     * 
     * @param bomanGroup 组织信息
     * @return 结果
     */
    public int updateGroup(BomanGroup bomanGroup);

    /**
     * 删除组织管理信息
     * 
     * @param ids 组织ID
     * @return 结果
     */
    public int deleteGroupId(Long[] ids);

    /**
     *给组添加用户
     * @param groupId
     * @param userIds
     * @return
     */
    public AjaxResult insertUserGroup(Long groupId, Long[] userIds);

    /**
     * 给组移除用户
     * @param groupId
     * @param userIds
     * @return
     */
    public AjaxResult deleteGroupUser(Long groupId, long[] userIds);

    /**
     * 根据组织编号获取对应组织所有用户
     * @param groupId
     * @return
     */
    public List<SysUser> selectUserByGroupId(Long groupId);
}
