package com.ruoyi.generator.service;

import com.ruoyi.generator.domain.Datasource;
import com.ruoyi.generator.mapper.DatasourceMapper;
import com.ruoyi.generator.util.DataBaseTools;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

/**
 * 数据源信息Service业务层处理
 *
 * @author ruoyi
 * @date 2023-11-22
 */
@Service
public class DatasourceServiceImpl implements IDatasourceService {
    @Autowired
    private DatasourceMapper datasourceMapper;

    /**
     * 查询数据源信息
     *
     * @param datasourceId 数据源信息主键
     * @return 数据源信息
     */
    @Override
    public Datasource selectDatasourceByDatasourceId(Long datasourceId) {
        return datasourceMapper.selectDatasourceByDatasourceId(datasourceId);
    }

    /**
     * 查询数据源信息列表
     *
     * @param datasource 数据源信息
     * @return 数据源信息
     */
    @Override
    public List<Datasource> selectDatasourceList(Datasource datasource) {
        return datasourceMapper.selectDatasourceList(datasource);
    }

    /**
     * 新增数据源信息
     *
     * @param datasource 数据源信息
     * @return 结果
     */
    @Override
    public int insertDatasource(Datasource datasource) {
        return datasourceMapper.insertDatasource(datasource);
    }

    /**
     * 修改数据源信息
     *
     * @param datasource 数据源信息
     * @return 结果
     */
    @Override
    public int updateDatasource(Datasource datasource) {
        return datasourceMapper.updateDatasource(datasource);
    }

    /**
     * 批量删除数据源信息
     *
     * @param datasourceIds 需要删除的数据源信息主键
     * @return 结果
     */
    @Override
    public int deleteDatasourceByDatasourceIds(Long[] datasourceIds) {
        return datasourceMapper.deleteDatasourceByDatasourceIds(datasourceIds);
    }

    /**
     * 删除数据源信息信息
     *
     * @param datasourceId 数据源信息主键
     * @return 结果
     */
    @Override
    public int deleteDatasourceByDatasourceId(Long datasourceId) {
        return datasourceMapper.deleteDatasourceByDatasourceId(datasourceId);
    }

    /**
     * 测试数据源连接
     * @param dataSource
     * @return
     */
    @Override
    public boolean testConnection(Datasource dataSource) {
        int data = DataBaseTools.testConnection(dataSource);
        if (data == 0) {
            return false;
        } else {
            return true;
        }
    }
}
