From 394a93c64be8d057a2c3553aaca0045d08010f6a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Mon, 20 Jul 2020 17:48:59 +0800
Subject: [PATCH] 20200720 代码提交
---
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 50 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
index 1561835..4095abd 100644
--- a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
+++ b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java
@@ -116,6 +116,7 @@
}
}
+ selectMemberListInPage.setTotal(records.size());
}
return selectMemberListInPage;
}
@@ -152,4 +153,53 @@
return findMemberAccountInfoListInPage;
}
+ @Override
+ public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+ MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+ // 获取最新价
+ BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
+ BigDecimal lotNumber = holdOrderEntity.getSymbolSku();
+ // 盈亏
+ BigDecimal rewardRatio = BigDecimal.ZERO;
+ // 开多
+ if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) {
+ // (最新价-开仓价)*规格*张数
+ rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
+ // 开空
+ } else {
+ // (开仓价-最新价)*规格*张数
+ rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt()));
+ }
+
+ if (selectById.getIsProfit() == MemberEntity.IS_PROFIT_Y) {
+ String selectTradeSetting = memberMapper.selectTradeSetting();
+ BigDecimal profitParam=new BigDecimal(selectTradeSetting);
+ if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) {
+ rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(profitParam));
+ } else {
+ rewardRatio = rewardRatio.multiply(BigDecimal.ONE.add(profitParam));
+ }
+ }
+
+ holdOrderEntity.setRewardRatio(rewardRatio);
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<ContractOrderEntity> findHistoryOrderInfoAloneInfoInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneInfoInPage(page, contractOrderEntity);
+ return findMemberAccountInfoListInPage;
+ }
+
}
--
Gitblit v1.9.1