| | |
| | | package com.nq.utils.stock.sina; |
| | | |
| | | |
| | | import cn.hutool.core.date.DateTime; |
| | | import cn.hutool.core.date.DateUtil; |
| | | import com.alibaba.fastjson2.JSONObject; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.nq.common.ServerResponse; |
| | | import com.nq.dao.StockTimeSettingMapper; |
| | | import com.nq.pojo.*; |
| | | import com.nq.utils.ApplicationContextRegisterUtil; |
| | | import com.nq.utils.http.HttpClientRequest; |
| | | import com.nq.utils.PropertiesUtil; |
| | | import com.nq.utils.redis.JsonUtil; |
| | | import com.nq.utils.redis.RedisKeyUtil; |
| | | import com.nq.utils.stock.sina.vo.SinaStockMinData; |
| | | import com.nq.utils.timeutil.TimeUtil; |
| | | import com.nq.vo.stock.StockListVO; |
| | | import com.nq.vo.stock.StockUsVO; |
| | | import com.nq.vo.stock.StockVO; |
| | |
| | | import com.nq.vo.stock.k.echarts.EchartsDataVO; |
| | | |
| | | import java.math.BigDecimal; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | |
| | | import org.apache.commons.lang3.StringUtils; |
| | | import org.codehaus.jackson.type.TypeReference; |
| | | import org.slf4j.Logger; |
| | | import org.slf4j.LoggerFactory; |
| | | import org.springframework.context.ApplicationContext; |
| | | import org.springframework.stereotype.Component; |
| | | |
| | | import javax.annotation.Resource; |
| | | |
| | | public class StockApi { |
| | | public static final String sina_url = PropertiesUtil.getProperty("sina.single.stock.url"); |
| | | private static final Logger log = LoggerFactory.getLogger(StockApi.class); |
| | | |
| | | private static StockTimeSettingMapper getStockTimeSettingMapper() { |
| | | return ApplicationContextRegisterUtil.getBean(StockTimeSettingMapper.class); |
| | | } |
| | | |
| | | public static List<StockListVO> getStockReailTimes(List<Stock> stocks) { |
| | | if (stocks.size() == 0) { |
| | |
| | | stockListVO.setColor(0); |
| | | }else{ |
| | | stockListVO.setColor(1); |
| | | stockListVO.setHcrateP("+"+realTimeStock.getPcp()+"%"); |
| | | stockListVO.setHcrateP(realTimeStock.getPcp()+"%"); |
| | | } |
| | | stockListVO.setNowPrice(realTimeStock.getLast()); |
| | | |
| | | Boolean b = timeCheck(stock.getStockCode()); |
| | | if(b){ |
| | | stockListVO.setNowPrice(realTimeStock.getLast()); |
| | | }else{ |
| | | stockListVO.setNowPrice(realTimeStock.getPrevClose()); |
| | | } |
| | | stockListVO.setToday_max(realTimeStock.getHigh()); |
| | | stockListVO.setToday_min(realTimeStock.getLow()); |
| | | stockListVO.setOpen_px(realTimeStock.getBid()); |
| | |
| | | return stockListVOs; |
| | | } |
| | | |
| | | public static Boolean timeCheck(String stockCode) { |
| | | StockTimeSettingMapper stockTimeSettingMapper = getStockTimeSettingMapper(); |
| | | StockTimeSetting stockTimeSetting = stockTimeSettingMapper.selectOne(new QueryWrapper<StockTimeSetting>().eq("accets_type","US")); |
| | | |
| | | if(stockTimeSetting == null){ |
| | | return false; |
| | | } |
| | | if(!stockTimeSetting.getWeekDay().contains(String.valueOf(LocalDate.now().getDayOfWeek().getValue()))){ |
| | | return false; |
| | | } |
| | | return TimeUtil.isTradingHour(stockTimeSetting.getAmStartTime(),stockTimeSetting.getAmEndTime(),stockTimeSetting.getPmStartTime(),stockTimeSetting.getPmEndTime()); |
| | | } |
| | | |
| | | /** |
| | | * 对接印度股票 |