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/impl/WalletServiceImpl.java | 8 ++++----
trading-order-service/src/main/java/com/yami/trading/service/ico/IcoService.java | 31 +++++++++++++++++++------------
trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java | 3 ++-
trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java | 2 ++
4 files changed, 27 insertions(+), 17 deletions(-)
diff --git a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
index f39cf4a..e647ed8 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/admin/controller/ico/AdminIcoController.java
@@ -50,6 +50,7 @@
@GetMapping("list")
public Result<Page<Ico>> list(ItemQuery icoQuery, Page<Ico> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (icoQuery, ItemQuery.class);
+ queryWrapper.orderByDesc("market_date");
Page<Ico> result = icoService.page(page, queryWrapper);
return Result.ok(result);
}
@@ -133,6 +134,7 @@
public Result<Page<UserSubscriptionDTO>> recordList(IcoQuery icoQuery, Page<UserSubscriptionDTO> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (icoQuery, IcoQuery.class);
queryWrapper.eq("u.del_flag", "0");
+ queryWrapper.orderByDesc("created_at");
Page<UserSubscriptionDTO> result = userSubscriptionService.findPage(page, queryWrapper);
return Result.ok(result);
}
diff --git a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
index 28e49f1..207ff85 100644
--- a/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
+++ b/trading-order-admin/src/main/java/com/yami/trading/api/controller/ApiIcoController.java
@@ -44,6 +44,7 @@
@GetMapping("list")
public Result<Page<Ico>> list(ItemQuery icoQuery, Page<Ico> page) throws Exception {
QueryWrapper queryWrapper = QueryWrapperGenerator.buildQueryCondition (icoQuery, ItemQuery.class);
+ queryWrapper.orderByDesc("market_date");
Page<Ico> result = icoService.page(page, queryWrapper);
return Result.ok(result);
}
@@ -90,7 +91,7 @@
throw new YamiShopBindException("请重新登录");
}
queryWrapper.eq("u.user_id", partyId);
- System.out.println(queryWrapper.getSqlSegment());
+ queryWrapper.orderByDesc("created_at");
Page<UserSubscriptionDTO> result = userSubscriptionService.findPage(page, queryWrapper);
return Result.ok(result);
}
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());
diff --git a/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java b/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
index d4a0a62..aaa0c4f 100644
--- a/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
+++ b/trading-order-service/src/main/java/com/yami/trading/service/impl/WalletServiceImpl.java
@@ -180,12 +180,12 @@
wallet.setMoney(wallet.getMoney().add(money));
if(wallet.getMoney().compareTo(BigDecimal.ZERO) < 0){
- wallet.setMoney(BigDecimal.ZERO);
- }
- wallet.setUpdateTime(now);
- if (wallet.getMoney().doubleValue() <= 0) {
throw new YamiShopBindException("余额不足");
}
+ wallet.setUpdateTime(now);
+ /*if (wallet.getMoney().doubleValue() < 0) {
+ throw new YamiShopBindException("余额不足");
+ }*/
updateById(wallet);
// 账变日志
MoneyLog moneyLog = new MoneyLog();
--
Gitblit v1.9.3