新版仿ok交易所-后端
zyy
2025-10-17 a9d18fe810001b735d68f352a28abf48d6c04bf3
U盾充值
7 files modified
51 ■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/api/UD/UdunClient.java 11 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java 13 ●●●●● patch | view | raw | blame | history
trading-order-admin/src/main/resources/config/system.properties 2 ●●●●● patch | view | raw | blame | history
trading-order-common/src/main/java/com/yami/trading/common/constants/Constants.java 2 ●●●●● patch | view | raw | blame | history
trading-order-common/src/main/java/com/yami/trading/common/constants/RedisKeys.java 5 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/CapitaltWalletServiceImpl.java 10 ●●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java 8 ●●●●● patch | view | raw | blame | history
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);