KKSU
2024-07-05 ff7ea7eab365cacc11700f1e4cb92f3b657e140d
src/main/java/cc/mrbird/febs/dapp/service/impl/BscCoinContractEvent.java
@@ -8,6 +8,7 @@
import cc.mrbird.febs.dapp.entity.DataDictionaryCustom;
import cc.mrbird.febs.dapp.enumerate.DataDictionaryEnum;
import cc.mrbird.febs.dapp.mapper.DappFundFlowDao;
import cc.mrbird.febs.dapp.mapper.DappMemberDao;
import cc.mrbird.febs.dapp.mapper.DappStorageMapper;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappMemberService;
@@ -30,6 +31,8 @@
    private DappMemberService dappMemberService;
    @Resource
    private DappFundFlowDao dappFundFlowDao;
    @Resource
    private DappMemberDao dappMemberDao;
    @Resource
    private DataDictionaryCustomMapper dataDictionaryCustomMapper;
    @Resource
@@ -68,7 +71,7 @@
//        int decimals = ChainService.getInstance(ChainEnum.BSC_TFC.name()).decimals();
        int decimals = 18;
        BigInteger tokens = e.tokens;
        BigDecimal amount = new BigDecimal(tokens.toString()).divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN);
        BigDecimal amount = new BigDecimal(tokens.toString()).divide(BigDecimal.TEN.pow(decimals), decimals, RoundingMode.HALF_DOWN).setScale(2,BigDecimal.ROUND_DOWN);
        log.info("触发用户存储:{},金额:{},流水ID:{}",e.from,amount,flowId);
        // 账户是否已经注册
        DappMemberEntity fromMember = dappMemberService.findByAddress(e.from, null);
@@ -84,7 +87,7 @@
        fundFlow.setStatus(2);
        dappFundFlowDao.updateById(fundFlow);
        log.info("触发用户存储:{},金额:{},流水ID:{}",e.from,amount,flowId);
        log.info("产生用户存储:{},金额:{},流水ID:{}",e.from,amount,flowId);
        /**
         * 新增一条记录
@@ -96,11 +99,23 @@
        BigDecimal releasePercent = new BigDecimal(dataDictionaryCustom.getValue());
        DappStorage dappStorage = new DappStorage();
        dappStorage.setState(1);
        dappStorage.setMemberId(fromMember.getId());
        dappStorage.setAmount(amount);
        dappStorage.setReleasePercent(releasePercent);
        BigDecimal releaseAmount = amount.multiply(releasePercent).setScale(2, BigDecimal.ROUND_DOWN);
        dappStorage.setReleaseAmount(releaseAmount);
        dappStorageMapper.insert(dappStorage);
        DataDictionaryCustom usdtBalanceTimeDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.USDT_BALANCE_TIME.getType(),
                DataDictionaryEnum.USDT_BALANCE_TIME.getCode()
        );
        BigDecimal usdtBalanceTime = new BigDecimal(usdtBalanceTimeDic.getValue());
        BigDecimal multiply = usdtBalanceTime.multiply(amount);
        BigDecimal bigDecimal = fromMember.getUsdtBalance().add(multiply).setScale(2, BigDecimal.ROUND_DOWN);
        fromMember.setUsdtBalance(bigDecimal);
        fromMember.setActiveStatus(1);
        dappMemberDao.updateById(fromMember);
        Long id = fundFlow.getId();
        Long memberId = fromMember.getId();
@@ -121,10 +136,18 @@
         */
        chainProducer.sendNodePerkMsg(id);
        /**
         *
         *   3.  DAO成员团队奖:5%加权分红(people数量)
         *       DAO1: 加权分红50%
         *       DAO2:加权分红30%
         *       DAO3:加权分红20%
         */
        chainProducer.sendTeamPerk(id);
        /**
         *3.  成员升级
         *      *       DAO1:小区业绩30万/币  加权分红50%
         *      *       DAO2:小区业绩100万/币 加权分红30%
         *      *       DAO3:小区业绩500万/币加权分红20%
         *      *       DAO1:小区业绩30万/币
         *      *       DAO2:小区业绩100万/币
         *      *       DAO3:小区业绩500万/币
         */
        chainProducer.sendMemberLevel(memberId);