From 094a2ce35d60abd7ae28a7d9f9ec863ed4ac652d Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 05 Mar 2021 10:27:56 +0800 Subject: [PATCH] modify --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 44 ++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 40 insertions(+), 4 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 e25ce5f..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<>(); @@ -596,7 +632,7 @@ public Result getDocumentaryOrderSetInfo(String tradeId) { //获取用户ID Long memberId = LoginUserUtils.getAppLoginUser().getId(); - log.info("跟单---跟单设置--进入编辑---"+memberId+"参数"+tradeId); + log.info("跟单---点击跟单或者编辑---"+memberId+"参数"+tradeId); DocumentaryOrderSetInfoVo documentaryOrderSetInfoVo = new DocumentaryOrderSetInfoVo(); long parseLong = Long.parseLong(tradeId); @@ -607,7 +643,7 @@ if(CollUtil.isNotEmpty(followFollowerSettingEntityAllows)) { for(FollowFollowerSettingEntity followFollowerSettingEntityAllow : followFollowerSettingEntityAllows) { Long tradeIdAllow = followFollowerSettingEntityAllow.getTraderId(); - if(!tradeIdAllow.toString().equals(tradeId)) { + if(parseLong != tradeIdAllow) { return Result.fail(MessageSourceUtils.getString("documentary_service_0015")); } } @@ -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