From 28701d9c708089cd64e3dc813ad1d9079de6528a Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Sun, 11 Jan 2026 19:43:51 +0800
Subject: [PATCH] 日股,美股
---
src/main/java/com/nq/enums/EStockType.java | 30 +----
src/main/java/com/nq/service/impl/UserAssetsServices.java | 4
src/main/java/com/nq/service/impl/StockServiceImpl.java | 12 -
src/main/java/com/nq/utils/task/stock/StockTask.java | 4
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java | 52 ++------
src/main/java/com/nq/ws/JPWebsocketRunClient.java | 19 +-
src/main/java/com/nq/ws/USWebsocketRunClient.java | 18 +-
src/main/java/com/nq/service/impl/UserServiceImpl.java | 2
/dev/null | 132 ----------------------
src/main/resources/application.properties | 20 --
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java | 27 ++--
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java | 8 -
src/main/java/com/nq/enums/EConfigKey.java | 15 -
src/main/resources/application.yml | 8
14 files changed, 70 insertions(+), 281 deletions(-)
diff --git a/src/main/java/com/nq/enums/EConfigKey.java b/src/main/java/com/nq/enums/EConfigKey.java
index c340f25..de76808 100644
--- a/src/main/java/com/nq/enums/EConfigKey.java
+++ b/src/main/java/com/nq/enums/EConfigKey.java
@@ -23,23 +23,16 @@
INDICES("indices","指数数据"),
US_INDICES("us_home_indices_code","美国数据"),
- HK_INDICES("hk_home_indices_code","香港数据"),
- IN_INDICES("in_home_indices_code","印度数据"),
- TW_INDICES("tw_home_indices_code","台湾数据"),
-
+ JP_INDICES("jp_home_indices_code","日本数据"),
;
//根据货币获取类型
public static EConfigKey getEConfigKeyByStockType(String stockType) {
if(EStockType.US.getCode().equals(stockType)){
return US_INDICES;
- }else if(EStockType.HK.getCode().equals(stockType)){
- return HK_INDICES;
- }else if(EStockType.IN.getCode().equals(stockType)){
- return IN_INDICES;
- }else if(EStockType.TW.getCode().equals(stockType)){
- return TW_INDICES;
- } else {
+ }else if(EStockType.JP.getCode().equals(stockType)){
+ return JP_INDICES;
+ }else {
return US_INDICES;
}
}
diff --git a/src/main/java/com/nq/enums/EStockType.java b/src/main/java/com/nq/enums/EStockType.java
index ff06d8c..baa0561 100644
--- a/src/main/java/com/nq/enums/EStockType.java
+++ b/src/main/java/com/nq/enums/EStockType.java
@@ -13,13 +13,7 @@
US("US","美国股票","5",PropertiesUtil.getProperty("US_HTTP_API"),PropertiesUtil.getProperty("US_KEY"),"USD","$"),
- HK("HK","香港股票","39",PropertiesUtil.getProperty("HK_HTTP_API"),PropertiesUtil.getProperty("HK_KEY"),"HKD","HK$"),
-
- IN("IN","印度股票","14", PropertiesUtil.getProperty("JS_IN_HTTP_URL"),PropertiesUtil.getProperty("JS_IN_KEY"),"INR","₹"),
-
- //MX("MEX","墨西哥股票","7",PropertiesUtil.getProperty("MX_HTTP_API"),PropertiesUtil.getProperty("MX_KEY"),"MXN","MX$"),
-
- TW("TW","台湾股票","46",PropertiesUtil.getProperty("TW_HTTP_API"),PropertiesUtil.getProperty("TW_KEY"),"TWD","NT$");
+ JP("JP","日本股票","35",PropertiesUtil.getProperty("JP_HTTP_API"),PropertiesUtil.getProperty("JP_KEY"),"JPY","¥");
private String code;
@@ -50,12 +44,8 @@
public static EStockType getEStockTypeByCode(String code){
if(EStockType.US.getCode().equals(code)){
return US;
- }else if(EStockType.HK.getCode().equals(code)){
- return HK;
- }else if(EStockType.IN.getCode().equals(code)){
- return IN;
- }else if(EStockType.TW.getCode().equals(code)){
- return TW;
+ }else if(EStockType.JP.getCode().equals(code)){
+ return JP;
}else{
return US;
}
@@ -64,11 +54,7 @@
public static boolean isExistByCode(String code){
if(EStockType.US.getCode().equals(code)){
return true;
- }else if(EStockType.HK.getCode().equals(code)){
- return true;
- }else if(EStockType.IN.getCode().equals(code)){
- return true;
- }else if(EStockType.TW.getCode().equals(code)){
+ }else if(EStockType.JP.getCode().equals(code)){
return true;
}else{
return false;
@@ -79,12 +65,8 @@
public static EStockType getEStockTypeBySymbol(String symbol){
if(EStockType.US.getSymbol().equals(symbol)){
return US;
- }else if(EStockType.HK.getSymbol().equals(symbol)){
- return HK;
- }else if(EStockType.IN.getSymbol().equals(symbol)){
- return IN;
- }else if(EStockType.TW.getSymbol().equals(symbol)){
- return TW;
+ }else if(EStockType.JP.getSymbol().equals(symbol)){
+ return JP;
}else{
return null;
}
diff --git a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
index d1ea032..e35de8d 100644
--- a/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java
@@ -141,13 +141,7 @@
addNews(1, PropertiesUtil.getProperty("US_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("US_KEY") + "&type=1")
);
executor.submit(() ->
- addNews(1, PropertiesUtil.getProperty("HK_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("HK_KEY") + "&type=1")
- );
- executor.submit(() ->
- addNews(1, PropertiesUtil.getProperty("JS_IN_HTTP_URL") + "stock-markets?key=" + PropertiesUtil.getProperty("JS_IN_KEY") + "&type=1")
- );
- executor.submit(() ->
- addNews(1, PropertiesUtil.getProperty("TW_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("TW_KEY") + "&type=1")
+ addNews(1, PropertiesUtil.getProperty("JP_HTTP_API") + "stock-markets?key=" + PropertiesUtil.getProperty("JP_KEY") + "&type=1")
);
} finally {
// 关闭线程池
diff --git a/src/main/java/com/nq/service/impl/StockServiceImpl.java b/src/main/java/com/nq/service/impl/StockServiceImpl.java
index a8d5448..ae6453f 100644
--- a/src/main/java/com/nq/service/impl/StockServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/StockServiceImpl.java
@@ -720,25 +720,19 @@
.like(StockConfig::getCKey, EConfigKey.INDICES.getCode()));
List<DataStockBean> usDataStockBeans = Lists.newArrayList();
- List<DataStockBean> hkDataStockBeans = Lists.newArrayList();
- List<DataStockBean> inDataStockBeans = Lists.newArrayList();
- List<DataStockBean> twDataStockBeans = Lists.newArrayList();
+ List<DataStockBean> jpDataStockBeans = Lists.newArrayList();
// 创建Gson对象(全局复用,避免重复创建)
Gson gson = new Gson();
// 统一处理各地区股票数据
processStockData(stockConfigList, EStockType.US.getCode(), usDataStockBeans, gson);
- //processStockData(stockConfigList, EStockType.HK.getCode(), hkDataStockBeans, gson);
- processStockData(stockConfigList, EStockType.IN.getCode(), inDataStockBeans, gson);
- //processStockData(stockConfigList, EStockType.TW.getCode(), twDataStockBeans, gson);
+ processStockData(stockConfigList, EStockType.JP.getCode(), jpDataStockBeans, gson);
// 组装返回结果
Map<String, Object> resultMap = new HashMap<>();
resultMap.put("newsList", newsList); //新闻列表
resultMap.put("usDataStockBeans", usDataStockBeans);//美国指数
- resultMap.put("hkDataStockBeans", hkDataStockBeans);//香港指数
- resultMap.put("inDataStockBeans", inDataStockBeans);//印度指数
- resultMap.put("twDataStockBeans", twDataStockBeans);//台湾指数
+ resultMap.put("jpDataStockBeans", jpDataStockBeans);//日本指数
return ServerResponse.createBySuccess(resultMap);
} catch (Exception e){
e.printStackTrace();
diff --git a/src/main/java/com/nq/service/impl/UserAssetsServices.java b/src/main/java/com/nq/service/impl/UserAssetsServices.java
index 990e06c..85bcaa8 100644
--- a/src/main/java/com/nq/service/impl/UserAssetsServices.java
+++ b/src/main/java/com/nq/service/impl/UserAssetsServices.java
@@ -77,9 +77,7 @@
List<UserAssets> userAssetsList = userAssetsMapper.selectList(queryWrapper);
List<EStockType> stockTypes = Arrays.asList(
EStockType.US,
- EStockType.HK,
- EStockType.IN,
- EStockType.TW
+ EStockType.JP
);
for (EStockType stockType : stockTypes) {
//是否存在记录
diff --git a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
index 353a09f..6fc7309 100644
--- a/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserPositionServiceImpl.java
@@ -2155,28 +2155,18 @@
null, null, state, null);
BigDecimal usMarketValue = BigDecimal.ZERO; //美股市值
- BigDecimal hkMarketValue = BigDecimal.ZERO; //港股市值
- BigDecimal inMarketValue = BigDecimal.ZERO; //印股市值
- BigDecimal twMarketValue = BigDecimal.ZERO; //台股市值
+ BigDecimal jpMarketValue = BigDecimal.ZERO; //日股市值
BigDecimal usPositionEarnings = BigDecimal.ZERO; //美股持仓收益
- BigDecimal hkPositionEarnings = BigDecimal.ZERO; //港股持仓收益
- BigDecimal inPositionEarnings = BigDecimal.ZERO; //印股持仓收益
- BigDecimal twPositionEarnings = BigDecimal.ZERO; //台股持仓收益
+ BigDecimal jpPositionEarnings = BigDecimal.ZERO; //日股持仓收益
BigDecimal usPositionEarningsParent = BigDecimal.ZERO; //美股持仓收益百分比
- BigDecimal hkPositionEarningsParent = BigDecimal.ZERO; //港股持仓收益百分比
- BigDecimal inPositionEarningsParent = BigDecimal.ZERO; //印股持仓收益百分比
- BigDecimal twPositionEarningsParent = BigDecimal.ZERO; //台股持仓收益百分比
+ BigDecimal jpPositionEarningsParent = BigDecimal.ZERO; //日股持仓收益百分比
if (!userPositions.isEmpty()) {
for (UserPosition position : userPositions) {
BigDecimal nowPrice = priceServices.getNowPrice(position.getStockCode());
- /*if(state == 0){
- nowPrice = priceServices.getNowPrice(position.getStockCode());
- }else{
- nowPrice = position.getSellOrderPrice();
- }*/
+
UserPositionVO userPositionVO = UserPointUtil.assembleUserPositionVO(position,nowPrice);
userPositionVO.setOrderTotalPrice(userPositionVO.getOrderTotalPrice().multiply(new BigDecimal(userPositionVO.getOrderLever())));
@@ -2200,25 +2190,15 @@
usMarketValue = usMarketValue.add(nowPriceSUM);
usPositionEarnings = usPositionEarnings.add(userPositionVO.getProfitAndLose());
usPositionEarningsParent = usPositionEarningsParent.add(userPositionVO.getProfitAndLoseParent2());
- } else if(position.getStockGid().equals(EStockType.HK.getCode())) {
- hkMarketValue = hkMarketValue.add(nowPriceSUM);
- hkPositionEarnings = hkPositionEarnings.add(userPositionVO.getProfitAndLose());
- hkPositionEarningsParent = hkPositionEarningsParent.add(userPositionVO.getProfitAndLoseParent2());
- } else if(position.getStockGid().equals(EStockType.IN.getCode())) {
- inMarketValue = inMarketValue.add(nowPriceSUM);
- inPositionEarnings = inPositionEarnings.add(userPositionVO.getProfitAndLose());
- inPositionEarningsParent = inPositionEarningsParent.add(userPositionVO.getProfitAndLoseParent2());
- } else if(position.getStockGid().equals(EStockType.TW.getCode())) {
- twMarketValue = twMarketValue.add(nowPriceSUM);
- twPositionEarnings = twPositionEarnings.add(userPositionVO.getProfitAndLose());
- twPositionEarningsParent = twPositionEarningsParent.add(userPositionVO.getProfitAndLoseParent2());
+ } else if(position.getStockGid().equals(EStockType.JP.getCode())) {
+ jpMarketValue = jpMarketValue.add(nowPriceSUM);
+ jpPositionEarnings = jpPositionEarnings.add(userPositionVO.getProfitAndLose());
+ jpPositionEarningsParent = jpPositionEarningsParent.add(userPositionVO.getProfitAndLoseParent2());
}
}
usPositionEarnings = usPositionEarnings.setScale(2, RoundingMode.DOWN);
- hkPositionEarnings = hkPositionEarnings.setScale(2, RoundingMode.DOWN);
- inPositionEarnings = inPositionEarnings.setScale(2, RoundingMode.DOWN);
- twPositionEarnings = twPositionEarnings.setScale(2, RoundingMode.DOWN);
+ jpPositionEarnings = jpPositionEarnings.setScale(2, RoundingMode.DOWN);
}
Map<String, String> map = new HashMap<>();
@@ -2226,17 +2206,9 @@
map.put("usPositionEarnings", String.valueOf(usPositionEarnings)); //美股持仓收益
map.put("usPositionEarningsParent", usPositionEarningsParent + "%");//美股持仓收益率
- map.put("hkMarketValue", String.valueOf(hkMarketValue)); //港股市值
- map.put("hkPositionEarnings", String.valueOf(hkPositionEarnings)); //港股持仓收益
- map.put("hkPositionEarningsParent", hkPositionEarningsParent + "%");//港股持仓收益率
-
- map.put("inMarketValue", String.valueOf(inMarketValue)); //印股市值
- map.put("inPositionEarnings", String.valueOf(inPositionEarnings)); //印股持仓收益
- map.put("inPositionEarningsParent", inPositionEarningsParent + "%");//印股持仓收益率
-
- map.put("twMarketValue", String.valueOf(twMarketValue)); //台股市值
- map.put("twPositionEarnings", String.valueOf(twPositionEarnings)); //台股持仓收益
- map.put("twPositionEarningsParent", twPositionEarningsParent + "%");//台股持仓收益率
+ map.put("jpMarketValue", String.valueOf(jpMarketValue)); //日股市值
+ map.put("jpPositionEarnings", String.valueOf(jpPositionEarnings)); //日股持仓收益
+ map.put("jpPositionEarningsParent", jpPositionEarningsParent + "%");//日股持仓收益率
return ServerResponse.createBySuccess(map);
} catch (Exception e) {
diff --git a/src/main/java/com/nq/service/impl/UserServiceImpl.java b/src/main/java/com/nq/service/impl/UserServiceImpl.java
index 9026607..699ce23 100644
--- a/src/main/java/com/nq/service/impl/UserServiceImpl.java
+++ b/src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -166,7 +166,7 @@
user.setAccountType(Integer.valueOf(0));
- user.setIsLock(Integer.valueOf(1));
+ user.setIsLock(Integer.valueOf(0));
user.setIsActive(Integer.valueOf(0));
user.setRegTime(new Date());
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 3febc4c..9260db0 100644
--- a/src/main/java/com/nq/utils/task/stock/StockTask.java
+++ b/src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -92,9 +92,7 @@
// 1. 定义需要处理的所有股票类型(集中管理,新增类型只需添加到列表)
List<EStockType> stockTypes = Arrays.asList(
EStockType.US,
- EStockType.HK,
- EStockType.IN,
- EStockType.TW
+ EStockType.JP
);
// 2. 批量创建所有异步任务
diff --git a/src/main/java/com/nq/ws/TWWebsocketRunClient.java b/src/main/java/com/nq/ws/JPWebsocketRunClient.java
similarity index 90%
copy from src/main/java/com/nq/ws/TWWebsocketRunClient.java
copy to src/main/java/com/nq/ws/JPWebsocketRunClient.java
index fc98ae0..1de2178 100644
--- a/src/main/java/com/nq/ws/TWWebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/JPWebsocketRunClient.java
@@ -24,10 +24,10 @@
import java.util.*;
@Slf4j
-public class TWWebsocketRunClient extends WebSocketClient {
+public class JPWebsocketRunClient extends WebSocketClient {
private EStockType eStockType;
- public TWWebsocketRunClient(URI serverUri,
+ public JPWebsocketRunClient(URI serverUri,
EStockType eStockType
) {
super(serverUri);
@@ -55,6 +55,7 @@
//send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
send("heartbeat");
}
+
}
}, 0, 3000); // 每3秒发送一次心跳消息
}
@@ -62,10 +63,10 @@
@Override
public void onMessage(String message) {
if (message.contains("身份验证成功") || message.contains("pong") || message.contains("身份验证失败") || message.contains("ws连接点只能有一个")) {
- System.out.println("tw" + message);
+ System.out.println("JP:" + message);
return;
}
- System.out.println("tw2" + message);
+ System.out.println("JP2" + message);
Map<String, String> stringObjectMap = jsonToMap(message);
StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
@@ -77,7 +78,7 @@
stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
- RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockRealTimeBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.JP,stockRealTimeBean);
ObjectMapper objectMapper = new ObjectMapper();
try {
if(!stockRealTimeBean.getPcp().contains("-")){
@@ -86,9 +87,9 @@
String json = objectMapper.writeValueAsString(stockRealTimeBean);
sendLoca(json);
StockRealTimeBean stockDetailBean = new Gson().fromJson(message, StockRealTimeBean.class);
- RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockDetailBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.JP,stockDetailBean);
} catch (JsonProcessingException e) {
- log.error("websocket 台湾股票 消息错误:{}", e.getMessage());
+ log.error("websocket 日本股票 消息错误:{}", e.getMessage());
}
}
@@ -100,12 +101,12 @@
@Override
public void onClose(int i, String s, boolean b) {
- log.info("websocket 台湾股票 关闭 {} ", i);
+ log.info("websocket 日本股票 关闭 {} ", i);
}
@Override
public void onError(Exception e) {
- log.info("websocket 台湾股票 错误{}", e.getMessage());
+ log.info("websocket 日本股票 错误{}", e.getMessage());
}
public void sendLoca(String message) {
diff --git a/src/main/java/com/nq/ws/TWWebsocketRunClient.java b/src/main/java/com/nq/ws/USWebsocketRunClient.java
similarity index 90%
rename from src/main/java/com/nq/ws/TWWebsocketRunClient.java
rename to src/main/java/com/nq/ws/USWebsocketRunClient.java
index fc98ae0..8f15b19 100644
--- a/src/main/java/com/nq/ws/TWWebsocketRunClient.java
+++ b/src/main/java/com/nq/ws/USWebsocketRunClient.java
@@ -24,10 +24,10 @@
import java.util.*;
@Slf4j
-public class TWWebsocketRunClient extends WebSocketClient {
+public class USWebsocketRunClient extends WebSocketClient {
private EStockType eStockType;
- public TWWebsocketRunClient(URI serverUri,
+ public USWebsocketRunClient(URI serverUri,
EStockType eStockType
) {
super(serverUri);
@@ -62,10 +62,10 @@
@Override
public void onMessage(String message) {
if (message.contains("身份验证成功") || message.contains("pong") || message.contains("身份验证失败") || message.contains("ws连接点只能有一个")) {
- System.out.println("tw" + message);
+ System.out.println("US" + message);
return;
}
- System.out.println("tw2" + message);
+ System.out.println("US2" + message);
Map<String, String> stringObjectMap = jsonToMap(message);
StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
@@ -77,7 +77,7 @@
stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
- RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockRealTimeBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.US,stockRealTimeBean);
ObjectMapper objectMapper = new ObjectMapper();
try {
if(!stockRealTimeBean.getPcp().contains("-")){
@@ -86,9 +86,9 @@
String json = objectMapper.writeValueAsString(stockRealTimeBean);
sendLoca(json);
StockRealTimeBean stockDetailBean = new Gson().fromJson(message, StockRealTimeBean.class);
- RedisKeyUtil.setCacheRealTimeStock(EStockType.TW,stockDetailBean);
+ RedisKeyUtil.setCacheRealTimeStock(EStockType.US,stockDetailBean);
} catch (JsonProcessingException e) {
- log.error("websocket 台湾股票 消息错误:{}", e.getMessage());
+ log.error("websocket 美股股票 消息错误:{}", e.getMessage());
}
}
@@ -100,12 +100,12 @@
@Override
public void onClose(int i, String s, boolean b) {
- log.info("websocket 台湾股票 关闭 {} ", i);
+ log.info("websocket 美股股票 关闭 {} ", i);
}
@Override
public void onError(Exception e) {
- log.info("websocket 台湾股票 错误{}", e.getMessage());
+ log.info("websocket 美股股票 错误{}", e.getMessage());
}
public void sendLoca(String message) {
diff --git a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
index cb1ba38..6534221 100644
--- a/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
+++ b/src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -1,4 +1,3 @@
-/*
package com.nq.ws;
import com.nq.enums.EStockType;
@@ -22,22 +21,22 @@
Map<String, WebSocketClient> retMap = new HashMap<>(2);
try {
- WebsocketRunClient hkWebsocketRunClient = new WebsocketRunClient(new URI(PropertiesUtil.getProperty("HK_WS_URL")), EStockType.HK);
- hkWebsocketRunClient.connect();
- hkWebsocketRunClient.setConnectionLostTimeout(0);
- startHeartbeatThread(hkWebsocketRunClient);
- retMap.put(EStockType.HK.getStockKey(), hkWebsocketRunClient);
+ JPWebsocketRunClient jpWebsocketRunClient = new JPWebsocketRunClient(new URI(PropertiesUtil.getProperty("JP_WS_URL")), EStockType.JP);
+ jpWebsocketRunClient.connect();
+ jpWebsocketRunClient.setConnectionLostTimeout(0);
+ startHeartbeatThread(jpWebsocketRunClient);
+ retMap.put(EStockType.JP.getStockKey(), jpWebsocketRunClient);
} catch (Exception e) {
- log.error("hkWebsocketRunClient 异常: {}", e.getMessage());
+ log.error("jpWebsocketRunClient 异常: {}", e.getMessage());
}
try {
- TWWebsocketRunClient twWebsocketRunClient = new TWWebsocketRunClient(new URI(PropertiesUtil.getProperty("TW_WS_URL")), EStockType.TW);
- twWebsocketRunClient.connect();
- twWebsocketRunClient.setConnectionLostTimeout(0);
- startHeartbeatThread(twWebsocketRunClient);
- retMap.put(EStockType.TW.getStockKey(), twWebsocketRunClient);
+ USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")), EStockType.US);
+ usWebsocketRunClient.connect();
+ usWebsocketRunClient.setConnectionLostTimeout(0);
+ startHeartbeatThread(usWebsocketRunClient);
+ retMap.put(EStockType.US.getStockKey(), usWebsocketRunClient);
} catch (Exception e) {
- log.error("twWebsocketRunClient 异常: {}", e.getMessage());
+ log.error("usWebsocketRunClient 异常: {}", e.getMessage());
}
return retMap;
}
@@ -68,4 +67,4 @@
}
-*/
+
diff --git a/src/main/java/com/nq/ws/WebsocketRunClient.java b/src/main/java/com/nq/ws/WebsocketRunClient.java
deleted file mode 100644
index b0021de..0000000
--- a/src/main/java/com/nq/ws/WebsocketRunClient.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.nq.ws;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.google.gson.Gson;
-import com.google.gson.reflect.TypeToken;
-import com.nq.enums.EStockType;
-import com.nq.pojo.StockRealTimeBean;
-import com.nq.utils.redis.RedisKeyUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.apache.http.HttpResponse;
-import org.apache.http.client.HttpClient;
-import org.apache.http.client.entity.UrlEncodedFormEntity;
-import org.apache.http.client.methods.HttpPost;
-import org.apache.http.impl.client.HttpClients;
-import org.apache.http.message.BasicNameValuePair;
-import org.java_websocket.client.WebSocketClient;
-import org.java_websocket.handshake.ServerHandshake;
-import org.springframework.context.ApplicationContext;
-
-import java.io.IOException;
-import java.lang.reflect.Type;
-import java.net.URI;
-import java.nio.charset.StandardCharsets;
-import java.util.*;
-
-@Slf4j
-public class WebsocketRunClient extends WebSocketClient {
-
- private EStockType eStockType;
- public WebsocketRunClient(URI serverUri,
- EStockType eStockType
- ) {
- super(serverUri);
- this.eStockType = eStockType;
- }
-
- private static HttpClient httpClient = HttpClients.createDefault(); // 单例化 HttpClient
-
-
- private static HttpPost httpPost;
- static {
- httpPost = new HttpPost("http://127.0.0.1:8001/api/sendNotification"); // 初始化 HttpPost
- }
-
- @Override
- public void onOpen(ServerHandshake serverHandshake) {
- send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
- Timer heartbeatTimer;
- // 启动心跳定时器
- heartbeatTimer = new Timer();
- heartbeatTimer.schedule(new TimerTask() {
- @Override
- public void run() {
- if (isOpen()) {
- //send(("key:"+ eStockType.getStockKey()+":"+eStockType.getContryId()).getBytes());
- send("heartbeat");
- }
-
- }
- }, 0, 3000); // 每3秒发送一次心跳消息
- }
-
- @Override
- public void onMessage(String message) {
- if (message.contains("身份验证成功") || message.contains("pong") || message.contains("身份验证失败") || message.contains("ws连接点只能有一个")) {
- System.out.println("hk" + message);
- return;
- }
- System.out.println("hk2" + message);
- Map<String, String> stringObjectMap = jsonToMap(message);
- StockRealTimeBean stockRealTimeBean = new StockRealTimeBean();
- stockRealTimeBean.setPid(stringObjectMap.get("Id").toString());
- stockRealTimeBean.setLast(stringObjectMap.get("Last").toString());
- stockRealTimeBean.setBid(stringObjectMap.get("Bid").toString());
- stockRealTimeBean.setAsk(stringObjectMap.get("Ask").toString());
- stockRealTimeBean.setHigh(stringObjectMap.get("High").toString());
- stockRealTimeBean.setLow(stringObjectMap.get("Low").toString());
- stockRealTimeBean.setPc(stringObjectMap.get("Chg").toString());
- stockRealTimeBean.setPcp(stringObjectMap.get("ChgPct").toString()+"%");
- stockRealTimeBean.setTime(stringObjectMap.get("Time").toString());
- RedisKeyUtil.setCacheRealTimeStock(EStockType.HK,stockRealTimeBean);
- ObjectMapper objectMapper = new ObjectMapper();
- try {
- if(!stockRealTimeBean.getPcp().contains("-")){
- stockRealTimeBean.setPcp("+"+stringObjectMap.get("ChgPct").toString()+"%");
- }
- String json = objectMapper.writeValueAsString(stockRealTimeBean);
- sendLoca(json);
- StockRealTimeBean stockDetailBean = new Gson().fromJson(message, StockRealTimeBean.class);
- RedisKeyUtil.setCacheRealTimeStock(EStockType.HK,stockDetailBean);
- } catch (JsonProcessingException e) {
- log.error("websocket 香港股票 消息错误:{}", e.getMessage());
- }
- }
-
- public static Map<String, String> jsonToMap(String json) {
- Gson gson = new Gson();
- Type type = new TypeToken<Map<String, String>>(){}.getType();
- return gson.fromJson(json, type);
- }
-
- @Override
- public void onClose(int i, String s, boolean b) {
- log.info("websocket 香港股票 关闭 {} ", i);
- }
-
- @Override
- public void onError(Exception e) {
- log.info("websocket 香港股票 错误{}", e.getMessage());
- }
-
- public void sendLoca(String message) {
- try {
- // 准备 form-data 参数
- List<BasicNameValuePair> params = new ArrayList<>();
- params.add(new BasicNameValuePair("message", message));
-
- // 设置编码格式为 UTF-8
- UrlEncodedFormEntity entity = new UrlEncodedFormEntity(params, StandardCharsets.UTF_8);
- httpPost.setEntity(entity); // 设置 HttpPost 对象的参数
-
- // 发送请求
- HttpResponse response = httpClient.execute(httpPost);
-
- // 处理响应
- int statusCode = response.getStatusLine().getStatusCode();
- } catch (IOException e) {
- log.error("Http 请求错误", e);
- }
- }
-}
diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties
index 6298a41..00b84c7 100644
--- a/src/main/resources/application.properties
+++ b/src/main/resources/application.properties
@@ -17,7 +17,7 @@
ftp.user=ftp_stock
ftp.pass=Fxw16SK6s7QA
ftp.address =/www/wwwroot/ftp_stock/
-ftp.server.http.prefix=https://img.acapl.net/
+ftp.server.http.prefix=https://rgimg.shengliankeji.top/
redis1.ip=localhost
redis1.port=6379
@@ -41,22 +41,12 @@
#股票key的地址
US_HTTP_API = http://api-us-v2.js-stock.top/
-#US_WS_URL = ws://api-us-v2-ws.js-stock.top
+US_WS_URL = ws://api-us-v2-ws.js-stock.top
US_KEY = SIjHECiI3cIVfHXwsLsL
-HK_HTTP_API = http://api-hk.js-stock.top/
-HK_WS_URL = ws://api-hk-ws.js-stock.top
-HK_KEY = rJqhNHGpoyYierlzTq39
-
-JS_IN_HTTP_URL = http://api-in-pro.js-stock.top/
-#JS_IN_WS_URL = ws://api-in-pro-ws.js-stock.top
-JS_IN_KEY = xKChgi47AP1NMwMeYI3c
-
-TW_HTTP_API = http://api-tw.js-stock.top/
-TW_WS_URL = ws://api-tw-ws.js-stock.top
-TW_KEY = hhlobPKTugRVtWtHMxrf
-
-
+JP_HTTP_API = http://api-jp.js-stock.top/
+JP_WS_URL = ws://api-jp-ws.js-stock.top
+JP_KEY = rST7RRMPgvW4ogcAppCx
#默认首页显示指数code
#us_home_indices_code=15882,15881,16571
#hk_home_indices_code=535606773,535606776,535606785
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index f045a02..cb89d51 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -107,7 +107,7 @@
# 端口,默认为6379
port: 6379
# 数据库索引
- database: 0
+ database: 6
# 密码
password:
# 连接超时时间
@@ -126,9 +126,9 @@
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: com.mysql.cj.jdbc.Driver
#url: jdbc:mysql://127.0.0.1:6306/stock_ci?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
- url: jdbc:mysql://127.0.0.1:3306/stock?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
- username: stock
- password: aGZyCy3YrBXwAxJs
+ url: jdbc:mysql://127.0.0.1:3306/stock-dg?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: stock-dg
+ password: 6eAcBiXTatc8L6hm
druid:
# 初始连接数
initialSize: 5
--
Gitblit v1.9.3