src/main/java/cc/mrbird/febs/dapp/service/impl/DappSystemServiceImpl.java
@@ -271,9 +271,9 @@ if(CollUtil.isEmpty(downMembersList)){ continue; } Set<Long> collect = downMembersList.stream().map(DappMemberEntity::getId).collect(Collectors.toSet()); QueryWrapper<DappAchieve> queryWrapper = new QueryWrapper<>(); queryWrapper.in("member_id",downMembersList); queryWrapper.in("member_id",collect); queryWrapper.eq("state",DappAchieve.STATUS_ING); List<DappAchieve> dappAchieveSumList = dappAchieveMapper.selectList(queryWrapper); //个人团队总业绩 @@ -285,8 +285,8 @@ memberPerkMap.put(memberId,teamAchieveMemberSum); } BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal); BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal); BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN); BigDecimal everyCoin = multiplyDivideEveryCoin.divide(memberPerkTotal,4,BigDecimal.ROUND_DOWN); Set<Long> set = memberPerkMap.keySet(); // 得到所有key的集合 for (Long memberId : set) { //当前生效中的团队业绩 @@ -332,8 +332,8 @@ BigDecimal multiplyDivideEveryCoin = divideEveryCoin.multiply(selfPercentMultiply); //当前生效中的质押总数 BigDecimal amountMemberTotal = dappAchieves.stream().map(DappAchieve::getAmount).reduce(BigDecimal.ZERO, BigDecimal::add); BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal); BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal); BigDecimal everyUsdt = multiplyDivideEveryUsdt.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN); BigDecimal everyCoin = multiplyDivideEveryCoin.divide(amountMemberTotal,4,BigDecimal.ROUND_DOWN); Map<Long, List<DappAchieve>> collect = dappAchieves.stream().collect(Collectors.groupingBy(DappAchieve::getMemberId)); Set<Long> set = collect.keySet(); // 得到所有key的集合 src/main/java/cc/mrbird/febs/dapp/service/impl/DappWalletServiceImpl.java
@@ -236,10 +236,12 @@ DappMemberEntity member = LoginUserUtil.getAppUser(); String hasStart = redisUtils.getString(DataDicEnum.SYSTEM_START_FLAG.getValue()); BigDecimal minAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MIN_AMOUNT.getValue())).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal minAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MIN_AMOUNT.getValue())); BigDecimal maxAmount = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_BUY_MAX_AMOUNT.getValue())).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal gfaDays = new BigDecimal(redisUtils.getString(DataDicEnum.GFA_DAYS.getValue())).setScale(2,BigDecimal.ROUND_DOWN); minAmount = minAmount.divide(transferDto.getPrice(),2,BigDecimal.ROUND_DOWN); maxAmount = maxAmount.divide(transferDto.getPrice(),2,BigDecimal.ROUND_DOWN);; if (transferDto.getId() == null) { if (DappFundFlowEntity.TYPE_BUY == transferDto.getType()) { //系统开始标识 src/main/java/cc/mrbird/febs/rabbit/QueueConstants.java
@@ -19,6 +19,6 @@ public static final String QUEUE_GFA_ZY_TIME_TTL = "queue_gfa_zy_time_ttl"; public static final String ONLINE_TRANSFER = "queue_online_transfer"; public static final String DISTRIB_PROFIT = "queue_distrib_profit"; public static final String DISTRIB_PROFIT = "queue_gfa_distrib_profit"; public static final String USER_BUY_REWARD = "queue_user_buy_reward"; } src/main/java/cc/mrbird/febs/rabbit/QueueEnum.java
@@ -27,7 +27,7 @@ QueueConstants.QUEUE_GFA_ZY_TIME_TTL), ONLINE_TRANSFER("exchange_online_transfer", "route_key_online_transfer", QueueConstants.ONLINE_TRANSFER), DISTRIB_PROFIT("exchange_distrib_profit", "route_key_distrib_profit", QueueConstants.DISTRIB_PROFIT), DISTRIB_PROFIT("exchange_gfa_distrib_profit", "route_key_gfa_distrib_profit", QueueConstants.DISTRIB_PROFIT), USER_BUY_REWARD("exchange_user_buy_reward", "route_key_user_buy_reward", QueueConstants.USER_BUY_REWARD); private String exchange; src/test/java/cc/mrbird/febs/MemberTest.java
@@ -1,16 +1,22 @@ package cc.mrbird.febs; import cc.mrbird.febs.common.contants.AppContants; import cc.mrbird.febs.common.enumerates.DataDicEnum; import cc.mrbird.febs.common.utils.RedisUtils; import cc.mrbird.febs.dapp.entity.DappMemberEntity; import cc.mrbird.febs.dapp.entity.DataDictionaryCustom; import cc.mrbird.febs.dapp.mapper.DappMemberDao; 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.util.StrUtil; import org.apache.commons.lang3.StringUtils; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.scheduling.annotation.Scheduled; import java.math.BigDecimal; import java.util.List; /** @@ -21,51 +27,27 @@ public class MemberTest { @Autowired private DappMemberDao dappMemberDao; private ChainProducer chainProducer; @Autowired private RedisUtils redisUtils; @Autowired private DataDictionaryCustomMapper dataDictionaryCustomMapper; private DappSystemService dappSystemService; @Test public void refererIdsTest() { DappMemberEntity member = dappMemberDao.selectById(24); boolean flag = false; String parentId = "35087336"; String ids = ""; String feeProfitIds = ""; int i = 1; List<DataDictionaryCustom> feeProfitDic = dataDictionaryCustomMapper.selectDicByType(AppContants.DIC_TYPE_DISTRIBUTE_PROP); while (!flag && StringUtils.isNotBlank(parentId)) { if (StrUtil.isBlank(ids)) { ids += parentId; } else { ids += ("," + parentId); } if (i <= 4) { if (StrUtil.isBlank(feeProfitIds)) { feeProfitIds += parentId; } else { feeProfitIds += ("," + parentId); } } i++; DappMemberEntity parentMember = dappMemberDao.selectMemberInfoByInviteId(parentId); if (parentMember == null) { break; } parentId = parentMember.getRefererId(); if(StringUtils.isBlank(parentId) || "0".equals(parentId)){ break; } if (parentMember.getRefererId().equals(parentMember.getInviteId())) { flag = true; } public void mineJob() { BigDecimal usdtAmount = new BigDecimal( redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_USDT_AMOUNT.getValue()) ).setScale(2,BigDecimal.ROUND_DOWN); BigDecimal coinAmount = new BigDecimal( redisUtils.getString(DataDicEnum.GFA_HUA_DIAN_WALLET_COIN_AMOUNT.getValue()) ).setScale(2,BigDecimal.ROUND_DOWN); if(BigDecimal.ZERO.compareTo(usdtAmount) > 0){ return; } member.setRefererIds(ids); member.setFeeProfitIds(feeProfitIds); if(BigDecimal.ZERO.compareTo(coinAmount) > 0){ return; } // dappSystemService.tradeProfitDistribute(1L); } }