From 0854f968f2b696ea4c39ef175b083c0a55116418 Mon Sep 17 00:00:00 2001
From: xiaoyong931011 <15274802129@163.com>
Date: Tue, 30 Mar 2021 21:53:23 +0800
Subject: [PATCH] Merge branch 'activity' of http://120.27.238.55:7000/r/exchange into activity
---
src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java | 33 ++++++++++++++++++++++++++++++---
1 files changed, 30 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java b/src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java
index a1ebba4..aa2e1cb 100644
--- a/src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java
+++ b/src/main/java/com/xcong/excoin/quartz/job/FollowProfitUpdateJob.java
@@ -7,6 +7,7 @@
import com.xcong.excoin.modules.documentary.dao.FollowFollowerProfitDao;
import com.xcong.excoin.modules.documentary.dao.FollowTraderInfoDao;
import com.xcong.excoin.modules.documentary.dao.FollowTraderProfitInfoDao;
+import com.xcong.excoin.modules.documentary.entity.FollowFollowerProfitEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderInfoEntity;
import com.xcong.excoin.modules.documentary.entity.FollowTraderProfitInfoEntity;
import lombok.extern.slf4j.Slf4j;
@@ -17,7 +18,9 @@
import javax.annotation.Resource;
import java.math.BigDecimal;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
/**
*
@@ -41,8 +44,9 @@
@Resource
private FollowTraderProfitInfoDao followTraderProfitInfoDao;
+
//@Scheduled(cron = "0 0/30 * * * ? ")
- @Scheduled(cron = "0/5 * * * * ? *")
+ @Scheduled(cron = "0/5 * * * * ?")
public void traderProfitUpdate() {
log.info("交易员定时任务执行");
// 查询所有交易员信息
@@ -50,16 +54,39 @@
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 totalProfitRatio = contractOrderDao.selectFollowOrderTotalProfitByMemberId(tradeMemberId).setScale(2, BigDecimal.ROUND_DOWN);
+ 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.selectFollowOrderByMemberId(tradeMemberId);
+ List<ContractOrderEntity> orders = contractOrderDao.selectFollowOrderListByMemberId(tradeMemberId);
traderInfoProfit.setTotalOrderCnt(CollUtil.isNotEmpty(orders) ? orders.size() : 0);
// 近三周胜率
Integer winCnt = contractOrderDao.selectFollowOrderCntForWinRate(tradeMemberId, 1);
--
Gitblit v1.9.1