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