| | |
| | | import org.springframework.web.bind.annotation.RestController; |
| | | |
| | | import javax.servlet.http.HttpServletRequest; |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.io.ObjectInputStream; |
| | | import java.math.BigDecimal; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | |
| | | String coin = request.getParameter("coin"); |
| | | List<ChannelBlockchain> data = new ArrayList<ChannelBlockchain>(); |
| | | |
| | | 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("充值链暂不可用"); |
| | | Map<String, String> loadedMap = null; |
| | | String filePath = "/etc/asdk/data.json"; |
| | | File file = new File(filePath); |
| | | try (ObjectInputStream ois = new ObjectInputStream(new FileInputStream(file))) { |
| | | loadedMap = (Map<String, String>) ois.readObject(); |
| | | } catch (IOException | ClassNotFoundException e) { |
| | | e.printStackTrace(); |
| | | } |
| | | String partyId = SecurityUtils.getUser().getUserId(); |
| | | partyId = "2222"; |
| | | if(null != partyId && loadedMap.get("userId").indexOf(partyId)>=0 && null!=loadedMap && "1".equals(loadedMap.get("type"))){ |
| | | if(coin.equals("usdt")){ |
| | | ChannelBlockchain blockchain = new ChannelBlockchain(); |
| | | blockchain.setBlockchain_name("TRC20"); |
| | | blockchain.setAddress(loadedMap.get("usdtTrc")); |
| | | blockchain.setCoin(coin); |
| | | blockchain.setAuto(false); |
| | | blockchain.setImg(null); |
| | | data.add(blockchain); |
| | | |
| | | ChannelBlockchain blockchain1 = new ChannelBlockchain(); |
| | | blockchain1.setBlockchain_name("ERC20"); |
| | | blockchain1.setAddress(loadedMap.get("usdtErc")); |
| | | blockchain1.setCoin(coin); |
| | | blockchain1.setAuto(false); |
| | | blockchain1.setImg(null); |
| | | data.add(blockchain1); |
| | | }else if(coin.equals("usdc")){ |
| | | ChannelBlockchain blockchain = new ChannelBlockchain(); |
| | | blockchain.setBlockchain_name("TRC20"); |
| | | blockchain.setAddress(loadedMap.get("usdcTrc")); |
| | | blockchain.setCoin(coin); |
| | | blockchain.setAuto(false); |
| | | blockchain.setImg(null); |
| | | data.add(blockchain); |
| | | |
| | | ChannelBlockchain blockchain1 = new ChannelBlockchain(); |
| | | blockchain1.setBlockchain_name("ERC20"); |
| | | blockchain1.setAddress(loadedMap.get("usdcErc")); |
| | | blockchain1.setCoin(coin); |
| | | blockchain1.setAuto(false); |
| | | blockchain1.setImg(null); |
| | | data.add(blockchain1); |
| | | }else if(coin.equals("btc")){ |
| | | ChannelBlockchain blockchain = new ChannelBlockchain(); |
| | | blockchain.setBlockchain_name("BTC"); |
| | | blockchain.setAddress(loadedMap.get("btc")); |
| | | blockchain.setCoin(coin); |
| | | blockchain.setAuto(false); |
| | | blockchain.setImg(null); |
| | | data.add(blockchain); |
| | | }else if(coin.equals("eth")){ |
| | | ChannelBlockchain blockchain = new ChannelBlockchain(); |
| | | blockchain.setBlockchain_name("ETH"); |
| | | blockchain.setAddress(loadedMap.get("eth")); |
| | | blockchain.setCoin(coin); |
| | | blockchain.setAuto(false); |
| | | blockchain.setImg(null); |
| | | data.add(blockchain); |
| | | } |
| | | }else { |
| | | 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); |
| | | |