From 7c8869bb01261a5321a6ac624e575fe83bc869a6 Mon Sep 17 00:00:00 2001 From: Helius <wangdoubleone@gmail.com> Date: Fri, 05 Mar 2021 10:28:00 +0800 Subject: [PATCH] Merge branch 'whole_new' of http://120.27.238.55:7000/r/exchange into whole_new --- src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 107 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 files changed, 94 insertions(+), 13 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 9d4d47d..9a30625 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 @@ -65,6 +65,7 @@ import com.xcong.excoin.modules.documentary.vo.BeTraderConditionVo; import com.xcong.excoin.modules.documentary.vo.DocumentaryOrderInfoVo; import com.xcong.excoin.modules.documentary.vo.DocumentaryOrderSetInfoVo; +import com.xcong.excoin.modules.documentary.vo.DocumentaryOrderSetStateVo; import com.xcong.excoin.modules.documentary.vo.FollowFollowerNoticeVo; import com.xcong.excoin.modules.documentary.vo.FollowInfoVo; import com.xcong.excoin.modules.documentary.vo.FollowRecordsVo; @@ -287,7 +288,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<>(); @@ -601,17 +638,17 @@ long parseLong = Long.parseLong(tradeId); //只能跟随一个人 - Map<String, Object> columnMaps = new HashMap<>(); - columnMaps.put("member_id", memberId); - List<FollowFollowerSettingEntity> followFollowerSettingEntityAllows = followFollowerSettingDao.selectByMap(columnMaps); - if(CollUtil.isNotEmpty(followFollowerSettingEntityAllows)) { - for(FollowFollowerSettingEntity followFollowerSettingEntityAllow : followFollowerSettingEntityAllows) { - Long tradeIdAllow = followFollowerSettingEntityAllow.getTraderId(); - if(parseLong != tradeIdAllow) { - return Result.fail(MessageSourceUtils.getString("documentary_service_0015")); - } - } - } +// Map<String, Object> columnMaps = new HashMap<>(); +// columnMaps.put("member_id", memberId); +// List<FollowFollowerSettingEntity> followFollowerSettingEntityAllows = followFollowerSettingDao.selectByMap(columnMaps); +// if(CollUtil.isNotEmpty(followFollowerSettingEntityAllows)) { +// for(FollowFollowerSettingEntity followFollowerSettingEntityAllow : followFollowerSettingEntityAllows) { +// Long tradeIdAllow = followFollowerSettingEntityAllow.getTraderId(); +// if(parseLong != tradeIdAllow) { +// return Result.fail(MessageSourceUtils.getString("documentary_service_0015")); +// } +// } +// } //获取【跟随者设置】数据 FollowFollowerSettingEntity followFollowerSettingEntity = followFollowerSettingDao.selectOneBymemberIdAndTradeId(memberId,parseLong); @@ -641,8 +678,9 @@ Integer maxFollowCnt = followFollowerSettingEntity.getMaxFollowCnt(); if(maxFollowCnt > 0){ documentaryOrderSetInfoVo.setMaxFollowCnt(maxFollowCnt.toString()); + }else { + documentaryOrderSetInfoVo.setMaxFollowCnt(""); } - documentaryOrderSetInfoVo.setMaxFollowCnt(""); log.info(memberId + "-最大持仓张数-"+maxFollowCnt.toString()); return Result.ok(documentaryOrderSetInfoVo); } @@ -711,6 +749,18 @@ String nickname = followTraderInfoEntity.getNickname(); String declaration = followTraderInfoEntity.getDeclaration(); Integer isAll = followTraderInfoEntity.getIsAll(); + Integer followNum = followTraderInfoEntity.getFollowNum(); + //获取当前跟单人数 + Map<String, Object> columnMap = new HashMap<>(); + columnMap.put("trade_id", traderId); + columnMap.put("is_follow", FollowFollowerProfitEntity.IS_FOLLOW_Y); + List<FollowFollowerProfitEntity> selectByMap = followFollowerProfitDao.selectByMap(columnMap); + if(CollUtil.isNotEmpty(selectByMap)) { + followTraderProfitInfoVo.setFollowNumNow(selectByMap.size()); + }else { + followTraderProfitInfoVo.setFollowNumNow(0); + } + followTraderProfitInfoVo.setFollowNum(followNum); followTraderProfitInfoVo.setAvatar(avatar); followTraderProfitInfoVo.setNickname(nickname); followTraderProfitInfoVo.setDeclaration(declaration); @@ -1216,6 +1266,37 @@ List<BeTraderConditionVo> beTraderConditionVos = followTraderInfoDao.selectBeTraderCondition(type); return Result.ok(beTraderConditionVos); } + + @Override + public Result getDocumentaryOrderSetState(String tradeId) { + //获取用户ID + Long memberId = LoginUserUtils.getAppLoginUser().getId(); + boolean OrderSetState = false; + long parseLong = Long.parseLong(tradeId); + //只能跟随一个人 + Map<String, Object> columnMaps = new HashMap<>(); + columnMaps.put("member_id", memberId); + List<FollowFollowerSettingEntity> followFollowerSettingEntityAllows = followFollowerSettingDao.selectByMap(columnMaps); + if(CollUtil.isEmpty(followFollowerSettingEntityAllows)) { + OrderSetState = Boolean.TRUE; + }else { + if(followFollowerSettingEntityAllows.size() == 1) { + Long tradeIdAllow = followFollowerSettingEntityAllows.get(0).getTraderId(); + if(parseLong == tradeIdAllow) { + OrderSetState = Boolean.TRUE; + } + } + } + + DocumentaryOrderSetStateVo documentaryOrderSetStateVo = new DocumentaryOrderSetStateVo(); + if(OrderSetState) { + documentaryOrderSetStateVo.setState(Boolean.TRUE); + }else { + documentaryOrderSetStateVo.setState(Boolean.FALSE); + } + return Result.ok(documentaryOrderSetStateVo); + + } -- Gitblit v1.9.1