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