From 78fae6519d70f30cae9f943037a9896b67cc05a0 Mon Sep 17 00:00:00 2001 From: xiaoyong931011 <15274802129@163.com> Date: Tue, 21 Jul 2020 12:41:16 +0800 Subject: [PATCH] 20200721 代码提交 --- src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java | 110 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 110 insertions(+), 0 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java index 1561835..8ecae99 100644 --- a/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/trademanage/service/impl/TradeManageServiceImpl.java @@ -15,8 +15,10 @@ import com.xcong.excoin.common.utils.CoinTypeConvert; import com.xcong.excoin.common.utils.RedisUtils; import com.xcong.excoin.modules.member.entity.MemberAccountMoneyChangeEntity; +import com.xcong.excoin.modules.member.entity.MemberAuthenticationEntity; import com.xcong.excoin.modules.member.entity.MemberEntity; import com.xcong.excoin.modules.member.mapper.MemberAccountMoneyChangeMapper; +import com.xcong.excoin.modules.member.mapper.MemberAuthenticationMapper; import com.xcong.excoin.modules.member.mapper.MemberMapper; import com.xcong.excoin.modules.trademanage.entity.AgentReturnEntity; import com.xcong.excoin.modules.trademanage.entity.ContractHoldOrderEntity; @@ -45,6 +47,8 @@ private final ContractOrderMapper contractHoldOrderMapper; private final AgentReturnMapper agentReturnMapper; + + private final MemberAuthenticationMapper memberAuthenticationMapper; private final RedisUtils redisUtils; @@ -152,4 +156,110 @@ return findMemberAccountInfoListInPage; } + @Override + public IPage<ContractHoldOrderEntity> findContractHoldOrderAloneInPage( + ContractHoldOrderEntity contractHoldOrderEntity, QueryRequest request) { + Page<ContractHoldOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractHoldOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderEntityMapper.findContractHoldOrderAloneInPage(page, contractHoldOrderEntity); + List<ContractHoldOrderEntity> records = findMemberAccountInfoListInPage.getRecords(); + + if (records != null) { + for (ContractHoldOrderEntity holdOrderEntity : records) { + MemberEntity selectById = memberMapper.selectById(holdOrderEntity.getMemberId()); + // 获取最新价 + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(holdOrderEntity.getSymbol()))); + BigDecimal lotNumber = holdOrderEntity.getSymbolSku(); + // 盈亏 + BigDecimal rewardRatio = BigDecimal.ZERO; + // 开多 + if (ContractHoldOrderEntity.OPENING_TYPE_MORE == holdOrderEntity.getOpeningType()) { + // (最新价-开仓价)*规格*张数 + rewardRatio = newPrice.subtract(holdOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())); + // 开空 + } else { + // (开仓价-最新价)*规格*张数 + rewardRatio = holdOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(holdOrderEntity.getSymbolCnt())); + } + + if (selectById.getIsProfit() == MemberEntity.IS_PROFIT_Y) { + String selectTradeSetting = memberMapper.selectTradeSetting(); + BigDecimal profitParam=new BigDecimal(selectTradeSetting); + if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { + rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(profitParam)); + } else { + rewardRatio = rewardRatio.multiply(BigDecimal.ONE.add(profitParam)); + } + } + + holdOrderEntity.setRewardRatio(rewardRatio); + } + } + return findMemberAccountInfoListInPage; + } + + @Override + public IPage<ContractOrderEntity> findHistoryOrderInfoAloneInfoInPage(ContractOrderEntity contractOrderEntity, + QueryRequest request) { + Page<ContractOrderEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<ContractOrderEntity> findMemberAccountInfoListInPage = contractHoldOrderMapper.findHistoryOrderInfoAloneInfoInPage(page, contractOrderEntity); + return findMemberAccountInfoListInPage; + } + + @Override + public IPage<MemberAccountMoneyChangeEntity> findMemberAgentReturnInfoAloneInPage( + MemberAccountMoneyChangeEntity memberAccountMoneyChangeEntity, QueryRequest request) { + Page<MemberAccountMoneyChangeEntity> page = new Page<>(request.getPageNum(), request.getPageSize()); + IPage<MemberAccountMoneyChangeEntity> findMemberAccountInfoListInPage = + memberAccountMoneyChangeMapper.findMemberAgentReturnInfoAloneInPage(page, memberAccountMoneyChangeEntity); + + List<MemberAccountMoneyChangeEntity> records = findMemberAccountInfoListInPage.getRecords(); + if(records != null && records.size() > 0) { + String selectYJByMemberId = agentReturnMapper.selectYJByMemberId(); + for(MemberAccountMoneyChangeEntity accountMoneyChangeEntity : records) { + Long memberId = accountMoneyChangeEntity.getMemberId(); + String allAmount = memberAccountMoneyChangeMapper.selectAccountMoneyChangeByMemberId(memberId); + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("member_id", memberId); + List<MemberAuthenticationEntity> selectByMap = memberAuthenticationMapper.selectByMap(columnMap ); + if(selectByMap != null && selectByMap.size() > 0) { + MemberAuthenticationEntity memberAuthenticationEntity = selectByMap.get(0); + String firstName = memberAuthenticationEntity.getFirstName(); + String secondName = memberAuthenticationEntity.getSecondName(); + String realName = firstName + secondName; + accountMoneyChangeEntity.setRealName(realName); + } + accountMoneyChangeEntity.setAllAmount(allAmount); + if(memberId == 8) { + accountMoneyChangeEntity.setAmount(BigDecimal.ZERO); + accountMoneyChangeEntity.setAllAmount(selectYJByMemberId); + } + } + } + return findMemberAccountInfoListInPage; + } + + + + + + + + + + + + + + + + + + + + + + + + + } -- Gitblit v1.9.1