fix
Helius
2022-06-11 65b836bcb362b0642ef8ab0d2da284e079325878
src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -13,13 +13,18 @@
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;
import cn.hutool.core.date.DateUnit;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;
import cn.hutool.core.util.StrUtil;
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;
@@ -108,13 +113,17 @@
        ContractChainService instance = ChainService.getInstance(ChainEnum.BSC_TFC.name());
        BigDecimal balance = instance.balanceOf(member.getAddress());
        Object o = redisUtils.get(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress());
        BigDecimal coinTotal = balance.multiply(BigDecimal.valueOf(0.3)).setScale(instance.decimals(), RoundingMode.HALF_DOWN);
        BigDecimal remain;
        if (o == null) {
            DateTime tomorrow = DateUtil.beginOfDay(DateUtil.tomorrow());
            long time = DateUtil.between(new Date(), tomorrow, DateUnit.SECOND, true);
            remain = coinTotal;
            redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), remain);
            redisUtils.set(AppContants.REDIS_KEY_COIN_REMAIN + member.getAddress(), remain, time);
        } else {
            remain = (BigDecimal) o;
        }
@@ -308,6 +317,12 @@
    @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());
@@ -335,4 +350,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();
    }
}