From 6c5b26120aad4fce252929b9ea7833acce90824c Mon Sep 17 00:00:00 2001
From: KKSU <15274802129@163.com>
Date: Mon, 20 May 2024 14:41:29 +0800
Subject: [PATCH] 滑点监控

---
 src/main/java/cc/mrbird/febs/job/MineProfitJob.java |  342 ++++++++++++++++++++++++++++----------------------------
 1 files changed, 171 insertions(+), 171 deletions(-)

diff --git a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
index 82c4930..9b7b800 100644
--- a/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
+++ b/src/main/java/cc/mrbird/febs/job/MineProfitJob.java
@@ -1,173 +1,173 @@
-package cc.mrbird.febs.job;
-
-import cc.mrbird.febs.common.contants.AppContants;
-import cc.mrbird.febs.common.utils.RedisUtils;
-import cc.mrbird.febs.dapp.chain.ChainService;
-import cc.mrbird.febs.dapp.entity.*;
-import cc.mrbird.febs.dapp.mapper.*;
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.date.DateUnit;
-import cn.hutool.core.date.DateUtil;
-import cn.hutool.core.util.StrUtil;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.stereotype.Component;
-import org.springframework.transaction.annotation.Transactional;
-
-import java.math.BigDecimal;
-import java.math.RoundingMode;
-import java.util.*;
-
-/**
- * @author 
- * @date 2022-03-28
- **/
-@Slf4j
-@Component
-public class MineProfitJob {
-
-    @Autowired
-    private DappMemberDao dappMemberDao;
-    @Autowired
-    private DappReturnRatioDao dappReturnRatioDao;
-    @Autowired
-    private DappFundFlowDao dappFundFlowDao;
-    @Autowired
-    private DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
-    @Autowired
-    private DappWalletMineDao dappWalletMineDao;
-    @Autowired
-    private DappAgentReturnFlowDao dappAgentReturnFlowDao;
-    @Autowired
-    private RedisUtils redisUtils;
-
-    @Scheduled(cron = "0 0 2 * * ? ")
-    @Transactional(rollbackFor = Exception.class)
-    public void start() {
-        log.info("返利执行");
-        List<DappMemberEntity> members = dappMemberDao.selectAllMemberForInCome();
-        if (CollUtil.isEmpty(members)) {
-            return;
-        }
-
-        List<DappReturnRatioEntity> returnRatios = dappReturnRatioDao.selectList(null);
-        if (CollUtil.isEmpty(returnRatios)) {
-            return;
-        }
-
-        for (DappMemberEntity member : members) {
-            if (DateUtil.between(member.getCreateTime(), new Date(), DateUnit.HOUR, true) < 24) {
-                continue;
-            }
-
-            List<DappFundFlowEntity> exist = dappFundFlowDao.selectListForMemberAndDay(member.getId(), 3);
-            if (CollUtil.isNotEmpty(exist)) {
-                continue;
-            }
-
-            BigDecimal balance = ChainService.getInstance(member.getChainType()).balanceOf(member.getAddress());
-
-            DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
-            for (DappReturnRatioEntity returnRatio : returnRatios) {
-                if (returnRatio.getMinValue().compareTo(balance) < 1 && returnRatio.getMaxValue().compareTo(balance) > -1) {
-                    BigDecimal income = balance.multiply(returnRatio.getRatio());
-
-                    member.setBalance(balance);
-                    dappMemberDao.updateById(member);
-
-                    BigDecimal ethNewPrice = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
-
-                    BigDecimal ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
-                    DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), ethIncome, 3, null, null);
-                    dappFundFlowDao.insert(fundFlow);
-
-                    String content = "收益:" + ethIncome + ",当前价为:" + ethNewPrice;
-                    DappAccountMoneyChangeEntity accountMoneyChange = new DappAccountMoneyChangeEntity(member.getId(), walletMine.getAvailableAmount(), ethIncome, walletMine.getAvailableAmount().add(ethIncome), content, 3);
-                    dappAccountMoneyChangeDao.insert(accountMoneyChange);
-
-                    walletMine.setAvailableAmount(walletMine.getAvailableAmount().add(ethIncome));
-                    walletMine.setTotalAmount(walletMine.getTotalAmount().add(ethIncome));
-                    dappWalletMineDao.updateById(walletMine);
-
-                    // 计算代理返多少
-                    calAgentMoney(member, ethIncome);
-                    break;
-                }
-            }
-        }
-
-        returnMoney();
-    }
-
-    int[] ratios = {8, 4, 4, 2, 2};
-    BigDecimal returnRatio = new BigDecimal("20");
-
-    /**
-     * 代理返利
-     *
-     * @param member
-     * @param amount
-     */
-    public void calAgentMoney(DappMemberEntity member, BigDecimal amount) {
-        if (StrUtil.isBlank(member.getRefererIds())) {
-            return;
-        }
-
-        List<DappMemberEntity> agents = dappMemberDao.selectParentsList(StrUtil.split(member.getRefererIds(), ','), 5);
-
-        for (int i = 0; i < agents.size(); i++) {
-            DappMemberEntity agent = agents.get(i);
-//            if ((agent.getAddress().startsWith("T") || agent.getAddress().startsWith("0x")) && agent.getAddress().length() <= 20) {
+//package cc.mrbird.febs.job;
+//
+//import cc.mrbird.febs.common.contants.AppContants;
+//import cc.mrbird.febs.common.utils.RedisUtils;
+//import cc.mrbird.febs.dapp.chain.ChainService;
+//import cc.mrbird.febs.dapp.entity.*;
+//import cc.mrbird.febs.dapp.mapper.*;
+//import cn.hutool.core.collection.CollUtil;
+//import cn.hutool.core.date.DateUnit;
+//import cn.hutool.core.date.DateUtil;
+//import cn.hutool.core.util.StrUtil;
+//import lombok.extern.slf4j.Slf4j;
+//import org.springframework.beans.factory.annotation.Autowired;
+//import org.springframework.scheduling.annotation.Scheduled;
+//import org.springframework.stereotype.Component;
+//import org.springframework.transaction.annotation.Transactional;
+//
+//import java.math.BigDecimal;
+//import java.math.RoundingMode;
+//import java.util.*;
+//
+///**
+// * @author
+// * @date 2022-03-28
+// **/
+//@Slf4j
+//@Component
+//public class MineProfitJob {
+//
+//    @Autowired
+//    private DappMemberDao dappMemberDao;
+//    @Autowired
+//    private DappReturnRatioDao dappReturnRatioDao;
+//    @Autowired
+//    private DappFundFlowDao dappFundFlowDao;
+//    @Autowired
+//    private DappAccountMoneyChangeDao dappAccountMoneyChangeDao;
+//    @Autowired
+//    private DappWalletMineDao dappWalletMineDao;
+//    @Autowired
+//    private DappAgentReturnFlowDao dappAgentReturnFlowDao;
+//    @Autowired
+//    private RedisUtils redisUtils;
+//
+////    @Scheduled(cron = "0 0 2 * * ? ")
+//    @Transactional(rollbackFor = Exception.class)
+//    public void start() {
+//        log.info("返利执行");
+//        List<DappMemberEntity> members = dappMemberDao.selectAllMemberForInCome();
+//        if (CollUtil.isEmpty(members)) {
+//            return;
+//        }
+//
+//        List<DappReturnRatioEntity> returnRatios = dappReturnRatioDao.selectList(null);
+//        if (CollUtil.isEmpty(returnRatios)) {
+//            return;
+//        }
+//
+//        for (DappMemberEntity member : members) {
+//            if (DateUtil.between(member.getCreateTime(), new Date(), DateUnit.HOUR, true) < 24) {
 //                continue;
 //            }
-            if (agent.getSource() == 2) {
-                continue;
-            }
-
-            BigDecimal balance = ChainService.getInstance(agent.getChainType()).balanceOf(agent.getAddress());
-            if (balance.compareTo(BigDecimal.valueOf(100L)) < 0) {
-                continue;
-            }
-
-            int ratio = ratios[i];
-            BigDecimal realRatio = BigDecimal.valueOf(ratio).divide(returnRatio, 2, RoundingMode.HALF_DOWN);
-            BigDecimal returnMoney = amount.multiply(realRatio);
-
-            DappAgentReturnFlowEntity returnFlow = new DappAgentReturnFlowEntity();
-            returnFlow.setCreateTime(new Date());
-            returnFlow.setMemberId(member.getId());
-            returnFlow.setAgentMemberId(agent.getId());
-            returnFlow.setAmount(returnMoney);
-            returnFlow.setIsReturn(2);
-            dappAgentReturnFlowDao.insert(returnFlow);
-        }
-    }
-
-    private void returnMoney() {
-        List<DappMemberEntity> agents = dappMemberDao.selectAgentMemberList(null, null);
-        if (CollUtil.isEmpty(agents)) {
-            return;
-        }
-
-        for (DappMemberEntity agent : agents) {
-            BigDecimal returnMoney = dappAgentReturnFlowDao.selectTotalAmountByMemberId(agent.getId(), 2);
-            if (returnMoney.compareTo(BigDecimal.ZERO) <= 0) {
-                continue;
-            }
-
-            DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(agent.getId());
-            dappWalletMineDao.updateBalance(returnMoney, returnMoney, agent.getId());
-
-            // 流水
-            DappFundFlowEntity fundFlow = new DappFundFlowEntity(agent.getId(), returnMoney, 4, null, null);
-            dappFundFlowDao.insert(fundFlow);
-
-            String content = "邀请返利:" + returnMoney.toPlainString();
-            DappAccountMoneyChangeEntity accountMoneyChange = new DappAccountMoneyChangeEntity(agent.getId(), walletMine.getAvailableAmount(), returnMoney, walletMine.getAvailableAmount().add(returnMoney), content, 4);
-            dappAccountMoneyChangeDao.insert(accountMoneyChange);
-
-            dappAgentReturnFlowDao.updateIsReturnByMemberId(1, agent.getId());
-        }
-    }
-}
+//
+//            List<DappFundFlowEntity> exist = dappFundFlowDao.selectListForMemberAndDay(member.getId(), 3);
+//            if (CollUtil.isNotEmpty(exist)) {
+//                continue;
+//            }
+//
+//            BigDecimal balance = ChainService.getInstance(member.getChainType()).balanceOf(member.getAddress());
+//
+//            DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(member.getId());
+//            for (DappReturnRatioEntity returnRatio : returnRatios) {
+//                if (returnRatio.getMinValue().compareTo(balance) < 1 && returnRatio.getMaxValue().compareTo(balance) > -1) {
+//                    BigDecimal income = balance.multiply(returnRatio.getRatio());
+//
+//                    member.setBalance(balance);
+//                    dappMemberDao.updateById(member);
+//
+//                    BigDecimal ethNewPrice = (BigDecimal) redisUtils.get(AppContants.REDIS_KEY_ETH_NEW_PRICE);
+//
+//                    BigDecimal ethIncome = income.divide(ethNewPrice, 8, RoundingMode.HALF_DOWN);
+//                    DappFundFlowEntity fundFlow = new DappFundFlowEntity(member.getId(), ethIncome, 3, null, (String) null);
+//                    dappFundFlowDao.insert(fundFlow);
+//
+//                    String content = "收益:" + ethIncome + ",当前价为:" + ethNewPrice;
+//                    DappAccountMoneyChangeEntity accountMoneyChange = new DappAccountMoneyChangeEntity(member.getId(), walletMine.getAvailableAmount(), ethIncome, walletMine.getAvailableAmount().add(ethIncome), content, 3);
+//                    dappAccountMoneyChangeDao.insert(accountMoneyChange);
+//
+//                    walletMine.setAvailableAmount(walletMine.getAvailableAmount().add(ethIncome));
+//                    walletMine.setTotalAmount(walletMine.getTotalAmount().add(ethIncome));
+//                    dappWalletMineDao.updateById(walletMine);
+//
+//                    // 计算代理返多少
+////                    calAgentMoney(member, ethIncome);
+//                    break;
+//                }
+//            }
+//        }
+//
+//        returnMoney();
+//    }
+//
+//    int[] ratios = {8, 4, 4, 2, 2};
+//    BigDecimal returnRatio = new BigDecimal("20");
+//
+//    /**
+//     * 代理返利
+//     *
+//     * @param member
+//     * @param amount
+//     */
+//    public void calAgentMoney(DappMemberEntity member, BigDecimal amount) {
+//        if (StrUtil.isBlank(member.getRefererIds())) {
+//            return;
+//        }
+//
+//        List<DappMemberEntity> agents = dappMemberDao.selectParentsList(StrUtil.split(member.getRefererIds(), ','), 5);
+//
+//        for (int i = 0; i < agents.size(); i++) {
+//            DappMemberEntity agent = agents.get(i);
+////            if ((agent.getAddress().startsWith("T") || agent.getAddress().startsWith("0x")) && agent.getAddress().length() <= 20) {
+////                continue;
+////            }
+//            if (agent.getSource() == 2) {
+//                continue;
+//            }
+//
+//            BigDecimal balance = ChainService.getInstance(agent.getChainType()).balanceOf(agent.getAddress());
+//            if (balance.compareTo(BigDecimal.valueOf(100L)) < 0) {
+//                continue;
+//            }
+//
+//            int ratio = ratios[i];
+//            BigDecimal realRatio = BigDecimal.valueOf(ratio).divide(returnRatio, 2, RoundingMode.HALF_DOWN);
+//            BigDecimal returnMoney = amount.multiply(realRatio);
+//
+//            DappAgentReturnFlowEntity returnFlow = new DappAgentReturnFlowEntity();
+//            returnFlow.setCreateTime(new Date());
+//            returnFlow.setMemberId(member.getId());
+//            returnFlow.setAgentMemberId(agent.getId());
+//            returnFlow.setAmount(returnMoney);
+//            returnFlow.setIsReturn(2);
+//            dappAgentReturnFlowDao.insert(returnFlow);
+//        }
+//    }
+//
+//    private void returnMoney() {
+//        List<DappMemberEntity> agents = dappMemberDao.selectAgentMemberList(null, null);
+//        if (CollUtil.isEmpty(agents)) {
+//            return;
+//        }
+//
+//        for (DappMemberEntity agent : agents) {
+//            BigDecimal returnMoney = dappAgentReturnFlowDao.selectTotalAmountByMemberId(agent.getId(), 2);
+//            if (returnMoney.compareTo(BigDecimal.ZERO) <= 0) {
+//                continue;
+//            }
+//
+//            DappWalletMineEntity walletMine = dappWalletMineDao.selectByMemberId(agent.getId());
+//            dappWalletMineDao.updateBalance(returnMoney, returnMoney, agent.getId());
+//
+//            // 流水
+//            DappFundFlowEntity fundFlow = new DappFundFlowEntity(agent.getId(), returnMoney, 4, null, (String) null);
+//            dappFundFlowDao.insert(fundFlow);
+//
+//            String content = "邀请返利:" + returnMoney.toPlainString();
+//            DappAccountMoneyChangeEntity accountMoneyChange = new DappAccountMoneyChangeEntity(agent.getId(), walletMine.getAvailableAmount(), returnMoney, walletMine.getAvailableAmount().add(returnMoney), content, 4);
+//            dappAccountMoneyChangeDao.insert(accountMoneyChange);
+//
+//            dappAgentReturnFlowDao.updateIsReturnByMemberId(1, agent.getId());
+//        }
+//    }
+//}

--
Gitblit v1.9.1