1
zj
2024-11-10 a6754af1932bcc0dfe30c809d97111cd521d54f5
1
6 files modified
143 ■■■■ changed files
src/main/java/com/nq/enums/EStockType.java 13 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/service/impl/UserServiceImpl.java 4 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/utils/task/news/NewsTask.java 50 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/utils/task/stock/StockTask.java 38 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java 34 ●●●● patch | view | raw | blame | history
src/main/resources/application.properties 4 ●●●● patch | view | raw | blame | history
src/main/java/com/nq/enums/EStockType.java
@@ -12,7 +12,7 @@
    US("US","美国股票","5",PropertiesUtil.getProperty("US_HTTP_API"),PropertiesUtil.getProperty("US_KEY"),"USD","$"),
//    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$"),
//    MAS("MAS","马来西亚股票","42",PropertiesUtil.getProperty("MAS_HTTP_API"),PropertiesUtil.getProperty("MAS_KEY"),"MYR","RM"),
@@ -44,11 +44,12 @@
    }
    public static EStockType getEStockTypeByCode(String code){
        if(EStockType.US.getCode().equals(code)){
            return US;
        }else{
            return  JP;
        }
//        if(EStockType.US.getCode().equals(code)){
//            return US;
//        }else{
//            return  JP;
//        }
        return  JP;
    }
    public String getContryId() {
src/main/java/com/nq/service/impl/UserServiceImpl.java
@@ -202,7 +202,7 @@
                return ServerResponse.createByErrorMsg("登录失败。账户锁定",request);
            }
            userAssetsServices.assetsByTypeAndUserId(EStockType.JP.getCode(),user.getId());
            userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId());
//            userAssetsServices.assetsByTypeAndUserId(EStockType.US.getCode(),user.getId());
            this.iSiteLoginLogService.saveLog(user, request);
            return ServerResponse.createBySuccess(user);
        }
@@ -524,7 +524,7 @@
            rUserAssets.setIsZf(userAssets.getIsZf());
            rUserAssets.setAmountToBeCovered(userAssets.getAmountToBeCovered().toString());
            BigDecimal rate = rateServices.currencyRate(
                    EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.US);
                    EStockType.getEStockTypeByCode(userAssets.getAccectType()),EStockType.JP);
           BigDecimal  availableBalanceUSD = amt;
           if(amt.compareTo(BigDecimal.ZERO)>0){
src/main/java/com/nq/utils/task/news/NewsTask.java
@@ -64,31 +64,31 @@
            }
        }
    }
    /*
     * 新聞資訊抓取
     * */
    @Scheduled(cron = "0 0/10 * * * ?")
    public void USNewsInfoTask() {
        if (USNewsInfoTask.get()) { // 判断任务是否在处理中
            return;
        }
        if (USNewsInfoTaskLock.tryLock()) { // 加锁
            try {
                USNewsInfoTask.set(true); // 设置处理中标识为true
                System.out.println("美国新闻定时任务---->开始");
                iSiteNewsService.grabNews();
            } catch (Exception e) {
                System.err.println("美国新闻抓取出现异常: " + e.getMessage()); // 打印具体的异常信息
            } finally {
                USNewsInfoTaskLock.unlock(); // 释放锁
                USNewsInfoTask.set(false); // 设置处理中标识为false
                System.out.println("美国新闻定时任务---->结束");
            }
        }
    }
//
//    /*
//     * 新聞資訊抓取
//     * */
//    @Scheduled(cron = "0 0/10 * * * ?")
//    public void USNewsInfoTask() {
//        if (USNewsInfoTask.get()) { // 判断任务是否在处理中
//            return;
//        }
//        if (USNewsInfoTaskLock.tryLock()) { // 加锁
//            try {
//                USNewsInfoTask.set(true); // 设置处理中标识为true
//                System.out.println("美国新闻定时任务---->开始");
//                iSiteNewsService.grabNews();
//            } catch (Exception e) {
//                System.err.println("美国新闻抓取出现异常: " + e.getMessage()); // 打印具体的异常信息
//            } finally {
//                USNewsInfoTaskLock.unlock(); // 释放锁
//                USNewsInfoTask.set(false); // 设置处理中标识为false
//                System.out.println("美国新闻定时任务---->结束");
//            }
//        }
//    }
//
//
    /*
     * 新聞公告抓取
src/main/java/com/nq/utils/task/stock/StockTask.java
@@ -81,25 +81,25 @@
        }
    }
    /**
     * 同步美国股票
     */
    @Scheduled(cron = "0 0/1 * * * ?")
    public void loadStockCompanies() {
        if (syncUSStockData.get()) { // 判断任务是否在处理中
            return;
        }
        if (syncUSStockDataLock.tryLock()) {
            try {
                syncUSStockData.set(true); // 设置处理中标识为true
                loadAllStock(EStockType.US);
            } finally {
                syncUSStockDataLock.unlock();
                syncUSStockData.set(false); // 设置处理中标识为false
            }
        }
    }
//
//    /**
//     * 同步美国股票
//     */
//    @Scheduled(cron = "0 0/1 * * * ?")
//    public void loadStockCompanies() {
//        if (syncUSStockData.get()) { // 判断任务是否在处理中
//            return;
//        }
//        if (syncUSStockDataLock.tryLock()) {
//            try {
//                syncUSStockData.set(true); // 设置处理中标识为true
//                loadAllStock(EStockType.US);
//            } finally {
//                syncUSStockDataLock.unlock();
//                syncUSStockData.set(false); // 设置处理中标识为false
//            }
//        }
//    }
    /**
src/main/java/com/nq/ws/WebSocketClientBeanConfig.java
@@ -39,23 +39,23 @@
        } catch (Exception e) {
        }
        try {
            USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")),EStockType.US);
            usWebsocketRunClient.connect();
            usWebsocketRunClient.setConnectionLostTimeout(0);
            new Thread(() -> {
                while (true) {
                    try {
                        Thread.sleep(8000);
                        usWebsocketRunClient.send("heartbeat".getBytes());
                    } catch (Exception e) {
                        usWebsocketRunClient.reconnect();
                        usWebsocketRunClient.setConnectionLostTimeout(0);
                    }
                }
            }).start();
        } catch (Exception e) {
        }
//        try {
//            USWebsocketRunClient usWebsocketRunClient = new USWebsocketRunClient(new URI(PropertiesUtil.getProperty("US_WS_URL")),EStockType.US);
//            usWebsocketRunClient.connect();
//            usWebsocketRunClient.setConnectionLostTimeout(0);
//            new Thread(() -> {
//                while (true) {
//                    try {
//                        Thread.sleep(8000);
//                        usWebsocketRunClient.send("heartbeat".getBytes());
//                    } catch (Exception e) {
//                        usWebsocketRunClient.reconnect();
//                        usWebsocketRunClient.setConnectionLostTimeout(0);
//                    }
//                }
//            }).start();
//        } catch (Exception e) {
//        }
        return retMap;
src/main/resources/application.properties
@@ -5,7 +5,7 @@
ftp.user=ftp_stock
ftp.pass=123456
ftp.address =/www/wwwroot/ftp_stock/
ftp.server.http.prefix=https://img.eminenceproductions.com/
ftp.server.http.prefix=https://img.goldlmansachsi.com/
redis1.ip=localhost
redis1.port=6379
@@ -31,7 +31,7 @@
#股票key的地址
JP_HTTP_API = http://api-jp.js-stock.top/
JP_WS_URL = ws://api-jp-ws.js-stock.top
JP_KEY = RpVJm2tyWg7WZcjg5jgB
JP_KEY = fPM3CrsIMvoLDLue60zw
#IN_HTTP_API = https://data.is4vc.com/
#IN_WS_URL =ws://ws.is4vc.com:8001/websocket-server
#IN_KEY = r3ZAgtcYzuBizmqge2hK