Helius
2021-04-01 451f88585ce56b852ceba3a7f20c62bf6fa9f8fe
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;
/**
 *
@@ -51,6 +54,27 @@
        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);
@@ -61,7 +85,8 @@
                //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);