From de75c6e2df0421058d76bb493d123607b81a2c82 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Fri, 22 May 2020 16:37:27 +0800 Subject: [PATCH] Merge branch 'master' of https://gitee.com/chonggaoxiao/new_excoin.git --- src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java | 106 ++++++++++++++++++++++++++++++----------------------- 1 files changed, 60 insertions(+), 46 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 f5ff2fb..1a392da 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 @@ -2,16 +2,13 @@ import java.math.BigDecimal; import java.util.ArrayList; -import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; - import javax.annotation.Resource; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; - import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.xcong.excoin.common.LoginUserUtils; import com.xcong.excoin.common.enumerates.CoinTypeEnum; @@ -30,8 +27,8 @@ import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity; import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity; import com.xcong.excoin.utils.MessageSourceUtils; - import cn.hutool.core.collection.CollUtil; +import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @Service @@ -150,14 +147,48 @@ @Override public Result getWalletContractById() { - return Result.fail(MessageSourceUtils.getString("member_service_0002")); - + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + + CnyUsdtExchange cnyUsdtExchange =cnyUsdtExchangeDao.getCNYAndUSDTOne(); + BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); + + String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); + MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); + if(ObjectUtil.isEmpty(walletContract)) { + return Result.fail(MessageSourceUtils.getString("member_service_0001")); + } + /** + * todo + */ + //获取当前的合约持仓 + //获取实时盈亏 + BigDecimal profitAndLoss = new BigDecimal("50.000"); + //获取总付款 + BigDecimal totalPayment = new BigDecimal("50.000"); + + walletContract.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN)); + + BigDecimal lastTotalBalance = new BigDecimal("0"); + BigDecimal totalBalance = walletContract.getTotalBalance(); + lastTotalBalance = totalBalance.add(profitAndLoss); + if(lastTotalBalance.compareTo(BigDecimal.ZERO) < 0) { + lastTotalBalance = new BigDecimal("0"); + } + + walletContract.setAvailableBalance(walletContract.getAvailableBalance()); + walletContract.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); + + Map<String,Object> map = new HashMap<String, Object>(); + map.put(MemberWalletCoinEnum.WALLETCOINUSDT.getValue(), lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); + map.put(MemberWalletCoinEnum.WALLETCONTRACT.getValue(), walletContract); + map.put(MemberWalletCoinEnum.WALLETCOINCNY.getValue(), lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); + return Result.ok(map); } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Result coinWalletTransferToContract(BigDecimal balance, String symbol) { - try { if(balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } @@ -200,31 +231,25 @@ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); memberAccountRecord.setMemberId(memberId); - memberAccountRecord.setPrice(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); - memberAccountRecord.setTime(new Date()); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加合约资金划转历史记录 memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue()); memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue()); - memberAccountRecord.setPrice(balance.setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); memberAccountMoneyChangeDao.insert(memberAccountRecord); } - } catch (Exception e) { - e.printStackTrace(); - return Result.fail(MessageSourceUtils.getString("member_service_0096")); - } return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Result contractTransferToWalletCoin(BigDecimal balance, String symbol) { - try { if(balance.compareTo(BigDecimal.ZERO)<=0){ return Result.fail(MessageSourceUtils.getString("member_service_0004")); } @@ -251,12 +276,12 @@ // 加币 MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode); BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance(); - walletCoinAvailableBalance.add(balance); + BigDecimal CoinAvailableBalance = walletCoinAvailableBalance.add(balance); BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance(); - walletCoinTotalBalance.add(balance); + BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance); - walletCoin.setAvailableBalance(walletCoinAvailableBalance.setScale(4, BigDecimal.ROUND_DOWN)); - walletCoin.setTotalBalance(walletCoinTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); + walletCoin.setAvailableBalance(CoinAvailableBalance.setScale(4, BigDecimal.ROUND_DOWN)); + walletCoin.setTotalBalance(CoinTotalBalance.setScale(4, BigDecimal.ROUND_DOWN)); int updateById = memberWalletCoinDao.updateById(walletCoin); if(updateById < 1) { return Result.fail(MessageSourceUtils.getString("member_service_0096")); @@ -266,32 +291,29 @@ MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange(); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); memberAccountRecord.setMemberId(memberId); - memberAccountRecord.setPrice(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); - memberAccountRecord.setTime(new Date()); memberAccountMoneyChangeDao.insert(memberAccountRecord); //添加资金划转历史记录 memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue()); memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); - memberAccountRecord.setPrice(balance.setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountMoneyChangeDao.insert(memberAccountRecord); - } catch (Exception e) { - e.printStackTrace(); - return Result.fail(MessageSourceUtils.getString("member_service_0096")); - } return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @Override - public Result findWalletContractBySymbol(String symbol) { - /** - * ---todo - */ - return null; + public Result findWalletContractBySymbol() { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue(); + MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode); + + return Result.ok(walletContract); } @Override @@ -334,9 +356,8 @@ } @Override - @Transactional + @Transactional(rollbackFor = Exception.class) public Result agentTransferToWalletCoin(BigDecimal balance, Integer transfertype) { - try { if(balance.compareTo(BigDecimal.ZERO) <= 0) { return Result.fail(MessageSourceUtils.getString("member_service_0004")); } @@ -386,8 +407,7 @@ memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN); - memberAccountRecord.setTime(new Date()); - memberAccountRecord.setPrice(balance.setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue()); @@ -411,20 +431,14 @@ memberAccountRecord.setSymbol(walletCode); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue()); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT); - memberAccountRecord.setTime(new Date()); - memberAccountRecord.setPrice(balance.setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN)); memberAccountMoneyChangeDao.insert(memberAccountRecord); memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue()); } - memberAccountRecord.setPrice(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); + memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN)); memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT); - memberAccountRecord.setTime(new Date()); memberAccountMoneyChangeDao.insert(memberAccountRecord); - } catch (Exception e) { - e.printStackTrace(); - return Result.fail(MessageSourceUtils.getString("member_service_0096")); - } return Result.ok(MessageSourceUtils.getString("member_service_0006")); } @@ -445,7 +459,7 @@ walletAgent.setAvailableBalance(availableBalance); Map<String,Object> map = new HashMap<String, Object>(); map.put(MemberWalletCoinEnum.WALLETCOINUSDT.getValue(), availableBalance.setScale(4, BigDecimal.ROUND_DOWN)); - map.put(MemberWalletCoinEnum.WALLETAGENTCNY.getValue(), walletAgent); + map.put(MemberWalletCoinEnum.WALLETAGENT.getValue(), walletAgent); map.put(MemberWalletCoinEnum.WALLETCOINCNY.getValue(), multiply.setScale(4, BigDecimal.ROUND_DOWN)); return Result.ok(map); } -- Gitblit v1.9.1