| | |
| | | throw new YamiShopBindException("系统参数错误"); |
| | | } |
| | | |
| | | // 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位"); |
| | | // } |
| | | // if (!userService.checkLoginSafeword(SecurityUtils.getUser().getUserId(),safeword)){ |
| | | // throw new YamiShopBindException("资金密码错误"); |
| | | // } |
| | | // } |
| | | 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位"); |
| | | } |
| | | if (!userService.checkLoginSafeword(SecurityUtils.getUser().getUserId(),safeword)){ |
| | | throw new YamiShopBindException("资金密码错误"); |
| | | } |
| | | } |
| | | |
| | | // 获取资金账户(capital) |
| | | CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class) |
| | | /*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.setTx(""); |
| | | |
| | | //获取商户支持币种 |
| | | List<Coin> coinList = udunClient.listSupportCoin(false); |
| | | Coin coin = coinList.stream().filter(x -> x.getName().equals(channel)).findFirst().orElse(null); |
| | | /*List<Coin> coinList = udunClient.listSupportCoin(false); |
| | | String channelName = channel.replace("_", ""); |
| | | Coin coin = coinList.stream().filter(x -> x.getName().replace("-","").equals(channelName)).findFirst().orElse(null); |
| | | if (coin == null) { |
| | | throw new YamiShopBindException("不支持的提现币种"); |
| | | } |
| | | }*/ |
| | | // 保存 |
| | | this.withdrawService.saveApply(withdraw, channel, null); |
| | | ResultMsg resultMsg = udunClient.withdraw(from, withdraw.getVolume(), coin.getMainCoinType(), |
| | | /*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()); // 直接获取纯业务消息 |
| | | log.error("业务异常: {}", e.getMessage()); |
| | | throw e; |
| | | } catch (UdunException e) { |
| | | resultObject.setCode(1); |
| | | resultObject.setMsg(e.getMessage()); |
| | |
| | | |
| | | ResultMsg resultMsg = new ResultMsg(); |
| | | try{ |
| | | log.info("===withdrawCallback===:{}", body); |
| | | boolean flag = udunClient.checkSign(timestamp, nonce, body, sign); |
| | | log.info("===withdrawCallback===sign:{}", flag); |
| | | |
| | |
| | | resultMsg.setCode(200); |
| | | return resultMsg; |
| | | } |
| | | withdrawService.examineOk(order_no, Long.valueOf(withdraw.getUserId())); |
| | | Integer status = Integer.valueOf(map.get("status").toString()); |
| | | if (status == 3) { //交易成功 |
| | | withdrawService.examineOk(withdraw.getUuid(), null); |
| | | } else if(status == 2) { //驳回 |
| | | withdrawService.reject(withdraw.getUuid(), "订单失败:" + status, "withdrawCallback"); |
| | | } |
| | | resultMsg.setCode(200); |
| | | }catch (Exception e){ |
| | | resultMsg.setCode(500); |