fix
Helius
2022-06-13 a26796c06e7dbf5e1f96dca971b08e1278103f29
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -13,6 +13,7 @@
import cc.mrbird.febs.dapp.utils.OnlineTransferUtil;
import cc.mrbird.febs.dapp.vo.RedisTransferPoolVo;
import cc.mrbird.febs.dapp.vo.SlipSettingVo;
import cc.mrbird.febs.job.SystemTradeJob;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
@@ -23,6 +24,7 @@
import com.alibaba.fastjson.JSONObject;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -311,10 +313,32 @@
                dappFundFlowDao.updateById(fundFlow);
            }
        }
        // 判断系统是否启动,如满足条件则启动系统
        String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
        if (!"start".equals(hasStart)) {
            DataDictionaryCustom dic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(AppContants.DIC_TYPE_SYSTEM_SETTING, AppContants.DIC_VALUE_SYSTEM_START_TARGET);
            BigDecimal target = new BigDecimal(dic.getValue());
            // 若源池中的USDT达到或超过8万U,则启动整个系统
            BigDecimal balance = ChainService.getInstance(ChainEnum.BSC_USDT_SOURCE.name()).balanceOf(ChainEnum.BSC_USDT_SOURCE.getAddress());
            if (target.compareTo(balance) < 1) {
                redisUtils.set(AppContants.SYSTEM_START_FLAG, "start");
                // 启动系统
                startSystem();
            }
        }
    }
    @Override
    public void userBuyReward(Long id) {
        // 系统未启动不参与
        String hasStart = redisUtils.getString(AppContants.SYSTEM_START_FLAG);
        if (!"start".equals(hasStart)) {
            return;
        }
        DappFundFlowEntity fundFlow = dappFundFlowDao.selectById(id);
        DappMemberEntity member = dappMemberDao.selectById(fundFlow.getMemberId());
@@ -342,4 +366,22 @@
        map.put("type", "batch");
        chainProducer.sendOnlineTransfer(JSONObject.toJSONString(map));
    }
    @Autowired
    private SystemTradeJob systemTradeJob;
    @Override
    public void startSystem() {
        log.info("启动系统");
        Thread thread = new Thread(new Runnable() {
            @Override
            public void run() {
                systemTradeJob.transferPoolVol();
                systemTradeJob.sourcePoolUsdtOutLimit();
            }
        });
        thread.start();
    }
}