From cf200a1f92c01ba22c326c49391f748ffb006910 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 05 Jul 2021 17:28:35 +0800
Subject: [PATCH] 20210617 开售开关
---
src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java | 59 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 59 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
index bf070e3..a90136b 100644
--- a/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/otc/service/impl/OtcServiceImpl.java
@@ -298,4 +298,63 @@
return new FebsResponse().success();
}
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public int reduceCoin(Long id) {
+ OtcOrderEntity order = otcOrderMapper.selectById(id);
+
+ MemberWalletCoinEntity saleWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getMemberId(), "USDT");
+ MemberWalletCoinEntity buyWallet = memberWalletCoinMapper.findWalletCoinByMemberIdAndWalletCode(order.getOppositeMemberId(), "USDT");
+
+ memberWalletCoinMapper.updateBlockBalance(order.getCoinAmount(), buyWallet.getId());
+ memberWalletCoinMapper.reduceFrozenBalance(order.getCoinAmount(), saleWallet.getId());
+
+ otcOrderMapper.updateOrderStatusByOrderNo(OtcOrderEntity.STATUS_THREE, order.getOrderNo());
+ return 1;
+ }
+
+ @Override
+ public OtcEntrustOrderEntity otcEntrustListUpdate(long id) {
+ return otcEntrustOrderMapper.selectById(id);
+ }
+
+ @Override
+ public FebsResponse otcEntrustConfirm(OtcEntrustOrderEntity otcEntrustOrderEntity) {
+ Long id = otcEntrustOrderEntity.getId();
+ OtcEntrustOrderEntity otcEntrustOrder = otcEntrustOrderMapper.selectById(id);
+ BigDecimal unitPrice = otcEntrustOrderEntity.getUnitPrice();
+ if(ObjectUtil.isEmpty(unitPrice) || unitPrice.compareTo(BigDecimal.ZERO) < 0){
+ return new FebsResponse().fail().message("请设置正确的单价");
+ }
+ otcEntrustOrder.setUnitPrice(unitPrice);
+ BigDecimal coinAmount = otcEntrustOrderEntity.getCoinAmount();
+ if(ObjectUtil.isEmpty(coinAmount) || coinAmount.compareTo(BigDecimal.ZERO) < 0){
+ return new FebsResponse().fail().message("请设置正确的数量");
+ }
+ otcEntrustOrder.setCoinAmount(coinAmount);
+ BigDecimal totalAmount = coinAmount.multiply(unitPrice);
+ otcEntrustOrder.setTotalAmount(totalAmount);
+
+ BigDecimal remainCoinAmount = otcEntrustOrderEntity.getRemainCoinAmount();
+ if(ObjectUtil.isEmpty(remainCoinAmount) || remainCoinAmount.compareTo(BigDecimal.ZERO) < 0
+ || totalAmount.compareTo(remainCoinAmount) < 0){
+ return new FebsResponse().fail().message("请设置正确的剩余数量");
+ }
+ otcEntrustOrder.setRemainCoinAmount(remainCoinAmount);
+ BigDecimal limitMinAmount = otcEntrustOrderEntity.getLimitMinAmount();
+ if(ObjectUtil.isEmpty(limitMinAmount) || limitMinAmount.compareTo(BigDecimal.ZERO) < 0){
+ return new FebsResponse().fail().message("请设置正确的最小限额");
+ }
+ otcEntrustOrder.setLimitMinAmount(limitMinAmount);
+ BigDecimal limitMaxAmount = otcEntrustOrderEntity.getLimitMaxAmount();
+ if(ObjectUtil.isEmpty(limitMaxAmount) || limitMaxAmount.compareTo(BigDecimal.ZERO) < 0
+ || limitMaxAmount.compareTo(limitMinAmount) < 0 || totalAmount.compareTo(limitMaxAmount) < 0){
+ return new FebsResponse().fail().message("请设置正确的最大限额");
+ }
+ otcEntrustOrder.setLimitMaxAmount(limitMaxAmount);
+ otcEntrustOrder.setStatus(otcEntrustOrderEntity.getStatus());
+ otcEntrustOrderMapper.updateById(otcEntrustOrder);
+
+ return new FebsResponse().success();
+ }
}
--
Gitblit v1.9.1