KKSU
2024-01-30 3e39512dfde0035f556f177dac58052baf686853
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -882,7 +882,8 @@
                                    DataDictionaryEnum.BASIC_PERK_DIRECT.getType(),
                                    DataDictionaryEnum.BASIC_PERK_DIRECT.getCode()
                            ).getValue()).multiply(new BigDecimal("0.01"));
                            BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
//                            BigDecimal basicPerkDirect = profit.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                            BigDecimal basicPerkDirect = nftTotal.multiply(basicPerkDirectPercent).setScale(2, BigDecimal.ROUND_DOWN);
                            /**
                             * 先插入流水记录,然后定时器每小时,循环一次找寻对应的数据执行
                             */
@@ -1377,6 +1378,7 @@
            //上级
            String referrerId = mallMember.getReferrerId();
            MallMember mallMemberRef = memberMapper.selectInfoByInviteId(referrerId);
            List<MallMember> mallMembersAll = memberMapper.selectAllChildAgentListByInviteId(referrerId);
            List<MallMember> mallMembers = memberMapper.selectByRefererId(referrerId);
            Set<Long> mallMembersSet = mallMembers.stream().map(MallMember::getId).collect(Collectors.toSet());
@@ -1390,6 +1392,7 @@
            /**
             * 从会员等级最低到最高,比较intersection与会员设置的直推人数directCntLevel比较
             * directCntLevel >= intersection.size(),则满足升级会员等级条件,跳出循环
             * teamCnt >= mallMembersAll.size(),则满足升级会员等级条件,跳出循环
             * 达到最高级别后,升级会员等级,跳出循环
             */
            String level = MemberLevelNewEnum.ZERO_LEVEL.getType();
@@ -1400,7 +1403,9 @@
                );
                TeamPerkDto teamPerkDto = JSONObject.parseObject(levelDic.getValue(), TeamPerkDto.class);
                Integer directCntLevel = teamPerkDto.getDirectCnt();
                if(directCntLevel >= intersection.size()){
                Integer teamCnt = teamPerkDto.getTeamCnt();
                if(directCntLevel >= intersection.size() &&
                        teamCnt >= mallMembersAll.size()){
                    mallMemberRef.setLevel(level);
                    memberMapper.updateById(mallMemberRef);
                    flag = true;