From 6258b45b69d75325b7d6df7edf2761c22a87369b Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 21 Feb 2022 10:24:29 +0800
Subject: [PATCH] 20222221

---
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java |   56 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 56 insertions(+), 0 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
index 61d617f..0b76dfb 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java
@@ -596,4 +596,60 @@
         }
     }
 
+    @Override
+    public Result usdtToGusd(BigDecimal balance, Integer transfertype) {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        if (balance.compareTo(BigDecimal.ZERO) <= 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0004"));
+        }
+
+        // 扣币
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+        BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
+        BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
+
+        BigDecimal available = availableBalance.subtract(balance);
+        if (available.compareTo(BigDecimal.ZERO) < 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0008"));
+        }
+        BigDecimal total = totalBalance.subtract(balance);
+        if (total.compareTo(BigDecimal.ZERO) < 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0008"));
+        }
+
+        memberWalletCoinEntity.setAvailableBalance(available);
+        memberWalletCoinEntity.setTotalBalance(total);
+        int i = memberWalletCoinDao.updateById(memberWalletCoinEntity);
+        if (i < 1) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
+        }
+        //添加资金划转历史记录
+        MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+        //获取usdt兑换gusd的兑换比例
+        String gusdName = CoinTypeEnum.GUSD.name();
+        MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
+        BigDecimal gusdAvailableBalance = gusdMemberWalletCoinEntity.getAvailableBalance();
+        BigDecimal gusdTotalBalance = gusdMemberWalletCoinEntity.getTotalBalance();
+        gusdMemberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.add(balance));
+        gusdMemberWalletCoinEntity.setTotalBalance(gusdTotalBalance.add(balance));
+
+        int updateById = memberWalletCoinDao.updateById(gusdMemberWalletCoinEntity);
+        if (updateById < 1) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
+        }
+
+        //添加资金划转历史记录
+        memberAccountRecord.setMemberId(memberId);
+        memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
+        memberAccountRecord.setSymbol(walletCode);
+        memberAccountRecord.setContent(MemberWalletCoinEnum.ZHIYATOGUSD.getValue());
+        memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+        memberAccountRecord.setAmount(balance);
+        memberAccountMoneyChangeDao.insert(memberAccountRecord);
+
+        return Result.ok(MessageSourceUtils.getString("member_service_0006"));
+    }
+
 }

--
Gitblit v1.9.1