From d775bb5dacca4c6ff33c65a0cb891f5992cc1bed Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Thu, 28 May 2020 20:12:42 +0800
Subject: [PATCH] 同步k线、最新价、人民币美元汇率、homesymbols接口

---
 src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java                  |    5 
 src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java               |   14 
 src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java         |   18 
 src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java             |    4 
 src/main/resources/mapper/platform/PlatformCnyUsdtExchangeDao.xml                                    |    4 
 src/main/java/com/xcong/excoin/modules/symbols/parameter/vo/HomeSymbolsVo.java                       |   31 +
 src/main/java/com/xcong/excoin/common/contants/AppContants.java                                      |   12 
 src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java                     |    3 
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java    |   55 ++
 src/main/java/com/xcong/excoin/modules/symbols/controller/SymbolsController.java                     |   33 +
 src/main/java/com/xcong/excoin/modules/symbols/service/SymbolsService.java                           |    4 
 src/main/java/com/xcong/excoin/ExcoinApplication.java                                                |    2 
 src/main/java/com/xcong/excoin/modules/symbols/entity/PlatformSymbolsContractEntity.java             |    2 
 src/main/java/com/xcong/excoin/quartz/job/NewestPriceUpdateJob.java                                  |   65 ++
 src/main/resources/mapper/platform/PlatformSymbolsContractDao.xml                                    |    4 
 src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java                   |   10 
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java                        |  931 ++++++++++++++++++------------------
 src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java       |   21 
 src/main/resources/mapper/contract/ContractEntrustOrderDao.xml                                       |    5 
 src/main/java/com/xcong/excoin/modules/platform/entity/PlatformSymbolsSkuEntity.java                 |    4 
 src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java |    2 
 src/main/resources/application-test.yml                                                              |  102 ++++
 src/main/java/com/xcong/excoin/quartz/job/KlineDataUpdateJob.java                                    |    2 
 /dev/null                                                                                            |   12 
 src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java                  |   65 ++
 src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java                         |   65 ++
 src/main/java/com/xcong/excoin/modules/symbols/dao/PlatformSymbolsContractDao.java                   |    6 
 src/main/resources/application.yml                                                                   |    8 
 28 files changed, 984 insertions(+), 505 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/ExcoinApplication.java b/src/main/java/com/xcong/excoin/ExcoinApplication.java
index 0c94c3f..a2a7e2b 100644
--- a/src/main/java/com/xcong/excoin/ExcoinApplication.java
+++ b/src/main/java/com/xcong/excoin/ExcoinApplication.java
@@ -3,11 +3,13 @@
 import org.mybatis.spring.annotation.MapperScan;
 import org.springframework.boot.SpringApplication;
 import org.springframework.boot.autoconfigure.SpringBootApplication;
+import org.springframework.scheduling.annotation.EnableScheduling;
 import springfox.documentation.swagger2.annotations.EnableSwagger2;
 
 /**
  * @author helius
  */
+@EnableScheduling
 @EnableSwagger2
 @SpringBootApplication
 @MapperScan("com.xcong.excoin.modules.*.dao")
diff --git a/src/main/java/com/xcong/excoin/common/contants/AppContants.java b/src/main/java/com/xcong/excoin/common/contants/AppContants.java
index 0ad9052..9619ae1 100644
--- a/src/main/java/com/xcong/excoin/common/contants/AppContants.java
+++ b/src/main/java/com/xcong/excoin/common/contants/AppContants.java
@@ -47,6 +47,16 @@
     /**
      * 初始化金额
      */
-    public static final BigDecimal INIT_MONEY = new BigDecimal(0.000000);
+    public static final BigDecimal INIT_MONEY = BigDecimal.ZERO;
+
+    /**
+     * homeSymbols 接口状态值 币币
+     */
+    public static final int HOME_SYMBOLS_COIN = 1;
+
+    /**
+     * homeSymbols 接口状态值 合约
+     */
+    public static final int HOME_SYMBOLS_CONTRACT = 2;
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/coin/entity/CnyUsdtExchange.java b/src/main/java/com/xcong/excoin/modules/coin/entity/CnyUsdtExchange.java
deleted file mode 100644
index 76089b7..0000000
--- a/src/main/java/com/xcong/excoin/modules/coin/entity/CnyUsdtExchange.java
+++ /dev/null
@@ -1,27 +0,0 @@
-package com.xcong.excoin.modules.coin.entity;
-
-import java.math.BigDecimal;
-
-import com.baomidou.mybatisplus.annotation.TableName;
-import com.xcong.excoin.common.system.base.BaseEntity;
-
-import lombok.Data;
-
-/**
- * 行情人民币与usdt兑现价格表
- */
-@Data
-@TableName("platform_cny_usdt_exchange")
-public class CnyUsdtExchange extends BaseEntity{
-
-	private static final long serialVersionUID = 1L;
-	
-    /**
-     * CNY/USDT
-     */
-    private BigDecimal value;
-    
-    private BigDecimal diff;
-
-
-}
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 719b6a8..0e8d92e 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
@@ -5,6 +5,7 @@
 import java.util.List;
 import javax.annotation.Resource;
 
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -13,7 +14,6 @@
 import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.coin.dao.MemberAccountMoneyChangeDao;
-import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange;
 import com.xcong.excoin.modules.coin.entity.MemberAccountMoneyChange;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberAccountMoneyChangeInfoVo;
 import com.xcong.excoin.modules.coin.parameter.vo.MemberWalletAgentInfoVo;
@@ -27,487 +27,488 @@
 import com.xcong.excoin.modules.member.entity.MemberWalletAgentEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletContractEntity;
-import com.xcong.excoin.modules.platform.dao.CnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
 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
-public class CoinServiceImpl extends ServiceImpl<MemberWalletCoinDao, MemberWalletCoinEntity> implements CoinService{
+public class CoinServiceImpl extends ServiceImpl<MemberWalletCoinDao, MemberWalletCoinEntity> implements CoinService {
 
-	//@Resource
-	//SymbolsService symbolsService;
-	@Resource
-	CnyUsdtExchangeDao cnyUsdtExchangeDao;
-	@Resource
-	MemberWalletCoinDao memberWalletCoinDao;
-	@Resource
-	MemberWalletContractDao memberWalletContractDao;
-	@Resource
-	MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
-	@Resource
-	MemberWalletAgentDao memberWalletAgentDao;
-	
-	
-	@Override
-	public Result getWalletCoin() {
-			//获取用户ID
-			Long memberId = LoginUserUtils.getAppLoginUser().getId();
-			CnyUsdtExchange cnyUsdtExchange =cnyUsdtExchangeDao.getCNYAndUSDTOne();
-			BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
-			
-			BigDecimal totalUsdts = BigDecimal.ZERO;
-			if(!StrUtil.isEmpty(memberId.toString())) {
-				
-				List<MemberWalletCoinEntity> memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId);
-				List<MemberWalletCoinInfoVo> memberWalletCoinInfoVolist = new ArrayList<MemberWalletCoinInfoVo>();
-				
-				if(CollUtil.isNotEmpty(memberWalletCoinlist)) {
-					for(MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) {
-						MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo();
-						memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
-						memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
-						memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId());
-						memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
-						memberWalletCoinInfoVo.setWalletCode(memberWalletCoinEntity.getWalletCode());
-						memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo);
-					}
-				}
-				
-				if(CollUtil.isNotEmpty(memberWalletCoinInfoVolist)) {
-					for(MemberWalletCoinInfoVo walletCoin : memberWalletCoinInfoVolist) {
-						if(MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) {	
-							BigDecimal totalUsdt = BigDecimal.ZERO;
-							totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
-							totalUsdts = totalUsdts.add(totalUsdt);
-							BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
-							walletCoin.setTotalBalance(totalCny.setScale(4, BigDecimal.ROUND_DOWN));
-						}else {
-							BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
-							BigDecimal closePrice = new BigDecimal("10.0000");
-							BigDecimal totalUsdt = BigDecimal.ZERO;
-							//Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(walletCoin.getWalletCode()+"/USDT");
-							totalUsdt = totalUsdt.add(amount.multiply(closePrice));
-							totalUsdts = totalUsdts.add(totalUsdt);
-							walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-						}
-					}
-				}
-				MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo();
-				memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
-				memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-				memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinInfoVolist);
-				return Result.ok(memberWalletCoinVo);
-			}else {
-				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);
-				coin.setWalletCode(CoinTypeEnum.ETH.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.LTC.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.BCH.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.USDT.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.EOS.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.XRP.toString());
-				memberWalletCoinlist.add(coin);
-				coin.setWalletCode(CoinTypeEnum.ETC.toString());
-				memberWalletCoinlist.add(coin);
-				
-				MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo();
-				memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
-				memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-				memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinlist);;
-				return Result.ok(memberWalletCoinVo);
-			}
-	}
+    //@Resource
+    //SymbolsService symbolsService;
+    @Resource
+    PlatformCnyUsdtExchangeDao cnyUsdtExchangeDao;
+    @Resource
+    MemberWalletCoinDao memberWalletCoinDao;
+    @Resource
+    MemberWalletContractDao memberWalletContractDao;
+    @Resource
+    MemberAccountMoneyChangeDao memberAccountMoneyChangeDao;
+    @Resource
+    MemberWalletAgentDao memberWalletAgentDao;
 
-	@Override
-	public Result getWalletCoinBySymbol(String symbol) {
-			//获取用户ID
-			Long memberId = LoginUserUtils.getAppLoginUser().getId();
-			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())) {
-					memberWalletCoinInfoVo.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-					
-				}else {
-					BigDecimal closePrice = new BigDecimal("10.0000");
-					//Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(wallet.getCode()+"/USDT");
-					memberWalletCoinInfoVo.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-				}
-			}
-			return Result.ok(memberWalletCoinInfoVo);
-	}
 
-	@Override
-	public Result getWalletContractById() {
-		
-			//获取用户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");
-			BigDecimal lastTotalBalance = new BigDecimal("0");
-			BigDecimal totalBalance = walletContract.getTotalBalance();
-			lastTotalBalance = totalBalance.add(profitAndLoss);
-			if(lastTotalBalance.compareTo(BigDecimal.ZERO) < 0) {
-				lastTotalBalance = new BigDecimal("0");
-			}
-			
-			MemberWalletContractInfoVo memberWalletContractInfoVo = new MemberWalletContractInfoVo();
-			memberWalletContractInfoVo.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN));
-			memberWalletContractInfoVo.setAvailableBalance(walletContract.getAvailableBalance());
-			memberWalletContractInfoVo.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN));
-			memberWalletContractInfoVo.setTotalRMBBalance(lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
-			
-			return Result.ok(memberWalletContractInfoVo);
-	}
+    @Override
+    public Result getWalletCoin() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
+        BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public Result coinWalletTransferToContract(BigDecimal balance, String symbol) {
-			if(balance.compareTo(BigDecimal.ZERO) <= 0) {
-				return Result.fail(MessageSourceUtils.getString("member_service_0004"));
-			}
-			//获取用户ID
-			Long memberId = LoginUserUtils.getAppLoginUser().getId();
-			
-			if(!StrUtil.isEmpty(memberId.toString())) {
-				String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-				MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId,walletCode);
-				BigDecimal available = walletCoin.getAvailableBalance();
-				// 扣币
-				BigDecimal total = available.subtract(balance);
-				if(total.compareTo(BigDecimal.ZERO)<0) {
-					return Result.fail(MessageSourceUtils.getString("member_service_0005"));
-				}
-				BigDecimal subtract = walletCoin.getTotalBalance().subtract(balance);
-				if(subtract.compareTo(BigDecimal.ZERO)<0) {
-					return Result.fail(MessageSourceUtils.getString("member_service_0005"));
-				}
-				walletCoin.setAvailableBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
-				walletCoin.setTotalBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN));
-				int updateWalletCoinById = memberWalletCoinDao.updateById(walletCoin);
-				if(updateWalletCoinById < 1) {
-					return Result.fail(MessageSourceUtils.getString("member_service_0096"));
-				}
-				// 加币
-				// 查询合约账户
-				MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
-				BigDecimal availableBalance = walletContract.getAvailableBalance();
-				BigDecimal add = availableBalance.add(balance);
-				walletContract.setAvailableBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
-				BigDecimal totalBalance = walletContract.getTotalBalance();
-				BigDecimal totalBigDecimal = totalBalance.add(balance);
-				walletContract.setTotalBalance(totalBigDecimal.setScale(4, BigDecimal.ROUND_DOWN));
-				int updateWalletContractById = memberWalletContractDao.updateById(walletContract);
-				if(updateWalletContractById < 1) {
-					return Result.fail(MessageSourceUtils.getString("member_service_0096"));
-				}
-				//添加币币资金划转历史记录
-				MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
-				memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
-				memberAccountRecord.setMemberId(memberId);
-				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);
-				memberAccountMoneyChangeDao.insert(memberAccountRecord);
-				
-				//添加合约资金划转历史记录
-				memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue());
-				memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
-				memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
-				memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
-				memberAccountMoneyChangeDao.insert(memberAccountRecord);
-			}
-		return Result.ok(MessageSourceUtils.getString("member_service_0006"));
-	}
+        BigDecimal totalUsdts = BigDecimal.ZERO;
+        if (!StrUtil.isEmpty(memberId.toString())) {
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public Result contractTransferToWalletCoin(BigDecimal balance, String symbol) {
-			if(balance.compareTo(BigDecimal.ZERO)<=0){
-				return Result.fail(MessageSourceUtils.getString("member_service_0004"));
-			}
-			//获取用户ID
-			Long memberId = LoginUserUtils.getAppLoginUser().getId();
-			
-			String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-			MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
-			BigDecimal availableBalance = walletContract.getAvailableBalance();
-			// 扣币
-			BigDecimal availableSubtract = availableBalance.subtract(balance);
-			if(availableSubtract.compareTo(BigDecimal.ZERO) < 0 ) {
-				return Result.fail(MessageSourceUtils.getString("member_service_0007"));
-			}
-			BigDecimal totalBalance = walletContract.getTotalBalance();
-			BigDecimal totalSubtract = totalBalance.subtract(balance);
-			
-			walletContract.setAvailableBalance(availableSubtract.setScale(4, BigDecimal.ROUND_DOWN));
-			walletContract.setTotalBalance(totalSubtract.setScale(4, BigDecimal.ROUND_DOWN));
-			int updateWalletCoinById = memberWalletContractDao.updateById(walletContract);
-			if(updateWalletCoinById < 1) {
-				return Result.fail(MessageSourceUtils.getString("member_service_0096"));
-			}
-			// 加币
-			MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
-			BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance();
-			BigDecimal CoinAvailableBalance = walletCoinAvailableBalance.add(balance);
-			BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
-			BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance);
-			
-			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"));
-			}
-			
-			//添加资金划转历史记录
-			MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
-			memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
-			memberAccountRecord.setMemberId(memberId);
-			memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
-			memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
-			memberAccountRecord.setSymbol(walletCode);
-			memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
-			memberAccountMoneyChangeDao.insert(memberAccountRecord);
-			
-			//添加资金划转历史记录
-			memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue());
-			memberAccountRecord.setSymbol(walletCode);
-			memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-			memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
-			memberAccountMoneyChangeDao.insert(memberAccountRecord);
-		return Result.ok(MessageSourceUtils.getString("member_service_0006"));
-	}
+            List<MemberWalletCoinEntity> memberWalletCoinlist = memberWalletCoinDao.selectMemberWalletCoinsByMemberId(memberId);
+            List<MemberWalletCoinInfoVo> memberWalletCoinInfoVolist = new ArrayList<MemberWalletCoinInfoVo>();
 
-	@Override
-	public Result findWalletContractBySymbol() {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-		MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
-		BigDecimal availableBalance = walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN);
-		return Result.ok(availableBalance);
-	}
+            if (CollUtil.isNotEmpty(memberWalletCoinlist)) {
+                for (MemberWalletCoinEntity memberWalletCoinEntity : memberWalletCoinlist) {
+                    MemberWalletCoinInfoVo memberWalletCoinInfoVo = new MemberWalletCoinInfoVo();
+                    memberWalletCoinInfoVo.setAvailableBalance(memberWalletCoinEntity.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setFrozenBalance(memberWalletCoinEntity.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setMemberId(memberWalletCoinEntity.getMemberId());
+                    memberWalletCoinInfoVo.setTotalBalance(memberWalletCoinEntity.getTotalBalance().setScale(4, BigDecimal.ROUND_DOWN));
+                    memberWalletCoinInfoVo.setWalletCode(memberWalletCoinEntity.getWalletCode());
+                    memberWalletCoinInfoVolist.add(memberWalletCoinInfoVo);
+                }
+            }
 
-	@Override
-	public Result findWalletCoinBySymbol(String symbol) {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		
-		MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol);
-		BigDecimal availableBalance = walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN);
-		return Result.ok(availableBalance);
-	}
+            if (CollUtil.isNotEmpty(memberWalletCoinInfoVolist)) {
+                for (MemberWalletCoinInfoVo walletCoin : memberWalletCoinInfoVolist) {
+                    if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) {
+                        BigDecimal totalUsdt = BigDecimal.ZERO;
+                        totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
+                        totalUsdts = totalUsdts.add(totalUsdt);
+                        BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
+                        walletCoin.setTotalBalance(totalCny.setScale(4, BigDecimal.ROUND_DOWN));
+                    } else {
+                        BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
+                        BigDecimal closePrice = new BigDecimal("10.0000");
+                        BigDecimal totalUsdt = BigDecimal.ZERO;
+                        //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(walletCoin.getWalletCode()+"/USDT");
+                        totalUsdt = totalUsdt.add(amount.multiply(closePrice));
+                        totalUsdts = totalUsdts.add(totalUsdt);
+                        walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+                    }
+                }
+            }
+            MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo();
+            memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
+            memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+            memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinInfoVolist);
+            return Result.ok(memberWalletCoinVo);
+        } else {
+            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);
+            coin.setWalletCode(CoinTypeEnum.ETH.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.LTC.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.BCH.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.USDT.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.EOS.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.XRP.toString());
+            memberWalletCoinlist.add(coin);
+            coin.setWalletCode(CoinTypeEnum.ETC.toString());
+            memberWalletCoinlist.add(coin);
 
-	@Override
-	public Result getWalletCoinRecords() {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		List<MemberAccountMoneyChange> coinRecordList = memberAccountMoneyChangeDao.selectWalletCoinRecordsByMemIdTypeSymbol(memberId);
-		List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-		if(CollUtil.isNotEmpty(coinRecordList)) {
-			for(MemberAccountMoneyChange memberAccountMoneyChange : coinRecordList) {
-				MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-				memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-				memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-				memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-				memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-				memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-				memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-				arrayList.add(memberAccountMoneyChangeInfoVo);
-			}
-		}
-		return Result.ok(arrayList);
-	}
+            MemberWalletCoinVo memberWalletCoinVo = new MemberWalletCoinVo();
+            memberWalletCoinVo.setTotalUsdt(totalUsdts.setScale(4, BigDecimal.ROUND_DOWN));
+            memberWalletCoinVo.setTotalCny(totalUsdts.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+            memberWalletCoinVo.setMemberWalletCoinInfoVo(memberWalletCoinlist);
+            ;
+            return Result.ok(memberWalletCoinVo);
+        }
+    }
 
-	@Override
-	public Result getWalletContractRecords() {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		String symbol = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-		List<MemberAccountMoneyChange> contractRecordList = memberAccountMoneyChangeDao.selectWalletContractRecordsByMemIdTypeSymbol(symbol,memberId);
-		
-		List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-		if(ObjectUtil.isNotNull(contractRecordList)) {
-			for(MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
-				MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-				memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-				memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-				memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-				memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-				memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-				memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-				arrayList.add(memberAccountMoneyChangeInfoVo);
-			}
-		}
-		
-		return Result.ok(arrayList);
-	}
+    @Override
+    public Result getWalletCoinBySymbol(String symbol) {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        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())) {
+            PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
+            BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
+            BigDecimal total = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
 
-	@Override
-	public Result getWalletAgentRecords() {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		
-		List<MemberAccountMoneyChange> contractRecordList = 
-				memberAccountMoneyChangeDao.selectWalletAgentRecordByMemIdTypeSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue(),memberId);
-		
-		List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
-		if(ObjectUtil.isNotNull(contractRecordList)) {
-			for(MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
-				MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
-				memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
-				memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
-				memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
-				memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
-				memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
-				memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
-				arrayList.add(memberAccountMoneyChangeInfoVo);
-			}
-		}
-		return Result.ok(arrayList);
-	}
+            if (MemberWalletCoinEnum.WALLETCOINCODE.getValue().equals(walletCoin.getWalletCode())) {
+                memberWalletCoinInfoVo.setTotalBalance(total.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
 
-	@Override
-	@Transactional(rollbackFor = Exception.class)
-	public Result agentTransferToWalletCoin(BigDecimal balance, Integer transfertype) {
-			if(balance.compareTo(BigDecimal.ZERO) <= 0) {
-				return Result.fail(MessageSourceUtils.getString("member_service_0004"));
-			}
-			//获取用户ID
-			Long memberId = LoginUserUtils.getAppLoginUser().getId();
-			
-			// 扣币
-			String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-			MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode);
-			BigDecimal availableBalance = walletAgent.getAvailableBalance();
-			BigDecimal totalBalance = walletAgent.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"));
-			}
-		
-			walletAgent.setAvailableBalance(available.setScale(4, BigDecimal.ROUND_DOWN));
-			walletAgent.setTotalBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
-			
-			int i = memberWalletAgentDao.updateById(walletAgent);
-			if(i< 1) {
-				return Result.fail(MessageSourceUtils.getString("member_service_0095"));
-			}
-			//添加资金划转历史记录
-			MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
-			//代理账户转币币
-			if(MemberAccountMoneyChange.TYPE_WALLET_COIN.equals(transfertype)) {
-				MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
-				BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance();
-				BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
-				
-				walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-				walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-				
-				int updateById = memberWalletCoinDao.updateById(walletCoin);
-				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.CONTENTFROMAGENT.getValue());
-				memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-				memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
-				memberAccountMoneyChangeDao.insert(memberAccountRecord);
-				memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
-				
-			}else if(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT.equals(transfertype)) {
-				//代理账户转合约
-				MemberWalletContractEntity walletContract =  memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
-				BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance();
-				BigDecimal walletContractTotalBalance = walletContract.getTotalBalance();
-				
-				walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-				walletContract.setTotalBalance(walletContractTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
-				
-				int updateById = memberWalletContractDao.updateById(walletContract);
-				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.CONTENTFROMAGENT.getValue());
-				memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
-				memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
-				memberAccountMoneyChangeDao.insert(memberAccountRecord);
-				memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
-			}
-			memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
-			memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
-			memberAccountMoneyChangeDao.insert(memberAccountRecord);
-			
-		return Result.ok(MessageSourceUtils.getString("member_service_0006"));
-	}
+            } else {
+                BigDecimal closePrice = new BigDecimal("10.0000");
+                //Double closePrice = symbolsService.getCloseSymbolsBySymbolsName(wallet.getCode()+"/USDT");
+                memberWalletCoinInfoVo.setTotalBalance(total.multiply(closePrice).multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+            }
+        }
+        return Result.ok(memberWalletCoinInfoVo);
+    }
 
-	@Override
-	public Result findWalletAgentBySymbol() {
-		//获取用户ID
-		Long memberId = LoginUserUtils.getAppLoginUser().getId();
-		String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
-		
-		MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode);
-		BigDecimal availableBalance = walletAgent.getAvailableBalance();
-		
-		CnyUsdtExchange cnyUsdtExchange =cnyUsdtExchangeDao.getCNYAndUSDTOne();
-		BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
-		BigDecimal multiply = availableBalance.multiply(cnyUsdt);
-		
-		MemberWalletAgentInfoVo memberWalletAgentInfoVo = new MemberWalletAgentInfoVo();
-		memberWalletAgentInfoVo.setTotalBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
-		memberWalletAgentInfoVo.setTotalRMBBalance(multiply.setScale(4, BigDecimal.ROUND_DOWN));
-		return Result.ok(memberWalletAgentInfoVo);
-	}
+    @Override
+    public Result getWalletContractById() {
+
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        PlatformCnyUsdtExchangeEntity 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");
+        BigDecimal lastTotalBalance = new BigDecimal("0");
+        BigDecimal totalBalance = walletContract.getTotalBalance();
+        lastTotalBalance = totalBalance.add(profitAndLoss);
+        if (lastTotalBalance.compareTo(BigDecimal.ZERO) < 0) {
+            lastTotalBalance = new BigDecimal("0");
+        }
+
+        MemberWalletContractInfoVo memberWalletContractInfoVo = new MemberWalletContractInfoVo();
+        memberWalletContractInfoVo.setFrozenBalance(totalPayment.setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setAvailableBalance(walletContract.getAvailableBalance());
+        memberWalletContractInfoVo.setTotalBalance(lastTotalBalance.setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletContractInfoVo.setTotalRMBBalance(lastTotalBalance.multiply(cnyUsdt).setScale(4, BigDecimal.ROUND_DOWN));
+
+        return Result.ok(memberWalletContractInfoVo);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result coinWalletTransferToContract(BigDecimal balance, String symbol) {
+        if (balance.compareTo(BigDecimal.ZERO) <= 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0004"));
+        }
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        if (!StrUtil.isEmpty(memberId.toString())) {
+            String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+            MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+            BigDecimal available = walletCoin.getAvailableBalance();
+            // 扣币
+            BigDecimal total = available.subtract(balance);
+            if (total.compareTo(BigDecimal.ZERO) < 0) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+            }
+            BigDecimal subtract = walletCoin.getTotalBalance().subtract(balance);
+            if (subtract.compareTo(BigDecimal.ZERO) < 0) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0005"));
+            }
+            walletCoin.setAvailableBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
+            walletCoin.setTotalBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN));
+            int updateWalletCoinById = memberWalletCoinDao.updateById(walletCoin);
+            if (updateWalletCoinById < 1) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+            }
+            // 加币
+            // 查询合约账户
+            MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
+            BigDecimal availableBalance = walletContract.getAvailableBalance();
+            BigDecimal add = availableBalance.add(balance);
+            walletContract.setAvailableBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
+            BigDecimal totalBalance = walletContract.getTotalBalance();
+            BigDecimal totalBigDecimal = totalBalance.add(balance);
+            walletContract.setTotalBalance(totalBigDecimal.setScale(4, BigDecimal.ROUND_DOWN));
+            int updateWalletContractById = memberWalletContractDao.updateById(walletContract);
+            if (updateWalletContractById < 1) {
+                return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+            }
+            //添加币币资金划转历史记录
+            MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+            memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
+            memberAccountRecord.setMemberId(memberId);
+            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);
+            memberAccountMoneyChangeDao.insert(memberAccountRecord);
+
+            //添加合约资金划转历史记录
+            memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue());
+            memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
+            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
+            memberAccountMoneyChangeDao.insert(memberAccountRecord);
+        }
+        return Result.ok(MessageSourceUtils.getString("member_service_0006"));
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result contractTransferToWalletCoin(BigDecimal balance, String symbol) {
+        if (balance.compareTo(BigDecimal.ZERO) <= 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0004"));
+        }
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
+        BigDecimal availableBalance = walletContract.getAvailableBalance();
+        // 扣币
+        BigDecimal availableSubtract = availableBalance.subtract(balance);
+        if (availableSubtract.compareTo(BigDecimal.ZERO) < 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0007"));
+        }
+        BigDecimal totalBalance = walletContract.getTotalBalance();
+        BigDecimal totalSubtract = totalBalance.subtract(balance);
+
+        walletContract.setAvailableBalance(availableSubtract.setScale(4, BigDecimal.ROUND_DOWN));
+        walletContract.setTotalBalance(totalSubtract.setScale(4, BigDecimal.ROUND_DOWN));
+        int updateWalletCoinById = memberWalletContractDao.updateById(walletContract);
+        if (updateWalletCoinById < 1) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0096"));
+        }
+        // 加币
+        MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+        BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance();
+        BigDecimal CoinAvailableBalance = walletCoinAvailableBalance.add(balance);
+        BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
+        BigDecimal CoinTotalBalance = walletCoinTotalBalance.add(balance);
+
+        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"));
+        }
+
+        //添加资金划转历史记录
+        MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+        memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
+        memberAccountRecord.setMemberId(memberId);
+        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
+        memberAccountRecord.setSymbol(walletCode);
+        memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
+        memberAccountMoneyChangeDao.insert(memberAccountRecord);
+
+        //添加资金划转历史记录
+        memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue());
+        memberAccountRecord.setSymbol(walletCode);
+        memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+        memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountMoneyChangeDao.insert(memberAccountRecord);
+        return Result.ok(MessageSourceUtils.getString("member_service_0006"));
+    }
+
+    @Override
+    public Result findWalletContractBySymbol() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
+        BigDecimal availableBalance = walletContract.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN);
+        return Result.ok(availableBalance);
+    }
+
+    @Override
+    public Result findWalletCoinBySymbol(String symbol) {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, symbol);
+        BigDecimal availableBalance = walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN);
+        return Result.ok(availableBalance);
+    }
+
+    @Override
+    public Result getWalletCoinRecords() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        List<MemberAccountMoneyChange> coinRecordList = memberAccountMoneyChangeDao.selectWalletCoinRecordsByMemIdTypeSymbol(memberId);
+        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(coinRecordList)) {
+            for (MemberAccountMoneyChange memberAccountMoneyChange : coinRecordList) {
+                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
+                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
+                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
+                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
+                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
+                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
+                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
+                arrayList.add(memberAccountMoneyChangeInfoVo);
+            }
+        }
+        return Result.ok(arrayList);
+    }
+
+    @Override
+    public Result getWalletContractRecords() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        String symbol = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        List<MemberAccountMoneyChange> contractRecordList = memberAccountMoneyChangeDao.selectWalletContractRecordsByMemIdTypeSymbol(symbol, memberId);
+
+        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
+        if (ObjectUtil.isNotNull(contractRecordList)) {
+            for (MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
+                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
+                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
+                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
+                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
+                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
+                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
+                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
+                arrayList.add(memberAccountMoneyChangeInfoVo);
+            }
+        }
+
+        return Result.ok(arrayList);
+    }
+
+    @Override
+    public Result getWalletAgentRecords() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        List<MemberAccountMoneyChange> contractRecordList =
+                memberAccountMoneyChangeDao.selectWalletAgentRecordByMemIdTypeSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue(), memberId);
+
+        List<MemberAccountMoneyChangeInfoVo> arrayList = new ArrayList<>();
+        if (ObjectUtil.isNotNull(contractRecordList)) {
+            for (MemberAccountMoneyChange memberAccountMoneyChange : contractRecordList) {
+                MemberAccountMoneyChangeInfoVo memberAccountMoneyChangeInfoVo = new MemberAccountMoneyChangeInfoVo();
+                memberAccountMoneyChangeInfoVo.setAmount(memberAccountMoneyChange.getAmount());
+                memberAccountMoneyChangeInfoVo.setContent(memberAccountMoneyChange.getContent());
+                memberAccountMoneyChangeInfoVo.setStatus(memberAccountMoneyChange.getStatus());
+                memberAccountMoneyChangeInfoVo.setSymbol(memberAccountMoneyChange.getSymbol());
+                memberAccountMoneyChangeInfoVo.setType(memberAccountMoneyChange.getType());
+                memberAccountMoneyChangeInfoVo.setUpdateTime(memberAccountMoneyChange.getUpdateTime());
+                arrayList.add(memberAccountMoneyChangeInfoVo);
+            }
+        }
+        return Result.ok(arrayList);
+    }
+
+    @Override
+    @Transactional(rollbackFor = Exception.class)
+    public Result agentTransferToWalletCoin(BigDecimal balance, Integer transfertype) {
+        if (balance.compareTo(BigDecimal.ZERO) <= 0) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0004"));
+        }
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+
+        // 扣币
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+        MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode);
+        BigDecimal availableBalance = walletAgent.getAvailableBalance();
+        BigDecimal totalBalance = walletAgent.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"));
+        }
+
+        walletAgent.setAvailableBalance(available.setScale(4, BigDecimal.ROUND_DOWN));
+        walletAgent.setTotalBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
+
+        int i = memberWalletAgentDao.updateById(walletAgent);
+        if (i < 1) {
+            return Result.fail(MessageSourceUtils.getString("member_service_0095"));
+        }
+        //添加资金划转历史记录
+        MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
+        //代理账户转币币
+        if (MemberAccountMoneyChange.TYPE_WALLET_COIN.equals(transfertype)) {
+            MemberWalletCoinEntity walletCoin = memberWalletCoinDao.selectWalletCoinBymIdAndCode(memberId, walletCode);
+            BigDecimal walletCoinAvailableBalance = walletCoin.getAvailableBalance();
+            BigDecimal walletCoinTotalBalance = walletCoin.getTotalBalance();
+
+            walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+            walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+
+            int updateById = memberWalletCoinDao.updateById(walletCoin);
+            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.CONTENTFROMAGENT.getValue());
+            memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
+            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountMoneyChangeDao.insert(memberAccountRecord);
+            memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
+
+        } else if (MemberAccountMoneyChange.TYPE_WALLET_CONTRACT.equals(transfertype)) {
+            //代理账户转合约
+            MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
+            BigDecimal walletContractAvailableBalance = walletContract.getAvailableBalance();
+            BigDecimal walletContractTotalBalance = walletContract.getTotalBalance();
+
+            walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setTotalBalance(walletContractTotalBalance.add(balance).setScale(4, BigDecimal.ROUND_DOWN));
+
+            int updateById = memberWalletContractDao.updateById(walletContract);
+            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.CONTENTFROMAGENT.getValue());
+            memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
+            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountMoneyChangeDao.insert(memberAccountRecord);
+            memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
+        }
+        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
+        memberAccountMoneyChangeDao.insert(memberAccountRecord);
+
+        return Result.ok(MessageSourceUtils.getString("member_service_0006"));
+    }
+
+    @Override
+    public Result findWalletAgentBySymbol() {
+        //获取用户ID
+        Long memberId = LoginUserUtils.getAppLoginUser().getId();
+        String walletCode = MemberWalletCoinEnum.WALLETCOINCODE.getValue();
+
+        MemberWalletAgentEntity walletAgent = memberWalletAgentDao.selectWalletAgentBymIdAndCode(memberId, walletCode);
+        BigDecimal availableBalance = walletAgent.getAvailableBalance();
+
+        PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
+        BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
+        BigDecimal multiply = availableBalance.multiply(cnyUsdt);
+
+        MemberWalletAgentInfoVo memberWalletAgentInfoVo = new MemberWalletAgentInfoVo();
+        memberWalletAgentInfoVo.setTotalBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
+        memberWalletAgentInfoVo.setTotalRMBBalance(multiply.setScale(4, BigDecimal.ROUND_DOWN));
+        return Result.ok(memberWalletAgentInfoVo);
+    }
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
index 01834ca..926e4c6 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java
@@ -12,6 +12,7 @@
 
 import javax.annotation.Resource;
 
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
@@ -23,7 +24,6 @@
 import com.xcong.excoin.modules.coin.dao.MemberSelectSymbolsDao;
 import com.xcong.excoin.modules.coin.dao.OrderCoinDealDao;
 import com.xcong.excoin.modules.coin.dao.OrderCoinsDao;
-import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange;
 import com.xcong.excoin.modules.coin.entity.MemberAccountFlowEntity;
 import com.xcong.excoin.modules.coin.entity.OrderCoinsDealEntity;
 import com.xcong.excoin.modules.coin.entity.OrderCoinsEntity;
@@ -39,7 +39,7 @@
 import com.xcong.excoin.modules.member.dao.MemberWalletCoinDao;
 import com.xcong.excoin.modules.member.entity.MemberSelectSymbolsEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
-import com.xcong.excoin.modules.platform.dao.CnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
 import com.xcong.excoin.modules.platform.dao.TradeSettingDao;
 import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity;
 import com.xcong.excoin.utils.MessageSourceUtils;
@@ -59,7 +59,7 @@
 	@Resource
 	MemberSelectSymbolsDao memberSelectSymbolsDao;
 	@Resource
-	CnyUsdtExchangeDao cnyUsdtExchangeDao;
+    PlatformCnyUsdtExchangeDao cnyUsdtExchangeDao;
 	@Resource
 	OrderCoinsDao orderCoinsDao;
 	@Resource
@@ -117,8 +117,8 @@
 		BigDecimal closePrice = new BigDecimal("100.0000");
 		
 		List<MemberSelectSymbolsEntity> memSymbols = memberSelectSymbolsDao.selectSymbolByMemIdAndSymbol(memberId, symbol);
-		
-		CnyUsdtExchange cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
+
+		PlatformCnyUsdtExchangeEntity cnyUsdtExchange = cnyUsdtExchangeDao.getCNYAndUSDTOne();
 		BigDecimal cnyUsdt = cnyUsdtExchange.getValue();
 		TransactionPageOfWalletCoinVo transactionPageOfWalletCoinVo = new TransactionPageOfWalletCoinVo();
 		//是否自选
diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
index 1fa881b..70ed50e 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractEntrustOrderController.java
@@ -9,12 +9,10 @@
 import com.xcong.excoin.utils.api.response.Symbol;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.validation.annotation.Validated;
-import org.springframework.web.bind.annotation.PostMapping;
-import org.springframework.web.bind.annotation.RequestBody;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
+import org.springframework.web.bind.annotation.*;
 
 import javax.annotation.Resource;
 
@@ -44,6 +42,19 @@
             return Result.fail("非法类型");
         }
 
-        return Result.ok("123");
+        return contractEntrustOrderService.addContractEntrustOrder(submitEntrustDto);
+    }
+
+    @ApiOperation(value = "获取当前委托单列表", notes = "获取当前委托单列表")
+    @GetMapping(value = "/findCurrentEntrustOrderList")
+    public Result findCurrentEntrustOrderList() {
+        return null;
+    }
+
+
+    @ApiOperation(value = "撤销委托单", notes = "撤销委托单")
+    @GetMapping(value = "/cancelEntrustOrder")
+    public Result cancelEntrustOrder(@ApiParam(name = "id", value="委托单ID", required = true, example = "1") Long id) {
+        return null;
     }
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
index 14a3843..0b75eb1 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractEntrustOrderDao.java
@@ -2,9 +2,12 @@
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author helius
  */
 public interface ContractEntrustOrderDao extends BaseMapper<ContractEntrustOrderEntity> {
+
+    public ContractEntrustOrderEntity selectEntrustOrderByIdAndMemberId(@Param("id") Long id, @Param("memberId") Long memberId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java
index 6e2e8d2..6511432 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractEntrustOrderEntity.java
@@ -23,6 +23,16 @@
 
     public static final int ENTRUST_TYPE_CLOSE_LESS = 4;
 
+    /**
+     * 逐仓
+     */
+    public static final int POSITION_TYPE_ADD = 1;
+
+    /**
+     * 全仓
+     */
+    public static final int POSITION_TYPE_ALL = 2;
+
 
     /**
      * 会员ID
@@ -62,12 +72,12 @@
     /**
      * 币种规格
      */
-    private Long symbolSku;
+    private BigDecimal symbolSku;
 
     /**
      * 杠杆倍率
      */
-    private int leverRatio;
+    private BigDecimal leverRatio;
 
     /**
      * 保证金
diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java
new file mode 100644
index 0000000..849840b
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java
@@ -0,0 +1,18 @@
+package com.xcong.excoin.modules.contract.mapper;
+
+import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity;
+import com.xcong.excoin.modules.contract.parameter.dto.SubmitEntrustDto;
+import org.mapstruct.Mapper;
+import org.mapstruct.factory.Mappers;
+
+/**
+ * @author wzy
+ * @date 2020-05-28
+ **/
+@Mapper
+public abstract class ContractEntrustOrderEntityMapper {
+    public static final ContractEntrustOrderEntityMapper INSTANCE = Mappers.getMapper(ContractEntrustOrderEntityMapper.class);
+
+    public abstract ContractEntrustOrderEntity submitEntrustDtoToEntity(SubmitEntrustDto dto);
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
index 3521f3b..afb566e 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/ContractEntrustOrderService.java
@@ -11,4 +11,8 @@
 public interface ContractEntrustOrderService extends IService<ContractEntrustOrderEntity> {
 
     public Result addContractEntrustOrder(SubmitEntrustDto submitEntrustDto);
+
+    public Result findEntrustOrderList();
+
+    public Result cancelEntrustOrder(Long id);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
index 2f55f16..9434371 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java
@@ -4,7 +4,9 @@
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.response.Result;
 import com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao;
+import com.xcong.excoin.modules.contract.dao.ContractOrderDao;
 import com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity;
+import com.xcong.excoin.modules.contract.mapper.ContractEntrustOrderEntityMapper;
 import com.xcong.excoin.modules.contract.parameter.dto.SubmitEntrustDto;
 import com.xcong.excoin.modules.contract.service.ContractEntrustOrderService;
 import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
@@ -15,6 +17,7 @@
 import com.xcong.excoin.utils.RedisUtils;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;
@@ -39,13 +42,16 @@
     @Resource
     private CacheSettingUtils cacheSettingUtils;
 
+    @Resource
+    private ContractOrderDao contractOrderDao;
+
+    @Transactional(rollbackFor = Exception.class)
     @Override
     public Result addContractEntrustOrder(SubmitEntrustDto submitEntrustDto) {
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
 
         // 获取最新价
-        BigDecimal newPirce  = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitEntrustDto.getSymbol())));
-
+        BigDecimal newPirce = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(submitEntrustDto.getSymbol())));
 
         // 委托开仓
         if (submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_MORE || submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_OPEN_LESS) {
@@ -67,21 +73,60 @@
             // 委托总额
             BigDecimal entrustTotalAmount = submitEntrustDto.getEntrustPrice().multiply(BigDecimal.valueOf(submitEntrustDto.getSymbolCnt()));
 
-            if (entrustTotalAmount.compareTo(walletContract.getAvailableBalance()) > -1) {
+            BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(submitEntrustDto.getSymbol());
+            // 保证金计算 -- 建仓价X规格X手数X(1/杠杆倍率)
+            BigDecimal bondAmount = entrustTotalAmount.multiply(lotNumber).multiply((BigDecimal.ONE.divide(BigDecimal.valueOf(submitEntrustDto.getLeverRatio()), 8, BigDecimal.ROUND_DOWN)));
+
+            if (entrustTotalAmount.add(bondAmount).compareTo(walletContract.getAvailableBalance()) > -1) {
                 return Result.fail("可用余额不足");
             }
 
-            BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(submitEntrustDto.getSymbol());
+            ContractEntrustOrderEntityMapper convert = ContractEntrustOrderEntityMapper.INSTANCE;
+            ContractEntrustOrderEntity entrustOrderEntity = convert.submitEntrustDtoToEntity(submitEntrustDto);
+            entrustOrderEntity.setMemberId(memberEntity.getId());
+            entrustOrderEntity.setBondAmount(bondAmount);
+            entrustOrderEntity.setSymbolSku(lotNumber);
+            // 暂默认逐仓
+            entrustOrderEntity.setPositionType(ContractEntrustOrderEntity.POSITION_TYPE_ADD);
 
+            int i = contractEntrustOrderDao.insert(entrustOrderEntity);
 
+            walletContract.setFrozenBalance(walletContract.getFrozenBalance().add(entrustTotalAmount.add(bondAmount)));
+            walletContract.setAvailableBalance(walletContract.getAvailableBalance().subtract(entrustTotalAmount.add(bondAmount)));
 
-
+            memberWalletContractDao.updateById(walletContract);
+            if (i > 0) {
+                return Result.ok("委托成功");
+            } else {
+                return Result.fail("委托失败");
+            }
         }
 
         // 委托平仓 (全仓模式)
         if (submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_MORE || submitEntrustDto.getEntrustType() == ContractEntrustOrderEntity.ENTRUST_TYPE_CLOSE_LESS) {
             return Result.fail("功能暂未开放,敬请期待");
         }
+
+        return Result.fail("未知错误");
+    }
+
+    @Override
+    public Result findEntrustOrderList() {
         return null;
     }
+
+    @Override
+    public Result cancelEntrustOrder(Long id) {
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+
+        // 查询该委托单是否为该用户所有
+        ContractEntrustOrderEntity entrustOrderEntity = contractEntrustOrderDao.selectEntrustOrderByIdAndMemberId(id, memberEntity.getId());
+        if (entrustOrderEntity == null) {
+            return Result.fail("该委托单不存在");
+        }
+
+        return null;
+    }
+
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/CnyUsdtExchangeDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/CnyUsdtExchangeDao.java
deleted file mode 100644
index 357e51e..0000000
--- a/src/main/java/com/xcong/excoin/modules/platform/dao/CnyUsdtExchangeDao.java
+++ /dev/null
@@ -1,12 +0,0 @@
-package com.xcong.excoin.modules.platform.dao;
-
-import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xcong.excoin.modules.coin.entity.CnyUsdtExchange;
-
-public interface CnyUsdtExchangeDao extends BaseMapper<CnyUsdtExchange> {
-
-	CnyUsdtExchange getCNYAndUSDTOne();
-	
-	void updateUsdt(double value);
-
-}
diff --git a/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java
index 2bd4e0f..59171d1 100644
--- a/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java
+++ b/src/main/java/com/xcong/excoin/modules/platform/dao/PlatformCnyUsdtExchangeDao.java
@@ -3,7 +3,12 @@
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 
+import java.math.BigDecimal;
+
 public interface PlatformCnyUsdtExchangeDao extends BaseMapper<PlatformCnyUsdtExchangeEntity> {
 
+	PlatformCnyUsdtExchangeEntity getCNYAndUSDTOne();
 	
+	void updateUsdt(BigDecimal value);
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformSymbolsSkuEntity.java b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformSymbolsSkuEntity.java
index ec1f804..17b2e0e 100644
--- a/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformSymbolsSkuEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/platform/entity/PlatformSymbolsSkuEntity.java
@@ -1,6 +1,7 @@
 package com.xcong.excoin.modules.platform.entity;
 
 import java.io.Serializable;
+import java.math.BigDecimal;
 
 import com.baomidou.mybatisplus.annotation.IdType;
 import com.baomidou.mybatisplus.annotation.TableId;
@@ -10,6 +11,7 @@
 
 /**
  * 币种规格表
+ * @author helius
  */
 @Data
 @TableName("platform_symbols_sku")
@@ -27,6 +29,6 @@
 	/**
 	 * 规格
 	 */
-	private String lotnumber;
+	private BigDecimal lotnumber;
 
 }
diff --git a/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java
index f1d757f..701ca20 100644
--- a/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/platform/service/impl/PlatformCnyUsdtExchangeServiceImpl.java
@@ -6,11 +6,11 @@
 
 import javax.annotation.Resource;
 
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.response.Result;
-import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
 import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
 import com.xcong.excoin.modules.platform.service.PlatformCnyUsdtExchangeService;
 
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/controller/SymbolsController.java b/src/main/java/com/xcong/excoin/modules/symbols/controller/SymbolsController.java
new file mode 100644
index 0000000..f5e87f8
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/symbols/controller/SymbolsController.java
@@ -0,0 +1,33 @@
+package com.xcong.excoin.modules.symbols.controller;
+
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.symbols.service.SymbolsService;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiModelProperty;
+import io.swagger.annotations.ApiOperation;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.GetMapping;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
+
+import javax.annotation.Resource;
+
+/**
+ * @author wzy
+ * @date 2020-05-28
+ **/
+@Api(value = "币种相关轮询接口类", tags = "币种相关轮询接口类")
+@Slf4j
+@RestController
+@RequestMapping(value = "/api/symbols")
+public class SymbolsController {
+
+    @Resource
+    private SymbolsService symbolsService;
+
+    @ApiOperation(value = "轮询获取app首页币种交易信息", notes = "轮询获取app首页币种交易信息")
+    @GetMapping(value = "/homeSymbols")
+    public Result homeSymbols(Integer type) {
+        return symbolsService.homeSymbols(type);
+    }
+}
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/dao/PlatformSymbolsContractDao.java b/src/main/java/com/xcong/excoin/modules/symbols/dao/PlatformSymbolsContractDao.java
index 0e44d1a..5887d22 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/dao/PlatformSymbolsContractDao.java
+++ b/src/main/java/com/xcong/excoin/modules/symbols/dao/PlatformSymbolsContractDao.java
@@ -1,11 +1,15 @@
 package com.xcong.excoin.modules.symbols.dao;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.xcong.excoin.modules.symbols.Entity.PlatformSymbolsContractEntity;
+import com.xcong.excoin.modules.symbols.entity.PlatformSymbolsContractEntity;
+
+import java.util.List;
 
 /**
  *
  * @author wzy
  */
 public interface PlatformSymbolsContractDao extends BaseMapper<PlatformSymbolsContractEntity> {
+
+    List<PlatformSymbolsContractEntity> selectAllContractSymbols();
 }
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/Entity/PlatformSymbolsContractEntity.java b/src/main/java/com/xcong/excoin/modules/symbols/entity/PlatformSymbolsContractEntity.java
similarity index 88%
rename from src/main/java/com/xcong/excoin/modules/symbols/Entity/PlatformSymbolsContractEntity.java
rename to src/main/java/com/xcong/excoin/modules/symbols/entity/PlatformSymbolsContractEntity.java
index 5ce143a..4322b00 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/Entity/PlatformSymbolsContractEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/symbols/entity/PlatformSymbolsContractEntity.java
@@ -1,4 +1,4 @@
-package com.xcong.excoin.modules.symbols.Entity;
+package com.xcong.excoin.modules.symbols.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/parameter/vo/HomeSymbolsVo.java b/src/main/java/com/xcong/excoin/modules/symbols/parameter/vo/HomeSymbolsVo.java
new file mode 100644
index 0000000..c607ae1
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/symbols/parameter/vo/HomeSymbolsVo.java
@@ -0,0 +1,31 @@
+package com.xcong.excoin.modules.symbols.parameter.vo;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+/**
+ * @author wzy
+ * @date 2020-05-28
+ **/
+@Data
+@ApiModel(value = "HomeSymbolsVo", description = "首页币种行情返回类")
+public class HomeSymbolsVo {
+
+    @ApiModelProperty(value = "币种")
+    private String symbol;
+
+    @ApiModelProperty("当前价")
+    private BigDecimal currentPrice;
+
+    @ApiModelProperty("对应人民币转换")
+    private BigDecimal cnyPrice;
+
+    @ApiModelProperty("成交量")
+    private BigDecimal volume;
+
+    @ApiModelProperty("涨跌幅")
+    private BigDecimal upOrDown;
+}
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/service/SymbolsService.java b/src/main/java/com/xcong/excoin/modules/symbols/service/SymbolsService.java
index 852438f..3d8ffb3 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/service/SymbolsService.java
+++ b/src/main/java/com/xcong/excoin/modules/symbols/service/SymbolsService.java
@@ -1,6 +1,8 @@
 package com.xcong.excoin.modules.symbols.service;
 
 
+import com.xcong.excoin.common.response.Result;
+
 /**
  * @author wzy
  * @date 2020-05-26
@@ -9,4 +11,6 @@
 
     public void updateSymbolsKine(String time);
 
+    public Result homeSymbols(Integer type);
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java b/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
index dbc30d6..2298cb9 100644
--- a/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/symbols/service/impl/SymbolsServiceImpl.java
@@ -2,8 +2,14 @@
 
 import com.alibaba.fastjson.JSONObject;
 import com.huobi.client.model.Candlestick;
+import com.xcong.excoin.common.contants.AppContants;
 import com.xcong.excoin.common.enumerates.SymbolEnum;
+import com.xcong.excoin.common.response.Result;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+import com.xcong.excoin.modules.symbols.parameter.vo.HomeSymbolsVo;
 import com.xcong.excoin.modules.symbols.service.SymbolsService;
+import com.xcong.excoin.utils.CoinTypeConvert;
 import com.xcong.excoin.utils.RedisUtils;
 import com.xcong.excoin.utils.api.ApiClient;
 import com.xcong.excoin.utils.api.response.Kline;
@@ -26,6 +32,9 @@
 
     @Resource
     private RedisUtils redisUtils;
+
+    @Resource
+    private PlatformCnyUsdtExchangeDao platformCnyUsdtExchangeDao;
 
     private static final String API_KEY = "3938f004-bfe31905-f7581c1a-6abe0";
     private static final String API_SECRET = "a0f7a154-ghxertfvbf-6ce2d90c-a0bab";
@@ -50,11 +59,14 @@
         synchronized (this) {
             //更新币币交易K线历史数据
             for (SymbolEnum symbol : SymbolEnum.values()) {
-                log.info(symbol.getValue());
+                try {
+                    Thread.sleep(500);
+                } catch (InterruptedException e) {
+                    e.printStackTrace();
+                }
                 String[] symbols = symbol.getValue().toLowerCase().split("/");
-                ApiClient client = new ApiClient(API_KEY, API_SECRET);
+                ApiClient client = getClient();
                 KlineResponse kline = client.kline(symbols[0] + symbols[1], time, 1000 + "");
-                log.info("{}", JSONObject.toJSONString(kline));
                 if (kline != null) {
                     if ("ok".equalsIgnoreCase(kline.getStatus())) {
                         List<Kline> klines = (List<Kline>) kline.data;
@@ -74,11 +86,56 @@
                         }
 
                         if (klines.size() > 0) {
-//                            redisUtils.set("KINE_" + symbol.getValue() + "_" + time, list);
+                            redisUtils.set("KINE_" + symbol.getValue() + "_" + time, list);
                         }
                     }
                 }
             }
         }
     }
+
+    @Override
+    public Result homeSymbols(Integer type) {
+        List<HomeSymbolsVo> list = new ArrayList<>();
+        // 币币行情
+        if (AppContants.HOME_SYMBOLS_COIN == type) {
+            for (SymbolEnum symbolEnum : SymbolEnum.values()) {
+                list.add(getSymbolReturnData(symbolEnum.getName()));
+            }
+            // 合约行情
+        } else if (AppContants.HOME_SYMBOLS_CONTRACT == type) {
+            for (SymbolEnum symbolEnum : SymbolEnum.values()) {
+                list.add(getSymbolReturnData(symbolEnum.getName()));
+            }
+            // 自选行情
+        } else {
+
+        }
+
+        return Result.ok(list);
+    }
+
+    public HomeSymbolsVo getSymbolReturnData(String symbol) {
+        PlatformCnyUsdtExchangeEntity cnyUsdtExchange = platformCnyUsdtExchangeDao.getCNYAndUSDTOne();
+        // 获取当日k线数据
+        Candlestick symbolObject = (Candlestick) redisUtils.get(symbol);
+        // 获取当前币种最新价
+        BigDecimal newestPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(symbol)));
+        // 获取当日k线的开盘价
+        BigDecimal openPrice = symbolObject.getOpen();
+
+        BigDecimal upOrDown = newestPrice.subtract(openPrice).divide(openPrice, 8, BigDecimal.ROUND_HALF_UP);
+        HomeSymbolsVo homeSymbolsVo = new HomeSymbolsVo();
+
+        homeSymbolsVo.setSymbol(symbol);
+        homeSymbolsVo.setCurrentPrice(newestPrice);
+        homeSymbolsVo.setUpOrDown(upOrDown);
+        homeSymbolsVo.setVolume(symbolObject.getVolume());
+        if (cnyUsdtExchange != null) {
+            BigDecimal cnyPrice = openPrice.multiply(cnyUsdtExchange.getValue()).setScale(2, BigDecimal.ROUND_HALF_UP);
+            homeSymbolsVo.setCnyPrice(cnyPrice);
+        }
+
+        return homeSymbolsVo;
+    }
 }
diff --git a/src/main/java/com/xcong/excoin/quartz/job/KlineDataUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/KlineDataUpdateJob.java
index 29be0f6..ca41425 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/KlineDataUpdateJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/KlineDataUpdateJob.java
@@ -1,6 +1,7 @@
 package com.xcong.excoin.quartz.job;
 
 import com.xcong.excoin.modules.symbols.service.SymbolsService;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -13,6 +14,7 @@
  * @date 2020-05-26
  **/
 @Component
+@ConditionalOnProperty(prefix = "app", name = "kline-update-job", havingValue = "true")
 public class KlineDataUpdateJob {
 
     @Resource
diff --git a/src/main/java/com/xcong/excoin/quartz/job/NewestPriceUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/NewestPriceUpdateJob.java
new file mode 100644
index 0000000..fd6ee96
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/quartz/job/NewestPriceUpdateJob.java
@@ -0,0 +1,65 @@
+package com.xcong.excoin.quartz.job;
+
+import com.huobi.client.SubscriptionClient;
+import com.huobi.client.SubscriptionOptions;
+import com.huobi.client.model.Candlestick;
+import com.huobi.client.model.enums.CandlestickInterval;
+import com.xcong.excoin.modules.symbols.service.SymbolsService;
+import com.xcong.excoin.utils.CoinTypeConvert;
+import com.xcong.excoin.utils.RedisUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.PostConstruct;
+import javax.annotation.Resource;
+
+/**
+ * 最新价更新
+ *
+ * @author wzy
+ * @date 2020-05-28
+ **/
+@Slf4j
+@Component
+@ConditionalOnProperty(prefix = "app", name = "newest-price-update-job", havingValue = "true")
+public class NewestPriceUpdateJob {
+
+    @Resource
+    private RedisUtils redisUtils;
+
+    @Resource
+    private SymbolsService symbolsService;
+
+    @PostConstruct
+    public void initNewestPrice() {
+        log.info("#=======价格更新开启=======#");
+        SubscriptionOptions subscriptionOptions = new SubscriptionOptions();
+        subscriptionOptions.setConnectionDelayOnFailure(5);
+        subscriptionOptions.setUri("wss://api.hadax.com/ws");
+        SubscriptionClient subscriptionClient = SubscriptionClient.create("", "", subscriptionOptions);
+        subscriptionClient.subscribeTradeEvent("btcusdt,ethusdt,xrpusdt,ltcusdt,bchusdt,eosusdt,etcusdt", tradeEvent -> {
+            String symbol = tradeEvent.getSymbol();
+            // 根据symbol判断做什么操作
+            symbol = CoinTypeConvert.convert(symbol);
+            if (null != symbol) {
+                String price = tradeEvent.getTradeList().get(0).getPrice().toPlainString();
+                // TODO 测试环境关闭这个插入redis
+                redisUtils.set(CoinTypeConvert.convertToKey(symbol), price);
+                // 比较
+//                websocketPriceService.comparePriceAsc(symbol, price);
+//                websocketPriceService.comparePriceDesc(symbol, price);
+                //System.out.println("比较完毕:"+symbol+"-"+price);
+
+            }
+
+        });
+
+
+        subscriptionClient.subscribeCandlestickEvent("btcusdt,ethusdt,eosusdt,etcusdt,ltcusdt,bchusdt,xrpusdt", CandlestickInterval.DAY1, (candlestickEvent) -> {
+            Candlestick data = candlestickEvent.getData();
+            redisUtils.set(CoinTypeConvert.convert(candlestickEvent.getSymbol()), data);
+        });
+
+    }
+}
diff --git a/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
new file mode 100644
index 0000000..840250b
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
@@ -0,0 +1,65 @@
+package com.xcong.excoin.quartz.job;
+
+import com.alibaba.fastjson.JSONObject;
+import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
+import org.springframework.scheduling.annotation.Scheduled;
+import org.springframework.stereotype.Component;
+
+import javax.annotation.Resource;
+import java.io.BufferedReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.math.BigDecimal;
+import java.net.HttpURLConnection;
+import java.net.URL;
+
+/**
+ * 美元-人民币汇率定时任务
+ *
+ * @author wzy
+ * @date 2020-05-28
+ **/
+@Component
+@ConditionalOnProperty(prefix = "app", name = "other-job", havingValue = "true")
+public class UsdtCnyExchangePriceUpdateJob {
+
+    @Resource
+    private PlatformCnyUsdtExchangeDao cnyUsdtExchangeDao;
+
+    @Scheduled(cron = "0 */5 * * * ? ")
+    public void updateUsdtCnyExchange() {
+        BufferedReader reader = null;
+        String result = null;
+        StringBuffer sbf = new StringBuffer();
+        // 模拟浏览器
+        String userAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";
+        try {
+            URL url = new URL("https://otc-api-hk.eiijo.cn/v1/data/config/purchase-price?coinId=2&currencyId=1&matchType=0");
+            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
+            connection.setRequestMethod("GET");
+            connection.setReadTimeout(30000);
+            connection.setConnectTimeout(30000);
+            connection.setRequestProperty("User-agent", userAgent);
+            connection.connect();
+            InputStream is = connection.getInputStream();
+            reader = new BufferedReader(new InputStreamReader(is, "UTF-8"));
+            String strRead = null;
+            while ((strRead = reader.readLine()) != null) {
+                sbf.append(strRead);
+                sbf.append("\r\n");
+            }
+            reader.close();
+            result = sbf.toString();
+
+            JSONObject jsonObject = (JSONObject) JSONObject.parse(result);
+            String code = jsonObject.getString("code");
+            if ("200".equals(code)) {
+                JSONObject jsonData = (JSONObject) jsonObject.get("data");
+                cnyUsdtExchangeDao.updateUsdt(BigDecimal.valueOf(jsonData.getDouble("price")));
+            }
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+    }
+}
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
new file mode 100644
index 0000000..e626e2b
--- /dev/null
+++ b/src/main/resources/application-test.yml
@@ -0,0 +1,102 @@
+server:
+  port: 8888
+  servlet:
+    context-path: /
+
+spring:
+  profiles:
+    active: dev
+  datasource:
+    url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
+    username: ct_test
+    password: 123456
+    driver-class-name: com.mysql.jdbc.Driver
+    type: com.alibaba.druid.pool.DruidDataSource
+    druid:
+      initial-size: ${spring_datasource_druid_initial_size:10}
+      max-active: ${spring_datasource_druid_max_active:20}
+      min-idle: ${spring_datasource_druid_min_idle:3}
+      #配置获取连接等待超时的时间
+      max-wait: 60000
+      pool-prepared-statements: true
+      max-pool-prepared-statement-per-connection-size: 20
+      validation-query: SELECT 'x'
+      test-on-borrow: true
+      test-on-return: true
+      test-while-idle: true
+      #配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
+      time-between-eviction-runs-millis: 60000
+      #配置一个连接在池中最小生存的时间,单位是毫秒
+      min-evictable-idle-time-millis: 300000
+      #spring.datasource.druid.max-evguide.ftlictable-idle-time-millis=
+      filters: stat,wall
+      stat-view-servlet:
+        # 默认true 内置监控页面首页/druid/index.html
+        enabled: true
+        url-pattern: /druid/*
+        # 允许清空统计数据
+        reset-enable: true
+        login-username: root
+        login-password: 123456
+        # IP白名单 多个逗号分隔
+        allow: ${spring_datasource_stat_view_servlet_allow:}
+        # IP黑名单
+        deny: ${spring_datasource_stat_view_servlet_deny:}
+  ## 国际化配置
+  messages:
+    basename: i18n/messages
+  ## redis配置
+  redis:
+    ## Redis数据库索引(默认为0)
+    database: 1
+    ## Redis服务器地址
+    host: 47.114.114.219
+    ## Redis服务器连接端口
+    port: 6379
+    ## Redis服务器连接密码(默认为空)
+    password: biyi123
+    jedis:
+      pool:
+        ## 连接池最大连接数(使用负值表示没有限制)
+        #spring.redis.pool.max-active=8
+        max-active: 300
+        ## 连接池最大阻塞等待时间(使用负值表示没有限制)
+        #spring.redis.pool.max-wait=-1
+        max-wait: -1
+        ## 连接池中的最大空闲连接
+        #spring.redis.pool.max-idle=8
+        max-idle: 100
+        ## 连接池中的最小空闲连接
+        #spring.redis.pool.min-idle=0
+        min-idle: 8
+    ## 连接超时时间(毫秒)
+    timeout: 30000
+  rabbitmq:
+    host: 120.27.238.55
+    port: 5672
+    username: ct_rabbit
+    password: 123456
+    publisher-confirm-type: correlated
+
+
+#custom:
+#  rabbitmq:
+#    host: 120.27.238.55
+#    port: 5672
+#    username: ct_rabbit
+#    password: 123456
+
+mybatis-plus:
+  mapper-locations: classpath:mapper/**/*.xml
+
+
+app:
+  debug: true
+  redis_expire: 3000
+  kline-update-job: true
+  newest-price-update-job: true
+  other-job: true
+
+rsa:
+  public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCf8UFZK54AiK4PRu7tNd+Z8qZ77o/QXCnk25DRmygVpOEu5mGNSAvfnWmKp2pEV2RljeXq3Rid/+LQkonaebMJeXKSF0yxL/VgyeT8JaQ5gNbOrdfdlc+mFkXJyzyJt8YkvApEdPRNSU2ENBn7mgRfD0BYPM4vZ6/rv+de38FJwIDAQAB
+  private_key: MIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAIJ/xQVkrngCIrg9G7u0135nypnvuj9BcKeTbkNGbKBWk4S7mYY1IC9+daYqnakRXZGWN5erdGJ3/4tCSidp5swl5cpIXTLEv9WDJ5PwlpDmA1s6t192Vz6YWRcnLPIm3xiS8CkR09E1JTYQ0GfuaBF8PQFg8zi9nr+u/517fwUnAgMBAAECgYBhPt9NvpI4wbanvnndLczr2GJkxfzvSE+vwLCJF4C5FusFHVsxZINggQcg1V75bwRgCiXRMyYefreCSdrCditS43PzTOmE4RRrpxLlm8oubJc0C98LQ2qlN9AsUqL5IHpVGgbHDyWAwjc1GBID6nwXKpxq1/VodFqhahG9D5EZsQJBALnkb+5VTxQbiyQI4Uc9NIvAyVcNY1OisbvY6tvNgdBbJkADgAb78M1HWxxYjUqsvzggNHc7cWqWBHMgpnJaqm8CQQCztze4D7uAk7OC9MJHY5eE980J8Kk+GEZKxz4LahzU6V6dcb9GFac3wEtgilj/tOAn9y0/Q8sm9vvCIbMDzgzJAkEAqRYcqhF26LdVDOX25DHMBgLKISDQZFbsjA13M4/usHL4i+mjHrc0BcUOHu59NpuDI65HitzLAUSLr5zXSdUmiQJAW77wOg4GCejdXsB3IhzMsHwU97sdm26nC+vVV9xvJZ6Rx8zW+f9543NOx9U5BCmhuaVtOvvwDU9PTVcI3atmSQJAXAIJ5gGdtXx0DXiX4VvzNFHqgaqHMGvXyjNVkU2FYQbSAd2A6app4uRO+BkZu9dSjh14m+oXMnV2HzAN2rRnjA==
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index 8a849c0..61560cd 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -4,6 +4,8 @@
     context-path: /
 
 spring:
+  profiles:
+    active: dev
   datasource:
     url: jdbc:mysql://120.27.238.55:3306/kss_framework?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=GMT%2b8
     username: ct_test
@@ -91,6 +93,12 @@
 app:
   debug: true
   redis_expire: 3000
+  # k线更新任务控制
+  kline-update-job: false
+  #最新价任务控制
+  newest-price-update-job: true
+  #其他任务控制
+  other-job: true
 
 rsa:
   public_key: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCCf8UFZK54AiK4PRu7tNd+Z8qZ77o/QXCnk25DRmygVpOEu5mGNSAvfnWmKp2pEV2RljeXq3Rid/+LQkonaebMJeXKSF0yxL/VgyeT8JaQ5gNbOrdfdlc+mFkXJyzyJt8YkvApEdPRNSU2ENBn7mgRfD0BYPM4vZ6/rv+de38FJwIDAQAB
diff --git a/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml b/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
index 4e97a90..ecdf398 100644
--- a/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
+++ b/src/main/resources/mapper/contract/ContractEntrustOrderDao.xml
@@ -2,4 +2,9 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xcong.excoin.modules.contract.dao.ContractEntrustOrderDao">
 
+    <select id="selectEntrustOrderByIdAndMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractEntrustOrderEntity">
+        select * from contract_entrust_order
+        where id=#{id} and member_id=#{memberId}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/main/resources/mapper/platform/CnyUsdtExchangeDao.xml b/src/main/resources/mapper/platform/PlatformCnyUsdtExchangeDao.xml
similarity index 74%
rename from src/main/resources/mapper/platform/CnyUsdtExchangeDao.xml
rename to src/main/resources/mapper/platform/PlatformCnyUsdtExchangeDao.xml
index 8bd2742..30bcdb1 100644
--- a/src/main/resources/mapper/platform/CnyUsdtExchangeDao.xml
+++ b/src/main/resources/mapper/platform/PlatformCnyUsdtExchangeDao.xml
@@ -1,8 +1,8 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="com.xcong.excoin.modules.platform.dao.CnyUsdtExchangeDao">
+<mapper namespace="com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao">
 
-    <select id="getCNYAndUSDTOne" resultType="com.xcong.excoin.modules.coin.entity.CnyUsdtExchange">
+    <select id="getCNYAndUSDTOne" resultType="com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity">
         select  * from platform_cny_usdt_exchange limit 1
     </select>
     
diff --git a/src/main/resources/mapper/platform/PlatformSymbolsContractDao.xml b/src/main/resources/mapper/platform/PlatformSymbolsContractDao.xml
index e58929c..7013470 100644
--- a/src/main/resources/mapper/platform/PlatformSymbolsContractDao.xml
+++ b/src/main/resources/mapper/platform/PlatformSymbolsContractDao.xml
@@ -2,4 +2,8 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.xcong.excoin.modules.symbols.dao.PlatformSymbolsContractDao">
 
+    <select id="selectAllContractSymbols" resultType="com.xcong.excoin.modules.symbols.entity.PlatformSymbolsContractEntity">
+        select * from platform_symbols_contract
+    </select>
+
 </mapper>
\ No newline at end of file

--
Gitblit v1.9.1