xiaoyong931011
2023-08-15 642a3ec9b15d7cd853845590c2a044f4970b9358
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)
@@ -241,7 +242,7 @@
    @Override
    public void addMemberScan(String str) {
        String[] split = StrUtil.split(str, "-");
        String[] split = StrUtil.split(str, "@");
        String referrerId = split[0];
        String openId = split[1];
        MallMember mallMember = memberMapper.selectMemberByOpenId(openId);
@@ -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){
@@ -388,26 +402,26 @@
            if(ObjectUtil.isEmpty(mallGoods)){
                break;
            }
            if(1 == mallGoods.getIsUnreal()){
            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());
                    mallMoneyFlowService.addMoneyFlow(memberId, levelOnePrice, MoneyFlowTypeEnum.STATIC_BONUS.getValue(),
                            mallOrderInfo.getOrderNo(),  FlowTypeEnum.SCORE.getValue(),"赠送积分",2);
                }
            }
        }
    }
@@ -444,13 +458,16 @@
            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){
            //民宿卷
            MallMemberHouse mallMemberHouse = new MallMemberHouse();
            mallMemberHouse.setOrderId(orderId);
            mallMemberHouse.setOrderNo(mallOrderInfo.getOrderNo());
            mallMemberHouse.setMemberId(memberId);
            mallMemberHouse.setState(1);
            mallMemberHouse.setCreateTime(DateUtil.date());
@@ -458,6 +475,7 @@
            mallMemberHouse.setUnuseTime(DateUtil.date().offset(DateField.HOUR_OF_DAY,48));
            mallMemberHouse.setHouseName(mallGoods.getHouseName());
            mallMemberHouse.setHouseAddress(mallGoods.getHouseAddress());
            mallMemberHouse.setHousePic(mallGoods.getThumb());
            mallMemberHouseMapper.insert(mallMemberHouse);
            return;
        }else{