From 73699775f5546177ce71e3bae33d83a8aa346793 Mon Sep 17 00:00:00 2001 From: gao <gaoleox@163> Date: Mon, 25 May 2020 11:28:10 +0800 Subject: [PATCH] Merge branch 'master' of https://chonggaoxiao:xcg523511090712@gitee.com/chonggaoxiao/new_excoin.git --- src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java | 120 +++++++++++++++++++++++++++++++++++++++++++----------------- 1 files changed, 86 insertions(+), 34 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 3ddaaeb..7f8ea9e 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,26 +2,23 @@ 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; import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum; -import com.xcong.excoin.common.exception.GlobalException; import com.xcong.excoin.common.response.Result; import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao; import com.xcong.excoin.modules.coin.dao.platform.CnyUsdtExchangeDao; import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange; import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange; +import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinInfoVo; import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletCoinVo; import com.xcong.excoin.modules.coin.service.CoinService; import com.xcong.excoin.modules.member.dao.MemberWalletAgentDao; @@ -31,8 +28,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 @@ -64,10 +61,23 @@ if(!StrUtil.isEmpty(memberId.toString())) { - List<MemberWalletCoinEntity> MemberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId); + List<MemberWalletCoinEntity> memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId); - if(CollUtil.isNotEmpty(MemberWalletCoinlist)) { - for(MemberWalletCoinEntity walletCoin : MemberWalletCoinlist) { + List<MemberWalletCoinInfoVo> memberWalletCoinInfoVolist = new ArrayList<MemberWalletCoinInfoVo>(); + MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo(); + if(ObjectUtil.isNotEmpty(memberWalletCoinlist)) { + for(MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) { + memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance()); + memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance()); + memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId()); + memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance()); + memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo); + } + } + + + if(CollUtil.isNotEmpty(memberWalletCoinlist)) { + for(MemberWalletCoinEntity walletCoin : memberWalletCoinlist) { if(MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) { totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); BigDecimal totalCny = totalUsdt.multiply(cnyUsdt); @@ -84,34 +94,35 @@ MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo(); memberWalletCoinVo.setTotalUsdt(totalUsdt.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setTotalCny(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); - memberWalletCoinVo.setWalletCoinEntities(MemberWalletCoinlist); + memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinInfoVolist); return Result.ok(memberWalletCoinVo); }else { - List<MemberWalletCoinEntity> MemberWalletCoinlist = new ArrayList<MemberWalletCoinEntity>(); - MemberWalletCoinEntity coin = new MemberWalletCoinEntity(); + List<MemberWalletCoinInfoVo> memberWalletCoinlist = new ArrayList<MemberWalletCoinInfoVo>(); + MemberWalletCoinInfoVo coin = new MemberWalletCoinInfoVo(); coin.setAvailableBalance(BigDecimal.ZERO); coin.setTotalBalance(BigDecimal.ZERO); coin.setFrozenBalance(BigDecimal.ZERO); coin.setWalletCode(CoinTypeEnum.BTC.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.ETH.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.LTC.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.BCH.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.USDT.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.EOS.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.XRP.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); coin.setWalletCode(CoinTypeEnum.ETC.toString()); - MemberWalletCoinlist.add(coin); + memberWalletCoinlist.add(coin); + MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo(); memberWalletCoinVo.setTotalUsdt(totalUsdt.setScale(4, BigDecimal.ROUND_DOWN)); memberWalletCoinVo.setTotalCny(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); - memberWalletCoinVo.setWalletCoinEntities(MemberWalletCoinlist); + memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinlist);; return Result.ok(memberWalletCoinVo); } } catch (Exception e) { @@ -121,27 +132,31 @@ } @Override - public Result getWalletCoinById(Long id) { + public Result getWalletCoinBySymbol(String symbol) { try { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectById(id); - + MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId,symbol); + MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo(); + memberWalletCoinInfoVo.setFrozenBalance(walletCoin.getFrozenBalance()); + memberWalletCoinInfoVo.setAvailableBalance(walletCoin.getAvailableBalance()); + memberWalletCoinInfoVo.setMemberId(memberId); + memberWalletCoinInfoVo.setWalletCode(symbol); if(!StrUtil.isEmpty(memberId.toString())) { CnyUsdtExchange cnyUsdtExchange =cnyUsdtExchangeDao.getCNYAndUSDTOne(); BigDecimal cnyUsdt = cnyUsdtExchange.getValue(); BigDecimal total = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance()); if(MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) { - walletCoin.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); + memberWalletCoinInfoVo.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); }else { BigDecimal closePrice = new BigDecimal("10.0000"); //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(wallet.getCode()+"/USDT"); - walletCoin.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); + memberWalletCoinInfoVo.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN)); } } - return Result.ok(walletCoin); + return Result.ok(memberWalletCoinInfoVo); } catch (Exception e) { e.printStackTrace(); return Result.fail(MessageSourceUtils.getString("member_service_0003")); @@ -151,8 +166,43 @@ @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 @@ -276,11 +326,13 @@ } @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 @@ -426,7 +478,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