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 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 findContractHoldOrderListInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.selectContractHoldOrderListInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId()); Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 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 findMemberAccountInfoListInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoListInPage(page, memberEntity); List records = selectMemberListInPage.getRecords(); if(CollUtil.isNotEmpty(records)) { for(MemberAccountInfoVo memberAccountInfoVo : records) { Long memberId = memberAccountInfoVo.getId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 columnMaps = new HashMap<>(); columnMap.put("member_id", memberId); List selectByMaps = memberWalletAgentMapper.selectByMap(columnMaps); if(CollUtil.isNotEmpty(selectByMaps)) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findMemberAgentReturnInfoInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAccountInfoListInPage(page, memberAccountMoneyChangeEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(CollUtil.isNotEmpty(records)) { for(MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntitys : records) { Long memberId = memberAccountMoneyChangeEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberHistoryOrderInfoInPage( ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoInPage(page, contractOrderEntity); return findMemberAccountInfoListInPage; } @Override public IPage findMemberAgentReturnInfosInPage(AgentReturnEntity agentReturnEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = agentReturnMapper.findMemberAgentReturnInfosInPage(page, agentReturnEntity); return findMemberAccountInfoListInPage; } @Override public IPage findMemberHistoryOrderAllInfoInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findMemberHistoryOrderInfoAllInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(CollUtil.isNotEmpty(records)) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findContractHoldOrderAloneInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findHistoryOrderInfoAloneInfoInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneInfoInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneInPage(page, memberAccountMoneyChangeEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findmemberAccountInfoAloneListInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoAloneListInPage(page, memberEntity); List records = selectMemberListInPage.getRecords(); if(records.size() > 0) { for(MemberAccountInfoVo memberAccountInfoVo : records) { Long memberId = memberAccountInfoVo.getId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findContractHoldOrderAloneTestInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTestInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findhistoryOrderInfoAloneTestInfoInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findhistoryOrderInfoAloneTestInfoInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneTestInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTestInPage(page, memberAccountMoneyChangeEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findmemberAccountInfoAloneTestListInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findmemberAccountInfoAloneTestListInPage(page, memberEntity); List records = selectMemberListInPage.getRecords(); if(records.size() > 0) { for(MemberAccountInfoVo memberAccountInfoVo : records) { Long memberId = memberAccountInfoVo.getId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findContractHoldOrderAloneOneInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findContractHoldOrderAloneTwoInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneTwoInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findContractHoldOrderAloneThreeInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneThreeInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findContractHoldOrderAloneOneAllInPage( ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneOneAllInPage(page, contractHoldOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if (records != null) { for (ContractHoldOrderEntity holdOrderEntity : records) { Long memberId = holdOrderEntity.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneOneInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneInPage(page, memberAccountMoneyChangeEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) { Long memberId = accountMoneyChangeEntity.getMemberId(); String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneTwoInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneTwoInPage(page, memberAccountMoneyChangeEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) { Long memberId = accountMoneyChangeEntity.getMemberId(); String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneThreeInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneThreeInPage(page, memberAccountMoneyChangeEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) { Long memberId = accountMoneyChangeEntity.getMemberId(); String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAgentReturnInfoAloneOneAllInPage( MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneOneAllInPage(page, memberAccountMoneyChangeEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) { Long memberId = accountMoneyChangeEntity.getMemberId(); String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findMemberAccountInfoAloneOneInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoAloneOneInPage(page, memberEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findMemberAccountInfoAloneTwoInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTwoInPage(page, memberEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findMemberAccountInfoAloneTeeInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoAloneTeeInPage(page, memberEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findMemberAccountInfoAloneAllInPage(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage selectMemberListInPage = memberMapper.findMemberAccountInfoAloneAllInPage(page, memberEntity); List 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 columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 selectByMaps = memberWalletAgentMapper.selectByMap(columnMap); if(selectByMaps.size() > 0) { BigDecimal availableBalance = selectByMaps.get(0).getAvailableBalance(); memberAccountInfoVo.setAgentAvailableBalance(availableBalance); } } } return selectMemberListInPage; } @Override public IPage findHistoryOrderInfoAloneOneInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneOneInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findHistoryOrderInfoAloneTwoInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTwoInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findHistoryOrderInfoAloneTeeInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneTeeInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 findHistoryOrderInfoAloneAllInPage(ContractOrderEntity contractOrderEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneAllInPage(page, contractOrderEntity); List records = findMemberAccountInfoListInPage.getRecords(); if(records != null && records.size() > 0) { for(ContractOrderEntity contractOrderEntitys : records) { Long memberId = contractOrderEntitys.getMemberId(); Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); List 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 getPositionSettingList(MemberEntity memberEntity, QueryRequest request) { Page page = new Page<>(request.getPageNum(), request.getPageSize()); IPage positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingList(page, memberEntity); if(StrUtil.isNotEmpty(memberEntity.getAccounts())) { positionSettingVoIPage = contractHoldOrderMapper.getPositionSettingsList(page, memberEntity); } List records = positionSettingVoIPage.getRecords(); if(records != null && records.size() > 0) { for(PositionSettingVo positionSettingVo : records) { Long memberId = positionSettingVo.getId(); MemberEntity selectById = memberMapper.selectById(memberId); //当前持仓总盈亏 Map columnMap = new HashMap<>(); columnMap.put("member_id", memberId); BigDecimal sumRewardAmount = BigDecimal.ZERO; List 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() {//调用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(); } }