新版仿ok交易所-后端
1
zj
2025-09-01 c6e9ac1c69698551d376bf20c4da2a277d3d8b21
1
4 files modified
81 ■■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java 52 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/application-prod.yml 4 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/config/system.properties 2 ●●● 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;
@@ -118,37 +119,38 @@
        return Result.succeed(data);
    }
    /**
     * 根据币种获取链地址
     */
    @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);
@@ -194,7 +196,7 @@
//                data.get(i).setAddress(null);
//            }
//        }
//        String partyId =SecurityUtils.getUser().getUserId();
//        if(!StringUtils.isNotEmpty(partyId)){
//            throw new YamiShopBindException("请登录!");
trading-order-admin/src/main/resources/application-prod.yml
@@ -3,9 +3,9 @@
spring:
  datasource:
#    url: jdbc:mysql://127.0.0.1:6306/8.4?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?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/trad_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
    username: root
    password: sdfafeasefsdfe
    password: 6231fe6a896d36a7
    driver-class-name: com.mysql.cj.jdbc.Driver
    type: com.zaxxer.hikari.HikariDataSource
    hikari:
trading-order-admin/src/main/resources/config/system.properties
@@ -3,7 +3,7 @@
admin_url=https://127.0.0.1:8080/admin
web_url=http://127.0.0.1:8080/wap/
images_http=https://img.cme-coin.com/
images_http=https://img.mecoinx.com/
loca.images.dir=/www/wwwroot/img
email.host=smtp.gmail.com
email.username=coinzne.com@gmail.com
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);
    }