//package com.usky.energy.config;
//
//import com.taosdata.jdbc.TSDBDriver;
//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;
//import org.springframework.beans.factory.annotation.Value;
//import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
//import org.springframework.context.annotation.Bean;
//import org.springframework.context.annotation.Configuration;
//
//import javax.sql.DataSource;
//import java.sql.Connection;
//import java.sql.DriverManager;
//import java.sql.SQLException;
//import java.util.Properties;
//
///**
// * TDengine数据源配置
// *
// * @author system
// * @since 2024-01-01
// */
//@Configuration
//@ConditionalOnProperty(prefix = "energy.tdengine", name = "enabled", havingValue = "true", matchIfMissing = false)
//public class TdengineConfig {
//
//    private static final Logger logger = LoggerFactory.getLogger(TdengineConfig.class);
//
//    @Value("${energy.tdengine.url: jdbc:TAOS-RS://47.110.48.75:6041/}")
//    private String url;
//
//    @Value("${energy.tdengine.user:root}")
//    private String user;
//
//    @Value("${energy.tdengine.password:taosdata}")
//    private String password;
//
//    @Bean(name = "tdengineDataSource")
//    public DataSource tdengineDataSource() {
//        return new TdengineDataSource(url, user, password);
//    }
//
//    /**
//     * 简单的TDengine数据源实现
//     */
//    private static class TdengineDataSource implements DataSource {
//        private final String url;
//        private final String user;
//        private final String password;
//
//        public TdengineDataSource(String url, String user, String password) {
//            this.url = url;
//            this.user = user;
//            this.password = password;
//        }
//
//        @Override
//        public Connection getConnection() throws SQLException {
//            try {
//                Class.forName("com.taosdata.jdbc.TSDBDriver");
//            } catch (ClassNotFoundException e) {
//                throw new SQLException("TDengine驱动未找到", e);
//            }
//
//            Properties props = new Properties();
//            props.setProperty("user", user);
//            props.setProperty("password", password);
//
//            return DriverManager.getConnection(url, props);
//        }
//
//        @Override
//        public Connection getConnection(String username, String password) throws SQLException {
//            return getConnection();
//        }
//
//        @Override
//        public <T> T unwrap(Class<T> iface) throws SQLException {
//            throw new SQLException("不支持的操作");
//        }
//
//        @Override
//        public boolean isWrapperFor(Class<?> iface) throws SQLException {
//            return false;
//        }
//
//        @Override
//        public java.io.PrintWriter getLogWriter() throws SQLException {
//            return null;
//        }
//
//        @Override
//        public void setLogWriter(java.io.PrintWriter out) throws SQLException {
//        }
//
//        @Override
//        public void setLoginTimeout(int seconds) throws SQLException {
//        }
//
//        @Override
//        public int getLoginTimeout() throws SQLException {
//            return 0;
//        }
//
//        @Override
//        public java.util.logging.Logger getParentLogger() {
//            return null;
//        }
//    }
//}
