KKSU
2024-01-11 ada59d11d10c4a5db3c748c1997ee4992ee54b3a
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -51,26 +51,30 @@
        List<MallMember> parentMembers = memberMapper.selectByInviteIds(ids);
        for (MallMember parent : parentMembers) {
            //level为v6,升级董事,则看直属团队下有没有两个V6
            List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId());
            int directorSize = 0;
            if(CollUtil.isNotEmpty(mallMemberChilds)){
                for(MallMember mallMemberChild : mallMemberChilds){
                    List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId());
                    if(CollUtil.isNotEmpty(mallMemberTeamMembers)){
                        List<MallMember> levelV6List = mallMemberTeamMembers.stream()
                                .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType()))
                                .collect(Collectors.toList());
                        if(CollUtil.isNotEmpty(levelV6List)){
                            directorSize = directorSize +1;
                        }
                    }
                }
                if(directorSize >= 2){
                    parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType());
                    parent.setDirector(AppContants.OPTION_YES);
                    memberMapper.updateById(parent);
                    continue;
                }
//            List<MallMember> mallMemberChilds = memberMapper.selectByRefererId(parent.getInviteId());
//            if(CollUtil.isNotEmpty(mallMemberChilds)){
//                int directorSize = 0;
//                for(MallMember mallMemberChild : mallMemberChilds){
//                    List<MallMember> mallMemberTeamMembers = memberMapper.selectAllChildAgentListByInviteId(mallMemberChild.getInviteId());
//                    if(CollUtil.isNotEmpty(mallMemberTeamMembers)){
//                        List<MallMember> levelV6List = mallMemberTeamMembers.stream()
//                                .filter(teamMember -> teamMember.getLevel().equals(MemberLevelEnum.V6.getType()))
//                                .collect(Collectors.toList());
//                        if(CollUtil.isNotEmpty(levelV6List)){
//                            directorSize = directorSize +1;
//                        }
//                    }
//                }
//                if(directorSize >= 2){
//                    parent.setLevel(MemberLevelEnum.V_DIRECTOR.getType());
//                    parent.setDirector(AppContants.OPTION_YES);
//                    memberMapper.updateById(parent);
//                    continue;
//                }
//            }
            //V6不能再升级了
            if(parent.getLevel().equals(MemberLevelEnum.V6.getType())){
                continue;
            }
            /**
@@ -210,6 +214,12 @@
         * 4、董事享受全公司入单分红2%加权(现金)
         * 5、合伙人享全公司入单分红5%加权(现金)
         * 6、入单后,50%入现金池 35%的H金劵入H金劵池,更新价格
         *
         *
         * 新增购买套餐返佣逻辑
         * 1、买了套餐增加权益额度
         * 2、权益额度每次提现会减少对应的数额
         * 3、增加每天返佣固定比例的余额
         */
        //获取当前订单子表信息
        List<MallOrderItem> mallOrderItemList = mallOrderItemMapper.selectbyOrderId(orderId);
@@ -226,6 +236,26 @@
        if(BigDecimal.ZERO.compareTo(amountTCAll) >= 0){
            return;
        }
        MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
        String orderNo = mallOrderInfo.getOrderNo();
        //购买人
        Long memberId = mallOrderInfo.getMemberId();
        DataDictionaryCustom equityLimitTimesDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.EQUITY_LIMIT_TIMES.getType(),
                DataDictionaryEnum.EQUITY_LIMIT_TIMES.getCode());
        BigDecimal equityLimitTimes = new BigDecimal(equityLimitTimesDic.getValue());
        BigDecimal equityLimit = amountTCAll.multiply(equityLimitTimes);
        if(BigDecimal.ZERO.compareTo(equityLimit) < 0){
            addWalletInfoAndMoneyFlow(equityLimit,
                    memberId,
                    "equityLimit",
                    MoneyFlowTypeEnum.TC_TO_EQUITY_LIMIT.getValue(),
                    memberId,
                    FlowTypeEnum.BALANCE.getValue(),
                    orderNo);
        }
        BigDecimal amountTC = new BigDecimal(100);
        //购买套餐按照1000的基数去补贴,如5000,则补贴5次1000
        int times = amountTCAll.divideToIntegralValue(amountTC).intValue();
@@ -234,10 +264,6 @@
        }
        for(int i = 0; i < times; i++){
            MallOrderInfo mallOrderInfo = mallOrderInfoMapper.selectById(orderId);
            String orderNo = mallOrderInfo.getOrderNo();
            //购买人
            Long memberId = mallOrderInfo.getMemberId();
            /**
             * 1、购买人获得固定比例的H金劵
@@ -428,7 +454,7 @@
                );
                if(poolScore.compareTo(BigDecimal.ZERO) > 0 && poolCash.compareTo(BigDecimal.ZERO) > 0){
                    BigDecimal divide = poolCash.divide(poolScore, 7, BigDecimal.ROUND_DOWN);
                    BigDecimal divide = poolCash.divide(poolScore, 8, BigDecimal.ROUND_DOWN);
                    dataDictionaryCustomMapper.updateDicValueByTypeAndCode(
                            PerkEnum.POOL_SCORE_PRICE.getType(),
                            PerkEnum.POOL_SCORE_PRICE.getCode(),