From cca760c2ac6ac19ddd1428f43e867affc9f8cab4 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 21 Jul 2020 12:06:48 +0800
Subject: [PATCH] 20200721 代码提交
---
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 110 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..8ecae99 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
@@ -15,8 +15,10 @@
import com.xcong.excoin.common.utils.CoinTypeConvert;
import com.xcong.excoin.common.utils.RedisUtils;
import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
+import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity;
import com.xcong.excoin.modules.member.entity.MemberEntity;
import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper;
+import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper;
import com.xcong.excoin.modules.member.mapper.MemberMapper;
import com.xcong.excoin.modules.trademanage.entity.AgentReturnEntity;
import com.xcong.excoin.modules.trademanage.entity.ContractHoldOrderEntity;
@@ -45,6 +47,8 @@
private final ContractOrderMapper contractHoldOrderMapper;
private final AgentReturnMapper agentReturnMapper;
+
+ private final MemberAuthenticationMapper memberAuthenticationMapper;
private final RedisUtils redisUtils;
@@ -152,4 +156,110 @@
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;
+ }
+
+ @Override
+ public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ String selectYJByMemberId = agentReturnMapper.selectYJByMemberId();
+ for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) {
+ Long memberId = accountMoneyChangeEntity.getMemberId();
+ String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId);
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+ if(selectByMap != null && selectByMap.size() > 0) {
+ MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+ String firstName = memberAuthenticationEntity.getFirstName();
+ String secondName = memberAuthenticationEntity.getSecondName();
+ String realName = firstName + secondName;
+ accountMoneyChangeEntity.setRealName(realName);
+ }
+ accountMoneyChangeEntity.setAllAmount(allAmount);
+ if(memberId == 8) {
+ accountMoneyChangeEntity.setAmount(BigDecimal.ZERO);
+ accountMoneyChangeEntity.setAllAmount(selectYJByMemberId);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
}
--
Gitblit v1.9.1