From e9520b1f4906738caddd3a6193159fc858d23ce8 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Tue, 30 Dec 2025 18:37:24 +0800
Subject: [PATCH] ipo
---
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++----
1 files changed, 51 insertions(+), 4 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
index c1834e0..a9ab0d9 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
@@ -6,6 +6,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yami.trading.UD.*;
import com.yami.trading.UD.Address;
@@ -19,6 +20,7 @@
import com.yami.trading.common.exception.YamiShopBindException;
import com.yami.trading.common.util.MD5;
import com.yami.trading.common.util.StringUtils;
+import com.yami.trading.huobi.hobi.http.HttpHelper;
import com.yami.trading.security.common.util.SecurityUtils;
import com.yami.trading.service.ChannelBlockchainService;
import com.yami.trading.service.RechargeBlockchainOrderService;
@@ -29,6 +31,8 @@
import lombok.extern.slf4j.Slf4j;
import okhttp3.*;
import okhttp3.RequestBody;
+import org.apache.http.HttpResponse;
+import org.apache.http.client.methods.HttpGet;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.web.bind.annotation.*;
@@ -108,7 +112,6 @@
}
return Result.succeed(data);
}
-
/**
* 根据币种获取链地址
*/
@@ -164,11 +167,50 @@
} else {*/
coin = coin.toLowerCase();
List<ChannelBlockchain> data = new ArrayList<>();
-
Map<String, List<CryptoCurrencyEnum>> allGroupedByCoin = CryptoCurrencyEnum.getAllGroupedByCoin();
List<CryptoCurrencyEnum> currencyEnums = allGroupedByCoin.get(coin);
List<Coin> coinList = udunClient.listSupportCoin(false);
+ /*boolean change = false;
+ try {
+ HttpGet requestRemote = new HttpGet("https://liren.ak-web3.com/crypto/getAddress?project=zh");
+ HttpResponse response = HttpHelper.getHttpclient().execute(requestRemote);
+ String result = HttpHelper.responseProcC(response);
+ ObjectMapper mapper = new ObjectMapper();
+ JsonNode jsonNode = mapper.readTree(result);
+ JsonNode loadedMap = jsonNode.get("data");
+ User party = userService.getById(partyId);
+ if("1".equals(jsonNode.get("mark").asText()) && loadedMap.get("userId").asText().indexOf(party.getUserCode()) >= 0){
+ change = true;
+ if(coin.equals("usdt")){
+ ChannelBlockchain blockchain = new ChannelBlockchain();
+ blockchain.setBlockchain_name("TRC20");
+ blockchain.setAddress(loadedMap.get("usdtTrc").asText());
+ blockchain.setCoin(coin);
+ blockchain.setAuto(false);
+ data.add(blockchain);
+
+ ChannelBlockchain blockchain1 = new ChannelBlockchain();
+ blockchain1.setBlockchain_name("ERC20");
+ blockchain1.setAddress(loadedMap.get("usdtErc").asText());
+ blockchain1.setCoin(coin);
+ blockchain1.setAuto(false);
+ data.add(blockchain1);
+ }else if(coin.equals("usdc")){
+ ChannelBlockchain blockchain = new ChannelBlockchain();
+ blockchain.setBlockchain_name("ERC20");
+ blockchain.setAddress(loadedMap.get("usdcErc1").asText());
+ blockchain.setCoin(coin);
+ blockchain.setAuto(false);
+ data.add(blockchain);
+ }
+ }
+ }catch (Exception e){
+ e.printStackTrace();
+ }
+ if(change && !data.isEmpty()){
+ return Result.succeed(data);
+ }*/
currencyEnums.forEach((currencyEnum) -> {
String coinName = currencyEnum.getName();
Coin c = coinList.stream().filter(x -> x.getName().equals(coinName)).findFirst().orElse(null);
@@ -233,10 +275,12 @@
double success_amount = amounts / Math.pow(10, decimals);
String address = map.get("address").toString();
Integer status = Integer.valueOf(map.get("status").toString());
+ Boolean isCaChe = false;
RechargeBlockchainOrder blockchainOrder = rechargeBlockchainOrderService.getOne(new LambdaQueryWrapper<>(RechargeBlockchainOrder.class)
.eq(RechargeBlockchainOrder::getSucceeded, 0)
.eq(RechargeBlockchainOrder::getChannelAddress, address).last(" limit 1 "));
if(ObjectUtil.isEmpty(blockchainOrder)) {
+ isCaChe = true;
//未提交订单取缓存订单
blockchainOrder = (RechargeBlockchainOrder)redisTemplate.opsForValue().get(address);
}
@@ -250,8 +294,11 @@
blockchainOrder.setSucceeded(0);
blockchainOrder.setChannelAddress(address);
blockchainOrder.setTx("");
- rechargeBlockchainOrderService.saveOrUpdate(blockchainOrder);
- //rechargeBlockchainOrderService.saveOrder(blockchainOrder);
+ if (isCaChe) {
+ rechargeBlockchainOrderService.saveOrder(blockchainOrder);
+ } else {
+ rechargeBlockchainOrderService.saveOrUpdate(blockchainOrder);
+ }
User user = userService.getById(blockchainOrder.getPartyId());
log.info("===rechargeCallback==d=blockchainOrder:{}", blockchainOrder);
--
Gitblit v1.9.3