package com.yami.trading.service.data; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.google.common.collect.Lists; import com.yami.trading.bean.data.domain.*; import com.yami.trading.common.util.ApplicationContextUtils; import com.yami.trading.common.util.PropertiesUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.NoSuchBeanDefinitionException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean; import org.springframework.stereotype.Component; import org.springframework.web.client.RestTemplate; import java.util.ArrayList; import java.util.List; @Component @Slf4j public class RestDataService implements DataService { @Autowired private RestTemplate restTemplate; @Override public List realtime(String symbol) { DataService dataService; try { dataService = ApplicationContextUtils.getBean("dataService", DataService.class); if(dataService != null){ return dataService.realtime(symbol); } }catch (NoSuchBeanDefinitionException exception){ log.error("获取 dataService 失败", exception); } return Lists.newArrayList(); } @Override public Depth depth(String symbol) { DataService dataService; try { dataService = ApplicationContextUtils.getBean("dataService", DataService.class); if(dataService != null){ return dataService.depth(symbol); } }catch (NoSuchBeanDefinitionException exception){ log.error("获取 dataService 失败", exception); } return new Depth(); } @Override public List trend(String symbol) { DataService dataService; try { dataService = ApplicationContextUtils.getBean("dataService", DataService.class); if(dataService != null){ return dataService.trend(symbol); } }catch (NoSuchBeanDefinitionException exception){ log.error("获取 dataService 失败", exception); } return new ArrayList<>(); } @Override public List kline(String symbol, String line) { DataService dataService; try { dataService = ApplicationContextUtils.getBean("dataService", DataService.class); if(dataService != null){ return dataService.kline(symbol, line); } }catch (NoSuchBeanDefinitionException exception){ log.error("获取 dataService 失败", exception); } return new ArrayList<>(); } @Override public Trade trade(String symbol) { DataService dataService; try { dataService = ApplicationContextUtils.getBean("dataService", DataService.class); if(dataService != null){ return dataService.trade(symbol); } }catch (NoSuchBeanDefinitionException exception){ log.error("获取 dataService 失败", exception); } return new Trade(); } }