fix
Hentua
2023-05-26 3740b8c76d465e74aad225734224c73476b67bd9
src/main/java/cc/mrbird/febs/mall/service/impl/MemberProfitServiceImpl.java
@@ -74,6 +74,11 @@
        // 非代理推代理,非代理上级拿的收益比例
        DataDictionaryCustom indirectPerDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT.getType(), DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT.getCode());
        // 非代理推代理,非代理上级拿的收益比例
        DataDictionaryCustom indirectPerTwoDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT_TWO.getType(), DataDictionaryEnum.UNAGENT_TO_AGENT_PARENT_TWO.getCode());
        // 非代理推代理,非代理的直推收益比例
        DataDictionaryCustom unAgentDirectDic = dataDictionaryCustomMapper.selectDicDataByTypeAndCode(DataDictionaryEnum.UNAGENT_TO_AGENT.getType(), DataDictionaryEnum.UNAGENT_TO_AGENT.getCode());
@@ -141,13 +146,18 @@
                    continue;
                }
                int index = 1;
                for (MallMember mallMember : mallMembers) {
                    if (!item.getGoodsLevel().equals(mallMember.getAccountLevel())) {
                        break;
                    }
                    if (index != 2) {
                        indirectPerDic = indirectPerTwoDic;
                    }
                    BigDecimal doubleParentProfit = profit.multiply(new BigDecimal(indirectPerDic.getValue()));
                    changeScoreAndCommission(mallMember.getId(), doubleParentProfit, MoneyFlowTypeEnum.DIRECT_BONUS.getValue(), orderInfo.getOrderNo());
                    index++;
                }
            }
            // ----- 直推奖 end -------
@@ -330,8 +340,15 @@
            return;
        }
        BigDecimal bonus = BigDecimal.ZERO;
        if (AccountLevelEnums.VVIP.getLevel().equals(type)) {
            bonus = systemSetting.getAgentBonus();
        } else {
            bonus = systemSetting.getPartnerBonus();
        }
        // 代理
        BigDecimal waitToBonus = systemSetting.getAgentBonus().multiply(new BigDecimal(dic.getValue()).divide(hundred, 2, RoundingMode.HALF_UP));
        BigDecimal waitToBonus = bonus.multiply(new BigDecimal(dic.getValue()).divide(hundred, 2, RoundingMode.HALF_UP));
        // 代理
        List<MallMember> mallMembers = mallMemberMapper.selectAgentOrPartnetMemberList(type);
@@ -346,9 +363,9 @@
        });
        if (type.equals(AccountLevelEnums.VVIP.getLevel())) {
            changeSystemBonus(null, waitToBonus,null);
            changeSystemBonus(null, waitToBonus.negate(),null);
        } else {
            changeSystemBonus(null, null, waitToBonus);
            changeSystemBonus(null, null, waitToBonus.negate());
        }
        bonusRecord(waitToBonus, type, null, null);
@@ -422,7 +439,7 @@
            }
            memberList.add(item);
            levelMemberMap.put(item.getLevel(), memberList);
            levelMemberMap.put(level, memberList);
        });
        if (levelMemberMap.isEmpty()) {