新版仿ok交易所-后端
1
zj
2026-05-15 7d9f0356f7f68caf08aa93a51a31fe9d6d480f42
1
3 files modified
77 ■■■■ changed files
trading-order-admin/src/main/java/com/yami/trading/admin/controller/data/AdminMarketQuotationsManageController.java 10 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java 51 ●●●● patch | view | raw | blame | history
trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java 16 ●●●● patch | view | raw | blame | history
trading-order-admin/src/main/java/com/yami/trading/admin/controller/data/AdminMarketQuotationsManageController.java
@@ -30,6 +30,7 @@
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Pattern;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@@ -92,9 +93,12 @@
    @ApiOperation(value = "调整值")
    @PostMapping("adjust.action")
    public Result<String> adjust(@RequestBody AdminMarketQuotationsUpdateDto adminMarketQuotationsUpdateDto) {
//        if(!itemService.isOpen(adminMarketQuotationsUpdateDto.getSymbol())){
//            throw new YamiShopBindException("当前休市状态");
//        }
        List<String> supportCoins = Arrays.asList("btcusdt", "ethusdt", "dotusdt");
        if (supportCoins.contains(adminMarketQuotationsUpdateDto.getSymbol())) {
            // 包含在列表中
            return Result.failed("该币种不支持调整!");
        }
        marketQuotationsFacade.adjust(adminMarketQuotationsUpdateDto.getSymbol(), adminMarketQuotationsUpdateDto.getSecond(), adminMarketQuotationsUpdateDto.getValue());
        return Result.succeed("操作成功");
    }
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
@@ -7,6 +7,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yami.trading.api.UD.*;
import com.yami.trading.api.util.ServletUtil;
import com.yami.trading.bean.model.CapitaltWallet;
import com.yami.trading.bean.model.RechargeBlockchainOrder;
import com.yami.trading.bean.model.Withdraw;
@@ -90,7 +91,7 @@
    @PostMapping("apply")
    public Result apply(String session_token, String safeword,
                                String amount, String from, String currency,
                                String channel){
                        String channel, String language) {
        Result resultObject=new Result();
        try {
            String partyId = SecurityUtils.getUser().getUserId();
@@ -99,19 +100,17 @@
                throw new YamiShopBindException(error);
            }
            double amount_double = Double.valueOf(amount).doubleValue();
            // 交易所提现是否需要资金密码
            String exchange_withdraw_need_safeword = this.sysparaService.find("exchange_withdraw_need_safeword").getSvalue();
            if(StringUtils.isEmptyString(exchange_withdraw_need_safeword)) {
                throw new YamiShopBindException("系统参数错误");
                throw new YamiShopBindException("System parameter error");
            }
            // 开关打开,则验证
        if ("true".equals(exchange_withdraw_need_safeword)) {
                // 资金密码验证
            if (StringUtils.isEmptyString(safeword)) {
                throw new YamiShopBindException("资金密码不能为空");
            }
            if (safeword.length() < 6 || safeword.length() > 12) {
                throw new YamiShopBindException("资金密码必须6-12位");
            }
@@ -119,14 +118,6 @@
                throw new YamiShopBindException("资金密码错误");
            }
        }
            // 获取资金账户(capital)
            /*CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
                    .eq(CapitaltWallet::getUserId, partyId).last(" limit 1 "));
            if(capitaltWallet.getMoney().compareTo(new BigDecimal(amount)) < 0){
                throw new YamiShopBindException("Insufficient available balance for withdrawal!");
            }*/
            this.sessionTokenService.del(session_token);
            Withdraw withdraw = new Withdraw();
            withdraw.setUserId(partyId);
@@ -135,35 +126,45 @@
            withdraw.setCurrency(currency);
            withdraw.setTx("");
            //获取商户支持币种
            /*List<Coin> coinList = udunClient.listSupportCoin(false);
            String channelName = channel.replace("_", "");
            List<Coin> coinList = udunClient.listSupportCoin(false);
            String channelName ;
            if (channel.toUpperCase().contains("USDC")) {
                channelName = "USDC";
            } else {
                channelName = channel.replace("_", "");
            }
            Coin coin = coinList.stream().filter(x -> x.getName().replace("-","").equals(channelName)).findFirst().orElse(null);
            if (coin == null) {
                throw new YamiShopBindException("不支持的提现币种");
            }*/
                throw new YamiShopBindException("Unsupported withdrawal currency");
            }
            if (!udunClient.checkAddress(coin.getMainCoinType(), from)) {
                throw new YamiShopBindException("The withdrawal address is abnormal.");
            }
            // 保存
            this.withdrawService.saveApply(withdraw, channel, null);
            /*ResultMsg resultMsg = udunClient.withdraw(from, withdraw.getVolume(), coin.getMainCoinType(),
            this.withdrawService.saveApply(withdraw, channel,  language);
            ResultMsg resultMsg = udunClient.withdraw(from, withdraw.getVolume(), coin.getMainCoinType(),
                    coin.getCoinType(), withdraw.getOrderNo(), null);
            if (resultMsg.getCode() != HttpStatus.HTTP_OK) {
                log.error("withdraw:{}", JSONUtil.toJsonStr(resultMsg));
                throw new UdunException(resultMsg.getCode(), resultMsg.getMessage());
            }*/
            }
            resultObject.setCode(0);
        } catch (YamiShopBindException e) { // 1. 显式捕获业务异常,优先处理
            resultObject.setCode(1);
            resultObject.setMsg(e.getMessage()); // 直接获取纯业务消息
            resultObject.setMsg("失败");
            log.error("业务异常: {}", e.getMessage());
            throw e;
        } catch (UdunException e) {
            resultObject.setCode(1);
            resultObject.setMsg(e.getMessage());
            log.error("error:" + e.getMessage());
            resultObject.setMsg("失败");
            log.error("Withdraw ud error:{}", e.getMessage());
            throw e;
        } catch (Throwable t) {
            resultObject.setCode(1);
            resultObject.setMsg(t.getMessage());
            resultObject.setMsg("失败");
            log.error("error: {}", t.getMessage());
            throw new RuntimeException(t);
        }
trading-order-service/src/main/java/com/yami/trading/service/impl/UserServiceImpl.java
@@ -648,22 +648,22 @@
        String key = username;
        String authcode = identifyingCodeTimeWindowService.getAuthCode(key);
        if ((authcode == null) || (!authcode.equals(verifcode))) {
            throw new YamiShopBindException("验证码不正确");
            throw new YamiShopBindException("The verification code is incorrect.");
        }
        if ("true".equals(this.sysparaService.find("register_need_usercode").getSvalue())) {
            if (StringUtils.isNotEmpty(usercode)) {
                if (null == party_reco) {
                    throw new YamiShopBindException("推荐码不正确");
                    throw new YamiShopBindException("The referral code is incorrect.");
                }
                if (Constants.SECURITY_ROLE_TEST.equals(party_reco.getRoleName())) {
                    throw new YamiShopBindException("推荐人无权限推荐");
                    throw new YamiShopBindException("The recommender has no authority to make the recommendation.");
                }
                if (!party_reco.isEnabled()) {
                    throw new YamiShopBindException("推荐人无权限推荐");
                    throw new YamiShopBindException("The recommender has no authority to make the recommendation.");
                }
            } else {
                throw new YamiShopBindException("请填写推荐码");
                throw new YamiShopBindException("Please enter the referral code.");
            }
        }
//        if ("true".equals(this.sysparaService.find("register_need_usercode_turn").getSvalue())) {
@@ -672,7 +672,7 @@
//            }
//        }
        if (findByUserName(username) != null) {
            throw new YamiShopBindException("用户名重复");
            throw new YamiShopBindException("Username duplication");
        }
        int ever_user_level_num = this.sysparaService.find("ever_user_level_num").getInteger();
        int ever_user_level_num_custom = this.sysparaService.find("ever_user_level_num_custom").getInteger();
@@ -706,10 +706,10 @@
        } else {
            // 邮箱注册
            if (!Strings.isEmail(username)) {
                throw new YamiShopBindException("请输入正确的邮箱地址");
                throw new YamiShopBindException("Please enter the correct email address.");
            }
            if (findPartyByEmail(username) != null) {
                throw new YamiShopBindException("邮箱已重复");
                throw new YamiShopBindException("The email address has been duplicated.");
            }
            this.saveEmail(username, party.getUserId().toString());
        }