From 01aa2cc5c8fafd89ff763bfb0016c4983ff79648 Mon Sep 17 00:00:00 2001
From: gao <gaoleox@163>
Date: Fri, 05 Jun 2020 19:33:20 +0800
Subject: [PATCH] Merge branch 'master' of https://chonggaoxiao:xcg523511090712@gitee.com/chonggaoxiao/new_excoin.git

---
 src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java               |    4 
 src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java       |   20 ++
 src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java                         |    7 
 src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java      |    1 
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractEntrustOrderServiceImpl.java |    4 
 src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java                   |   81 +++++++++++
 src/main/java/com/xcong/excoin/modules/coin/service/OrderCoinService.java                         |    2 
 src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java                 |    8 
 src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java                     |    8 +
 src/main/java/com/xcong/excoin/modules/coin/service/impl/OrderCoinServiceImpl.java                |  117 ++++++++++-----
 src/main/resources/mapper/contract/ContractOrderDao.xml                                           |   16 ++
 src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java    |   27 ++-
 src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java         |    1 
 src/main/java/com/xcong/excoin/modules/coin/service/impl/CoinServiceImpl.java                     |   42 +++---
 src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java           |    8 +
 src/test/java/com/xcong/excoin/RabbitMqTest.java                                                  |    9 +
 src/main/resources/application-test.yml                                                           |    6 
 src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java                   |    4 
 src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java             |    3 
 src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java          |    1 
 src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java                   |   18 ++
 src/main/java/com/xcong/excoin/modules/coin/controller/OrderCoinController.java                   |   10 +
 src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java                      |    3 
 src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java             |    2 
 src/main/resources/application.yml                                                                |    4 
 25 files changed, 308 insertions(+), 98 deletions(-)

diff --git a/src/main/java/com/xcong/excoin/modules/coin/controller/OrderCoinController.java b/src/main/java/com/xcong/excoin/modules/coin/controller/OrderCoinController.java
index 4202ea9..75c871c 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/controller/OrderCoinController.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/controller/OrderCoinController.java
@@ -161,4 +161,14 @@
 		return orderCoinService.findCollectList();
 	}
 	
+	/**
+	 * 币种搜索
+	 * @return
+	 */
+	@ApiOperation(value = "币种搜索", notes = "币种搜索")
+    @GetMapping(value = "/searchSymbolResultList")
+	public Result  searchSymbolResultList() {
+		return orderCoinService.searchSymbolResultList();
+	}
+	
 }
diff --git a/src/main/java/com/xcong/excoin/modules/coin/service/OrderCoinService.java b/src/main/java/com/xcong/excoin/modules/coin/service/OrderCoinService.java
index 9ca2106..0cfd4f8 100644
--- a/src/main/java/com/xcong/excoin/modules/coin/service/OrderCoinService.java
+++ b/src/main/java/com/xcong/excoin/modules/coin/service/OrderCoinService.java
@@ -29,4 +29,6 @@
 
 	public Result findCollectList();
 
+	public Result searchSymbolResultList();
+
 }
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 acc2628..93c2151 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
@@ -87,7 +87,7 @@
                         totalUsdt = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
                         totalUsdts = totalUsdts.add(totalUsdt);
                         BigDecimal totalCny = totalUsdt.multiply(cnyUsdt);
-                        walletCoin.setTotalBalance(totalCny.setScale(4, BigDecimal.ROUND_DOWN));
+                        walletCoin.setTotalBalance(totalCny);
                     } else {
                         BigDecimal amount = walletCoin.getAvailableBalance().add(walletCoin.getFrozenBalance());
                         // 获取最新价
@@ -96,7 +96,7 @@
                         //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));
+                        walletCoin.setTotalBalance(totalUsdt.multiply(cnyUsdt));
                     }
                 }
             }
@@ -235,10 +235,10 @@
             MemberWalletContractEntity walletContract = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberId, walletCode);
             BigDecimal availableBalance = walletContract.getAvailableBalance();
             BigDecimal add = availableBalance.add(balance);
-            walletContract.setAvailableBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setAvailableBalance(add);
             BigDecimal totalBalance = walletContract.getTotalBalance();
             BigDecimal totalBigDecimal = totalBalance.add(balance);
-            walletContract.setTotalBalance(totalBigDecimal.setScale(4, BigDecimal.ROUND_DOWN));
+            walletContract.setTotalBalance(totalBigDecimal);
             int updateWalletContractById = memberWalletContractDao.updateById(walletContract);
             if (updateWalletContractById < 1) {
                 return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -247,7 +247,7 @@
             MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
             memberAccountRecord.setMemberId(memberId);
-            memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance.negate());
             memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
             memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
@@ -256,7 +256,7 @@
             //添加合约资金划转历史记录
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMWALLETCOIN.getValue());
             memberAccountRecord.setSymbol(MemberWalletCoinEnum.WALLETCOINCODE.getValue());
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
         }
@@ -283,8 +283,8 @@
         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));
+        walletContract.setAvailableBalance(availableSubtract);
+        walletContract.setTotalBalance(totalSubtract);
         int updateWalletCoinById = memberWalletContractDao.updateById(walletContract);
         if (updateWalletCoinById < 1) {
             return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -296,8 +296,8 @@
         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));
+        walletCoin.setAvailableBalance(CoinAvailableBalance);
+        walletCoin.setTotalBalance(CoinTotalBalance);
         int updateById = memberWalletCoinDao.updateById(walletCoin);
         if (updateById < 1) {
             return Result.fail(MessageSourceUtils.getString("member_service_0096"));
@@ -307,7 +307,7 @@
         MemberAccountMoneyChange memberAccountRecord = new MemberAccountMoneyChange();
         memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
         memberAccountRecord.setMemberId(memberId);
-        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance.negate());
         memberAccountRecord.setStatus(MemberAccountMoneyChange.STATUS_SUCCESS_INTEGER);
         memberAccountRecord.setSymbol(walletCode);
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
@@ -317,7 +317,7 @@
         memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMCONTRACT.getValue());
         memberAccountRecord.setSymbol(walletCode);
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-        memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance);
         memberAccountMoneyChangeDao.insert(memberAccountRecord);
         return Result.ok(MessageSourceUtils.getString("member_service_0006"));
     }
@@ -435,8 +435,8 @@
             return Result.fail(MessageSourceUtils.getString("member_service_0008"));
         }
 
-        walletAgent.setAvailableBalance(available.setScale(4, BigDecimal.ROUND_DOWN));
-        walletAgent.setTotalBalance(total.setScale(4, BigDecimal.ROUND_DOWN));
+        walletAgent.setAvailableBalance(available);
+        walletAgent.setTotalBalance(total);
 
         int i = memberWalletAgentDao.updateById(walletAgent);
         if (i < 1) {
@@ -450,8 +450,8 @@
             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));
+            walletCoin.setAvailableBalance(walletCoinAvailableBalance.add(balance));
+            walletCoin.setTotalBalance(walletCoinTotalBalance.add(balance));
 
             int updateById = memberWalletCoinDao.updateById(walletCoin);
             if (updateById < 1) {
@@ -463,7 +463,7 @@
             memberAccountRecord.setSymbol(walletCode);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_COIN);
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOWALLETCOIN.getValue());
 
@@ -473,8 +473,8 @@
             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));
+            walletContract.setAvailableBalance(walletContractAvailableBalance.add(balance));
+            walletContract.setTotalBalance(walletContractTotalBalance.add(balance));
 
             int updateById = memberWalletContractDao.updateById(walletContract);
             if (updateById < 1) {
@@ -487,11 +487,11 @@
             memberAccountRecord.setSymbol(walletCode);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTFROMAGENT.getValue());
             memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_CONTRACT);
-            memberAccountRecord.setAmount(balance.setScale(4, BigDecimal.ROUND_DOWN));
+            memberAccountRecord.setAmount(balance);
             memberAccountMoneyChangeDao.insert(memberAccountRecord);
             memberAccountRecord.setContent(MemberWalletCoinEnum.CONTENTTOCONTRACT.getValue());
         }
-        memberAccountRecord.setAmount(balance.negate().setScale(4, BigDecimal.ROUND_DOWN));
+        memberAccountRecord.setAmount(balance.negate());
         memberAccountRecord.setType(MemberAccountMoneyChange.TYPE_WALLET_AGENT);
         memberAccountMoneyChangeDao.insert(memberAccountRecord);
 
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 82f911d..8fff3e0 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
@@ -13,9 +13,12 @@
 import javax.annotation.Resource;
 
 import com.xcong.excoin.modules.platform.entity.PlatformCnyUsdtExchangeEntity;
+import com.xcong.excoin.modules.platform.entity.PlatformSymbolsCoinEntity;
+
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.xcong.excoin.common.LoginUserUtils;
 import com.xcong.excoin.common.enumerates.MemberWalletCoinEnum;
@@ -41,6 +44,7 @@
 import com.xcong.excoin.modules.member.entity.MemberSelectSymbolsEntity;
 import com.xcong.excoin.modules.member.entity.MemberWalletCoinEntity;
 import com.xcong.excoin.modules.platform.dao.PlatformCnyUsdtExchangeDao;
+import com.xcong.excoin.modules.platform.dao.PlatformSymbolsCoinDao;
 import com.xcong.excoin.modules.platform.dao.TradeSettingDao;
 import com.xcong.excoin.modules.platform.entity.PlatformTradeSettingEntity;
 import com.xcong.excoin.utils.CoinTypeConvert;
@@ -71,6 +75,8 @@
 	MemberAccountFlowEntityDao memberAccountFlowEntityDao;
     @Resource
     RedisUtils redisUtils;
+    @Resource
+    PlatformSymbolsCoinDao platformSymbolsCoinDao;
 	
 	@Override
 	public String generateSimpleSerialno(String userId) {
@@ -197,15 +203,15 @@
 				order.setOrderNo(generateSimpleSerialno(memberId.toString()));
 				order.setOrderType(type);
 				order.setSymbol(symbol);
-				order.setMarkPrice(nowPrice.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setEntrustCnt(amount.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealCnt(amount.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN));
+				order.setMarkPrice(nowPrice);
+				order.setEntrustCnt(amount);
+				order.setEntrustPrice(price);
+				order.setDealCnt(amount);
+				order.setDealPrice(price);
+				order.setDealAmount(totalPayPrice);
 				order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DODING);
 				order.setTradeType(tradeType);
-				order.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN));
+				order.setFeeAmount(closingPrice);
 				orderCoinsDao.insert(order);
 				
 				//更新用户钱包信息
@@ -214,15 +220,15 @@
 					//如果是买入,所对应的币种增加,USDT账户减少金额
 					BigDecimal availableBalance = walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice);
 					BigDecimal frozenBalance = walletCoinUsdt.getFrozenBalance().add(totalPayPrice);
-					walletCoinUsdt.setAvailableBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
-					walletCoinUsdt.setFrozenBalance(frozenBalance.setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoinUsdt.setAvailableBalance(availableBalance);
+					walletCoinUsdt.setFrozenBalance(frozenBalance);
 					memberWalletCoinDao.updateById(walletCoinUsdt);
 				}else {
 					//如果是卖出,币种减少,USDT增加
 					BigDecimal availableBalance = walletCoin.getAvailableBalance().subtract(amount);
 					BigDecimal frozenBalance = walletCoin.getFrozenBalance().add(amount);
-					walletCoin.setAvailableBalance(availableBalance.setScale(4, BigDecimal.ROUND_DOWN));
-					walletCoin.setFrozenBalance(frozenBalance.setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoin.setAvailableBalance(availableBalance);
+					walletCoin.setFrozenBalance(frozenBalance);
 					memberWalletCoinDao.updateById(walletCoin);
 				} 
 			} else {
@@ -231,15 +237,15 @@
 				order.setOrderNo(generateSimpleSerialno(memberId.toString()));
 				order.setOrderType(type);
 				order.setSymbol(symbol);
-				order.setMarkPrice(nowPrice.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setEntrustCnt(amount.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealCnt(amount.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				order.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN));
+				order.setMarkPrice(nowPrice);
+				order.setEntrustCnt(amount);
+				order.setEntrustPrice(price);
+				order.setDealCnt(amount);
+				order.setDealPrice(price);
+				order.setDealAmount(totalPayPrice);
 				order.setOrderStatus(OrderCoinsEntity.ORDERSTATUS_DONE);
 				order.setTradeType(tradeType);
-				order.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN));
+				order.setFeeAmount(closingPrice);
 				orderCoinsDao.insert(order);
 				
 				OrderCoinsDealEntity detail = new OrderCoinsDealEntity();
@@ -249,29 +255,29 @@
 				detail.setOrderType(type);
 				detail.setTradeType(tradeType);
 				detail.setSymbol(symbol);
-				detail.setSymbolCnt(amount.setScale(4, BigDecimal.ROUND_DOWN));
-				detail.setEntrustPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				detail.setDealPrice(price.setScale(4, BigDecimal.ROUND_DOWN));
-				detail.setDealAmount(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN));
-				detail.setFeeAmount(closingPrice.setScale(4, BigDecimal.ROUND_DOWN));
+				detail.setSymbolCnt(amount);
+				detail.setEntrustPrice(price);
+				detail.setDealPrice(price);
+				detail.setDealAmount(totalPayPrice);
+				detail.setFeeAmount(closingPrice);
 				detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_DONE);
 				orderCoinDealDao.insert(detail);
 				
 				if(OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) {
 					//如果是买入,所对应的币种增加,USDT账户减少金额
 					// 更新用户的可用金额
-					walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(amount).setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(amount));
 					memberWalletCoinDao.updateById(walletCoin);
 					
-					walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice).setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().subtract(totalPayPrice));
 					memberWalletCoinDao.updateById(walletCoinUsdt);
 				}else {
 					//如果是卖出,币种减少,USDT增加
-					walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().subtract(amount).setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().subtract(amount));
 					memberWalletCoinDao.updateById(walletCoin);
 					
 					BigDecimal subtract = totalPayPrice.subtract(closingPrice).subtract(closingPrice);
-					walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().add(subtract).setScale(4, BigDecimal.ROUND_DOWN));
+					walletCoinUsdt.setAvailableBalance(walletCoinUsdt.getAvailableBalance().add(subtract));
 					memberWalletCoinDao.updateById(walletCoinUsdt);
 				}
 			}
@@ -281,14 +287,14 @@
 			if (OrderCoinsEntity.ORDERTYPE_BUY.equals(type)) {
 				record.setPrice(totalPayPrice.setScale(4, BigDecimal.ROUND_DOWN));
 				record.setSource(MemberAccountFlowEntity.SOURCE_BUY+symbol);
-				record.setRemark(MemberAccountFlowEntity.REMARK_BUY+symbol+":"+amount.setScale(4, BigDecimal.ROUND_DOWN));
+				record.setRemark(MemberAccountFlowEntity.REMARK_BUY+symbol+":"+amount);
 			} else {
 				record.setPrice(totalPayPrice.negate().setScale(4, BigDecimal.ROUND_DOWN));
 				record.setSource(MemberAccountFlowEntity.SOURCE_SALE+symbol);
-				record.setRemark(MemberAccountFlowEntity.REMARK_SALE+symbol+":"+amount.setScale(4, BigDecimal.ROUND_DOWN));
+				record.setRemark(MemberAccountFlowEntity.REMARK_SALE+symbol+":"+amount);
 			}
 			record.setSymbol(symbol);
-			record.setBalance(walletCoinUsdt.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+			record.setBalance(walletCoinUsdt.getAvailableBalance());
 			
 			memberAccountFlowEntityDao.insert(record);
 			
@@ -337,10 +343,10 @@
 					detail.setSymbol(symbol);
 					detail.setOrderStatus(OrderCoinsDealEntity.ORDERSTATUS_CANCEL);
 					detail.setSymbolCnt(orderCoinsEntity.getEntrustCnt());
-					detail.setEntrustPrice(orderCoinsEntity.getEntrustPrice().setScale(4, BigDecimal.ROUND_DOWN));
-					detail.setDealPrice(orderCoinsEntity.getDealPrice().setScale(4, BigDecimal.ROUND_DOWN));
-					detail.setDealAmount(orderCoinsEntity.getDealAmount().setScale(4, BigDecimal.ROUND_DOWN));
-					detail.setFeeAmount(orderCoinsEntity.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
+					detail.setEntrustPrice(orderCoinsEntity.getEntrustPrice());
+					detail.setDealPrice(orderCoinsEntity.getDealPrice());
+					detail.setDealAmount(orderCoinsEntity.getDealAmount());
+					detail.setFeeAmount(orderCoinsEntity.getFeeAmount());
 					orderCoinDealDao.insert(detail);
 					
 					if(OrderCoinsEntity.ORDERTYPE_BUY.equals(orderCoinsEntity.getOrderType())) {
@@ -353,14 +359,14 @@
 							//返还金额=开仓价*未成交数量+手续费
 							BigDecimal returnBalance = orderCoinsEntity.getDealAmount();
 							
-							walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance).setScale(4, BigDecimal.ROUND_DOWN));
-							walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance).setScale(4, BigDecimal.ROUND_DOWN));
+							walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance));
+							walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance));
 							memberWalletCoinDao.updateById(walletCoin);
 							// 流水记录
 							MemberAccountFlowEntity record = new MemberAccountFlowEntity();
 							record.setSource(MemberAccountFlowEntity.SOURCE_CANCEL);
 							record.setRemark(MemberAccountFlowEntity.REMARK_CANCEL+symbol+MemberAccountFlowEntity.REMARK_RETURNBALANCE+returnBalance);
-							record.setBalance(walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+							record.setBalance(walletCoin.getAvailableBalance());
 							record.setMemberId(memberId);
 							record.setSymbol(symbol);
 							record.setPrice(returnBalance);
@@ -373,17 +379,17 @@
 						if (ObjectUtil.isNotEmpty(walletCoin)) {
 							
 							BigDecimal returnBalance = orderCoinsEntity.getEntrustCnt();
-							walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance).setScale(4, BigDecimal.ROUND_DOWN));
-							walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance).setScale(4, BigDecimal.ROUND_DOWN));
+							walletCoin.setAvailableBalance(walletCoin.getAvailableBalance().add(returnBalance));
+							walletCoin.setFrozenBalance(walletCoin.getFrozenBalance().subtract(returnBalance));
 							memberWalletCoinDao.updateById(walletCoin);
 							// 流水记录
 							MemberAccountFlowEntity record = new MemberAccountFlowEntity();
 							record.setSource(MemberAccountFlowEntity.SOURCE_CANCEL);
 							record.setRemark(MemberAccountFlowEntity.REMARK_CANCEL+symbol+MemberAccountFlowEntity.REMARK_RETURNBALANCE+returnBalance);
-							record.setBalance(walletCoin.getAvailableBalance().setScale(4, BigDecimal.ROUND_DOWN));
+							record.setBalance(walletCoin.getAvailableBalance());
 							record.setMemberId(memberId);
 							record.setSymbol(symbol);
-							record.setPrice(walletCoin.getFrozenBalance().setScale(4, BigDecimal.ROUND_DOWN));
+							record.setPrice(walletCoin.getFrozenBalance());
 							memberAccountFlowEntityDao.insert(record);
 							return Result.ok(MessageSourceUtils.getString("order_service_0013"));
 						}
@@ -476,4 +482,33 @@
 		return Result.ok(findCollectListVo);
 	}
 
+	@Override
+	public Result searchSymbolResultList() {
+		//获取用户ID
+		Long memberId = LoginUserUtils.getAppLoginUser().getId();
+		FindCollectListVo findCollectListVo = new FindCollectListVo();
+		List<MemberSelectSymbolsVo> list = new ArrayList<>();
+		
+		Map<String, Object> columnMap = new HashMap<>();
+		List<PlatformSymbolsCoinEntity> selectByMap = platformSymbolsCoinDao.selectByMap(columnMap);
+		
+		List<MemberSelectSymbolsEntity> selectSymbolByMemIdAndSymbol = memberSelectSymbolsDao.selectSymbolByMemId(memberId);
+		for(PlatformSymbolsCoinEntity platformSymbolsCoinEntity : selectByMap) {
+			MemberSelectSymbolsVo memberSelectSymbolsVo = new MemberSelectSymbolsVo();
+			memberSelectSymbolsVo.setSymbol(platformSymbolsCoinEntity.getName());
+			if(CollUtil.isNotEmpty(selectSymbolByMemIdAndSymbol)) {
+				for(MemberSelectSymbolsEntity memberSelectSymbolsEntity : selectSymbolByMemIdAndSymbol) {
+					if(platformSymbolsCoinEntity.getName().equals(memberSelectSymbolsEntity.getSymbol())) {
+						memberSelectSymbolsVo.setIsCollect(MemberSelectSymbolsVo.ISCOLLECT_YES);
+					}
+				}
+			}else {
+				memberSelectSymbolsVo.setIsCollect(MemberSelectSymbolsVo.ISCOLLECT_NO);
+			}
+			list.add(memberSelectSymbolsVo);
+		}
+		findCollectListVo.setMemberSelectSymbolsVo(list);
+		return Result.ok(findCollectListVo);
+	}
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
index 75b6fbe..0be9cc1 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/controller/ContractOrderController.java
@@ -95,9 +95,15 @@
     }
 
     @ApiOperation(value = "调整杠杆")
-    @GetMapping(value = "/changeLeverRate")
+    @PostMapping(value = "/changeLeverRate")
     public Result changeLeverRate(@RequestBody @Validated ChangeLeverRateDto changeLeverRateDto) {
         return contractHoldOrderService.changeLeverRate(changeLeverRateDto);
     }
 
+    @ApiOperation(value = "查询历史委托订单详情")
+    @GetMapping(value = "/findOrderDetailById")
+    public Result findOrderDetailById(@ApiParam(name = "id", value = "订单id", required = true, example = "1") @RequestParam(value = "id") Long id) {
+        return contractHoldOrderService.findOrderDetailById(id);
+    }
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
index 4a1bd7d..aaea6dc 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/dao/ContractOrderDao.java
@@ -4,11 +4,16 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.contract.parameter.dto.OrderListDto;
+import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * @author helius
  */
 public interface ContractOrderDao extends BaseMapper<ContractOrderEntity> {
 
-    public IPage<ContractOrderEntity> selectContractOrderInPage(Page<ContractOrderEntity> page, Long memberId);
+    public IPage<ContractOrderEntity> selectContractOrderInPage(Page<ContractOrderEntity> page, @Param("record") ContractOrderEntity contractOrderEntity);
+
+    public ContractOrderEntity selectOrderDetailByIdAndMemberId(@Param("id") Long id, @Param("memberId") Long memberId);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
index 680ca35..9a82765 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/entity/ContractOrderEntity.java
@@ -1,5 +1,8 @@
 package com.xcong.excoin.modules.contract.entity;
 
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.FieldStrategy;
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.baomidou.mybatisplus.annotation.TableName;
 import com.xcong.excoin.common.system.base.BaseEntity;
 import lombok.Data;
@@ -27,11 +30,15 @@
      */
     public static final int TRADE_TYPE_LIMIT_PRICE = 2;
 
+    /**
+     * 订单状态 撤单
+     */
+    public static final int ORDER_STATUS_CANCEL = 2;
 
     /**
-     * 订单类型 撤单
+     * 订单状态 成交
      */
-    public static final int ORDER_TYPE_CANCEL = -1;
+    public static final int ORDER_STATUS_SUCCESS = 1;
 
     /**
      * 订单类型 开多
@@ -75,11 +82,16 @@
     private int tradeType;
 
     /**
-     * 订单类型 - 0撤单,1开多,2开空,3平多,4平空
+     * 订单类型 - 1开多,2开空,3平多,4平空
      */
     private int orderType;
 
     /**
+     * 订单状态 - 1成交 2撤单
+     */
+    private int orderStatus = 1;
+
+    /**
      * 委托开仓价
      */
     private BigDecimal entrustOpeningPrice;
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
index bd11e1e..a80d1ef 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractEntrustOrderEntityMapper.java
@@ -24,6 +24,7 @@
     @Mapping(source = "entrustPrice", target = "entrustOpeningPrice")
     @Mapping(source = "createTime", target = "entrustTime")
     @Mapping(source = "entrustAmount", target = "prePaymentAmount")
+    @Mapping(source = "entrustType", target = "orderType")
     public abstract ContractOrderEntity entrustOrderToOrder(ContractEntrustOrderEntity orderEntity);
 
     @Mapping(source = "createTime", target = "entrustTime")
diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
index 2367df6..b2ad5e4 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractHoldOrderEntityMapper.java
@@ -22,5 +22,6 @@
 
     public abstract HoldOrderListVo holdOrderToDto(ContractHoldOrderEntity holdOrderEntity);
 
+    @Mapping(target = "openingTime", source = "createTime")
     public abstract HoldOrderDetailVo holdOrderToOrderDetailVo(ContractHoldOrderEntity holdOrderEntity);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java
index d77d2ab..b2e3ee2 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/mapper/ContractOrderEntityMapper.java
@@ -3,6 +3,7 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.xcong.excoin.modules.contract.entity.ContractOrderEntity;
+import com.xcong.excoin.modules.contract.parameter.vo.OrderDetailVo;
 import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
 import org.mapstruct.Mapper;
 import org.mapstruct.factory.Mappers;
@@ -22,4 +23,6 @@
     public abstract List<OrderListVo> orderEntitiesToOrderListVo(List<ContractOrderEntity> orderEntities);
 
     public abstract Page<OrderListVo> pageEntityToPageVo(IPage<ContractOrderEntity> orderEntityIPage);
+
+    public abstract OrderDetailVo entityToDetailVo(ContractOrderEntity orderEntity);
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java
index 6a35286..d194891 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/dto/OrderListDto.java
@@ -24,4 +24,8 @@
     @ApiModelProperty(value = "每页数量", example = "10")
     private int pageSize;
 
+    @NotNull
+    @ApiModelProperty(value = "币种", example = "BTC/USDT")
+    private String symbol;
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
index 12cc92c..7961ea2 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/HoldOrderDetailVo.java
@@ -59,4 +59,8 @@
 
     @ApiModelProperty("止盈价")
     private BigDecimal stopProfitPrice;
+
+    @ApiModelProperty("倍率杠杆")
+    private int leverRatio;
+
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
new file mode 100644
index 0000000..53db2fe
--- /dev/null
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderDetailVo.java
@@ -0,0 +1,81 @@
+package com.xcong.excoin.modules.contract.parameter.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * @author wzy
+ * @date 2020-06-05
+ **/
+@Data
+@ApiModel(value = "OrderDetailVo", description = "历史委托订单详情接口返回参数类")
+public class OrderDetailVo {
+
+    @ApiModelProperty("交易类型 1-市价2-限价")
+    private int tradeType;
+
+    @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空")
+    private int orderType;
+
+    @ApiModelProperty("订单编号")
+    private String orderNo;
+
+    @ApiModelProperty("委托开仓价")
+    private BigDecimal entrustOpeningPrice;
+
+    @ApiModelProperty("委托时间")
+    private Date entrustTime;
+
+    @ApiModelProperty("币种")
+    private String symbol;
+
+    @ApiModelProperty("张数")
+    private int symbolCnt;
+
+    @ApiModelProperty("平仓价")
+    private BigDecimal closingPrice;
+
+    @ApiModelProperty("平仓手续费")
+    private BigDecimal closingFeeAmount;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("平仓时间")
+    private Date closingTime;
+
+    @ApiModelProperty("平仓类型 2平多3平空4爆仓平多5爆仓平空6止盈平多7止盈平空8止损平多9止损平空")
+    private int closingType;
+
+    @ApiModelProperty("止损价")
+    private BigDecimal stopLosePrice;
+
+    @ApiModelProperty("止盈价")
+    private BigDecimal stopProfitPrice;
+
+    @ApiModelProperty("盈亏金额")
+    private BigDecimal rewardAmount;
+
+    @ApiModelProperty("盈亏比例")
+    private BigDecimal rewardRatio;
+
+    @ApiModelProperty("开仓价")
+    private BigDecimal openingPrice;
+
+    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
+    @ApiModelProperty("开仓时间")
+    private Date openingTime;
+
+    @ApiModelProperty("开仓手续费")
+    private BigDecimal openingFeeAmount;
+
+    @ApiModelProperty("保证金")
+    private BigDecimal bondAmount;
+
+    @ApiModelProperty("持仓费")
+    private BigDecimal holdAmount;
+
+}
diff --git a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
index 573d040..8d99c52 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/parameter/vo/OrderListVo.java
@@ -16,9 +16,15 @@
 @ApiModel(value = "OrderListVo", description = "历史委托订单接口返回参数类")
 public class OrderListVo {
 
-    @ApiModelProperty("订单类型 -1撤单,1开多,2开空,3平多,4平空")
+    @ApiModelProperty("订单ID")
+    private Long id;
+
+    @ApiModelProperty("订单类型 1开多,2开空,3平多,4平空")
     private int orderType;
 
+    @ApiModelProperty("订单状态 1成交 2撤单")
+    private int orderStatus;
+
     @ApiModelProperty("开仓均价")
     private BigDecimal openingPrice;
 
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
index 5498034..9294a72 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/ContractHoldOrderService.java
@@ -40,4 +40,6 @@
 
     public Result findOrderList(OrderListDto orderListDto);
 
+    public Result findOrderDetailById(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 7bfdde4..40a9490 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
@@ -168,11 +168,11 @@
         MemberWalletContractEntity walletContractEntity = memberWalletContractDao.findWalletContractByMemberIdAndSymbol(memberEntity.getId(), MemberWalletCoinEnum.WALLETCOINCODE.getValue());
 
         BigDecimal total = entrustOrderEntity.getEntrustAmount();
-        memberWalletContractDao.increaseWalletContractBalanceById(total, null, total.negate(), walletContractEntity.getId());
+        memberWalletContractDao.increaseWalletContractBalanceById(total, null, entrustOrderEntity.getBondAmount().negate(), walletContractEntity.getId());
 
         ContractOrderEntity orderEntity = ContractEntrustOrderEntityMapper.INSTANCE.entrustOrderToOrder(entrustOrderEntity);
         orderEntity.setTradeType(ContractOrderEntity.TRADE_TYPE_MARK_PRICE);
-        orderEntity.setOrderType(ContractOrderEntity.ORDER_TYPE_CANCEL);
+        orderEntity.setOrderStatus(ContractOrderEntity.ORDER_STATUS_CANCEL);
         int i = contractOrderDao.insert(orderEntity);
 
         contractEntrustOrderDao.deleteById(entrustOrderEntity.getId());
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
index 796710d..7a7014c 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/ContractHoldOrderServiceImpl.java
@@ -20,10 +20,7 @@
 import com.xcong.excoin.modules.contract.mapper.ContractHoldOrderEntityMapper;
 import com.xcong.excoin.modules.contract.mapper.ContractOrderEntityMapper;
 import com.xcong.excoin.modules.contract.parameter.dto.*;
-import com.xcong.excoin.modules.contract.parameter.vo.ContractMoneyInfoVo;
-import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderDetailVo;
-import com.xcong.excoin.modules.contract.parameter.vo.HoldOrderListVo;
-import com.xcong.excoin.modules.contract.parameter.vo.OrderListVo;
+import com.xcong.excoin.modules.contract.parameter.vo.*;
 import com.xcong.excoin.modules.contract.service.ContractHoldOrderService;
 import com.xcong.excoin.modules.member.dao.MemberLevelRateDao;
 import com.xcong.excoin.modules.member.dao.MemberWalletContractDao;
@@ -342,11 +339,11 @@
             if (stopProfitPrice != null) {
                 if (newPrice.compareTo(openPrice) > 0) {
                     if (stopProfitPrice.compareTo(openPrice) > 0) {
-                        return Result.fail("止损价必须低于开仓价");
+                        return Result.fail("止盈价必须低于开仓价");
                     }
                 } else {
                     if (stopProfitPrice.compareTo(newPrice) > 0) {
-                        return Result.fail("止损价必须低于当前价");
+                        return Result.fail("止盈价必须低于当前价");
                     }
                 }
             }
@@ -391,7 +388,6 @@
             producer.sendPriceOperate(JSONObject.toJSONString(model));
             return Result.ok("设置成功");
         }
-
         return Result.fail("设置失败");
     }
 
@@ -546,8 +542,23 @@
     public Result findOrderList(OrderListDto orderListDto) {
         MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
         Page<ContractOrderEntity> page = new Page<>(orderListDto.getPageNum(), orderListDto.getPageSize());
-        IPage<ContractOrderEntity> list = contractOrderDao.selectContractOrderInPage(page, memberEntity.getId());
+        ContractOrderEntity contractOrderEntity = new ContractOrderEntity();
+        contractOrderEntity.setMemberId(memberEntity.getId());
+        contractOrderEntity.setSymbol(orderListDto.getSymbol());
+        IPage<ContractOrderEntity> list = contractOrderDao.selectContractOrderInPage(page, contractOrderEntity);
         Page<OrderListVo> result = ContractOrderEntityMapper.INSTANCE.pageEntityToPageVo(list);
         return Result.ok(result);
     }
+
+    @Override
+    public Result findOrderDetailById(Long id) {
+        MemberEntity memberEntity = LoginUserUtils.getAppLoginUser();
+        ContractOrderEntity contractOrderEntity = contractOrderDao.selectOrderDetailByIdAndMemberId(id, memberEntity.getId());
+        if (contractOrderEntity == null) {
+            return Result.fail("订单不存在");
+        }
+
+        OrderDetailVo orderDetailVo = ContractOrderEntityMapper.INSTANCE.entityToDetailVo(contractOrderEntity);
+        return Result.ok(orderDetailVo);
+    }
 }
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
index fdbcec5..f63eb5a 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/OrderWebsocketServiceImpl.java
@@ -191,14 +191,15 @@
                         BigDecimal totalReturn = BigDecimal.ZERO;
                         contractOrderService.save(contractOrderEntity);
 
-                        contractEntrustOrderService.removeById(order.getId());
+                        contractHoldOrderService.removeById(order.getId());
                         // 将需要退回的减去手续费
                         BigDecimal needReturn = prePrice.add(profitLossPrice);
                         //总退回金额=保证金+收益-手续费
                         totalReturn = needReturn.subtract(contractOrderEntity.getClosingFeeAmount());
                         // 总的是收益-平仓手续费
                         BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount());
-                        memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId());
+
+                        memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId());
 
                         // 流水记录 TODO 531e
                         insertAccountFlow(order, wallet, profitLossPrice, "止盈平仓");
@@ -287,8 +288,8 @@
                         // 更新钱包
                         // 总的是收益-平仓手续费
                         BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount());
-                        memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId());
 
+                        memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId());
 
                         insertAccountFlow(order, wallet, profitLossPrice, "止盈平仓");
 
@@ -369,6 +370,8 @@
                         contractOrderEntity.setClosingType(8);
                         BigDecimal totalReturn = BigDecimal.ZERO;
                         contractOrderService.save(contractOrderEntity);
+
+                        contractHoldOrderService.removeById(order.getId());
                         // 将需要退回的减去手续费
                         BigDecimal needReturn = prePrice.add(profitLossPrice);
                         //总退回金额=保证金+收益-手续费
@@ -376,7 +379,8 @@
                         // 更新钱包
                         // 总的是收益-平仓手续费
                         BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount());
-                        memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId());
+
+                        memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId());
 
                         insertAccountFlow(order, wallet, profitLossPrice, "开多止损平仓");
 
@@ -420,7 +424,7 @@
                     String symbol = order.getSymbol();
                     Long memberId = order.getMemberId();
                     // 本次需要退回的预付款
-                    BigDecimal prePrice = order.getPrePaymentAmount();
+                    BigDecimal prePrice = order.getBondAmount();
                     MemberWalletContractEntity wallet = memberWalletContractService.findWalletContractByMemberIdAndSymbol(memberId, "USDT");
 
                     if (wallet != null) {
@@ -456,6 +460,9 @@
                         contractOrderEntity.setClosingType(9);
                         BigDecimal totalReturn = BigDecimal.ZERO;
                         contractOrderService.save(contractOrderEntity);
+
+                        contractHoldOrderService.removeById(order.getId());
+
                         // 将需要退回的减去手续费
                         BigDecimal needReturn = prePrice.add(profitLossPrice);
                         //总退回金额=保证金+收益-手续费
@@ -463,7 +470,7 @@
                         // 更新钱包
                         // 总的是收益-平仓手续费
                         BigDecimal totalBalance = profitLossPrice.subtract(contractOrderEntity.getClosingFeeAmount());
-                        memberWalletContractService.increaseWalletContractBalanceById(totalBalance, totalReturn, null, wallet.getId());
+                        memberWalletContractService.increaseWalletContractBalanceById(totalReturn, totalBalance, null, wallet.getId());
 
                         insertAccountFlow(order, wallet, profitLossPrice, "开空止损平仓");
 
@@ -547,6 +554,7 @@
                 contractOrderEntity.setEntrustOpeningPrice(coinsCoinsOrder.getEntrustPrice());
                 contractOrderEntity.setEntrustTime(coinsCoinsOrder.getCreateTime());
                 contractOrderEntity.setOpeningTime(new Date());
+                
                 contractOrderEntity.setId(null);
                 contractOrderService.save(contractOrderEntity);
                 // 发送爆仓的队列
diff --git a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
index ebba922..3e03322 100644
--- a/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/contract/service/impl/RabbitOrderServiceImpl.java
@@ -135,7 +135,6 @@
 
             // 计算盈利或亏损后可用金额和总金额应该增加或减少的
             BigDecimal addMoney = holdOrderEntity.getBondAmount().subtract(holdOrderEntity.getOpeningFeeAmount()).add(profitOrLoss);
-
             memberWalletContractDao.increaseWalletContractBalanceById(addMoney, profitOrLoss.subtract(contractOrderEntity.getOpeningFeeAmount()), null, walletContract.getId());
             // 计算佣金
             ThreadPoolUtils.calReturnMoney(memberEntity.getId(), contractOrderEntity.getClosingFeeAmount(), contractOrderEntity, AgentReturnEntity.ORDER_TYPE_CLOSE);
diff --git a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
index 995d87e..a89f189 100644
--- a/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/member/service/impl/MemberServiceImpl.java
@@ -827,8 +827,8 @@
                     		//新增提币记录
                     		MemberCoinWithdrawEntity memberCoinWithdrawEntity = new MemberCoinWithdrawEntity();
                     		memberCoinWithdrawEntity.setAddress(memberSubmitCoinApplyDto.getAddress());
-                    		memberCoinWithdrawEntity.setAmount(coinNumber.setScale(4, BigDecimal.ROUND_DOWN));
-                    		memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount().setScale(4, BigDecimal.ROUND_DOWN));
+                    		memberCoinWithdrawEntity.setAmount(coinNumber);
+                    		memberCoinWithdrawEntity.setFeeAmount(memberSubmitCoinApplyDto.getFeeAmount());
                     		memberCoinWithdrawEntity.setSymbol(memberSubmitCoinApplyDto.getSymbol());
                     		memberCoinWithdrawEntity.setMemberId(memberId);
                     		memberCoinWithdrawEntity.setStatus(MemberCoinWithdrawEntity.STATUS_DOING);
@@ -844,9 +844,9 @@
                     		}
                     		memberCoinWithdrawDao.insert(memberCoinWithdrawEntity);
                     		BigDecimal subtract = walletCoin.getAvailableBalance().subtract(coinNumber);
-                    		walletCoin.setAvailableBalance(subtract.setScale(4, BigDecimal.ROUND_DOWN));
+                    		walletCoin.setAvailableBalance(subtract);
                     		BigDecimal add = walletCoin.getFrozenBalance().add(coinNumber);
-                            walletCoin.setFrozenBalance(add.setScale(4, BigDecimal.ROUND_DOWN));
+                            walletCoin.setFrozenBalance(add);
                             memberWalletCoinDao.updateById(walletCoin);
                             
                             MemberAccountMoneyChange accountRecord = new MemberAccountMoneyChange();
diff --git a/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
index 6f87c46..96dc366 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/UsdtCnyExchangePriceUpdateJob.java
@@ -58,9 +58,6 @@
             String code = jsonObject.getString("code");
             if ("200".equals(code)) {
                 JSONObject jsonData = (JSONObject) jsonObject.get("data");
-                log.info("{}", jsonData);
-                log.info("{}", jsonData.getDouble("price"));
-                log.info("{}", jsonData.getString("price"));
                 cnyUsdtExchangeDao.updateUsdt(BigDecimal.valueOf(jsonData.getDouble("price")));
             }
         } catch (Exception e) {
diff --git a/src/main/resources/application-test.yml b/src/main/resources/application-test.yml
index 98f6ea1..5b5008b 100644
--- a/src/main/resources/application-test.yml
+++ b/src/main/resources/application-test.yml
@@ -94,9 +94,9 @@
   debug: true
   redis_expire: 3000
   kline-update-job: false
-  newest-price-update-job: false
-  other-job: false
-  rabbit-consumer: false
+  newest-price-update-job: true
+  other-job: true
+  rabbit-consumer: true
 
 aliyun:
   oss:
diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml
index b28cd2d..cf1a6f1 100644
--- a/src/main/resources/application.yml
+++ b/src/main/resources/application.yml
@@ -96,10 +96,10 @@
   # k线更新任务控制
   kline-update-job: false
   #最新价任务控制
-  newest-price-update-job: true
+  newest-price-update-job: false
   #其他任务控制
   other-job: false
-  rabbit-consumer: true
+  rabbit-consumer: false
 
 aliyun:
   oss:
diff --git a/src/main/resources/mapper/contract/ContractOrderDao.xml b/src/main/resources/mapper/contract/ContractOrderDao.xml
index d98a8d3..fc31d0e 100644
--- a/src/main/resources/mapper/contract/ContractOrderDao.xml
+++ b/src/main/resources/mapper/contract/ContractOrderDao.xml
@@ -4,8 +4,22 @@
 
 
     <select id="selectContractOrderInPage" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
-        select * from contract_order where member_id=#{memberId}
+        select * from contract_order
+        <if test="record != null">
+            <where>
+                <if test="record.memberId != null" >
+                    and member_id=#{record.memberId}
+                </if>
+                <if test="record.symbol != null and record.symbol != ''">
+                    and symbol = #{record.symbol}
+                </if>
+            </where>
+        </if>
         order by create_time desc
     </select>
 
+    <select id="selectOrderDetailByIdAndMemberId" resultType="com.xcong.excoin.modules.contract.entity.ContractOrderEntity">
+        select * from contract_order where id=#{id} and member_id=#{memberId}
+    </select>
+
 </mapper>
\ No newline at end of file
diff --git a/src/test/java/com/xcong/excoin/RabbitMqTest.java b/src/test/java/com/xcong/excoin/RabbitMqTest.java
index 82b668b..32f820e 100644
--- a/src/test/java/com/xcong/excoin/RabbitMqTest.java
+++ b/src/test/java/com/xcong/excoin/RabbitMqTest.java
@@ -1,5 +1,6 @@
 package com.xcong.excoin;
 
+import com.xcong.excoin.rabbit.pricequeue.WebsocketPriceService;
 import com.xcong.excoin.rabbit.producer.TestProducer;
 import org.junit.jupiter.api.Test;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -16,9 +17,17 @@
 
     @Autowired
     private TestProducer testProducer;
+    @Resource
+    private WebsocketPriceService websocketPriceService;
 
     @Test
     public void sendTestMsg() {
         testProducer.sendTestMsg("this is test msg");
     }
+
+    @Test
+    public void bombTest() {
+
+        websocketPriceService.comparePriceDesc("BTC/USDT", "9608");
+    }
 }

--
Gitblit v1.9.1