KKSU
2024-07-08 f0922bc416fad3aa6121ffdbdd217bffb94f518f
src/main/java/cc/mrbird/febs/job/ProfitDailyJob.java
@@ -10,6 +10,7 @@
import cc.mrbird.febs.dapp.mapper.DappStorageMapper;
import cc.mrbird.febs.dapp.mapper.DataDictionaryCustomMapper;
import cc.mrbird.febs.dapp.service.DappSystemService;
import cc.mrbird.febs.rabbit.producer.ChainProducer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.date.DateUtil;
@@ -28,7 +29,7 @@
@Slf4j
@Component
@ConditionalOnProperty(prefix = "system", name = "charge-transfer", havingValue = "true")
@ConditionalOnProperty(prefix = "system", name = "daily-job", havingValue = "true")
public class ProfitDailyJob {
    @Resource
@@ -39,6 +40,8 @@
    private DappStorageMapper dappStorageMapper;
    @Resource
    private DappMemberDao dappMemberDao;
    @Resource
    private ChainProducer chainProducer;
    /**
     * 每天释放1%的静态释放
@@ -55,6 +58,13 @@
        for(DappStorage storage : dappStorages){
            Long memberId = storage.getMemberId();
            BigDecimal releaseAmount = storage.getReleaseAmount();
            /**
             * DAO成员动态:
             *      * 1.直推1个拿2代,直推10个拿20代,直推15个拿30代,最高30代
             */
            chainProducer.sendMemberDynamicPerkMsg(storage.getId());
            dappSystemService.updateBalanceInsertFlow(
                    releaseAmount,
                    memberId,
@@ -163,45 +173,45 @@
            BigDecimal everyAmount = daDanTotal.divide(new BigDecimal(count));
            if(everyAmount.compareTo(BigDecimal.ZERO) > 0){
                DappStorage dappStorageOne = dappStorageMapper.selectAmountByDesc(new Date(),0,1);
                if(ObjectUtil.isNotEmpty(dappStorageOne)){
                List<DappStorage> dappStorageOne = dappStorageMapper.selectSumByAmountDesc(new Date(),0,1);
                if(CollUtil.isNotEmpty(dappStorageOne)){
                    BigDecimal multiply = everyAmount.multiply(new BigDecimal(oneCount));
                    dappSystemService.updateBalanceInsertFlow(
                            multiply,
                            dappStorageOne.getMemberId(),
                            dappStorageOne.get(0).getMemberId(),
                            MoneyFlowEnum.DA_DAN_JI_LI_PERK.getValue(),
                            StrUtil.format(MoneyFlowEnum.DA_DAN_JI_LI_PERK.getDescrition(),daDanTotal,multiply));
                    realAmount = realAmount.add(multiply);
                }
                DappStorage dappStorageTwo = dappStorageMapper.selectAmountByDesc(new Date(),1,1);
                if(ObjectUtil.isNotEmpty(dappStorageTwo)){
                List<DappStorage> dappStorageTwo = dappStorageMapper.selectSumByAmountDesc(new Date(),1,1);
                if(CollUtil.isNotEmpty(dappStorageTwo)){
                    BigDecimal multiply = everyAmount.multiply(new BigDecimal(twoCount));
                    dappSystemService.updateBalanceInsertFlow(
                            multiply,
                            dappStorageTwo.getMemberId(),
                            dappStorageTwo.get(0).getMemberId(),
                            MoneyFlowEnum.DA_DAN_JI_LI_PERK.getValue(),
                            StrUtil.format(MoneyFlowEnum.DA_DAN_JI_LI_PERK.getDescrition(),daDanTotal,multiply));
                    realAmount = realAmount.add(multiply);
                }
                DappStorage dappStorageThree = dappStorageMapper.selectAmountByDesc(new Date(),2,1);
                if(ObjectUtil.isNotEmpty(dappStorageThree)){
                List<DappStorage> dappStorageThree = dappStorageMapper.selectSumByAmountDesc(new Date(),2,1);
                if(CollUtil.isNotEmpty(dappStorageThree)){
                    BigDecimal multiply = everyAmount.multiply(new BigDecimal(threeCount));
                    dappSystemService.updateBalanceInsertFlow(
                            multiply,
                            dappStorageThree.getMemberId(),
                            dappStorageThree.get(0).getMemberId(),
                            MoneyFlowEnum.DA_DAN_JI_LI_PERK.getValue(),
                            StrUtil.format(MoneyFlowEnum.DA_DAN_JI_LI_PERK.getDescrition(),daDanTotal,multiply));
                    realAmount = realAmount.add(multiply);
                }
                DappStorage dappStorageFour = dappStorageMapper.selectAmountByDesc(new Date(),3,1);
                if(ObjectUtil.isNotEmpty(dappStorageFour)){
                List<DappStorage> dappStorageFour = dappStorageMapper.selectSumByAmountDesc(new Date(),3,1);
                if(CollUtil.isNotEmpty(dappStorageFour)){
                    BigDecimal multiply = everyAmount.multiply(new BigDecimal(fourCount));
                    dappSystemService.updateBalanceInsertFlow(
                            multiply,
                            dappStorageFour.getMemberId(),
                            dappStorageFour.get(0).getMemberId(),
                            MoneyFlowEnum.DA_DAN_JI_LI_PERK.getValue(),
                            StrUtil.format(MoneyFlowEnum.DA_DAN_JI_LI_PERK.getDescrition(),daDanTotal,multiply));
@@ -214,15 +224,41 @@
         * 另外50% 给予当天直推总业绩排名激励前10名,第1名40%,2-4名30%,5-10名30%
         */
        BigDecimal directTotal = jiLiTotal.multiply(new BigDecimal("0.5")).setScale(2, BigDecimal.ROUND_DOWN);
//        /**
//         * 存放直推业绩<上级的memberId,直推总业绩>
//         */
//        HashMap<Long, BigDecimal> map = new HashMap<>();
//
//        List<DappStorage> dappStorages = dappStorageMapper.selectListByDate(new Date());
//        if(CollUtil.isNotEmpty(dappStorages)){
//            for(DappStorage dappStorage : dappStorages){
//                DappMemberEntity member = dappMemberDao.selectById(dappStorage.getMemberId());
//                if(StrUtil.isEmpty(member.getRefererId())){
//                    continue;
//                }
//                DappMemberEntity memberRef = dappMemberDao.selectMemberInfoByInviteId(member.getRefererId());
//                if(ObjectUtil.isEmpty(memberRef)){
//                    continue;
//                }
//                Long id = memberRef.getId();
//                if(map.containsKey(id)){
//                    BigDecimal bigDecimal = map.get(id);
//                    BigDecimal add = bigDecimal.add(dappStorage.getAmount());
//                    map.put(id,add);
//                }else{
//                    map.put(id,dappStorage.getAmount());
//                }
//            }
//        }
        /**
         * 存放直推业绩<上级的memberId,直推总业绩>
         * 存放直推人数<上级的memberId,直推人数>
         */
        HashMap<Long, BigDecimal> map = new HashMap<>();
        List<DappStorage> dappStorages = dappStorageMapper.selectListByDate(new Date());
        if(CollUtil.isNotEmpty(dappStorages)){
            for(DappStorage dappStorage : dappStorages){
                DappMemberEntity member = dappMemberDao.selectById(dappStorage.getMemberId());
        List<DappMemberEntity> dappMemberEntityList = dappMemberDao.selectListByDate(new Date());
        if(CollUtil.isNotEmpty(dappMemberEntityList)){
            for(DappMemberEntity member : dappMemberEntityList){
                if(StrUtil.isEmpty(member.getRefererId())){
                    continue;
                }
@@ -233,10 +269,10 @@
                Long id = memberRef.getId();
                if(map.containsKey(id)){
                    BigDecimal bigDecimal = map.get(id);
                    BigDecimal add = bigDecimal.add(dappStorage.getAmount());
                    BigDecimal add = bigDecimal.add(new BigDecimal("1"));
                    map.put(id,add);
                }else{
                    map.put(id,dappStorage.getAmount());
                    map.put(id,new BigDecimal("1"));
                }
            }
        }