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 | 904 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 898 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 3420f88..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; } @@ -386,6 +478,806 @@ } 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