package com.nq.utils.stock.lide;
|
|
import com.alibaba.fastjson.JSON;
|
import com.nq.common.StockIndexConst;
|
import com.nq.utils.HttpClientRequest;
|
import com.nq.utils.HttpRequest;
|
import com.nq.utils.redis.RedisShardedPoolUtils;
|
import com.nq.utils.stock.SerializeUtil;
|
import org.slf4j.Logger;
|
import org.slf4j.LoggerFactory;
|
import org.springframework.util.ObjectUtils;
|
import org.springframework.util.StringUtils;
|
import redis.clients.jedis.ShardedJedis;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class LiDeDataUtils {
|
|
public static final String URL="http://139.196.211.109/stock_rank.action";
|
|
//全量股票数据接口
|
public static final String QL_URL="http://139.196.211.109/stock_currPlus.action";
|
//新三板股票接口
|
public static final String XSBURL="http://139.196.211.109/new3_currPlus.action";
|
private static final Logger log = LoggerFactory.getLogger(LiDeDataUtils.class);
|
|
/**
|
* 拉取沪深全量数据
|
*/
|
public static void pullData(){
|
String password = null;
|
int size=0;
|
try {
|
password = "52d582b7580d0c019cc05950d3c88829";//Md5Utils.getMD5("jzy123456");
|
String params="?username=mry520&password="+password+"&zs=0&column=mc,open,high,low,pre,price,vol,e,zdf,zde,s1,s2,s3,s4,s5,b1,b2,b3,b4,b5";
|
System.out.println(QL_URL+params);
|
String s = HttpClientRequest.doGet(QL_URL+params);
|
//s=s.replaceFirst("品种代码,开盘价,最高价,最低价,昨收,现价,名称,成交量,成交额,涨跌幅,涨跌额,卖一价,卖二价,卖三价,卖四价,卖五价,买一价,买二价,买三价,买四价,买五价","");
|
String[] split = s.trim().split("\r\n");
|
ArrayList<LideDataVo> lideDataVos = new ArrayList<>();
|
for(int i=1;i<split.length;i++){
|
String stock= split[i];
|
String[] stockSplite = stock.split(",");
|
LideDataVo lideDataVo = new LideDataVo(stockSplite[0], stockSplite[1], stockSplite[2], stockSplite[3], stockSplite[4], stockSplite[5], stockSplite[6],
|
stockSplite[7], stockSplite[8], stockSplite[9], stockSplite[10], stockSplite[11], stockSplite[12], stockSplite[13]
|
, stockSplite[14], stockSplite[15], stockSplite[16], stockSplite[17], stockSplite[18], stockSplite[19], stockSplite[20]);
|
lideDataVos.add(lideDataVo);
|
//System.out.println(lideDataVo);
|
}
|
size=split.length;
|
RedisShardedPoolUtils.stockPipSet(lideDataVos);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
log.info("-------------------全量同步股票结束 {}个--------------",size);
|
}
|
|
/**
|
* 拉取排行榜数据
|
* @return
|
*/
|
public static ArrayList<LideRankDataVo> pullRankData(){
|
String password = null;
|
int size=0;
|
ArrayList<LideRankDataVo> lideDataVos = new ArrayList<>();
|
try {
|
password = "52d582b7580d0c019cc05950d3c88829";//Md5Utils.getMD5("jzy123456");
|
String params="?username=mry520&password="+password+"&zs=0&num=20&order=desc&type=zf&column=mc,price,e,zdf,ltsz,zsz,hsl";
|
System.out.println(URL+params);
|
String s = HttpRequest.doGetZip(URL,params);
|
//System.out.println(s);
|
//s=s.replaceFirst("品种代码,开盘价,最高价,最低价,昨收,现价,名称,成交量,成交额,涨跌幅,涨跌额,卖一价,卖二价,卖三价,卖四价,卖五价,买一价,买二价,买三价,买四价,买五价","");
|
String[] split = s.trim().split("\r\n");
|
for(int i=1;i<split.length;i++){
|
String stock= split[i];
|
String[] stockSplite = stock.split(",");
|
LideRankDataVo lideDataVo = new LideRankDataVo(stockSplite[0],
|
stockSplite[8],
|
Float.valueOf(stockSplite[7]),
|
Long.valueOf(stockSplite[4]),
|
Long.valueOf(stockSplite[5]),
|
Float.valueOf(stockSplite[6]),
|
Long.valueOf(stockSplite[10]),
|
Float.valueOf(stockSplite[3]));
|
lideDataVos.add(lideDataVo);
|
}
|
size=split.length;
|
if(lideDataVos.size()>1){
|
RedisShardedPoolUtils.set("ZDFB_STOCK", JSON.toJSONString(lideDataVos));
|
}
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
log.info("-------------------全量同步涨跌榜股票结束 {}个--------------",size);
|
return lideDataVos;
|
|
}
|
|
/**
|
* 拉取新三板数据
|
*/
|
public static void pullXSBData(){
|
String password = null;
|
int size=0;
|
try {
|
password = "52d582b7580d0c019cc05950d3c88829";//Md5Utils.getMD5("jzy123456");
|
String params="?username=mry520&password="+password+"&zs=0&column=mc,open,high,low,pre,price,vol,e,zdf,zde,s1,s2,s3,s4,s5,b1,b2,b3,b4,b5";
|
System.out.println(XSBURL+params);
|
String s = HttpClientRequest.doGet(XSBURL+params);
|
//s=s.replaceFirst("品种代码,开盘价,最高价,最低价,昨收,现价,名称,成交量,成交额,涨跌幅,涨跌额,卖一价,卖二价,卖三价,卖四价,卖五价,买一价,买二价,买三价,买四价,买五价","");
|
String[] split = s.trim().split("\r\n");
|
ArrayList<LideDataVo> lideDataVos = new ArrayList<>();
|
for(int i=1;i<split.length;i++){
|
String stock= split[i];
|
String[] stockSplite = stock.split(",");
|
LideDataVo lideDataVo = new LideDataVo(stockSplite[0], stockSplite[1], stockSplite[2], stockSplite[3], stockSplite[4], stockSplite[5], stockSplite[6],
|
stockSplite[7], stockSplite[8], stockSplite[9], stockSplite[10], stockSplite[11], stockSplite[12], stockSplite[13]
|
, stockSplite[14], stockSplite[15], stockSplite[16], stockSplite[17], stockSplite[18], stockSplite[19], stockSplite[20]);
|
lideDataVos.add(lideDataVo);
|
}
|
size=split.length;
|
RedisShardedPoolUtils.stockPipSet(lideDataVos);
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
log.info("-------------------全量同步新三板股票结束 {}个--------------",size);
|
}
|
|
|
public static LideDataVo getStock(String code){
|
String key="STOCK:" + code;
|
LideDataVo lideDataVo = StockIndexConst.STOCKMap.get(key);
|
if(!ObjectUtils.isEmpty(lideDataVo)){
|
return lideDataVo;
|
}
|
byte[] bytearr = RedisShardedPoolUtils.get((key).getBytes());
|
if(!StringUtils.isEmpty(bytearr)){
|
lideDataVo = (LideDataVo) SerializeUtil.unserialize(bytearr,LideDataVo.class);
|
return lideDataVo;
|
}
|
return null;
|
}
|
|
|
|
|
public static void main(String[] args) throws Exception {
|
// String password = Md5Utils.getMD5("password");
|
//// System.out.println(password);
|
// // pullData();
|
//
|
//// LideDataVo lideDataVo = new LideDataVo();
|
//// lideDataVo.setAmount("1111");
|
// ShardedJedis jedis = RedisShardedPool.getJedis();
|
//// String set =jedis.set("STOCK:111".getBytes(), SerializeUtil.serialize(lideDataVo));
|
//// byte[] bytes = jedis.get("STOCK:111".getBytes());
|
//// LideDataVo unserialize = SerializeUtil.unserialize(bytes, LideDataVo.class);
|
//
|
// LideDataVo stock = getStock("688221");
|
// System.out.println(stock);
|
// String s="688077,54.44,11.375,11.375,2452331500,4397554300,8.495,54.44,大地熊,54.44,202496520";
|
// String[] stockSplite = s.split(",");
|
// System.out.println(Float.valueOf("2452331500"));
|
|
pullRankData();
|
|
}
|
}
|