zj
2025-02-25 dd315d5732e14fcf3df71e0cf213cc442bd8607b
时间
3 files modified
41 ■■■■■ changed files
src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java 12 ●●●● patch | view | raw | blame | history
src/main/java/project/futures/internal/FuturesOrderServiceImpl.java 22 ●●●● patch | view | raw | blame | history
src/main/java/project/web/api/RealtimeController.java 7 ●●●● patch | view | raw | blame | history
src/main/java/project/futures/internal/FuturesOrderLocalServiceImpl.java
@@ -2,9 +2,8 @@
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.text.SimpleDateFormat;
import java.util.*;
import org.springframework.jdbc.core.JdbcTemplate;
@@ -80,15 +79,16 @@
        }
        DecimalFormat df_symbol = new DecimalFormat(decimals);
        df_symbol.setRoundingMode(RoundingMode.FLOOR);// 向下取整
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a", Locale.ENGLISH);
        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Taipei"));
        DecimalFormat df = new DecimalFormat("#.##");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("order_no", order.getOrder_no());
        map.put("name", item.getName());
        map.put("symbol", order.getSymbol());
        map.put("open_time", DateUtils.format(order.getCreate_time(), DateUtils.DF_yyyyMMddHHmmss));
        map.put("open_time", sdf.format(order.getCreate_time()));
        if (order.getClose_time() != null) {
            map.put("close_time", DateUtils.format(order.getClose_time(), DateUtils.DF_yyyyMMddHHmmss));
            map.put("close_time", sdf.format(order.getClose_time()));
        } else {
            map.put("close_time", "--");
        }
src/main/java/project/futures/internal/FuturesOrderServiceImpl.java
@@ -558,34 +558,34 @@
        System.out.println(simpleDateFormat.format(new Date()));
    }
    public Map<String, Object> bulidOne(FuturesOrder order) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd  hh:mm:ss  a", Locale.ENGLISH);
        simpleDateFormat.setTimeZone(TimeZone.getTimeZone("America/New_York"));
        FuturesOrder order_cache = (FuturesOrder) redisHandler.get(FuturesRedisKeys.FUTURES_SUBMITTED_ORDERNO + order.getOrder_no());
        if (order_cache != null) order = order_cache;
        Item item = this.itemService.cacheBySymbol(order.getSymbol(), false);
        if (item == null) throw new BusinessException("参数错误");
        String decimals = "#.";
        for (int i = 0; i < item.getDecimals(); i++) {
            decimals = decimals + "#";
        }
        if (item.getDecimals() == 0) {
            decimals = "#";
        }
        DecimalFormat df_symbol = new DecimalFormat(decimals);
        df_symbol.setRoundingMode(RoundingMode.FLOOR);// 向下取整
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a", Locale.ENGLISH);
        // 设置时区为台湾(Asia/Taipei)
        sdf.setTimeZone(TimeZone.getTimeZone("Asia/Taipei"));
        DecimalFormat df = new DecimalFormat("#.##");
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("order_no", order.getOrder_no());
        map.put("name", item.getName());
        map.put("symbol", order.getSymbol());
        map.put("open_time", simpleDateFormat.format(order.getCreate_time()));
        map.put("open_time", sdf.format(order.getCreate_time()));
        if (order.getClose_time() != null) {
            map.put("close_time", DateUtils.format(order.getClose_time(), "yyyy-MM-dd  hh:mm:ss"));
            map.put("close_time", sdf.format(order.getClose_time()));
        } else {
            map.put("close_time", "--");
        }
@@ -595,7 +595,7 @@
        map.put("state", order.getState());
        map.put("amount", order.getVolume());
        map.put("fee", order.getFee());
        // 收益
        if (order.getProfit() > 0) {
            map.put("profit", df.format(order.getProfit()));
@@ -606,7 +606,7 @@
        }
        map.put("volume", order.getVolume());
        map.put("settlement_time", simpleDateFormat.format(order.getSettlement_time()));// 交割时间
        map.put("settlement_time", sdf.format(order.getSettlement_time()));// 交割时间
        map.put("close_price", df_symbol.format(order.getClose_avg_price()));
        map.put("remain_time", StringUtils.isEmptyString(order.getRemain_time()) ? "0:0:0" : order.getRemain_time());
        map.put("time_num", order.getTimeNum());
src/main/java/project/web/api/RealtimeController.java
@@ -2,6 +2,7 @@
import java.math.RoundingMode;
import java.text.DecimalFormat;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
@@ -89,7 +90,11 @@
            Map<String, Object> map = new HashMap<String, Object>();
            map.put("symbol", realtime.getSymbol());
            map.put("ts", realtime.getTs());
            map.put("current_time", realtime.getCurrent_time());
            String currentTime = realtime.getCurrent_time();
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss a", Locale.ENGLISH);
            // 设置时区为台湾(Asia/Taipei)
            sdf.setTimeZone(TimeZone.getTimeZone("Asia/Taipei"));
            map.put("current_time",sdf.format(currentTime));
            map.put("name", realtime.getName());
            map.put("change_ratio", realtime.getChange_ratio());
            Item item = this.itemService.cacheBySymbol(realtime.getSymbol(), true);