From ceb187dd1ad07060b8c67a2d6fba933642fcfb0c Mon Sep 17 00:00:00 2001
From: zyy <zyy@email.com>
Date: Thu, 04 Sep 2025 16:51:10 +0800
Subject: [PATCH] 申购手续费
---
trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java | 31 +++++++++++++++++++------------
1 files changed, 19 insertions(+), 12 deletions(-)
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java b/trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java
index 91ffe36..165a337 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java
@@ -102,18 +102,21 @@
//需要先支付
if (ico.getIsPayDown() !=null && ico.getIsPayDown() == 1) {
- if (amount.compareTo(wallet.getMoney()) > 0) {
+ //手续费
+ BigDecimal fee = ico.getUnitFee().multiply(new BigDecimal(model.getSubscribeNums()));
+ BigDecimal totalAmount = amount.add(fee);
+ if (totalAmount.compareTo(wallet.getMoney()) > 0) {
throw new YamiShopBindException("余额不足");
}
- walletService.update(partyId, Arith.sub(0, amount.doubleValue()));
+ walletService.update(partyId, totalAmount.negate().doubleValue());
// 保存 资金日志
MoneyLog moneylog = new MoneyLog();
moneylog.setCategory(Constants.MONEYLOG_CONTENT_NEW_COIN);
moneylog.setAmountBefore(wallet.getMoney());
- moneylog.setAmount(amount);
- moneylog.setAmountAfter(BigDecimal.valueOf(Arith.sub(wallet.getMoney().doubleValue(), amount.doubleValue())));
- moneylog.setLog("新币购买,申购金额[" + amount + "]");
+ moneylog.setAmount(totalAmount);
+ moneylog.setAmountAfter(wallet.getMoney().subtract(totalAmount));
+ moneylog.setLog("新币购买,申购金额[" + amount + "]" + "手续费金额[" + fee + "]");
moneylog.setUserId(partyId);
moneylog.setSymbol(ico.getSymbol());
moneylog.setWalletType(ico.getSymbol());
@@ -166,15 +169,17 @@
if(applyNumber > 0) {
//退回资金
BigDecimal refundPrice = ico.getUnitAmount().multiply(new BigDecimal(applyNumber));
- wallet = walletService.updateToBeCovered(wallet, refundPrice, 1);
+ BigDecimal fee = ico.getUnitFee().multiply(new BigDecimal(applyNumber));
+ BigDecimal totalAmount = refundPrice.add(fee);
+ wallet = walletService.updateToBeCovered(wallet, totalAmount, 1);
//保存 资金日志
MoneyLog moneylog = new MoneyLog();
moneylog.setCategory(Constants.MONEYLOG_CONTENT_NEW_COIN);
moneylog.setAmountBefore(before);
- moneylog.setAmount(amount);
+ moneylog.setAmount(totalAmount);
moneylog.setAmountAfter(wallet.getMoney());
- moneylog.setLog("新币购买,退回购买金额[" + refundPrice + "]");
+ moneylog.setLog("新币购买,退回金额[" + refundPrice + "]" + "退回手续费[" + fee + "]");
moneylog.setUserId(userId);
moneylog.setSymbol(ico.getSymbol());
moneylog.setWalletType(ico.getSymbol());
@@ -183,15 +188,17 @@
}
} else {
BigDecimal amount = ico.getUnitAmount().multiply(new BigDecimal(model.getBallotNumber()));
- wallet = walletService.updateToBeCovered(wallet, amount, 2);
-
+ //手续费
+ BigDecimal fee = ico.getUnitFee().multiply(new BigDecimal(model.getBallotNumber()));
+ BigDecimal totalAmount = amount.add(fee);
+ wallet = walletService.updateToBeCovered(wallet, totalAmount, 2);
//保存 资金日志
MoneyLog moneylog = new MoneyLog();
moneylog.setCategory(Constants.MONEYLOG_CONTENT_NEW_COIN);
moneylog.setAmountBefore(before);
- moneylog.setAmount(amount);
+ moneylog.setAmount(totalAmount);
moneylog.setAmountAfter(wallet.getMoney());
- moneylog.setLog("新币购买,申购金额[" + amount + "]");
+ moneylog.setLog("新币购买,申购金额[" + amount + "]" + "手续费金额[" + fee + "]");
moneylog.setUserId(userId);
moneylog.setSymbol(ico.getSymbol());
moneylog.setWalletType(ico.getSymbol());
--
Gitblit v1.9.3