From cf200a1f92c01ba22c326c49391f748ffb006910 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Mon, 05 Jul 2021 17:28:35 +0800 Subject: [PATCH] 20210617 开售开关 --- src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 1449 ++++++++++++++++++++++++++++++++++++++++++++++++++++----- 1 files changed, 1,306 insertions(+), 143 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 d57aa70..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 @@ -1,143 +1,1306 @@ -package com.xcong.excoin.modules.trademanage.service.impl; - - -import java.math.BigDecimal; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import org.springframework.stereotype.Service; - -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.QueryRequest; -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.MemberEntity; -import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; -import com.xcong.excoin.modules.member.mapper.MemberMapper; -import com.xcong.excoin.modules.trademanage.entity.AgentReturnEntity; -import com.xcong.excoin.modules.trademanage.entity.ContractHoldOrderEntity; -import com.xcong.excoin.modules.trademanage.entity.ContractOrderEntity; -import com.xcong.excoin.modules.trademanage.entity.MemberWalletAgentEntity; -import com.xcong.excoin.modules.trademanage.mapper.AgentReturnMapper; -import com.xcong.excoin.modules.trademanage.mapper.ContractHoldOrderEntityMapper; -import com.xcong.excoin.modules.trademanage.mapper.ContractOrderMapper; -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 lombok.RequiredArgsConstructor; - -@Service -@RequiredArgsConstructor -public class TradeManageServiceImpl extends ServiceImpl<ContractHoldOrderEntityMapper, ContractHoldOrderEntity> implements TradeManageService{ - - private final ContractHoldOrderEntityMapper contractHoldOrderEntityMapper; - - private final MemberMapper memberMapper; - - private final MemberWalletAgentMapper memberWalletAgentMapper; - - private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper; - - private final ContractOrderMapper contractHoldOrderMapper; - - private final AgentReturnMapper agentReturnMapper; - - private final RedisUtils redisUtils; - - @Override - public IPage<ContractHoldOrderEntity> findContractHoldOrderListInPage( - ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { - Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.selectContractHoldOrderListInPage(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<MemberAccountInfoVo> findMemberAccountInfoListInPage(MemberEntity memberEntity, QueryRequest request) { - 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) { - for(MemberAccountInfoVo memberAccountInfoVo : records) { - Long memberId = memberAccountInfoVo.getId(); - String inviteId = memberMapper.selectAgentForAccount(memberId); - if("".equals(inviteId) || inviteId == null) { - memberAccountInfoVo.setIsSuAccount(0); - }else { - memberAccountInfoVo.setIsSuAccount(1); - } - Map<String, Object> columnMap = new HashMap<>(); - columnMap.put("member_id", memberId); - List<MemberWalletAgentEntity> selectByMap = memberWalletAgentMapper.selectByMap(columnMap); - if(selectByMap.size() > 0) { - BigDecimal availableBalance = selectByMap.get(0).getAvailableBalance(); - memberAccountInfoVo.setAgentAvailableBalance(availableBalance); - } - - } - } - return selectMemberListInPage; - } - - @Override - public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoInPage( - MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { - Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAccountInfoListInPage(page, memberAccountMoneyChangeEntity); - return findMemberAccountInfoListInPage; - } - - @Override - public IPage<ContractOrderEntity> findMemberHistoryOrderInfoInPage( - ContractOrderEntity contractOrderEntity, QueryRequest request) { - Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoInPage(page, contractOrderEntity); - return findMemberAccountInfoListInPage; - } - - @Override - public IPage<AgentReturnEntity> findMemberAgentReturnInfosInPage(AgentReturnEntity agentReturnEntity, - QueryRequest request) { - Page<AgentReturnEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); - IPage<AgentReturnEntity> findMemberAccountInfoListInPage = agentReturnMapper.findMemberAgentReturnInfosInPage(page, agentReturnEntity); - return findMemberAccountInfoListInPage; - } - -} +package com.xcong.excoin.modules.trademanage.service.impl; + + +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 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; +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; +import com.xcong.excoin.modules.trademanage.entity.ContractOrderEntity; +import com.xcong.excoin.modules.trademanage.entity.MemberWalletAgentEntity; +import com.xcong.excoin.modules.trademanage.mapper.AgentReturnMapper; +import com.xcong.excoin.modules.trademanage.mapper.ContractHoldOrderEntityMapper; +import com.xcong.excoin.modules.trademanage.mapper.ContractOrderMapper; +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 +@RequiredArgsConstructor +public class TradeManageServiceImpl extends ServiceImpl<ContractHoldOrderEntityMapper, ContractHoldOrderEntity> implements TradeManageService{ + + private final ContractHoldOrderEntityMapper contractHoldOrderEntityMapper; + + private final MemberMapper memberMapper; + + private final MemberWalletAgentMapper memberWalletAgentMapper; + + private final MemberAccountMoneyChangeMapper memberAccountMoneyChangeMapper; + + private final ContractOrderMapper contractHoldOrderMapper; + + + private final AgentReturnMapper agentReturnMapper; + + private final MemberAuthenticationMapper memberAuthenticationMapper; + + private final FollowFollowerProfitMapper followFollowerProfitMapper; + + private final RedisUtils redisUtils; + + @Override + public IPage<ContractHoldOrderEntity> findContractHoldOrderListInPage( + ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { + Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.selectContractHoldOrderListInPage(page, contractHoldOrderEntity); + List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords(); + + 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(); + // 盈亏 + 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<MemberAccountInfoVo> findMemberAccountInfoListInPage(MemberEntity memberEntity, QueryRequest request) { + Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoListInPage(page, memberEntity); + List<MemberAccountInfoVo> records = selectMemberListInPage.getRecords(); + 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); + memberAccountInfoVo.setRewardratioByMid(bd); + String inviteId = memberMapper.selectAgentForAccount(memberId); + if("".equals(inviteId) || inviteId == null) { + memberAccountInfoVo.setIsSuAccount(0); + }else { + memberAccountInfoVo.setIsSuAccount(1); + } + + Map<String, Object> columnMaps = new HashMap<>(); + columnMap.put("member_id", memberId); + List<MemberWalletAgentEntity> selectByMaps = memberWalletAgentMapper.selectByMap(columnMaps); + if(CollUtil.isNotEmpty(selectByMaps)) { + BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); + memberAccountInfoVo.setAgentAvailableBalance(availableBalance); + } + + } + } + return selectMemberListInPage; + } + + @Override + public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoInPage( + 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; + } + + @Override + public IPage<ContractOrderEntity> findMemberHistoryOrderInfoInPage( + ContractOrderEntity contractOrderEntity, QueryRequest request) { + Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoInPage(page, contractOrderEntity); + return findMemberAccountInfoListInPage; + } + + @Override + public IPage<AgentReturnEntity> findMemberAgentReturnInfosInPage(AgentReturnEntity agentReturnEntity, + QueryRequest request) { + Page<AgentReturnEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<AgentReturnEntity> findMemberAccountInfoListInPage = agentReturnMapper.findMemberAgentReturnInfosInPage(page, agentReturnEntity); + return findMemberAccountInfoListInPage; + } + + @Override + public IPage<ContractOrderEntity> findMemberHistoryOrderAllInfoInPage(ContractOrderEntity contractOrderEntity, + 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; + } + + @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) { + + 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> findHistoryOrderInfoAloneInfoInPage(ContractOrderEntity contractOrderEntity, + QueryRequest request) { + Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneInfoInPage(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> 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; + } + + @Override + public IPage<MemberAccountInfoVo> findmemberAccountInfoAloneListInPage(MemberEntity memberEntity, + QueryRequest request) { + Page<MemberEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MemberAccountInfoVo> selectMemberListInPage = memberMapper.findMemberAccountInfoAloneListInPage(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> 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