zj
2026-01-11 28701d9c708089cd64e3dc813ad1d9079de6528a
日股,美股
11 files modified
1 files renamed
1 files deleted
1 files copied
351 ■■■■ changed files
src/main/java/com/nq/enums/EConfigKey.java 15 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/enums/EStockType.java 30 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/SiteNewsServiceImpl.java 8 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/StockServiceImpl.java 12 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserAssetsServices.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserPositionServiceImpl.java 52 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserServiceImpl.java 2 ●●● patch | view | raw | blame | history
src/main/java/com/nq/utils/task/stock/StockTask.java 4 ●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/JPWebsocketRunClient.java 19 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/USWebsocketRunClient.java 18 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java 27 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/WebsocketRunClient.java 132 ●●●●● patch | view | raw | blame | history
src/main/resources/application.properties 20 ●●●● patch | view | raw | blame | history
src/main/resources/application.yml 8 ●●●● patch | view | raw | blame | history
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;
        }
    }
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;
        }
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 {
            // 关闭线程池
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();
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) {
            //是否存在记录
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) {
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());
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. 批量创建所有异步任务
src/main/java/com/nq/ws/JPWebsocketRunClient.java
copy from src/main/java/com/nq/ws/TWWebsocketRunClient.java copy to src/main/java/com/nq/ws/JPWebsocketRunClient.java
File was copied from src/main/java/com/nq/ws/TWWebsocketRunClient.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) {
src/main/java/com/nq/ws/USWebsocketRunClient.java
File was renamed from src/main/java/com/nq/ws/TWWebsocketRunClient.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) {
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 @@
}
*/
src/main/java/com/nq/ws/WebsocketRunClient.java
File was deleted
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
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