xiaoyong931011
2022-12-22 2abd05a4ab94edfacb73edc59866a9057be6fca8
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -203,51 +203,55 @@
         *  2、返利对象:下单人的直推上级
         *  3、金额:返利比例乘以补贴金额
         */
        //下单人的直推上级
        MallMember mallMemberOne = memberMapper.selectInfoByInviteId(mallMember.getReferrerId());
        DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.REWARD_PERCENT.getType(),
                DataDictionaryEnum.REWARD_PERCENT.getCode()
        );
        BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
        BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(2, BigDecimal.ROUND_DOWN);
        Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
                mallMember.getId(),
                orderInfo.getOrderNo(),
                directRewardAmount,
                MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
                MallMoneyFlow.STATUS_SUCCESS,
                MallMoneyFlow.IS_RETURN_Y,
                mallMemberOne.getId(),
                FlowTypeEnum.BALANCE.getValue(),
                MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
        );
        memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId());
        /**
         * 生成分享奖励的流水记录
         *  1、待生效
         *  2、返利对象:下单人的直推上级 10%,直推的直推 5%
         *  3、金额:补贴金额乘以分享奖励的比例
         */
        DataDictionaryCustom shareOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                DataDictionaryEnum.LEVEL_ONE.getType(),
                DataDictionaryEnum.LEVEL_ONE.getCode()
        );
        BigDecimal shareOne = new BigDecimal(shareOneDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
        BigDecimal shareOneAmount = subsidyAmount.multiply(shareOne).setScale(2, BigDecimal.ROUND_DOWN);
        Long ShareOneFlowId = mallMoneyFlowService.addMoneyFlow(
                mallMember.getId(),
                orderInfo.getOrderNo(),
                shareOneAmount,
                MallMoneyFlowTypeEnum.SHARE_REWARD_ONE.getCode(),
                MallMoneyFlow.STATUS_SUCCESS,
                MallMoneyFlow.IS_RETURN_Y,
                mallMemberOne.getId(),
                FlowTypeEnum.BALANCE.getValue(),
                MallMoneyFlowTypeEnum.SHARE_REWARD_ONE.getName()
        );
        memberWalletService.addBalance(shareOneAmount,mallMemberOne.getId());
        //下单人的直推上级
        MallMember mallMemberOne = memberMapper.selectInfoByInviteId(mallMember.getReferrerId());
        //生成直推返利的流水记录
        if(ObjectUtil.isNotEmpty(mallMemberOne)){
            DataDictionaryCustom rewardPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.REWARD_PERCENT.getType(),
                    DataDictionaryEnum.REWARD_PERCENT.getCode()
            );
            BigDecimal rewardPercent = new BigDecimal(rewardPercentDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
            BigDecimal directRewardAmount = subsidyAmount.multiply(rewardPercent).setScale(2, BigDecimal.ROUND_DOWN);
            Long marketSubsidyFlowId = mallMoneyFlowService.addMoneyFlow(
                    mallMember.getId(),
                    orderInfo.getOrderNo(),
                    directRewardAmount,
                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getCode(),
                    MallMoneyFlow.STATUS_SUCCESS,
                    MallMoneyFlow.IS_RETURN_Y,
                    mallMemberOne.getId(),
                    FlowTypeEnum.BALANCE.getValue(),
                    MallMoneyFlowTypeEnum.DIRECT_REWARD.getName()
            );
            memberWalletService.addBalance(directRewardAmount,mallMemberOne.getId());
            DataDictionaryCustom shareOneDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                    DataDictionaryEnum.LEVEL_ONE.getType(),
                    DataDictionaryEnum.LEVEL_ONE.getCode()
            );
            //生成分享奖励的流水记录
            BigDecimal shareOne = new BigDecimal(shareOneDic.getValue()).multiply(new BigDecimal(0.01)).setScale(2,BigDecimal.ROUND_DOWN);
            BigDecimal shareOneAmount = subsidyAmount.multiply(shareOne).setScale(2, BigDecimal.ROUND_DOWN);
            Long ShareOneFlowId = mallMoneyFlowService.addMoneyFlow(
                    mallMember.getId(),
                    orderInfo.getOrderNo(),
                    shareOneAmount,
                    MallMoneyFlowTypeEnum.SHARE_REWARD_ONE.getCode(),
                    MallMoneyFlow.STATUS_SUCCESS,
                    MallMoneyFlow.IS_RETURN_Y,
                    mallMemberOne.getId(),
                    FlowTypeEnum.BALANCE.getValue(),
                    MallMoneyFlowTypeEnum.SHARE_REWARD_ONE.getName()
            );
            memberWalletService.addBalance(shareOneAmount,mallMemberOne.getId());
        }
        //下单人的直推上级的直推
        MallMember mallMemberTwo = memberMapper.selectInfoByInviteId(mallMemberOne.getReferrerId());
        if(ObjectUtil.isNotEmpty(mallMemberTwo)){