xiaoyong931011
2023-08-14 80ca4f864853a2878944c46efa351af677bee9eb
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){
@@ -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){