From 2fff3415b9b45a1d3283afe750683e413e09810a Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Thu, 04 Mar 2021 17:50:45 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 40 ++++++++++++++++++++++++++++++++++++++-- 1 files changed, 38 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java index 59fd429..d2d651a 100644 --- a/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java +++ b/src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java @@ -287,7 +287,43 @@ }else { followInfoVo.setNickname(phone); } - + + List<ContractHoldOrderEntity> myFollowOrder = followFollowerProfitDao.getFollowOrderNowRecords(memberId); + + BigDecimal totalBondAmount = BigDecimal.ZERO; + BigDecimal profitOrLess = BigDecimal.ZERO; + if (CollUtil.isNotEmpty(myFollowOrder)) { + for(ContractHoldOrderEntity contractHoldOrderEntity : myFollowOrder) { + BigDecimal newPrice = new BigDecimal(redisUtils.getString(CoinTypeConvert.convertToKey(contractHoldOrderEntity.getSymbol()))); + BigDecimal lotNumber = cacheSettingUtils.getSymbolSku(contractHoldOrderEntity.getSymbol()); + + // 盈亏 + BigDecimal rewardRatio = BigDecimal.ZERO; + // 开多 + if (contractHoldOrderEntity.OPENING_TYPE_MORE == contractHoldOrderEntity.getOpeningType()) { + // (最新价-开仓价)*规格*张数 + rewardRatio = newPrice.subtract(contractHoldOrderEntity.getOpeningPrice()).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); + // 开空 + } else { + // (开仓价-最新价)*规格*张数 + rewardRatio = contractHoldOrderEntity.getOpeningPrice().subtract(newPrice).multiply(lotNumber).multiply(new BigDecimal(contractHoldOrderEntity.getSymbolCnt())); + } + + if (member.getIsProfit() == MemberEntity.IS_PROFIT_Y) { + PlatformTradeSettingEntity tradeSettingEntity = cacheSettingUtils.getTradeSetting(); + if (rewardRatio.compareTo(BigDecimal.ZERO) > -1) { + rewardRatio = rewardRatio.multiply(BigDecimal.ONE.subtract(tradeSettingEntity.getProfitParam())); + } + } + + profitOrLess = profitOrLess.add(rewardRatio).setScale(2, BigDecimal.ROUND_DOWN); + totalBondAmount = totalBondAmount.add(contractHoldOrderEntity.getBondAmount()).setScale(2, BigDecimal.ROUND_DOWN); + } + } + + followInfoVo.setTotalAmount(totalBondAmount); + followInfoVo.setTotalProfitOrLess(profitOrLess); + BigDecimal totalPrincipals = BigDecimal.ZERO; BigDecimal totalProfits = BigDecimal.ZERO; Map<String, Object> columnMap = new HashMap<>(); @@ -642,7 +678,7 @@ if(maxFollowCnt > 0){ documentaryOrderSetInfoVo.setMaxFollowCnt(maxFollowCnt.toString()); } - documentaryOrderSetInfoVo.setMaxFollowCnt(null); + documentaryOrderSetInfoVo.setMaxFollowCnt(""); log.info(memberId + "-最大持仓张数-"+maxFollowCnt.toString()); return Result.ok(documentaryOrderSetInfoVo); } -- Gitblit v1.9.1