peter
2025-08-18 c50561d007e420f7397f73afce8966231973ec54
trading-order-admin/src/main/java/com/yami/trading/api/controller/RealtimeController.java
@@ -59,9 +59,20 @@
   public Result<List<Realtime>> getRealtime(@RequestParam(value = "",required = false) String symbol) {
      try {
//         if(StringUtils.isEmptyString(symbol)){
//            return new Result<>();
//         }
         if(StringUtils.isEmptyString(symbol)){
            List<Item> items = itemService.findByType("forex");
            StringBuilder symbolBuilder = new StringBuilder();
            if (items != null && !items.isEmpty()) {
               for (Item item : items) {
                  symbolBuilder.append(item.getSymbol()).append(",");
               }
               // 移除最后一个逗号
               if (symbolBuilder.length() > 0) {
                  symbolBuilder.setLength(symbolBuilder.length() - 1);
               }
            }
            symbol = symbolBuilder.toString();
         }
         List<Realtime> data = this.dataService.realtime(symbol);
         data.forEach(d->{
            Item bySymbol = itemService.findBySymbol(d.getSymbol());
@@ -79,12 +90,12 @@
            d.setAsk(d.getClose().add(bigDecimal).setScale(decimals, RoundingMode.HALF_UP));
            d.setBid(d.getClose().subtract(bigDecimal).setScale(decimals, RoundingMode.HALF_UP));
            //涨跌幅 = (当天收盘价 - 前一日收盘价) / 前一日收盘价 * 100%
            if(null != bySymbol.getYesterdayLastPrice() && bySymbol.getYesterdayLastPrice().compareTo(BigDecimal.ZERO) != 0){
               BigDecimal changePercent = (d.getClose().subtract(bySymbol.getYesterdayLastPrice()))
                     .divide(bySymbol.getYesterdayLastPrice(), 5, RoundingMode.HALF_UP) // 精确到4位小数
                     .multiply(new BigDecimal("100").setScale(2)); // 乘以100得到百分比
               d.setChangeRatioStr(changePercent.toString());
            }
//            if(null != bySymbol.getYesterdayLastPrice() && bySymbol.getYesterdayLastPrice().compareTo(BigDecimal.ZERO) != 0){
//               BigDecimal changePercent = (d.getClose().subtract(bySymbol.getYesterdayLastPrice()))
//                     .divide(bySymbol.getYesterdayLastPrice(), 5, RoundingMode.HALF_UP) // 精确到4位小数
//                     .multiply(new BigDecimal("100").setScale(2)).setScale(4,RoundingMode.HALF_UP); // 乘以100得到百分比
//               d.setChangeRatioStr(changePercent);
//            }
            if(d.getVolume()!=null){
               d.setVolume(d.getVolume().setScale(2, RoundingMode.HALF_UP));