From 478e76aaf92cec55208c7ef9a9e44abd6b8ec41c Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Tue, 15 Jun 2021 17:55:51 +0800
Subject: [PATCH] modify

---
 src/main/java/com/xcong/excoin/modules/coin/controller/GbzOrderController.java |   15 +++++++++++++--
 1 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/controller/GbzOrderController.java b/src/main/java/com/xcong/excoin/modules/coin/controller/GbzOrderController.java
index 13677f2..1736cff 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/controller/GbzOrderController.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/controller/GbzOrderController.java
@@ -52,14 +52,19 @@
         if ("1".equals(status)) {
             return Result.fail("无法购买");
         }
+        String total = redisUtils.getString("bzz_coin_total");
 
         MemberEntity loginUser = LoginUserUtils.getAppLoginUser();
-        BigDecimal price = new BigDecimal(66);
+        BigDecimal price = new BigDecimal(redisUtils.getString("bzz_order_new_price"));
         BigDecimal amount = BigDecimal.valueOf(gbzAddDto.getCount()).multiply(price);
 
         MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(loginUser.getId(), CoinTypeEnum.USDT.name());
         if (amount.compareTo(wallet.getAvailableBalance()) > 0) {
             return Result.fail("可用金额不足");
+        }
+
+        if (Integer.parseInt(total) < gbzAddDto.getCount()) {
+            return Result.fail("BZZ数量不足");
         }
 
         GbzOrderEntity gbzOrder = new GbzOrderEntity();
@@ -73,7 +78,7 @@
         gbzOrderDao.insert(gbzOrder);
 
         memberWalletCoinDao.updateBlockBalance(wallet.getId(), amount.negate(), BigDecimal.ZERO, 0);
-
+        redisUtils.set("bzz_coin_total", Integer.parseInt(total) - gbzAddDto.getCount());
         LogRecordUtils.insertMemberAccountMoneyChange(loginUser.getId(), "购买BZZ", amount, "USDT", 1, 1);
         return Result.ok("购买成功");
     }
@@ -101,6 +106,10 @@
         String status = redisUtils.getString("bzz_order_status");
         priceVo.setStatus(StrUtil.isNotBlank(status) ? Integer.parseInt(status) : 2);
 
+
+        String remain = redisUtils.getString("bzz_coin_total");
+        priceVo.setRemainCnt(Integer.parseInt(remain));
+
         BigDecimal totalAmount = gbzOrderDao.selectOrderTotalAmount(LoginUserUtils.getAppLoginUser().getId());
         priceVo.setTotalAmount(totalAmount);
         return Result.ok(priceVo);
@@ -124,6 +133,8 @@
         MemberWalletCoinEntity wallet = memberWalletCoinDao.selectWalletCoinBymIdAndCode(member.getId(), CoinTypeEnum
                 .BZZ.name());
         memberWalletCoinDao.updateBlockBalance(wallet.getId(), totalAmount, BigDecimal.ZERO, 0);
+
+        gbzOrderDao.updateStatus(member.getId());
         LogRecordUtils.insertMemberAccountMoneyChange(member.getId(), "提取BZZ到资产", totalAmount, "BZZ", 1, 1);
         return Result.ok("提取成功");
     }

--
Gitblit v1.9.1