From 30e90f26c4d888502371fe21bdf6a724676015b0 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Fri, 05 Mar 2021 10:16:25 +0800
Subject: [PATCH] 20210304 跟单只允许跟一个交易员
---
src/main/java/com/xcong/excoin/modules/documentary/service/impl/DocumentaryServiceImpl.java | 108 +++++++++++++++++++++++++++++++++++++++++++++++------
1 files changed, 95 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 13144aa..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);
@@ -784,6 +834,7 @@
followTraderInfoEntity.setDeclaration(declaration);
}
followTraderInfoEntity.setLabels(labels);
+ followTraderInfoEntity.setFollowNum(FollowTraderInfoEntity.FOLLOWNUM_DEFAULT);
followTraderInfoEntity.setIsAll(FollowTraderInfoEntity.IS_ALL_N);
followTraderInfoEntity.setProfitRatio(BigDecimal.ZERO);
followTraderInfoEntity.setVerifyStatus(FollowTraderInfoEntity.VERIFYSTATUS_ING);
@@ -1215,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