From 79224bc3495cf80370855e9e2fe9e2acd1f3e63b Mon Sep 17 00:00:00 2001
From: Helius <wangdoubleone@gmail.com>
Date: Wed, 07 Apr 2021 17:16:52 +0800
Subject: [PATCH] modify whole force price

---
 src/test/java/com/xcong/excoin/LocalTest.java |  160 ++++++++++++++++++++++++++--------------------------
 1 files changed, 80 insertions(+), 80 deletions(-)

diff --git a/src/test/java/com/xcong/excoin/LocalTest.java b/src/test/java/com/xcong/excoin/LocalTest.java
index 03b5c02..a40bfba 100644
--- a/src/test/java/com/xcong/excoin/LocalTest.java
+++ b/src/test/java/com/xcong/excoin/LocalTest.java
@@ -90,85 +90,85 @@
     private FollowTraderLabelDao followTraderLabelDao;
     @Resource
     private MemberSettingDao memberSettingDao;
-	
-    @Test
-	public void traderProfitUpdate() {
-		log.info("交易员定时任务执行");
-		// 查询所有交易员信息
-		List<FollowTraderInfoEntity> allTraders = followTraderInfoDao.selectAllTraderInfo();
-		if (CollUtil.isNotEmpty(allTraders)) {
-			for (FollowTraderInfoEntity trader : allTraders) {
-				Long tradeMemberId = trader.getMemberId();
-				//获取交易员的当前跟随者
-				Map<String, Object> hashMap = new HashMap<>();
-				hashMap.put("trade_member_id", tradeMemberId);
-				hashMap.put("is_follow", FollowFollowerProfitEntity.IS_FOLLOW_Y);
-				List<FollowFollowerProfitEntity> followFollowerProfitEntityList = followFollowerProfitDao.selectByMap(hashMap);
-				if(CollUtil.isNotEmpty(followFollowerProfitEntityList)) {
-					for(FollowFollowerProfitEntity followFollowerProfitEntity : followFollowerProfitEntityList) {
-						//获取当前跟随者的跟随本金
-						Long memberId = followFollowerProfitEntity.getMemberId();
-						BigDecimal sumBondAmountBigDecimal = followFollowerProfitDao.selectSumBondAmountBymemberId(memberId,trader.getId());
-						sumBondAmountBigDecimal = (sumBondAmountBigDecimal == null?BigDecimal.ZERO:sumBondAmountBigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
-						followFollowerProfitEntity.setTotalPrincipal(sumBondAmountBigDecimal);
-						//获取当前的盈亏
-						BigDecimal sumRewardAmountBigDecimal = followFollowerProfitDao.selectSumRewardAmountByMemberId(memberId,trader.getId());
-						sumRewardAmountBigDecimal = (sumRewardAmountBigDecimal == null?BigDecimal.ZERO:sumRewardAmountBigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
-						followFollowerProfitEntity.setTotalProfit(sumRewardAmountBigDecimal);
-						followFollowerProfitDao.updateById(followFollowerProfitEntity);
-					}
-				}
-
-
-				FollowTraderProfitInfoEntity traderInfoProfit = followTraderProfitInfoDao.selectTraderInfoProfitByMemberId(tradeMemberId);
-				// 累计收益率
-				BigDecimal ljsyl = contractOrderDao.selectFollowOrderTotalProfitByMemberId(tradeMemberId);
-				BigDecimal totalProfitRatio = (ljsyl == null?BigDecimal.ZERO:ljsyl.setScale(2, BigDecimal.ROUND_DOWN));
-				traderInfoProfit.setTotalProfitRatio(totalProfitRatio);
-				// 带单总收益,只查询交易员自己的带单总收益
-				BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfitSelf(tradeMemberId);
-				//BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfit(tradeMemberId);
-				traderInfoProfit.setTotalProfit(totalProfit);
-				// 交易笔数
-//                List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderByMemberId(tradeMemberId);
-				List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderListByMemberId(tradeMemberId);
-				traderInfoProfit.setTotalOrderCnt(CollUtil.isNotEmpty(orders) ? orders.size() : 0);
-				// 近三周胜率
-				Integer winCnt = contractOrderDao.selectFollowOrderCntForWinRate(tradeMemberId, 1);
-				Integer allCnt = contractOrderDao.selectFollowOrderCntForWinRate(tradeMemberId, null);
-
-				if (winCnt != null && allCnt != null && allCnt!=0) {
-					BigDecimal winRate = BigDecimal.valueOf(winCnt).divide(BigDecimal.valueOf(allCnt), 4, BigDecimal.ROUND_DOWN);
-					traderInfoProfit.setWinRate(winRate);
-				}
-				Date date = new Date();
-				DateTime offsetDay = DateUtil.offsetDay(new Date(), -30);
-				//30天胜率(30天盈利总单数/30平仓总单数)
-				BigDecimal thirtyTotalCnt = contractOrderDao.selectThirtyTotalCntByMemberId(tradeMemberId,date,offsetDay);
-				BigDecimal thirtyWinCnt = contractOrderDao.selectThirtyWinCntByMemberId(tradeMemberId,date,offsetDay);
-				BigDecimal thirtyTotalCntRatio = (thirtyTotalCnt == null?BigDecimal.ZERO:thirtyTotalCnt.setScale(2, BigDecimal.ROUND_DOWN));
-				BigDecimal thirtyWinCntRatio = (thirtyWinCnt == null?BigDecimal.ZERO:thirtyWinCnt.setScale(2, BigDecimal.ROUND_DOWN));
-				BigDecimal thirtyProfitRatio = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_DOWN);;
-				if(thirtyTotalCnt.compareTo(BigDecimal.ZERO) > 0) {
-					thirtyProfitRatio = thirtyWinCntRatio.divide(thirtyTotalCntRatio, 2, BigDecimal.ROUND_DOWN).setScale(2, BigDecimal.ROUND_DOWN);
-				}
-				traderInfoProfit.setThirtyProfitRatio(thirtyProfitRatio);
-				//30天最大回撤率(30天最高收益率-30天最低收益率)
-				BigDecimal thirtyMaxRatio = contractOrderDao.selectThirtyMaxRatioByMemberId(tradeMemberId,date,offsetDay);
-				BigDecimal thirtyMinRatio = contractOrderDao.selectThirtyMinRatioByMemberId(tradeMemberId,date,offsetDay);
-				BigDecimal thirtyRatio = (thirtyMaxRatio == null?BigDecimal.ZERO:thirtyMaxRatio.setScale(2, BigDecimal.ROUND_DOWN))
-						.subtract((thirtyMinRatio == null?BigDecimal.ZERO:thirtyMinRatio.setScale(2, BigDecimal.ROUND_DOWN)));
-				traderInfoProfit.setThirtyRatio(thirtyRatio);
-				// 当前跟随者总收益
-				BigDecimal followerProfit = followFollowerProfitDao.selectAllFollowerProfit(tradeMemberId);
-				traderInfoProfit.setFollowerTotalProfit(followerProfit);
-				// 当前跟随人数
-				int followerCnt = followFollowerProfitDao.selectFollowerCntByTradeMemberId(tradeMemberId);
-				traderInfoProfit.setTotalFollowerCnt(followerCnt);
-
-				followTraderProfitInfoDao.updateById(traderInfoProfit);
-			}
-		}
-	}
+//
+//    @Test
+//	public void traderProfitUpdate() {
+//		log.info("交易员定时任务执行");
+//		// 查询所有交易员信息
+//		List<FollowTraderInfoEntity> allTraders = followTraderInfoDao.selectAllTraderInfo();
+//		if (CollUtil.isNotEmpty(allTraders)) {
+//			for (FollowTraderInfoEntity trader : allTraders) {
+//				Long tradeMemberId = trader.getMemberId();
+//				//获取交易员的当前跟随者
+//				Map<String, Object> hashMap = new HashMap<>();
+//				hashMap.put("trade_member_id", tradeMemberId);
+//				hashMap.put("is_follow", FollowFollowerProfitEntity.IS_FOLLOW_Y);
+//				List<FollowFollowerProfitEntity> followFollowerProfitEntityList = followFollowerProfitDao.selectByMap(hashMap);
+//				if(CollUtil.isNotEmpty(followFollowerProfitEntityList)) {
+//					for(FollowFollowerProfitEntity followFollowerProfitEntity : followFollowerProfitEntityList) {
+//						//获取当前跟随者的跟随本金
+//						Long memberId = followFollowerProfitEntity.getMemberId();
+//						BigDecimal sumBondAmountBigDecimal = followFollowerProfitDao.selectSumBondAmountBymemberId(memberId,trader.getId());
+//						sumBondAmountBigDecimal = (sumBondAmountBigDecimal == null?BigDecimal.ZERO:sumBondAmountBigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
+//						followFollowerProfitEntity.setTotalPrincipal(sumBondAmountBigDecimal);
+//						//获取当前的盈亏
+//						BigDecimal sumRewardAmountBigDecimal = followFollowerProfitDao.selectSumRewardAmountByMemberId(memberId,trader.getId());
+//						sumRewardAmountBigDecimal = (sumRewardAmountBigDecimal == null?BigDecimal.ZERO:sumRewardAmountBigDecimal.setScale(2, BigDecimal.ROUND_DOWN));
+//						followFollowerProfitEntity.setTotalProfit(sumRewardAmountBigDecimal);
+//						followFollowerProfitDao.updateById(followFollowerProfitEntity);
+//					}
+//				}
+//
+//
+//				FollowTraderProfitInfoEntity traderInfoProfit = followTraderProfitInfoDao.selectTraderInfoProfitByMemberId(tradeMemberId);
+//				// 累计收益率
+//				BigDecimal ljsyl = contractOrderDao.selectFollowOrderTotalProfitByMemberId(tradeMemberId);
+//				BigDecimal totalProfitRatio = (ljsyl == null?BigDecimal.ZERO:ljsyl.setScale(2, BigDecimal.ROUND_DOWN));
+//				traderInfoProfit.setTotalProfitRatio(totalProfitRatio);
+//				// 带单总收益,只查询交易员自己的带单总收益
+//				BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfitSelf(tradeMemberId);
+//				//BigDecimal totalProfit = followFollowerOrderRelationDao.selectTraderTotalProfit(tradeMemberId);
+//				traderInfoProfit.setTotalProfit(totalProfit);
+//				// 交易笔数
+////                List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderByMemberId(tradeMemberId);
+//				List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderListByMemberId(tradeMemberId);
+//				traderInfoProfit.setTotalOrderCnt(CollUtil.isNotEmpty(orders) ? orders.size() : 0);
+//				// 近三周胜率
+//				Integer winCnt = contractOrderDao.selectFollowOrderCntForWinRate(tradeMemberId, 1);
+//				Integer allCnt = contractOrderDao.selectFollowOrderCntForWinRate(tradeMemberId, null);
+//
+//				if (winCnt != null && allCnt != null && allCnt!=0) {
+//					BigDecimal winRate = BigDecimal.valueOf(winCnt).divide(BigDecimal.valueOf(allCnt), 4, BigDecimal.ROUND_DOWN);
+//					traderInfoProfit.setWinRate(winRate);
+//				}
+//				Date date = new Date();
+//				DateTime offsetDay = DateUtil.offsetDay(new Date(), -30);
+//				//30天胜率(30天盈利总单数/30平仓总单数)
+//				BigDecimal thirtyTotalCnt = contractOrderDao.selectThirtyTotalCntByMemberId(tradeMemberId,date,offsetDay);
+//				BigDecimal thirtyWinCnt = contractOrderDao.selectThirtyWinCntByMemberId(tradeMemberId,date,offsetDay);
+//				BigDecimal thirtyTotalCntRatio = (thirtyTotalCnt == null?BigDecimal.ZERO:thirtyTotalCnt.setScale(2, BigDecimal.ROUND_DOWN));
+//				BigDecimal thirtyWinCntRatio = (thirtyWinCnt == null?BigDecimal.ZERO:thirtyWinCnt.setScale(2, BigDecimal.ROUND_DOWN));
+//				BigDecimal thirtyProfitRatio = BigDecimal.ZERO.setScale(2, BigDecimal.ROUND_DOWN);;
+//				if(thirtyTotalCnt.compareTo(BigDecimal.ZERO) > 0) {
+//					thirtyProfitRatio = thirtyWinCntRatio.divide(thirtyTotalCntRatio, 2, BigDecimal.ROUND_DOWN).setScale(2, BigDecimal.ROUND_DOWN);
+//				}
+//				traderInfoProfit.setThirtyProfitRatio(thirtyProfitRatio);
+//				//30天最大回撤率(30天最高收益率-30天最低收益率)
+//				BigDecimal thirtyMaxRatio = contractOrderDao.selectThirtyMaxRatioByMemberId(tradeMemberId,date,offsetDay);
+//				BigDecimal thirtyMinRatio = contractOrderDao.selectThirtyMinRatioByMemberId(tradeMemberId,date,offsetDay);
+//				BigDecimal thirtyRatio = (thirtyMaxRatio == null?BigDecimal.ZERO:thirtyMaxRatio.setScale(2, BigDecimal.ROUND_DOWN))
+//						.subtract((thirtyMinRatio == null?BigDecimal.ZERO:thirtyMinRatio.setScale(2, BigDecimal.ROUND_DOWN)));
+//				traderInfoProfit.setThirtyRatio(thirtyRatio);
+//				// 当前跟随者总收益
+//				BigDecimal followerProfit = followFollowerProfitDao.selectAllFollowerProfit(tradeMemberId);
+//				traderInfoProfit.setFollowerTotalProfit(followerProfit);
+//				// 当前跟随人数
+//				int followerCnt = followFollowerProfitDao.selectFollowerCntByTradeMemberId(tradeMemberId);
+//				traderInfoProfit.setTotalFollowerCnt(followerCnt);
+//
+//				followTraderProfitInfoDao.updateById(traderInfoProfit);
+//			}
+//		}
+//	}
 
 }

--
Gitblit v1.9.1