From 9ee5d996a6537121aad58c46adb066c82381fa1c Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Thu, 24 Feb 2022 15:31:58 +0800
Subject: [PATCH] 20222223
---
src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java | 233 +++++++++++++++++++++++++++++++++++++++++----------------
1 files changed, 166 insertions(+), 67 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 bffd942..54eed4f 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
@@ -11,6 +11,7 @@
import com.xcong.excoin.modules.coin.dao.ZhiYaRecordDao;
import com.xcong.excoin.modules.coin.entity.ZhiYaEntity;
import com.xcong.excoin.modules.coin.entity.ZhiYaRecordEntity;
+import com.xcong.excoin.modules.coin.parameter.vo.*;
import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -27,13 +28,6 @@
import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity;
import com.xcong.excoin.modules.coin.mapper.MemberAccountMoneyChangeMapper;
import com.xcong.excoin.modules.coin.parameter.dto.RecordsPageDto;
-import com.xcong.excoin.modules.coin.parameter.vo.AllWalletCoinVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeInfoVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberAgentIntoInfoVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinInfoVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinVo;
-import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletContractInfoVo;
import com.xcong.excoin.modules.coin.service.CoinService;
import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao;
import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
@@ -60,8 +54,6 @@
@Resource
MemberWalletCoinDao memberWalletCoinDao;
@Resource
- ZhiYaDao zhiYaDao;
- @Resource
MemberWalletContractDao memberWalletContractDao;
@Resource
MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
@@ -69,6 +61,8 @@
MemberWalletAgentDao memberWalletAgentDao;
@Resource
ZhiYaRecordDao zhiYaRecordDao;
+ @Resource
+ ZhiYaDao zhiYaDao;
@Resource
RedisUtils redisUtils;
@@ -618,59 +612,111 @@
}
@Override
- public Result usdtToGusd(BigDecimal balance) {
+ public Result usdtToGusd(BigDecimal balance,Integer type) {
//获取用户ID
Long memberId = LoginUserUtils.getAppLoginUser().getId();
if (balance.compareTo(BigDecimal.ZERO) <= 0) {
return Result.fail(MessageSourceUtils.getString("member_service_0004"));
}
+ if(1 == type){
+ // 扣币
+ String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+ MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+ BigDecimal availableBalance = memberWalletCoinEntity.getAvailableBalance();
+ BigDecimal totalBalance = memberWalletCoinEntity.getTotalBalance();
- // 扣币
- 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_0005"));
+ }
+ BigDecimal total = totalBalance.subtract(balance);
+ if (total.compareTo(BigDecimal.ZERO) < 0) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ }
- BigDecimal available = availableBalance.subtract(balance);
- if (available.compareTo(BigDecimal.ZERO) < 0) {
- return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ memberWalletCoinEntity.setAvailableBalance(available);
+ memberWalletCoinEntity.setTotalBalance(total);
+ int i = memberWalletCoinDao.updateById(memberWalletCoinEntity);
+ if (i < 1) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+ }
+ //添加资金划转历史记录
+ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+ //获取usdt兑换gusd的兑换比例
+ BigDecimal usdtToGusd = new BigDecimal(redisUtils.getString("USDTTOGSD"));
+ BigDecimal gusdBalance = balance.multiply(usdtToGusd);
+
+ ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
+ BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
+ BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
+ zhiya.setAvailableBalance(gusdAvailableBalance.add(gusdBalance));
+ zhiya.setTotalBalance(gusdTotalBalance.add(gusdBalance));
+
+ int updateById = zhiYaDao.updateById(zhiya);
+ if (updateById < 1) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+ }
+
+ //添加资金划转历史记录
+ 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(gusdBalance);
+ memberAccountMoneyChangeDao.insert(memberAccountRecord);
+ }else if(2 == type){
+ // 扣币
+ ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
+ BigDecimal availableBalance = zhiya.getAvailableBalance();
+ BigDecimal totalBalance = zhiya.getTotalBalance();
+
+ BigDecimal available = availableBalance.subtract(balance);
+ if (available.compareTo(BigDecimal.ZERO) < 0) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ }
+ BigDecimal total = totalBalance.subtract(balance);
+ if (total.compareTo(BigDecimal.ZERO) < 0) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ }
+
+ zhiya.setAvailableBalance(available);
+ zhiya.setTotalBalance(total);
+ int i = zhiYaDao.updateById(zhiya);
+ if (i < 1) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+ }
+ //添加资金划转历史记录
+ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+ //获取usdt兑换gusd的兑换比例
+ BigDecimal usdtToGusd = new BigDecimal(redisUtils.getString("USDTTOGSD"));
+ BigDecimal usdtBalance = balance.divide(usdtToGusd);
+
+ String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+ MemberWalletCoinEntity memberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+
+ BigDecimal gusdAvailableBalance = memberWalletCoinEntity.getAvailableBalance();
+ BigDecimal gusdTotalBalance = memberWalletCoinEntity.getTotalBalance();
+ memberWalletCoinEntity.setAvailableBalance(gusdAvailableBalance.add(usdtBalance));
+ memberWalletCoinEntity.setTotalBalance(gusdTotalBalance.add(usdtBalance));
+
+ int updateById = memberWalletCoinDao.updateById(memberWalletCoinEntity);
+ if (updateById < 1) {
+ return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+ }
+
+ //添加资金划转历史记录
+ memberAccountRecord.setMemberId(memberId);
+ memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
+ memberAccountRecord.setSymbol(walletCode);
+ memberAccountRecord.setContent(MemberWalletCoinEnum.ZHIYATOUSDT.getValue());
+ memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+ memberAccountRecord.setAmount(usdtBalance);
+ memberAccountMoneyChangeDao.insert(memberAccountRecord);
+
+ }else{
+ return Result.fail("member_controller_0005");
}
- BigDecimal total = totalBalance.subtract(balance);
- if (total.compareTo(BigDecimal.ZERO) < 0) {
- return Result.fail(MessageSourceUtils.getString("member_service_0005"));
- }
-
- memberWalletCoinEntity.setAvailableBalance(available);
- memberWalletCoinEntity.setTotalBalance(total);
- int i = memberWalletCoinDao.updateById(memberWalletCoinEntity);
- if (i < 1) {
- return Result.fail(MessageSourceUtils.getString("member_service_0096"));
- }
- //添加资金划转历史记录
- MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
- //获取usdt兑换gusd的兑换比例
- ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
-
-// String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
-// MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
- BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
- BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
- zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
- zhiya.setTotalBalance(gusdTotalBalance.add(balance));
-
- int updateById = zhiYaDao.updateById(zhiya);
- if (updateById < 1) {
- return Result.fail(MessageSourceUtils.getString("member_service_0096"));
- }
-
- //添加资金划转历史记录
- 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_0024"));
}
@@ -680,12 +726,10 @@
//获取用户ID
Long memberId = LoginUserUtils.getAppLoginUser().getId();
if (balance.compareTo(new BigDecimal(100)) < 0) {
- return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0006"));
}
- //质押Gusd,质押数量进入冻结余额,
-// String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
-// MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
+ //质押Gusd,质押数量进入冻结余额,
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
@@ -693,13 +737,13 @@
BigDecimal available = gusdAvailableBalance.subtract(balance);
if (available.compareTo(BigDecimal.ZERO) < 0) {
- return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
}
BigDecimal total = gusdTotalBalance.subtract(balance);
if (total.compareTo(BigDecimal.ZERO) < 0) {
- return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0005"));
}
- zhiya.setFrozenBalance(gusdfrozenBalance.add(gusdfrozenBalance));
+ zhiya.setFrozenBalance(gusdfrozenBalance.add(balance));
zhiya.setAvailableBalance(gusdAvailableBalance.subtract(balance));
int updateById = zhiYaDao.updateById(zhiya);
@@ -732,15 +776,30 @@
}
@Override
- public Result shuhuiGusd(BigDecimal balance) {
+ public Result shuhuiGusd(BigDecimal balance,Long id) {
//获取用户ID
Long memberId = LoginUserUtils.getAppLoginUser().getId();
if (balance.compareTo(BigDecimal.ZERO) <= 0) {
- return Result.fail(MessageSourceUtils.getString("order_service_0010"));
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
}
- //质押Gusd,质押数量进入冻结余额,
-// String gusdName = MemberWalletCoinEnum.WALLETGUSDCOINCODE.getValue();
-// MemberWalletCoinEntity gusdMemberWalletCoinEntity = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, gusdName);
+ //赎回Gusd,获取质押单据,
+ ZhiYaRecordEntity zhiYaRecordEntity = zhiYaRecordDao.selectByIdAndMemberId(id,memberId);
+ if(ObjectUtil.isEmpty(zhiYaRecordEntity)){
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0002"));
+ }
+ if(1 != zhiYaRecordEntity.getOrderStatus()){
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0003"));
+ }
+ BigDecimal zhiyaCnt = zhiYaRecordEntity.getZhiyaCnt();
+ if(balance.compareTo(zhiyaCnt) > 0){
+ return Result.fail(MessageSourceUtils.getString("zhiya_service_0004"));
+ }
+ zhiYaRecordEntity.setZhiyaCnt(zhiyaCnt.subtract(balance));
+ if(zhiyaCnt.compareTo(balance) == 0){
+ zhiYaRecordEntity.setOrderStatus(2);
+ }
+ zhiYaRecordDao.updateById(zhiYaRecordEntity);
+ //赎回Gusd,质押数量进入可用余额,
ZhiYaEntity zhiya = zhiYaDao.selectByMemberId(memberId);
BigDecimal gusdAvailableBalance = zhiya.getAvailableBalance();
BigDecimal gusdTotalBalance = zhiya.getTotalBalance();
@@ -754,7 +813,47 @@
if (total.compareTo(BigDecimal.ZERO) < 0) {
return Result.fail(MessageSourceUtils.getString("member_service_0005"));
}
- return null;
+ zhiya.setFrozenBalance(gusdfrozenBalance.subtract(balance));
+ zhiya.setAvailableBalance(gusdAvailableBalance.add(balance));
+ zhiYaDao.updateById(zhiya);
+ return Result.ok(MessageSourceUtils.getString("member_service_0024"));
+ }
+
+ @Override
+ public Result findMemberGusdInfo() {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+ ZhiYaEntity zhiYaEntity = zhiYaDao.selectByMemberId(memberId);
+ MemberGusdInfoVo memberGusdInfoVo = new MemberGusdInfoVo();
+ memberGusdInfoVo.setMemberId(memberId);
+ memberGusdInfoVo.setFrozenBalance(zhiYaEntity.getFrozenBalance());
+ memberGusdInfoVo.setTotalBalance(zhiYaEntity.getTotalBalance());
+ memberGusdInfoVo.setAvailableBalance(zhiYaEntity.getAvailableBalance());
+ return Result.ok(memberGusdInfoVo);
+ }
+
+ @Override
+ public Result getZhiyaRecords(RecordsPageDto recordsPageDto) {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+ Page<ZhiyaInfoVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+ ZhiYaEntity zhiya = new ZhiYaEntity();
+ zhiya.setMemberId(memberId);
+ IPage<ZhiyaInfoVo> lists = zhiYaRecordDao.selectByMemberIdInPage(page, zhiya);
+ return Result.ok(lists);
+ }
+
+ @Override
+ public Result getusdtToGusdRecords(RecordsPageDto recordsPageDto) {
+ //获取用户ID
+ Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+ Page<UsdtToGusdVo> page = new Page<>(recordsPageDto.getPageNum(), recordsPageDto.getPageSize());
+ MemberAccountMoneyChange memberAccountMoneyChange = new MemberAccountMoneyChange();
+ memberAccountMoneyChange.setMemberId(memberId);
+ IPage<UsdtToGusdVo> lists = memberAccountMoneyChangeDao.selectByMemberIdInPage(page, memberAccountMoneyChange);
+ return Result.ok(lists);
}
public String generateSimpleSerialno(String userId) {
--
Gitblit v1.9.1