package com.op.system.mapper;

import com.op.system.api.domain.SysUser;
import com.op.system.domain.SysDatasource;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 工厂数据库Mapper接口
 *
 * @author sf
 * @date 2023-05-18
 */
@Mapper
public interface SysDatasourceMapper
{
    /**
     * 查询工厂数据库
     *
     * @param id 工厂数据库主键
     * @return 工厂数据库
     */
    public SysDatasource selectSysDatasourceById(String id);

    /**
     * 查询工厂数据库列表
     *
     * @param sysDatasource 工厂数据库
     * @return 工厂数据库集合
     */
    public List<SysDatasource> selectSysDatasourceList(SysDatasource sysDatasource);

    /**
     * 新增工厂数据库
     *
     * @param sysDatasource 工厂数据库
     * @return 结果
     */
    public int insertSysDatasource(SysDatasource sysDatasource);

    /**
     * 修改工厂数据库
     *
     * @param sysDatasource 工厂数据库
     * @return 结果
     */
    public int updateSysDatasource(SysDatasource sysDatasource);

    /**
     * 删除工厂数据库
     *
     * @param id 工厂数据库主键
     * @return 结果
     */
    public int deleteSysDatasourceById(String id);

    /**
     * 批量删除工厂数据库
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysDatasourceByIds(String[] ids);

    List<SysDatasource> selectAllocatedList(SysDatasource sysDatasource);

    List<SysUser> selectUnallocatedList(SysUser user);

    int batchUserDB(List<SysDatasource> list);

    int deleteUserRoleInfo(SysDatasource sysDatasource);

    int deleteUserRoleInfos(@Param("datasourceId") String datasourceId, @Param("userIds") Long[] userIds);

    List<SysDatasource> selectDBListByDept(SysDatasource qo);
}
