1
phpcjl
2024-12-20 cca118a26722cd2673e6a6877ff742aef10fad4a
1
1个文件已修改
55 ■■■■ 已修改文件
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java 55 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java
@@ -643,15 +643,24 @@
        BigDecimal totalServiceFee = BigDecimal.ZERO;
        BigDecimal totalUserCommission = BigDecimal.ZERO;
        Map<Integer, BigDecimal> vipCommissions = new HashMap<>();
        Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new HashMap<>();
        for (AppUser appUser : appUserList) {
            totalCommission = totalCommission.add(Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO));
            totalServiceFee = totalServiceFee.add(Optional.ofNullable(appUser.getShopServiceFee()).orElse(BigDecimal.ZERO));
            totalUserCommission = totalUserCommission.add(Optional.ofNullable(appUser.getShopCommission()).orElse(BigDecimal.ZERO));
            BigDecimal distributionAmount = Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO);
            BigDecimal serviceFee = Optional.ofNullable(appUser.getShopServiceFee()).orElse(BigDecimal.ZERO);
            BigDecimal userCommission = Optional.ofNullable(appUser.getShopCommission()).orElse(BigDecimal.ZERO);
            totalCommission = totalCommission.add(distributionAmount);
            totalServiceFee = totalServiceFee.add(serviceFee);
            totalUserCommission = totalUserCommission.add(userCommission);
            Integer vipId = appUser.getVipId();
            if (vipId != null && vipId >= 1 && vipId <= 7) {
                vipCommissions.merge(vipId, Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO), BigDecimal::add);
                vipCommissions.merge(vipId, distributionAmount, BigDecimal::add);
                String dateKey = appUser.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd"));
                dailyVipCommissions.computeIfAbsent(dateKey, k -> new HashMap<>())
                        .merge(vipId, distributionAmount, BigDecimal::add);
            }
        }
@@ -668,34 +677,28 @@
        commissionDetail.setTotalTopAgentCommission(vipCommissions.getOrDefault(6, BigDecimal.ZERO));
        commissionDetail.setTotalPartnerCommission(vipCommissions.getOrDefault(7, BigDecimal.ZERO));
        Map<String, List<AppUser>> map = appUserList.stream().collect(Collectors.groupingBy(item -> item.getCreateTime()
                .format(DateTimeFormatter.ofPattern("yyyy-MM-dd"))));
        List<CommissionDate> commissionDateList = new ArrayList<>();
        map.forEach((key, value) -> {
        List<CommissionDate> commissionDateList = dailyVipCommissions.entrySet().stream()
                .map(entry -> {
                    CommissionDate commissionDate = new CommissionDate();
                    commissionDate.setDate(entry.getKey());
                    Map<Integer, BigDecimal> dailyCommissions = entry.getValue();
                    commissionDate.setNormalCommission(dailyCommissions.getOrDefault(1, BigDecimal.ZERO));
                    commissionDate.setGoldCommission(dailyCommissions.getOrDefault(2, BigDecimal.ZERO));
                    commissionDate.setDiamondCommission(dailyCommissions.getOrDefault(3, BigDecimal.ZERO));
                    commissionDate.setAgentCommission(dailyCommissions.getOrDefault(4, BigDecimal.ZERO));
                    commissionDate.setSuperAgentCommission(dailyCommissions.getOrDefault(5, BigDecimal.ZERO));
                    commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(6, BigDecimal.ZERO));
                    commissionDate.setPartnerCommission(dailyCommissions.getOrDefault(7, BigDecimal.ZERO));
                    return commissionDate;
                })
                .collect(Collectors.toList());
            Map<Integer, BigDecimal> vipCommissions2 = new HashMap<>();
            for (AppUser appUser : appUserList) {
                Integer vipId = appUser.getVipId();
                if (vipId != null && vipId >= 1 && vipId <= 7) {
                    vipCommissions2.merge(vipId, Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO), BigDecimal::add);
                }
            }
            CommissionDate commissionDate = new CommissionDate();
            commissionDate.setDate(key);
            commissionDate.setNormalCommission(vipCommissions2.getOrDefault(1, BigDecimal.ZERO));
            commissionDate.setGoldCommission(vipCommissions2.getOrDefault(2, BigDecimal.ZERO));
            commissionDate.setDiamondCommission(vipCommissions2.getOrDefault(3, BigDecimal.ZERO));
            commissionDate.setAgentCommission(vipCommissions2.getOrDefault(4, BigDecimal.ZERO));
            commissionDate.setSuperAgentCommission(vipCommissions2.getOrDefault(5, BigDecimal.ZERO));
            commissionDate.setAgentCommission(vipCommissions2.getOrDefault(6, BigDecimal.ZERO));
            commissionDate.setPartnerCommission(vipCommissions2.getOrDefault(7, BigDecimal.ZERO));
            commissionDateList.add(commissionDate);
        });
        commissionDetail.setCommissionDateList(commissionDateList);
        return R.ok(commissionDetail);
    }
}