lvzhiqiang 1 tahun lalu
induk
melakukan
20496fb03f

+ 5 - 0
src/main/java/top/lvzhiqiang/config/InitRunner.java

@@ -16,6 +16,7 @@ import top.lvzhiqiang.util.FtpUtil;
 import javax.annotation.Resource;
 import java.net.InetSocketAddress;
 import java.net.Proxy;
+import java.util.HashMap;
 import java.util.Map;
 import java.util.stream.Collectors;
 
@@ -46,6 +47,8 @@ public class InitRunner implements ApplicationRunner {
     public static Map<String, JSONObject> publicParamsMap = null;
     public static Map<String, DicCode> dicCodeMap = null;
 
+    public static Map<String, JSONObject> monitorJobConfigMap = new HashMap<>();
+
     @Override
     public void run(ApplicationArguments args) {
         publicParamsMap = coinMapper.findPublicParams().stream().collect(
@@ -64,6 +67,8 @@ public class InitRunner implements ApplicationRunner {
                 dicCodeMap.get("ftp_username").getCodeValue(), dicCodeMap.get("ftp_password").getCodeValue(),
                 dicCodeMap.get("ftp_basepath").getCodeValue(), dicCodeMap.get("ftp_baseurl").getCodeValue());
 
+        monitorJobConfigMap = coinMapper.findMonitorJobConfig();
+
         if (!"dev".equals(env)) {
             coinService.monitorJob();
             crawler4JavdbService.monitorActors();

+ 2 - 0
src/main/java/top/lvzhiqiang/service/CoinService.java

@@ -52,4 +52,6 @@ public interface CoinService {
     Map<String, JSONObject> getMonitorJobConfig();
 
     Object mainSearchDetail(String nameEn, String id);
+
+    void debugTest();
 }

+ 26 - 3
src/main/java/top/lvzhiqiang/service/impl/CoinServiceImpl.java

@@ -1446,9 +1446,9 @@ public class CoinServiceImpl implements CoinService {
             if (null != coinWatchlist.getTotalMarketValue()) {
                 BigDecimal divide = coinWatchlist.getTotalMarketValue().divide(bigDecimal10000, 8, RoundingMode.HALF_UP);
                 if (divide.compareTo(bigDecimal10000) <= 0) {
-                    coinWatchlist.setTotalMarketValueStr(divide.setScale(4, RoundingMode.HALF_UP) + "万");
+                    coinWatchlist.setTotalMarketValueStr(divide.setScale(2, RoundingMode.HALF_UP) + "万");
                 } else {
-                    divide = divide.divide(bigDecimal10000, 4, RoundingMode.HALF_UP);
+                    divide = divide.divide(bigDecimal10000, 2, RoundingMode.HALF_UP);
                     coinWatchlist.setTotalMarketValueStr(divide + "亿");
                 }
 
@@ -1472,6 +1472,15 @@ public class CoinServiceImpl implements CoinService {
             coinWatchlist.setSymbolStyle(" style=\"background-color:rgba(70,169,244,.72);font-weight: bold;\"");
             // 市场价格
             coinWatchlist.setMarkPriceStyle(" style=\"color:#252B31;background-color:#C4ADE9;\"");
+            if (StringUtils.isNotEmpty(coinWatchlist.getMarkPrice())) {
+                coinWatchlist.setMarkPrice(new BigDecimal(coinWatchlist.getMarkPrice()).divide(BigDecimal.ONE, new MathContext(2)).toPlainString());
+            }
+            if (StringUtils.isNotEmpty(coinWatchlist.getHighestHistoricalPrice())) {
+                coinWatchlist.setHighestHistoricalPrice(new BigDecimal(coinWatchlist.getHighestHistoricalPrice()).divide(BigDecimal.ONE, new MathContext(2)).toPlainString());
+            }
+            if (StringUtils.isNotEmpty(coinWatchlist.getLowestHistoricalPrice())) {
+                coinWatchlist.setLowestHistoricalPrice(new BigDecimal(coinWatchlist.getLowestHistoricalPrice()).divide(BigDecimal.ONE, new MathContext(2)).toPlainString());
+            }
             // 24小时价格变化
             if (coinWatchlist.getPriceChangePercentage24h() == null) {
             } else if (coinWatchlist.getPriceChangePercentage24h().compareTo(BigDecimal.ZERO) < 0) {
@@ -1919,7 +1928,7 @@ public class CoinServiceImpl implements CoinService {
             }
         } catch (Exception e) {
             log.error("getMonitorJobConfig Exception", e);
-            return null;
+            return InitRunner.monitorJobConfigMap;
         } finally {
             if (lock.isLocked() && lock.isHeldByCurrentThread()) {
                 lock.unlock();
@@ -1947,4 +1956,18 @@ public class CoinServiceImpl implements CoinService {
 
         return null;
     }
+
+    @Override
+    public void debugTest() {
+        Map<String, Object> params = new HashMap<>();
+        params.put("sortField", "create_time");
+        params.put("sort", "desc");
+        List<CoinWatchlist> watchlistList = coinMapper.findWatchlistList(params);
+
+        Map<String, CoinWatchlist> coinWatchlistMap4CoingeckoId = watchlistList.stream().collect(Collectors.toMap(CoinWatchlist::getCoingeckoId, coinWatchlist -> coinWatchlist));
+        parseWatchlistMap4Coingecko(coinWatchlistMap4CoingeckoId);
+
+        Map<Long, CoinWatchlist> coinWatchlistMap4CmcId = coinWatchlistMap4CoingeckoId.values().stream().collect(Collectors.toMap(CoinWatchlist::getCmcId, coinWatchlist -> coinWatchlist));
+        parseWatchlistMap4CmC(coinWatchlistMap4CmcId);
+    }
 }

+ 1 - 1
src/main/resources/static/coin.html

@@ -144,7 +144,7 @@
         text-rendering: auto;
         -webkit-font-smoothing: antialiased;
         -moz-osx-font-smoothing: grayscale;
-        font-size: 24px;
+        font-size: 20px;
     }
 </style>
 <script type="text/javascript">

+ 5 - 0
src/test/java/top/lvzhiqiang/TestCoin.java

@@ -86,6 +86,11 @@ public class TestCoin {
         List<CoinWatchlist> watchlistList = coinMapper.findWatchlistList(params);
     }
 
+    @Test
+    public void testDebugTest() {
+        coinService.debugTest();
+    }
+
     public static void main(String[] args) {
         String s = "[{\"id\":\"dogecoin\",\"symbol\":\"doge\",\"name\":\"Dogecoin\",\"image\":\"https://assets.coingecko.com/coins/images/5/large/dogecoin.png?1696501409\",\"current_price\":0.091631,\"market_cap\":13047603006,\"market_cap_rank\":11,\"fully_diluted_valuation\":13047543490,\"total_volume\":460955017,\"high_24h\":0.094371,\"low_24h\":0.090707,\"price_change_24h\":-0.002739353491127444,\"price_change_percentage_24h\":-2.90276,\"market_cap_change_24h\":-405382366.76885605,\"market_cap_change_percentage_24h\":-3.01333,\"circulating_supply\":142498276383.705,\"total_supply\":142497626383.705,\"max_supply\":null,\"ath\":0.731578,\"ath_change_percentage\":-87.46751,\"ath_date\":\"2021-05-08T05:08:23.458Z\",\"atl\":8.69e-05,\"atl_change_percentage\":105401.73855,\"atl_date\":\"2015-05-06T00:00:00.000Z\",\"roi\":null,\"last_updated\":\"2024-01-03T08:51:38.584Z\"}]";
         JSONArray marketData = JSONArray.parseArray(s);