新版仿ok交易所-后端
peter
2025-08-21 f1bfaebb0217450a246fe8695270eed47a30fe3c
8.17接口调试
5 files modified
79 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java 49 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/application-local.yml 2 ●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/application.yml 2 ●●● patch | view | raw | blame | history
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java 3 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java 23 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
@@ -8,6 +8,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yami.trading.security.common.enums.CryptoCurrencyEnum;
import com.yami.trading.security.common.util.LocalKeyStorageAESUtil;
@@ -124,31 +125,31 @@
    @GetMapping(action + "getBlockchainName.action")
    public Object getBlockchainName(HttpServletRequest request) throws Exception {
        String coin = request.getParameter("coin");
        List<ChannelBlockchain> data = new ArrayList<ChannelBlockchain>();
//        List<ChannelBlockchain> data = new ArrayList<ChannelBlockchain>();
        return Result.succeed(channelBlockchainService.list(Wrappers.<ChannelBlockchain>query().lambda().eq(ChannelBlockchain::getCoin, coin.toLowerCase())));
//        try {
//            coin  = coin.toLowerCase();
//            Map<String, List<CryptoCurrencyEnum>> allGroupedByCoin = CryptoCurrencyEnum.getAllGroupedByCoin();
//            List<CryptoCurrencyEnum> currencyEnums = allGroupedByCoin.get(coin);
//            currencyEnums.forEach(f->{
//                try {
//                    String address = LocalKeyStorageAESUtil.loadAndDecrypt(f.getName());
//                    ChannelBlockchain blockchain = new ChannelBlockchain();
//                    blockchain.setBlockchain_name(f.getChain());
//                    blockchain.setAddress(address);
//                    blockchain.setCoin(f.getCoin());
//                    blockchain.setAuto(false);
//                    blockchain.setImg(null);
//                    data.add(blockchain);
//                } catch (Exception e) {
//                    e.getMessage();
//                }
//            });
//        }catch (Exception e){
//            log.error("获取充值地址错误:",e);
//            return Result.failed("充值链暂不可用");
//        }
        try {
            coin  = coin.toLowerCase();
            Map<String, List<CryptoCurrencyEnum>> allGroupedByCoin = CryptoCurrencyEnum.getAllGroupedByCoin();
            List<CryptoCurrencyEnum> currencyEnums = allGroupedByCoin.get(coin);
            currencyEnums.forEach(f->{
                try {
                    String address = LocalKeyStorageAESUtil.loadAndDecrypt(f.getName());
                    ChannelBlockchain blockchain = new ChannelBlockchain();
                    blockchain.setBlockchain_name(f.getChain());
                    blockchain.setAddress(address);
                    blockchain.setCoin(f.getCoin());
                    blockchain.setAuto(false);
                    blockchain.setImg(null);
                    data.add(blockchain);
                } catch (Exception e) {
                    e.getMessage();
                }
            });
        }catch (Exception e){
            log.error("获取充值地址错误:",e);
            return Result.failed("充值链暂不可用");
        }
        return Result.succeed(data);
trading-order-admin/src/main/resources/application-local.yml
@@ -2,7 +2,7 @@
  port: 8086
spring:
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/trading_order?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    url: jdbc:mysql://127.0.0.1:3306/trading_order_817?allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=UTF-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&useJDBCCompliantTimezoneShift=true&useLegacyDatetimeCode=false&serverTimezone=GMT%2B8&nullCatalogMeansCurrent=true&serverTimezone=Europe/Paris&useLegacyDatetimeCode=false
    username: root
    password: 123456
    driver-class-name: com.mysql.cj.jdbc.Driver
trading-order-admin/src/main/resources/application.yml
@@ -1,7 +1,7 @@
spring:
  # 环境 local|dev|test|prod
  profiles:
    active: prod
    active: local
  #文件上传设置
  servlet:
    multipart:
trading-order-huobi/src/main/java/com.yami.trading.huobi/data/internal/CryptosKlineServiceImpl.java
@@ -38,6 +38,9 @@
    @Override
    public void saveInit(String symbol) {
        Map<String, Object> parameters = new HashMap();
        if("btcusdt".equals(symbol)){
            System.out.println("1111111111111111111111");
        }
        parameters.put("symbol", symbol);
        for (int i = 0; i <= Constants.TABLE_PARTITIONS - 1; i++) {
            namedParameterJdbcTemplate.update("DELETE FROM t_kline_" + i + " WHERE SYMBOL = :symbol", parameters);
trading-order-service/src/main/java/com/yami/trading/service/item/ItemService.java
@@ -119,12 +119,27 @@
    public Item findBySymbol(String symbol) {
        List<Item> items = ApplicationContextUtils.getApplicationContext().getBean(ItemService.class).list();
        if (CollectionUtil.isNotEmpty(items)) {
            Optional<Item> first = items.stream().filter(i -> symbol.equalsIgnoreCase(i.getSymbol())).findFirst();
            Optional<Item> first = items.stream()
                    .filter(i -> {
                        String compareField = symbol.indexOf("usdt") > 0
                                ? i.getSymbol()
                                : i.getSymbolData();
                        return symbol.equalsIgnoreCase(compareField);
                    })
                    .findFirst();
            return first.orElse(null);
        }
        LambdaQueryWrapper<Item> queryWrapper = new LambdaQueryWrapper<Item>()
                .eq(Item::getSymbol, symbol)
                .last("LIMIT 1");
        LambdaQueryWrapper<Item> queryWrapper = null;
        if(symbol.indexOf("usdt") > 0){
            queryWrapper = new LambdaQueryWrapper<Item>()
                    .eq(Item::getSymbol, symbol)
                    .last("LIMIT 1");
        }else {
            queryWrapper = new LambdaQueryWrapper<Item>()
                    .eq(Item::getSymbolData, symbol)
                    .last("LIMIT 1");
        }
        return super.baseMapper.selectOne(queryWrapper);
    }