From 9b857ed9a9c6e07cc656622b0664109e61638041 Mon Sep 17 00:00:00 2001
From: jack <zengjieli93@163.com>
Date: Wed, 27 Mar 2024 19:34:10 +0800
Subject: [PATCH] 分支1
---
src/main/java/com/nq/utils/task/stock/StockTask.java | 70 +++++++++++++++++++---------------
1 files changed, 39 insertions(+), 31 deletions(-)
diff --git a/src/main/java/com/nq/utils/task/stock/StockTask.java b/src/main/java/com/nq/utils/task/stock/StockTask.java
index c8c2945..e7beb3d 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -1,12 +1,14 @@
package com.nq.utils.task.stock;
import com.alibaba.fastjson2.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.gson.Gson;
import com.nq.dao.*;
import com.nq.enums.EStockType;
import com.nq.pojo.*;
+import com.nq.service.IMandatoryLiquidationService;
import com.nq.service.IStockService;
-import com.nq.utils.HttpClientRequest;
+import com.nq.utils.http.HttpClientRequest;
import com.nq.utils.redis.RedisKeyUtil;
import com.nq.utils.stock.BuyAndSellUtils;
import org.slf4j.Logger;
@@ -29,6 +31,9 @@
StockMapper stockMapper;
+ @Autowired
+ IMandatoryLiquidationService mandatoryLiquidationService;
+
private static final Logger log = LoggerFactory.getLogger(StockTask.class);
@@ -46,29 +51,26 @@
}
- //每隔一个小时请求一次 同步印度股票
- @Scheduled(cron = "0 0 0/1 * * ?")
+ /**
+ * 同步系统所需要的股票
+ * */
+ @Scheduled(cron = "0 0/3 * * * ?")
public void syncINStockData() {
- loadAllStock(EStockType.IN);
+// loadAllStock(EStockType.US);
+ loadAllStock(EStockType.HG);
}
+
+
/**
* 同步美国股票
* */
- @Scheduled(cron = "0 0 0/1 * * ?")
- public void synsUSStockData(){
- loadAllStock(EStockType.US);
- }
-
-
- /**
- * 同步美国股票
- * */
- @Scheduled(cron = "0 0/5 * * * ?")
+ @Scheduled(cron = "0 0/30 * * * ?")
public void loadStockCompanies(){
loadAllCompanies();
}
+
@@ -80,8 +82,7 @@
for (int i = 0; i <list.size() ; i++) {
Stock stock = list.get(i);
EStockType eStockType = EStockType.getEStockTypeByCode(stock.getStockType());
- String result = HttpClientRequest.doGet(eStockType.stockUrl+"companies?pid=+"+stock.getStockCode()+"+country_id="+eStockType.getContryId()+"&size=1000&page=1&key="+eStockType.stockKey);
- log.info(" 公司信息返回{}",result);
+ String result = HttpClientRequest.doGet(eStockType.stockUrl+"companies?pid=+"+stock.getStockCode()+"+country_id="+eStockType.getContryId()+"&size=1&page=1&key="+eStockType.stockKey);
try {
JSONObject jsonObject = JSONObject.parseObject(result);
JSONObject companiesInfo = jsonObject.getJSONArray("data").getJSONObject(0);
@@ -93,9 +94,6 @@
}
}
-
-
-
/**
* 加载所有股票数据
@@ -136,7 +134,6 @@
}else{
stock.setStockSpell(o.getTicker());
}
-
stock.setIsLock(0);
stock.setIsShow(0);
stock.setDataBase(0);
@@ -159,20 +156,31 @@
* 每3分钟同步一次数据源到数据库
*
*/
- @Scheduled(cron = "0 0/1 * * * ?")
+ @Scheduled(cron = "0/3 * * * * ?")
public void sysnInstockData(){
- List<Stock> list = stockMapper.findStockList();
- if(list.size()>0){
- for (int i = 0; i < list.size(); i++) {
- try {
- Stock stock = list.get(i);
- StockRealTimeBean stockDetailBean = RedisKeyUtil.getCacheRealTimeStock(stock);
- stock.setIncreaseRatio(new BigDecimal(stockDetailBean.getPcp().replace("%","")));
- stockMapper.updateById(stock);
- }catch (Exception e){
+ QueryWrapper<Stock> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("stock_type",EStockType.SZHB.getCode());
+ List<Stock> stockList = stockMapper.selectList(queryWrapper);
+ for (int i = 0; i < stockList.size(); i++) {
+ try {
+ String hdataString = HttpClientRequest.doGet(EStockType.SZHB.stockUrl+"market/detail?symbol="+stockList.get(i).getStockCode());
+ HBData hbData = new Gson().fromJson(hdataString,HBData.class);
+ StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
+ stockRealTimeBean.setLast(hbData.getTick().getClose()+"");
+ stockRealTimeBean.setHigh(hbData.getTick().getHigh()+"");
+ stockRealTimeBean.setPid(stockList.get(i).getStockCode());
+ stockRealTimeBean.setLow(hbData.getTick().getLow()+"");
+ stockRealTimeBean.setBid(hbData.getTick().getOpen()+"");
+ stockRealTimeBean.setLast_close("0.00");
+ BigDecimal sss = (new BigDecimal(hbData.getTick().getClose()).subtract(new BigDecimal(hbData.getTick().getOpen())));
+ sss = sss.divide(new BigDecimal(hbData.getTick().getOpen()),BigDecimal.ROUND_CEILING);
+ stockRealTimeBean.setPcp(sss.setScale(2,BigDecimal.ROUND_UP).toString());
+ mandatoryLiquidationService.RealTimeDataProcess(EStockType.SZHB,stockRealTimeBean);
+ }catch (Exception e){
- }
}
+
}
+
}
}
--
Gitblit v1.9.3