xiaoyong931011
2023-08-15 09090250b33c1f818c2364a8d03cf6d7b6c2c6de
src/main/java/cc/mrbird/febs/mall/service/impl/AgentServiceImpl.java
@@ -57,6 +57,7 @@
    private final IMallMoneyFlowService mallMoneyFlowService;
    private final MallMemberClassMapper mallMemberClassMapper;
    private final MallMemberHouseMapper mallMemberHouseMapper;
    private final MallMoneyFlowMapper mallMoneyFlowMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
@@ -370,16 +371,29 @@
                String referrerId = mallMember.getReferrerId();
                MallMember mallMemberParent = memberMapper.selectInfoByInviteId(referrerId);
                Long id = mallMemberParent.getId();
                DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                        DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(),
                        DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode()
                );
                String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : returnPercentDic.getValue();
                BigDecimal returnPercent = new BigDecimal(returnPercentStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN);
                BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN);
                memberWalletService.add(amountActual, id, "balance");
                mallMoneyFlowService.addMoneyFlow(id, amountActual, MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.BALANCE.getValue());
                MallMoneyFlow mallMoneyFlow = mallMoneyFlowMapper.selectOneByOrderNoAndMemberIdAndRtMemberId(mallOrderInfo.getOrderNo(), memberId, id);
                if(ObjectUtil.isEmpty(mallMoneyFlow)){
                    DataDictionaryCustom returnPercentDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(
                            DataDictionaryEnum.MEMBER_RETURN_PERCENT.getType(),
                            DataDictionaryEnum.MEMBER_RETURN_PERCENT.getCode()
                    );
                    String returnPercentStr = StrUtil.isNotEmpty(returnPercentDic.getValue()) ? "1" : returnPercentDic.getValue();
                    BigDecimal returnPercent = new BigDecimal(returnPercentStr).divide(new BigDecimal(100), 2, BigDecimal.ROUND_DOWN);
                    BigDecimal amountActual = amountBigDecimal.multiply(returnPercent).setScale(2, BigDecimal.ROUND_DOWN);
                    mallMoneyFlowService.addMoneyFlow(
                            mallMember.getId(),
                            amountActual,
                            MoneyFlowTypeEnum.DYNAMIC_ACHIEVE.getValue(),
                            mallOrderInfo.getOrderNo(),
                            "直推奖",
                            "直推奖",
                            id,
                            1,
                            FlowTypeEnum.BALANCE.getValue(),
                            2);
                }
            }
        }
        for(MallOrderItem mallOrderItem : mallOrderItemList){
@@ -391,23 +405,23 @@
            if(ObjectUtil.isNotEmpty(mallGoods.getIsUnreal()) && 1 == mallGoods.getIsUnreal()){
                mallOrderInfo.setStatus(OrderStatusEnum.FINISH.getValue());
                mallOrderInfoMapper.updateById(mallOrderInfo);
            }
            //是否送券 1:是 2:否
            BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice();
            if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){
                MallRollPerk mallRollPerk = new MallRollPerk();
                mallRollPerk.setMemberId(memberId);
                mallRollPerk.setState(1);
                mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue());
                mallRollPerkMapper.insert(mallRollPerk);
            }
            //赠送积分
            BigDecimal levelOnePrice = mallGoods.getLevelOnePrice();
            if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){
                memberWalletService.add(levelOnePrice, memberId, "score");
                //是否送券 1:是 2:否
                BigDecimal levelTwoPrice = mallGoods.getLevelTwoPrice();
                if(BigDecimal.ONE.compareTo(levelTwoPrice) == 0){
                    MallRollPerk mallRollPerk = new MallRollPerk();
                    mallRollPerk.setMemberId(memberId);
                    mallRollPerk.setState(1);
                    mallRollPerk.setRollId(mallGoods.getLevelThreePrice().longValue());
                    mallRollPerkMapper.insert(mallRollPerk);
                }
                //赠送积分
                BigDecimal levelOnePrice = mallGoods.getLevelOnePrice();
                if(BigDecimal.ZERO.compareTo(levelOnePrice) <= 0){
                    memberWalletService.add(levelOnePrice, memberId, "score");
                mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(),
                        mallOrderInfo.getOrderNo(),  FlowTypeEnum.SCORE.getValue(),"赠送积分",2);
                    mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(),
                            mallOrderInfo.getOrderNo(),  FlowTypeEnum.SCORE.getValue(),"赠送积分",2);
                }
            }
        }
    }
@@ -444,7 +458,9 @@
            mallMemberClass.setOrderId(orderId);
            mallMemberClass.setClassName(goodsName);
            mallMemberClass.setClassPic(skuImage);
            mallMemberClass.setClassDec(mallGoods.getGoodsIntrodution());
            mallMemberClass.setClassUrl(mallGoods.getVideoUrl());
            mallMemberClass.setCreateTime(DateUtil.date());
            mallMemberClassMapper.insert(mallMemberClass);
            return;
        }else if(5 == isNormal){