trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java
@@ -4,6 +4,7 @@ import cn.hutool.core.util.StrUtil; import cn.hutool.http.HttpStatus; import cn.hutool.json.JSONUtil; import com.yami.trading.common.constants.Constants; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.stereotype.Component; @@ -35,12 +36,12 @@ /** * Callback 充值 */ private final String defaultCallBackUrl = "https://syjysapi.yanshiz.com/api/channelBlockchain!rechargeCallback.action"; private final String defaultCallBackUrl = Constants.API_HTTP + "api/channelBlockchain!rechargeCallback.action"; /** * Callback 提币 */ private final String withdrawCallBackUrl = "https://syjysapi.yanshiz.com/api/withdraw/withdrawCallback.action"; private final String withdrawCallBackUrl = Constants.API_HTTP + "api/withdraw/withdrawCallback.action"; @@ -132,6 +133,12 @@ return JSONUtil.toList(JSONUtil.parseArray(result.getData()), Coin.class); } public static void main(String[] args) { UdunClient udunClient = new UdunClient(); List<Coin> list =udunClient.listSupportCoin(false); System.out.println(list); } public boolean checkSign(String timestamp, String nonce, String body, String sign) { String checkSign = UdunUtils.sign(merchantKey, timestamp, nonce, body); return checkSign.equals(sign); trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.fasterxml.jackson.databind.ObjectMapper; import com.yami.trading.bean.vo.RechargeAddressVo; import com.yami.trading.common.constants.RedisKeys; import com.yami.trading.security.common.enums.CryptoCurrencyEnum; import com.yami.trading.security.common.util.LocalKeyStorageAESUtil; import com.yami.trading.api.UD.*; @@ -213,13 +214,13 @@ ChannelBlockchain rechargeAddressVo = new ChannelBlockchain(); //创建地址 Address address; String ress = (String)redisTemplate.opsForValue().get(partyId + coinName); String ress = (String)redisTemplate.opsForValue().get(RedisKeys.BLOCKCHAIN_ADDRESS + partyId + coinName); if(StringUtils.isNotEmpty(ress)){ rechargeAddressVo.setAddress(ress); }else{ address = udunClient.createAddress(c.getMainCoinType()); rechargeAddressVo.setAddress(address.getAddress()); redisTemplate.opsForValue().set(partyId + coinName, address.getAddress()); redisTemplate.opsForValue().set(RedisKeys.BLOCKCHAIN_ADDRESS + partyId + coinName, address.getAddress()); } //rechargeAddressVo.setAddress("test" + coinName); rechargeAddressVo.setCoin(currencyEnum.getCoin()); @@ -270,11 +271,13 @@ return resultMsg; } Integer status = Integer.valueOf(map.get("status").toString()); SysUser user = sysUserService.getSysUserById( Long.getLong(blockchainOrder.getPartyId())); User user = userService.getById(blockchainOrder.getPartyId()); log.info("===rechargeCallback==d=blockchainOrder:{}", blockchainOrder); if (status == 3) { //交易成功 rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getPartyId(), BigDecimal.valueOf(success_amount),user.getUsername()); rechargeBlockchainOrderService.manualReceipt(1,blockchainOrder.getOrderNo(), BigDecimal.valueOf(success_amount),user.getUserName()); } else if(status == 2) { //驳回 rechargeBlockchainOrderService.refusalApply(blockchainOrder.getUuid(), "订单失败:" + status, user.getUsername()); rechargeBlockchainOrderService.refusalApply(blockchainOrder.getUuid(), "订单失败:" + status, user.getUserName()); } resultMsg.setCode(200); trading-order-admin/src/main/resources/config/system.properties
@@ -4,6 +4,8 @@ web_url=http://127.0.0.1:8080/wap/ images_http=https://sysimg.yanshiz.com/ api_http=https://api.metaequityex.com/ loca.images.dir=/www/wwwroot/img email.host=smtp.gmail.com email.username=coinzne.com@gmail.com trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java
@@ -15,6 +15,8 @@ public static final String IMAGES_HTTP = PropertiesUtil.getProperty("images_http"); public static final String API_HTTP = PropertiesUtil.getProperty("api_http"); /** * c2c卖币 */ trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java
@@ -50,6 +50,11 @@ public final static String WITHDRAW_ORDERNO = "WITHDRAW_ORDERNO_"; /** * 充值地址缓存 */ public final static String BLOCKCHAIN_ADDRESS = "BLOCKCHAIN_ADDRESS"; /** * 钱包 partyid 做key */ public final static String WALLET_PARTY_ID = "WALLET_PARTY_ID_"; trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java
@@ -39,8 +39,16 @@ @Override public CapitaltWallet getUserIdWallet(String userId) { return getOne(new LambdaQueryWrapper<>(CapitaltWallet.class) CapitaltWallet capitaltWallet = getOne(new LambdaQueryWrapper<>(CapitaltWallet.class) .eq(CapitaltWallet::getUserId,userId).last(" limit 1")); if (capitaltWallet != null) { return capitaltWallet; } else { capitaltWallet = new CapitaltWallet(); capitaltWallet.setUserId(userId); save(capitaltWallet); return capitaltWallet; } } /** trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
@@ -89,7 +89,10 @@ // Date now = new Date(); RechargeBlockchainOrder recharge = getById(id); if (recharge == null) { throw new YamiShopBindException("参数错误!"); recharge = findByOrderNo(id); if (recharge == null) { throw new YamiShopBindException("参数错误!"); } } User party = userService.getById(recharge.getPartyId()); if (party == null) { @@ -135,8 +138,7 @@ // // walletService.update(wallet.getUserId(), amount1); CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class) .eq(CapitaltWallet::getUserId, recharge.getPartyId()).last(" limit 1 ")); CapitaltWallet capitaltWallet = capitaltWalletService.getUserIdWallet(recharge.getPartyId()); double amount_before = capitaltWallet.getMoney().doubleValue(); capitaltWalletService.update(capitaltWallet,amount1);