From cca118a26722cd2673e6a6877ff742aef10fad4a Mon Sep 17 00:00:00 2001 From: phpcjl <phpcjl@gmail.com> Date: 星期五, 20 十二月 2024 18:49:59 +0800 Subject: [PATCH] 1 --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java | 55 +++++++++++++++++++++++++++++-------------------------- 1 files changed, 29 insertions(+), 26 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java index 0f6ad49..cef0b0f 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java +++ b/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); } + } -- Gitblit v1.7.1