From f620192bcac7f5cb910a99e092edcee00280ce10 Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Sat, 11 Oct 2025 18:39:54 +0800
Subject: [PATCH] 充值提现修改
---
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java | 8
trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java | 277 +++++++++++++++++++++++----------------------
trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java | 39 +++---
3 files changed, 166 insertions(+), 158 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
index ff67772..234bde5 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiWithdrawController.java
@@ -136,20 +136,20 @@
withdraw.setTx("");
//获取商户支持币种
- List<Coin> coinList = udunClient.listSupportCoin(false);
+ /*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);
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
index 627d379..3066198 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/exchange/ApiChannelBlockchainController.java
@@ -269,31 +269,32 @@
double success_amount = amounts / Math.pow(10, decimals);
String address = map.get("address").toString();
Integer status = Integer.valueOf(map.get("status").toString());
- RechargeBlockchainOrder blockchainOrder = rechargeBlockchainOrderService.getOne(new LambdaQueryWrapper<>(RechargeBlockchainOrder.class)
+ /*RechargeBlockchainOrder blockchainOrder = rechargeBlockchainOrderService.getOne(new LambdaQueryWrapper<>(RechargeBlockchainOrder.class)
.eq(RechargeBlockchainOrder::getSucceeded, 0)
.eq(RechargeBlockchainOrder::getChannelAddress, address).last(" limit 1 "));
- if(ObjectUtil.isEmpty(blockchainOrder)){
- //查询地址订单
- blockchainOrder = (RechargeBlockchainOrder)redisTemplate.opsForValue().get(address);
- log.info("===rechargeCallback===blockchainOrder:{}", blockchainOrder);
- if (blockchainOrder == null){
- resultMsg.setCode(200);
- return resultMsg;
- }
- if (status == 3) { //成功新增订单
- blockchainOrder.setAddress(null);
- blockchainOrder.setVolume(success_amount);
- blockchainOrder.setImg(null);
- blockchainOrder.setSucceeded(0);
- blockchainOrder.setChannelAddress(address);
- blockchainOrder.setTx("");
- rechargeBlockchainOrderService.saveOrder(blockchainOrder);
- }
+ if(ObjectUtil.isEmpty(blockchainOrder)) {
+ resultMsg.setCode(200);
+ return resultMsg;
+ }*/
+
+ //查询地址订单
+ RechargeBlockchainOrder blockchainOrder = (RechargeBlockchainOrder)redisTemplate.opsForValue().get(address);
+ if (blockchainOrder == null){
+ resultMsg.setCode(200);
+ return resultMsg;
}
+ blockchainOrder.setAddress(null);
+ blockchainOrder.setVolume(success_amount);
+ blockchainOrder.setImg(null);
+ blockchainOrder.setSucceeded(0);
+ blockchainOrder.setChannelAddress(address);
+ blockchainOrder.setTx("");
+ rechargeBlockchainOrderService.saveOrder(blockchainOrder);
SysUser user = sysUserService.getSysUserById(Long.getLong(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());
}
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
index ee52404..be9ed0e 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/RechargeBlockchainOrderServiceImpl.java
@@ -87,46 +87,50 @@
@Transactional
public void manualReceipt(Integer auto ,String id, BigDecimal amount,String operator_username) {
// Date now = new Date();
- RechargeBlockchainOrder recharge = getById(id);
- if (recharge == null) {
- throw new YamiShopBindException("参数错误!");
- }
- User party = userService.getById(recharge.getPartyId());
- if (party == null) {
- throw new YamiShopBindException("用户不存在!");
- }
+ try {
+ RechargeBlockchainOrder recharge = getById(id);
+ if (recharge == null) {
+ recharge = findByOrderNo(id);
+ if (recharge == null) {
+ throw new YamiShopBindException("参数错误!");
+ }
+ }
+ User party = userService.getById(recharge.getPartyId());
+ if (party == null) {
+ throw new YamiShopBindException("用户不存在!");
+ }
- if (recharge.getSucceeded() == 1) {
- throw new YamiShopBindException("已操作过了!");
- }
- recharge.setReviewTime(new Date());
- recharge.setSucceeded(1);
- WalletLog walletLog = walletLogService.find(Constants.MONEYLOG_CATEGORY_RECHARGE, recharge.getOrderNo());
- if (amount.doubleValue() != recharge.getVolume()) {
- Log log = new Log();
- log.setCategory(Constants.LOG_CATEGORY_OPERATION);
- log.setExtra(recharge.getOrderNo());
- log.setOperator(operator_username);
- log.setUsername(party.getUserName());
- log.setUserId(recharge.getPartyId());
- log.setCreateTime(new Date());
- log.setLog("管理员修改充值数量,原充值数量["
- + recharge.getVolume() + "],修改后充值数量[" + amount.doubleValue() + "]。订单号[" + recharge.getOrderNo()+ "]。");
+ if (recharge.getSucceeded() == 1) {
+ throw new YamiShopBindException("已操作过了!");
+ }
+ recharge.setReviewTime(new Date());
+ recharge.setSucceeded(1);
+ WalletLog walletLog = walletLogService.find(Constants.MONEYLOG_CATEGORY_RECHARGE, recharge.getOrderNo());
+ if (amount.doubleValue() != recharge.getVolume()) {
+ Log log = new Log();
+ log.setCategory(Constants.LOG_CATEGORY_OPERATION);
+ log.setExtra(recharge.getOrderNo());
+ log.setOperator(operator_username);
+ log.setUsername(party.getUserName());
+ log.setUserId(recharge.getPartyId());
+ log.setCreateTime(new Date());
+ log.setLog("管理员修改充值数量,原充值数量["
+ + recharge.getVolume() + "],修改后充值数量[" + amount.doubleValue() + "]。订单号[" + recharge.getOrderNo()+ "]。");
- logService.save(log);
- walletLog.setAmount(amount.doubleValue());
- recharge.setVolume(amount.doubleValue());
- }
+ logService.save(log);
+ walletLog.setAmount(amount.doubleValue());
+ recharge.setVolume(amount.doubleValue());
+ }
- /**
- * 如果是usdt则加入wallet,否则寻找walletExtend里相同币种
- */
+ /**
+ * 如果是usdt则加入wallet,否则寻找walletExtend里相同币种
+ */
- Syspara user_recom_bonus_open = sysparaService.find("user_recom_bonus_open");
+ Syspara user_recom_bonus_open = sysparaService.find("user_recom_bonus_open");
- if ("usdt".equals(recharge.getSymbol())) {
- double amount1 = recharge.getVolume();
+ if ("usdt".equals(recharge.getSymbol())) {
+ double amount1 = recharge.getVolume();
// Wallet wallet = new Wallet();
// wallet = walletService.saveWalletByPartyId(recharge.getPartyId());
@@ -135,71 +139,71 @@
//
// walletService.update(wallet.getUserId(), amount1);
- CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
- .eq(CapitaltWallet::getUserId, recharge.getPartyId()).last(" limit 1 "));
- double amount_before = capitaltWallet.getMoney().doubleValue();
- capitaltWalletService.update(capitaltWallet,amount1);
+ CapitaltWallet capitaltWallet = capitaltWalletService.getOne(new LambdaQueryWrapper<>(CapitaltWallet.class)
+ .eq(CapitaltWallet::getUserId, recharge.getPartyId()).last(" limit 1 "));
+ double amount_before = capitaltWallet.getMoney().doubleValue();
+ capitaltWalletService.update(capitaltWallet,amount1);
- // 保存资金日志
- MoneyLog moneyLog = new MoneyLog();
- moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
- moneyLog.setAmountBefore(new BigDecimal(amount_before));
- moneyLog.setAmount(new BigDecimal(amount1));
- moneyLog.setAmountAfter(BigDecimal.valueOf(Arith.add(amount_before, amount1)));
- moneyLog.setLog("充值订单[" + recharge.getOrderNo() + "]");
- moneyLog.setUserId(recharge.getPartyId());
- moneyLog.setWalletType(Constants.WALLET);
- moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
- moneyLog.setCreateTime(new Date());
- moneyLogService.save(moneyLog);
+ // 保存资金日志
+ MoneyLog moneyLog = new MoneyLog();
+ moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
+ moneyLog.setAmountBefore(new BigDecimal(amount_before));
+ moneyLog.setAmount(new BigDecimal(amount1));
+ moneyLog.setAmountAfter(BigDecimal.valueOf(Arith.add(amount_before, amount1)));
+ moneyLog.setLog("充值订单[" + recharge.getOrderNo() + "]");
+ moneyLog.setUserId(recharge.getPartyId());
+ moneyLog.setWalletType(Constants.WALLET);
+ moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
+ moneyLog.setCreateTime(new Date());
+ moneyLogService.save(moneyLog);
- walletLog.setStatus(recharge.getSucceeded());
- walletLogService.updateById(walletLog);
+ walletLog.setStatus(recharge.getSucceeded());
+ walletLogService.updateById(walletLog);
- updateById(recharge);
- /**
- * 给他的代理添加充值记录
- */
- userDataService.saveRechargeHandle(recharge.getPartyId(), recharge.getVolume(), recharge.getSymbol());
+ updateById(recharge);
+ /**
+ * 给他的代理添加充值记录
+ */
+ userDataService.saveRechargeHandle(recharge.getPartyId(), recharge.getVolume(), recharge.getSymbol());
- /**
- * 若已开启充值奖励 ,则充值到账后给他的代理用户添加奖金
- */
- if ("true".equals(user_recom_bonus_open.getSvalue())) {
- List<RechargeBlockchainOrder> orders =findByPartyIdAndToday(recharge.getPartyId());
- rechargeBonusService.saveBounsHandle(recharge, 1,orders);
- }
-
- // 充值到账后给他增加提现流水限制金额 充值到账后,当前流水大于提现限制流水时是否重置提现限制流水并将Party表里的当前流水设置清零,
- // 1不重置,2重置
- String recharge_sucess_reset_withdraw = this.sysparaService.find("recharge_sucess_reset_withdraw").getSvalue();
- if ("1".equals(recharge_sucess_reset_withdraw)) {
- if (party.getWithdrawLimitAmount()==null){
- party.setWithdrawLimitAmount(new BigDecimal(0));
+ /**
+ * 若已开启充值奖励 ,则充值到账后给他的代理用户添加奖金
+ */
+ if ("true".equals(user_recom_bonus_open.getSvalue())) {
+ List<RechargeBlockchainOrder> orders =findByPartyIdAndToday(recharge.getPartyId());
+ rechargeBonusService.saveBounsHandle(recharge, 1,orders);
}
- if (party.getWithdrawLimitNowAmount()==null){
- party.setWithdrawLimitNowAmount(new BigDecimal(0));
- }
- party.setWithdrawLimitAmount(new BigDecimal(Arith.add(party.getWithdrawLimitAmount().doubleValue(), amount.doubleValue())));
- if (party.getWithdrawLimitNowAmount().doubleValue() > party.getWithdrawLimitAmount().doubleValue()) {
- party.setWithdrawLimitNowAmount(new BigDecimal(0));
- }
- }
- if ("2".equals(recharge_sucess_reset_withdraw)) {
- double withdraw_limit_turnover_percent = Double
- .valueOf(sysparaService.find("withdraw_limit_turnover_percent").getSvalue());
- double party_withdraw = Arith.mul(party.getWithdrawLimitAmount().doubleValue(), withdraw_limit_turnover_percent);
- if (party.getWithdrawLimitNowAmount().doubleValue() >= party_withdraw) {
- party.setWithdrawLimitAmount(amount);
- party.setWithdrawLimitNowAmount(new BigDecimal(0));
- } else {
+ // 充值到账后给他增加提现流水限制金额 充值到账后,当前流水大于提现限制流水时是否重置提现限制流水并将Party表里的当前流水设置清零,
+ // 1不重置,2重置
+ String recharge_sucess_reset_withdraw = this.sysparaService.find("recharge_sucess_reset_withdraw").getSvalue();
+ if ("1".equals(recharge_sucess_reset_withdraw)) {
+ if (party.getWithdrawLimitAmount()==null){
+ party.setWithdrawLimitAmount(new BigDecimal(0));
+ }
+ if (party.getWithdrawLimitNowAmount()==null){
+ party.setWithdrawLimitNowAmount(new BigDecimal(0));
+ }
party.setWithdrawLimitAmount(new BigDecimal(Arith.add(party.getWithdrawLimitAmount().doubleValue(), amount.doubleValue())));
+ if (party.getWithdrawLimitNowAmount().doubleValue() > party.getWithdrawLimitAmount().doubleValue()) {
+ party.setWithdrawLimitNowAmount(new BigDecimal(0));
+ }
}
- }
- userService.updateById(party);
+ if ("2".equals(recharge_sucess_reset_withdraw)) {
+ double withdraw_limit_turnover_percent = Double
+ .valueOf(sysparaService.find("withdraw_limit_turnover_percent").getSvalue());
+ double party_withdraw = Arith.mul(party.getWithdrawLimitAmount().doubleValue(), withdraw_limit_turnover_percent);
- } else {
+ if (party.getWithdrawLimitNowAmount().doubleValue() >= party_withdraw) {
+ party.setWithdrawLimitAmount(amount);
+ party.setWithdrawLimitNowAmount(new BigDecimal(0));
+ } else {
+ party.setWithdrawLimitAmount(new BigDecimal(Arith.add(party.getWithdrawLimitAmount().doubleValue(), amount.doubleValue())));
+ }
+ }
+ userService.updateById(party);
+
+ } else {
// List<Realtime> realtime_list =this.dataService.realtime(recharge.getSymbol());
// log.error("手动到账realtime_list::"+realtime_list);
// Realtime realtime = null;
@@ -208,46 +212,46 @@
// } else {
// throw new YamiShopBindException("系统错误,请稍后重试");
// }
- // 对应usdt价格
+ // 对应usdt价格
// double transfer_usdt = realtime.getClose().doubleValue();
- WalletExtend walletExtend = new WalletExtend();
- walletExtend = walletService.saveExtendByPara(recharge.getPartyId(), recharge.getSymbol());
+ WalletExtend walletExtend = new WalletExtend();
+ walletExtend = walletService.saveExtendByPara(recharge.getPartyId(), recharge.getSymbol());
- double volume = recharge.getVolume();
+ double volume = recharge.getVolume();
- double amount_before = walletExtend.getAmount();
+ double amount_before = walletExtend.getAmount();
- // walletExtend = walletService.saveWalletExtendByParaAndUpdate(String.valueOf(recharge.getPartyId()), recharge.getSymbol(), volume);
- walletService.updateExtend(walletExtend.getPartyId().toString(), walletExtend.getWallettype(), volume);
- updateById(recharge);
+ // walletExtend = walletService.saveWalletExtendByParaAndUpdate(String.valueOf(recharge.getPartyId()), recharge.getSymbol(), volume);
+ walletService.updateExtend(walletExtend.getPartyId().toString(), walletExtend.getWallettype(), volume);
+ updateById(recharge);
- // 币种usdt价格= 币种价格×充值数量
+ // 币种usdt价格= 币种价格×充值数量
// double usdt_amount = Arith.mul(volume, transfer_usdt);
- // 保存资金日志
- MoneyLog moneyLog = new MoneyLog();
- moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
- moneyLog.setAmountBefore(new BigDecimal(amount_before));
- moneyLog.setAmount(new BigDecimal(volume));
- moneyLog.setAmountAfter(new BigDecimal(Arith.add(amount_before, volume)));
+ // 保存资金日志
+ MoneyLog moneyLog = new MoneyLog();
+ moneyLog.setCategory(Constants.MONEYLOG_CATEGORY_COIN);
+ moneyLog.setAmountBefore(new BigDecimal(amount_before));
+ moneyLog.setAmount(new BigDecimal(volume));
+ moneyLog.setAmountAfter(new BigDecimal(Arith.add(amount_before, volume)));
- moneyLog.setLog("充值订单[" + recharge.getOrderNo() + "]");
- moneyLog.setUserId(recharge.getPartyId());
- moneyLog.setWalletType(recharge.getSymbol());
- moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
- moneyLog.setCreateTime(new Date());
- moneyLogService.save(moneyLog);
+ moneyLog.setLog("充值订单[" + recharge.getOrderNo() + "]");
+ moneyLog.setUserId(recharge.getPartyId());
+ moneyLog.setWalletType(recharge.getSymbol());
+ moneyLog.setContentType(Constants.MONEYLOG_CONTENT_RECHARGE);
+ moneyLog.setCreateTime(new Date());
+ moneyLogService.save(moneyLog);
- walletLog.setStatus(recharge.getSucceeded());
- walletLogService.updateById(walletLog);
- /**
- * 给他的代理添加充值记录
- */
- userDataService.saveRechargeHandle(recharge.getPartyId(), recharge.getVolume(), recharge.getSymbol());
- /**
- * 买币-币冲充值其他非usdt币时使用
- */
+ walletLog.setStatus(recharge.getSucceeded());
+ walletLogService.updateById(walletLog);
+ /**
+ * 给他的代理添加充值记录
+ */
+ userDataService.saveRechargeHandle(recharge.getPartyId(), recharge.getVolume(), recharge.getSymbol());
+ /**
+ * 买币-币冲充值其他非usdt币时使用
+ */
// userDataService.saveBuy(recharge.getPartyId(), recharge.getSymbol(), recharge.getVolume());
// /**
@@ -259,9 +263,9 @@
// rechargeBonusService.saveBounsHandle(recharge, transfer_usdt,orders);
// }
- /**
- * 充值到账后给他增加提现流水限制金额
- */
+ /**
+ * 充值到账后给他增加提现流水限制金额
+ */
// /**
// * 充值到账后给他增加提现流水限制金额 充值到账后,当前流水大于提现限制流水时是否重置提现限制流水并将Party表里的当前流水设置清零,1不重置,2重置
@@ -289,19 +293,22 @@
// userService.updateById(party);
+ }
+
+ Log log = new Log();
+ log.setCategory(Constants.LOG_CATEGORY_OPERATION);
+ log.setExtra(recharge.getOrderNo());
+ log.setOperator(operator_username);
+ log.setUsername(party.getUserName());
+ log.setUserId(recharge.getPartyId());
+ log.setCreateTime(new Date());
+ log.setLog("手动到账一笔充值订单。订单号[" + recharge.getOrderNo() + "]。");
+
+ logService.save(log);
+ tipService.deleteTip(recharge.getUuid().toString());
+ } catch (Exception e) {
+ throw new RuntimeException(e);
}
-
- Log log = new Log();
- log.setCategory(Constants.LOG_CATEGORY_OPERATION);
- log.setExtra(recharge.getOrderNo());
- log.setOperator(operator_username);
- log.setUsername(party.getUserName());
- log.setUserId(recharge.getPartyId());
- log.setCreateTime(new Date());
- log.setLog("手动到账一笔充值订单。订单号[" + recharge.getOrderNo() + "]。");
-
- logService.save(log);
- tipService.deleteTip(recharge.getUuid().toString());
}
@Override
public long waitCount() {
--
Gitblit v1.9.3