From eb088bb750808ccc20ac9add87c2c2895fd3620a Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 23 Mar 2021 16:43:52 +0800
Subject: [PATCH] 20210323 后台保留两位小数,(平台数据除外)
---
src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 983 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 977 insertions(+), 6 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 c9dc765..2d949d6 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
@@ -2,18 +2,27 @@
import java.math.BigDecimal;
+import java.util.Collections;
+import java.util.Comparator;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
-import org.springframework.stereotype.Service;
+import javax.validation.constraints.NotNull;
+import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.xcong.excoin.common.entity.FebsResponse;
import com.xcong.excoin.common.entity.QueryRequest;
import com.xcong.excoin.common.utils.CoinTypeConvert;
import com.xcong.excoin.common.utils.RedisUtils;
+import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
+import com.xcong.excoin.modules.documentary.mapper.FollowFollowerProfitMapper;
import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity;
import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity;
import com.xcong.excoin.modules.member.entity.MemberEntity;
@@ -30,6 +39,11 @@
import com.xcong.excoin.modules.trademanage.mapper.MemberWalletAgentMapper;
import com.xcong.excoin.modules.trademanage.service.TradeManageService;
import com.xcong.excoin.modules.trademanage.vo.MemberAccountInfoVo;
+import com.xcong.excoin.modules.trademanage.vo.PositionSettingVo;
+
+import cn.hutool.core.collection.CollUtil;
+import cn.hutool.core.util.ObjectUtil;
+import cn.hutool.core.util.StrUtil;
import lombok.RequiredArgsConstructor;
@Service
@@ -46,9 +60,12 @@
private final ContractOrderMapper contractHoldOrderMapper;
+
private final AgentReturnMapper agentReturnMapper;
private final MemberAuthenticationMapper memberAuthenticationMapper;
+
+ private final FollowFollowerProfitMapper followFollowerProfitMapper;
private final RedisUtils redisUtils;
@@ -62,6 +79,35 @@
if (records != null) {
for (ContractHoldOrderEntity holdOrderEntity : records) {
MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId());
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+ //如果是跟单合约,显示他的交易员的邀请码
+ int contractType = holdOrderEntity.getContractType();
+ Long holdOrderEntityMemberId = holdOrderEntity.getMemberId();
+ MemberEntity holdOrderEntityMember = memberMapper.selectById(holdOrderEntityMemberId);
+ Integer isTrader = holdOrderEntityMember.getIsTrader();
+ if(MemberEntity.ISTRADER_N == isTrader) {
+ if(ContractHoldOrderEntity.CONTRACTTYPE_FOLLOW == contractType) {
+ //获取对应的【follow_follower_profit】跟随者收益关系表
+ QueryWrapper<FollowFollowerProfitEntity> queryWrapper = new QueryWrapper<>();
+ queryWrapper.eq("member_id",holdOrderEntity.getMemberId());
+ FollowFollowerProfitEntity followFollowerProfitEntity = followFollowerProfitMapper.selectOne(queryWrapper);
+ Long tradeMemberId = followFollowerProfitEntity.getTradeMemberId();
+ MemberEntity selectByIdTrader = memberMapper.selectById(tradeMemberId);
+ String inviteId = selectByIdTrader.getInviteId();
+ holdOrderEntity.setInviteIdTrader(inviteId);
+ }
+ }
// 获取最新价
BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol())));
BigDecimal lotNumber = holdOrderEntity.getSymbolSku();
@@ -98,9 +144,21 @@
Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoListInPage(page, memberEntity);
List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
- if(records.size() > 0) {
+ if(CollUtil.isNotEmpty(records)) {
for(MemberAccountInfoVo memberAccountInfoVo : records) {
Long memberId = memberAccountInfoVo.getId();
+
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+ if(CollUtil.isNotEmpty(selectByMap)) {
+ MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+ String firstName = memberAuthenticationEntity.getFirstName();
+ String secondName = memberAuthenticationEntity.getSecondName();
+ String realName = firstName + secondName;
+ memberAccountInfoVo.setRealName(realName);
+ }
+
//总盈亏
String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
BigDecimal bd=new BigDecimal(rewardratioByMid);
@@ -111,11 +169,12 @@
}else {
memberAccountInfoVo.setIsSuAccount(1);
}
- Map<String, Object> columnMap = new HashMap<>();
+
+ Map<String, Object> columnMaps = new HashMap<>();
columnMap.put("member_id", memberId);
- List<MemberWalletAgentEntity> selectByMap = memberWalletAgentMapper.selectByMap(columnMap);
- if(selectByMap.size() > 0) {
- BigDecimal availableBalance = selectByMap.get(0).getAvailableBalance();
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMaps);
+ if(CollUtil.isNotEmpty(selectByMaps)) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
}
@@ -129,6 +188,23 @@
MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAccountInfoListInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(CollUtil.isNotEmpty(records)) {
+ for(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntitys : records) {
+ Long memberId = memberAccountMoneyChangeEntitys.getMemberId();
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap );
+ if(CollUtil.isNotEmpty(selectByMap)) {
+ MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0);
+ String firstName = memberAuthenticationEntity.getFirstName();
+ String secondName = memberAuthenticationEntity.getSecondName();
+ String realName = firstName + secondName;
+ memberAccountMoneyChangeEntitys.setRealName(realName);
+ }
+ }
+ }
return findMemberAccountInfoListInPage;
}
@@ -153,6 +229,22 @@
QueryRequest request) {
Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoAllInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(CollUtil.isNotEmpty(records)) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
return findMemberAccountInfoListInPage;
}
@@ -307,6 +399,885 @@
}
return selectMemberListInPage;
}
+
+ @Override
+ public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneTestInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTestInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+
+
+ 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> findhistoryOrderInfoAloneTestInfoInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findhistoryOrderInfoAloneTestInfoInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneTestInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTestInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ String selectYJByMemberId = agentReturnMapper.selectYJTestByMemberId();
+ 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;
+ }
+
+ @Override
+ public IPage<MemberAccountInfoVo> findmemberAccountInfoAloneTestListInPage(MemberEntity memberEntity,
+ QueryRequest request) {
+ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findmemberAccountInfoAloneTestListInPage(page, memberEntity);
+ List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+ if(records.size() > 0) {
+ for(MemberAccountInfoVo memberAccountInfoVo : records) {
+ Long memberId = memberAccountInfoVo.getId();
+ 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;
+ memberAccountInfoVo.setRealName(realName);
+ }
+ //总盈亏
+ String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+ BigDecimal bd=new BigDecimal(rewardratioByMid);
+ memberAccountInfoVo.setRewardratioByMid(bd);
+ String inviteId = memberMapper.selectAgentForAccount(memberId);
+ if("".equals(inviteId) || inviteId == null) {
+ memberAccountInfoVo.setIsSuAccount(0);
+ }else {
+ memberAccountInfoVo.setIsSuAccount(1);
+ }
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+ if(selectByMaps.size() > 0) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+ memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+ }
+
+ }
+ }
+ return selectMemberListInPage;
+ }
+
+ @Override
+ public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneOneInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+
+
+ 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<ContractHoldOrderEntity> findContractHoldOrderAloneTwoInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTwoInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+
+
+ 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<ContractHoldOrderEntity> findContractHoldOrderAloneThreeInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneThreeInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+
+
+ 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<ContractHoldOrderEntity> findContractHoldOrderAloneOneAllInPage(
+ ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) {
+
+ Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneAllInPage(page, contractHoldOrderEntity);
+ List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+
+ if (records != null) {
+ for (ContractHoldOrderEntity holdOrderEntity : records) {
+
+ Long memberId = holdOrderEntity.getMemberId();
+ 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;
+ holdOrderEntity.setRealName(realName);
+ }
+
+
+ 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<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneOneInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ 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);
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneTwoInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTwoInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ 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);
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneThreeInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneThreeInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ 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);
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneOneAllInPage(
+ MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) {
+
+ Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage =
+ memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneAllInPage(page, memberAccountMoneyChangeEntity);
+
+ List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ 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);
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneOneInPage(MemberEntity memberEntity,
+ QueryRequest request) {
+
+ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneOneInPage(page, memberEntity);
+ List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+ if(records.size() > 0) {
+ for(MemberAccountInfoVo memberAccountInfoVo : records) {
+
+ Long memberId = memberAccountInfoVo.getId();
+ String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+ String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+ String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+
+ memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+ memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+ memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+
+ 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;
+ memberAccountInfoVo.setRealName(realName);
+ }
+ //总盈亏
+ String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+ BigDecimal bd=new BigDecimal(rewardratioByMid);
+ memberAccountInfoVo.setRewardratioByMid(bd);
+ String inviteId = memberMapper.selectAgentForAccount(memberId);
+ if("".equals(inviteId) || inviteId == null) {
+ memberAccountInfoVo.setIsSuAccount(0);
+ }else {
+ memberAccountInfoVo.setIsSuAccount(1);
+ }
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+ if(selectByMaps.size() > 0) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+ memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+ }
+
+ }
+ }
+ return selectMemberListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneTwoInPage(MemberEntity memberEntity,
+ QueryRequest request) {
+
+ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTwoInPage(page, memberEntity);
+ List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+ if(records.size() > 0) {
+ for(MemberAccountInfoVo memberAccountInfoVo : records) {
+
+ Long memberId = memberAccountInfoVo.getId();
+ String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+ String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+ String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+
+ memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+ memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+ memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+
+ 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;
+ memberAccountInfoVo.setRealName(realName);
+ }
+ //总盈亏
+ String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+ BigDecimal bd=new BigDecimal(rewardratioByMid);
+ memberAccountInfoVo.setRewardratioByMid(bd);
+ String inviteId = memberMapper.selectAgentForAccount(memberId);
+ if("".equals(inviteId) || inviteId == null) {
+ memberAccountInfoVo.setIsSuAccount(0);
+ }else {
+ memberAccountInfoVo.setIsSuAccount(1);
+ }
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+ if(selectByMaps.size() > 0) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+ memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+ }
+
+ }
+ }
+ return selectMemberListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneTeeInPage(MemberEntity memberEntity,
+ QueryRequest request) {
+
+ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTeeInPage(page, memberEntity);
+ List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+ if(records.size() > 0) {
+ for(MemberAccountInfoVo memberAccountInfoVo : records) {
+ Long memberId = memberAccountInfoVo.getId();
+
+ String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+ String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+ String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+
+ memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+ memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+ memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+
+ 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;
+ memberAccountInfoVo.setRealName(realName);
+ }
+ //总盈亏
+ String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+ BigDecimal bd=new BigDecimal(rewardratioByMid);
+ memberAccountInfoVo.setRewardratioByMid(bd);
+ String inviteId = memberMapper.selectAgentForAccount(memberId);
+ if("".equals(inviteId) || inviteId == null) {
+ memberAccountInfoVo.setIsSuAccount(0);
+ }else {
+ memberAccountInfoVo.setIsSuAccount(1);
+ }
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+ if(selectByMaps.size() > 0) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+ memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+ }
+
+ }
+ }
+ return selectMemberListInPage;
+ }
+
+ @Override
+ public IPage<MemberAccountInfoVo> findMemberAccountInfoAloneAllInPage(MemberEntity memberEntity,
+ QueryRequest request) {
+
+ Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneAllInPage(page, memberEntity);
+ List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords();
+ if(records.size() > 0) {
+ for(MemberAccountInfoVo memberAccountInfoVo : records) {
+ Long memberId = memberAccountInfoVo.getId();
+
+ String walletAvailableBalance = memberMapper.selectWalletAvailableBalanceBymemberId(memberId);
+ String walletTotalBalance = memberMapper.selectWalletTotalBalanceBymemberId(memberId);
+ String walletFrozenBalance = memberMapper.selectWalletFrozenBalanceBymemberId(memberId);
+
+ memberAccountInfoVo.setWalletCoinAvailableBalance(new BigDecimal(walletAvailableBalance));
+ memberAccountInfoVo.setWalletCoinTotalBalance(new BigDecimal(walletTotalBalance));
+ memberAccountInfoVo.setWalletCoinFrozenBalance(new BigDecimal(walletFrozenBalance));
+
+ 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;
+ memberAccountInfoVo.setRealName(realName);
+ }
+ //总盈亏
+ String rewardratioByMid = memberMapper.selectRewardratioForBasicRealDataBymid(memberId);
+ BigDecimal bd=new BigDecimal(rewardratioByMid);
+ memberAccountInfoVo.setRewardratioByMid(bd);
+ String inviteId = memberMapper.selectAgentForAccount(memberId);
+ if("".equals(inviteId) || inviteId == null) {
+ memberAccountInfoVo.setIsSuAccount(0);
+ }else {
+ memberAccountInfoVo.setIsSuAccount(1);
+ }
+ List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMap);
+ if(selectByMaps.size() > 0) {
+ BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance();
+ memberAccountInfoVo.setAgentAvailableBalance(availableBalance);
+ }
+
+ }
+ }
+ return selectMemberListInPage;
+ }
+
+ @Override
+ public IPage<ContractOrderEntity> findHistoryOrderInfoAloneOneInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneOneInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<ContractOrderEntity> findHistoryOrderInfoAloneTwoInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTwoInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<ContractOrderEntity> findHistoryOrderInfoAloneTeeInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTeeInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<ContractOrderEntity> findHistoryOrderInfoAloneAllInPage(ContractOrderEntity contractOrderEntity,
+ QueryRequest request) {
+
+ Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneAllInPage(page, contractOrderEntity);
+ List<ContractOrderEntity> records = findMemberAccountInfoListInPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(ContractOrderEntity contractOrderEntitys : records) {
+ Long memberId = contractOrderEntitys.getMemberId();
+ 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;
+ contractOrderEntitys.setRealName(realName);
+ }
+ }
+ }
+ return findMemberAccountInfoListInPage;
+ }
+
+ @Override
+ public IPage<PositionSettingVo> getPositionSettingList(MemberEntity memberEntity, QueryRequest request) {
+
+ Page<PositionSettingVo> page = new Page<>(request.getPageNum(), request.getPageSize());
+ IPage<PositionSettingVo> positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingList(page, memberEntity);
+ if(StrUtil.isNotEmpty(memberEntity.getAccounts())) {
+ positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingsList(page, memberEntity);
+ }
+ List<PositionSettingVo> records = positionSettingVoIPage.getRecords();
+ if(records != null && records.size() > 0) {
+ for(PositionSettingVo positionSettingVo : records) {
+ Long memberId = positionSettingVo.getId();
+ MemberEntity selectById = memberMapper.selectById(memberId);
+ //当前持仓总盈亏
+ Map<String, Object> columnMap = new HashMap<>();
+ columnMap.put("member_id", memberId);
+ BigDecimal sumRewardAmount = BigDecimal.ZERO;
+ List<ContractHoldOrderEntity> contractHoldOrderEntitys = contractHoldOrderEntityMapper.selectByMap(columnMap );
+ for(ContractHoldOrderEntity holdOrderEntity : contractHoldOrderEntitys) {
+ // 获取最新价
+ 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));
+ }
+ }
+ sumRewardAmount = sumRewardAmount.add(rewardRatio);
+ }
+ positionSettingVo.setSumRewardAmount(sumRewardAmount);
+ }
+ //降序
+// Collections.sort(records, new Comparator<PositionSettingVo>() {//调用sort()方法,并实现Comparator接口中的compare()方法
+// @Override
+// public int compare(PositionSettingVo lhs, PositionSettingVo rhs) {
+// int value = Integer.valueOf(rhs.getSumRewardAmount().intValue())
+// - Integer.valueOf(lhs.getSumRewardAmount().intValue());
+// return value;
+// }
+// });
+ //升序
+ CollUtil.sortByProperty(records, "sumRewardAmount");
+ //CollUtil.sortByProperty(records, "accountType");
+ }
+// positionSettingVoIPage.setRecords(records);
+ return positionSettingVoIPage;
+ }
+
+ @Override
+ @Transactional
+ public FebsResponse disagreePositionSetting(@NotNull(message = "{required}") Long id) {
+ MemberEntity memberEntity = memberMapper.selectById(id);
+ if(ObjectUtil.isEmpty(memberEntity)) {
+ return new FebsResponse().fail().message("会员信息不存在");
+ }
+ memberEntity.setPcState(MemberEntity.PCSTATE_N);
+ memberMapper.updateById(memberEntity);
+ return new FebsResponse().success();
+ }
+
+ @Override
+ public FebsResponse agreePositionSetting(@NotNull(message = "{required}") Long id) {
+ MemberEntity memberEntity = memberMapper.selectById(id);
+ if(ObjectUtil.isEmpty(memberEntity)) {
+ return new FebsResponse().fail().message("会员信息不存在");
+ }
+ memberEntity.setPcState(MemberEntity.PCSTATE_Y);
+ memberMapper.updateById(memberEntity);
+ return new FebsResponse().success();
+ }
--
Gitblit v1.9.1