From eac80fa4c1bd3af514d91fddee2bd2ac4f609acd Mon Sep 17 00:00:00 2001
From: longz <longzhaoz@qq.com>
Date: 星期三, 05 八月 2026 15:29:18 +0800
Subject: [PATCH] fix: 平台总收入分析-数据分类与电站收入分析同口径(近6月+当月)

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java               |    6 +-
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java                    |    4 
 ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml                  |    5 +
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java               |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java                          |    4 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml                                     |    3 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java |    4 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java                             |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java                        |    2 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml                                |    3 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java          |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java                        |    2 
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java       |    7 +
 ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java            |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java                          |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java       |    3 
 ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml                                |   10 +++
 ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/service/impl/PlatformRevenueAnalysisTest.java             |   16 +++--
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java                               |    2 
 ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java  |    2 
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java                  |   45 ++++++++++----
 21 files changed, 87 insertions(+), 43 deletions(-)

diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
index 62aa9ae..28e9f3e 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/factory/ParkingLotFallbackFactory.java
@@ -47,7 +47,7 @@
             }
 
             @Override
-            public R<BigDecimal> getRecordAmount(List<Integer> siteIds) {
+            public R<BigDecimal> getRecordAmount(List<Integer> siteIds, String sixBefore) {
                 return R.fail("获取数据失败:" + throwable.getMessage());
             }
     
diff --git a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
index fc4ff28..6287c33 100644
--- a/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
+++ b/ruoyi-api/ruoyi-api-chargingPile/src/main/java/com/ruoyi/chargingPile/api/feignClient/ParkingLotClient.java
@@ -41,7 +41,8 @@
     R<TParkingRecord> getRecordById(@RequestParam("id") Long siteId);
 
     @PostMapping(value = "/t-parking-lot/getRecordAmount")
-    R<BigDecimal> getRecordAmount(@RequestParam(value = "siteIds", required = false) List<Integer> siteIds);
+    R<BigDecimal> getRecordAmount(@RequestParam(value = "siteIds", required = false) List<Integer> siteIds,
+                                  @RequestParam(value = "sixBefore", required = false) String sixBefore);
     
     
     /**
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
index 6d617fb..99c97b4 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/controller/TParkingLotController.java
@@ -24,6 +24,7 @@
 import com.ruoyi.common.log.enums.OperatorType;
 import com.ruoyi.common.security.annotation.Logical;
 import com.ruoyi.common.security.annotation.RequiresPermissions;
+import java.time.LocalDate;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -190,8 +191,10 @@
     
     
     @PostMapping(value = "/getRecordAmount")
-    public R<BigDecimal> getRecordAmount(@RequestParam(value = "siteIds", required = false) List<Integer> siteIds){
-        BigDecimal sum =  parkingRecordService.getSum(siteIds);
+    public R<BigDecimal> getRecordAmount(@RequestParam(value = "siteIds", required = false) List<Integer> siteIds,
+                                         @RequestParam(value = "sixBefore", required = false) String sixBefore){
+        LocalDate sixBeforeDate = sixBefore == null || sixBefore.isEmpty() ? null : LocalDate.parse(sixBefore);
+        BigDecimal sum =  parkingRecordService.getSum(siteIds, sixBeforeDate);
         return R.ok(sum);
     }
     
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
index 299ea9d..ce42a1d 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/mapper/TParkingRecordMapper.java
@@ -24,7 +24,7 @@
  */
 public interface TParkingRecordMapper extends BaseMapper<TParkingRecord> {
 
-    BigDecimal getSum(@Param("siteIds") List<Integer> siteIds);
+    BigDecimal getSum(@Param("siteIds") List<Integer> siteIds, @Param("sixBefore") LocalDate sixBefore);
 
     /**
      * 停车缴费订单列表
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
index cd7f4dc..78ad0a1 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/TParkingRecordService.java
@@ -22,7 +22,7 @@
  */
 public interface TParkingRecordService extends IService<TParkingRecord> {
 
-    BigDecimal getSum(List<Integer> siteIds);
+    BigDecimal getSum(List<Integer> siteIds, LocalDate sixBefore);
 
     /**
      * 停车缴费订单列表
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
index 83c567b..d3b48ee 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/java/com/ruoyi/chargingPile/service/impl/TParkingRecordServiceImpl.java
@@ -50,8 +50,8 @@
     private SiteClient siteClient;
 
     @Override
-    public BigDecimal getSum(List<Integer> siteIds) {
-        return this.baseMapper.getSum(siteIds);
+    public BigDecimal getSum(List<Integer> siteIds, LocalDate sixBefore) {
+        return this.baseMapper.getSum(siteIds, sixBefore);
     }
 
     @Autowired
diff --git a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
index 978ae98..be2baf6 100644
--- a/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
+++ b/ruoyi-service/ruoyi-chargingPile/src/main/resources/mapper/chargingPile/TParkingRecordMapper.xml
@@ -29,8 +29,11 @@
         from t_parking_record tpr
         left join t_parking_lot tpl on tpr.parking_lot_id = tpl.id
         <where>
+            <if test="sixBefore != null">
+                tpr.in_parking_time &gt;= #{sixBefore}
+            </if>
             <if test="siteIds != null and siteIds.size() > 0">
-                tpl.site_id in
+                AND tpl.site_id in
                 <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
                     #{siteId}
                 </foreach>
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
index 51e0c42..13257ae 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/controller/TChargingOrderController.java
@@ -1870,11 +1870,18 @@
     public R<List<SixChargingDto>> charge(Integer siteId, Integer partnerId) {
         Long userId = tokenService.getLoginUser().getUserid();
         SysUser sysUser = sysUserClient.getSysUser(userId).getData();
-        boolean partnerView = isPartnerView(sysUser);
         List<Integer> siteIds = resolvePlatformRevenueSiteIds(userId, sysUser, siteId, partnerId);
-        LocalDate sixBefore = PreviousSixMonths.get();
         //通过siteIds进行sql查询统计
-        List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds, false);
+        return R.ok(buildLastSixMonths(siteIds, false));
+    }
+
+    /**
+     * 近6月+当月电站收入:历史月读结算账单、当月补原始订单。
+     * 与「电站收入分析」图表、底部数据分类及加盟商收支同口径。
+     */
+    private List<SixChargingDto> buildLastSixMonths(List<Integer> siteIds, boolean partnerView) {
+        LocalDate sixBefore = PreviousSixMonths.get();
+        List<SixChargingDto> chargingDtos = chargingOrderService.charge(sixBefore, siteIds, partnerView);
         LocalDate statisticsEndMonth = resolveStatisticsEndMonth(LocalDate.now(), chargingDtos);
         List<SixChargingDto> sixChargingDtos = generateLastSixMonths(statisticsEndMonth);
         for (SixChargingDto sixChargingDto : sixChargingDtos) {
@@ -1885,9 +1892,7 @@
             }
 
         }
-
-        return R.ok(sixChargingDtos);
-
+        return sixChargingDtos;
     }
 
 
@@ -2025,19 +2030,33 @@
         SysUser sysUser = sysUserClient.getSysUser(userId).getData();
         boolean partnerView = isPartnerView(sysUser);
         List<Integer> siteIds = resolvePlatformRevenueSiteIds(userId, sysUser, siteId, partnerId);
-        Map<String,Object>  map = chargingOrderService.countAll(siteIds, false);
-        if (map == null) {
-            map = new HashMap<String,Object>();
-        }
+        LocalDate sixBefore = PreviousSixMonths.get();
+        Map<String,Object> map = new HashMap<String,Object>();
+        // 电费/服务费与上方「电站收入分析」图表同口径:近6月结算账单 + 当月原始订单,保证底部合计=图表6个月相加
+        List<SixChargingDto> sixChargingDtos = buildLastSixMonths(siteIds, false);
+        map.put("electrovalence", sixChargingDtos.stream()
+                .filter(Objects::nonNull)
+                .map(SixChargingDto::getElectrovalence)
+                .filter(Objects::nonNull)
+                .reduce(BigDecimal.ZERO, BigDecimal::add));
+        map.put("service_charge", sixChargingDtos.stream()
+                .filter(Objects::nonNull)
+                .map(SixChargingDto::getServiceCharge)
+                .filter(Objects::nonNull)
+                .reduce(BigDecimal.ZERO, BigDecimal::add));
+        // 合作商分成/三方平台分佣按近6月结算口径统计(与图表月份窗口一致)
+        Map<String,Object> sub = chargingOrderService.countAll(siteIds, false, sixBefore);
+        map.put("commission_amount", sub == null ? BigDecimal.ZERO : sub.get("commission_amount"));
+        map.put("sharing_amount", sub == null ? BigDecimal.ZERO : sub.get("sharing_amount"));
         boolean platformVisible = !partnerView;
         if(platformVisible){
-            R<BigDecimal> parkingAmountResult = parkingLotClient.getRecordAmount(siteIds);
+            R<BigDecimal> parkingAmountResult = parkingLotClient.getRecordAmount(siteIds, sixBefore.toString());
             BigDecimal data = parkingAmountResult == null || parkingAmountResult.getData() == null
                     ? BigDecimal.ZERO : parkingAmountResult.getData();
             map.put("parkingAmount",data);
-            BigDecimal data1 =   shoppingOrderService.getSumAmount();
+            BigDecimal data1 =   shoppingOrderService.getSumAmount(sixBefore);
             map.put("shopAmount",data1);
-            BigDecimal data2 =   vipOrderService.getSumAmout();
+            BigDecimal data2 =   vipOrderService.getSumAmout(sixBefore);
             map.put("vipAmount",data2);
         }else{
             map.put("parkingAmount",0);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
index 7365d12..7317c42 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TChargingOrderMapper.java
@@ -184,9 +184,9 @@
 
     List<SixCircleDto> circle(@Param("siteIds") List<Integer> siteIds, @Param("sixBefore") LocalDate sixBefore, @Param("partnerView") Boolean partnerView);
 
-    BigDecimal sumSuccessfulShareAmount(@Param("siteIds") List<Integer> siteIds);
+    BigDecimal sumSuccessfulShareAmount(@Param("siteIds") List<Integer> siteIds, @Param("sixBefore") LocalDate sixBefore);
 
-    Map<String, Object> countAll(@Param("siteIds") List<Integer> siteIds, @Param("partnerView") Boolean partnerView);
+    Map<String, Object> countAll(@Param("siteIds") List<Integer> siteIds, @Param("partnerView") Boolean partnerView, @Param("sixBefore") LocalDate sixBefore);
 
     List<Map<String, Object>> chargingOrderShareIncomeByPayChannel(@Param("sixBefore") LocalDate sixBefore, @Param("siteIds") List<Integer> siteIds);
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
index e6ac580..a7f7e20 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TShoppingOrderMapper.java
@@ -46,7 +46,7 @@
 
     List<SixShopDto> sixBefore(@Param("sixBefore")LocalDate sixBefore,@Param("status") Integer status);
 
-    BigDecimal getSumAmount();
+    BigDecimal getSumAmount(@Param("sixBefore") LocalDate sixBefore);
 
     List<Map<String, Object>> getData(@Param("statisticsQueryDto")ChargingStatisticsQueryDto statisticsQueryDto);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
index 4fbb4ae..953d473 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/mapper/TVipOrderMapper.java
@@ -31,5 +31,5 @@
 
     List<SixVipDto> sixBefore(@Param("sixBefore")LocalDate sixBefore);
 
-    BigDecimal getSumAmout();
+    BigDecimal getSumAmout(@Param("sixBefore") LocalDate sixBefore);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
index 6a48460..cc7c64c 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TChargingOrderService.java
@@ -188,7 +188,7 @@
 
 	List<SixCircleDto> circle(List<Integer> siteIds,LocalDate sixBefore, Boolean partnerView);
 
-	Map<String, Object> countAll(List<Integer> siteIds, Boolean partnerView);
+	Map<String, Object> countAll(List<Integer> siteIds, Boolean partnerView, LocalDate sixBefore);
 
 	List<SixIncomeCircleDto> payTypeCircle(LocalDate sixBefore, List<Integer> siteIds, Boolean partnerView);
 
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
index 4d30354..4445b0e 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TShoppingOrderService.java
@@ -80,7 +80,7 @@
 
     List<SixShopDto> sixBefore(LocalDate sixBefore, Integer status);
 
-    BigDecimal getSumAmount();
+    BigDecimal getSumAmount(LocalDate sixBefore);
 
     List<Map<String, Object>> getData(ChargingStatisticsQueryDto statisticsQueryDto);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
index 34663f8..6023f72 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/TVipOrderService.java
@@ -25,7 +25,7 @@
 
     List<SixVipDto> sixBefore(LocalDate sixBefore);
 
-    BigDecimal getSumAmout();
+    BigDecimal getSumAmout(LocalDate sixBefore);
 
     void payBack(String outTradeNo);
 }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
index bf9d7c5..929263a 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TChargingOrderServiceImpl.java
@@ -3583,10 +3583,10 @@
     }
 
     @Override
-    public Map<String, Object> countAll(List<Integer> siteIds, Boolean partnerView) {
-        Map<String, Object> result = this.baseMapper.countAll(siteIds, partnerView);
+    public Map<String, Object> countAll(List<Integer> siteIds, Boolean partnerView, LocalDate sixBefore) {
+        Map<String, Object> result = this.baseMapper.countAll(siteIds, partnerView, sixBefore);
         if (!Boolean.TRUE.equals(partnerView) && result != null) {
-            result.put("commission_amount", this.baseMapper.sumSuccessfulShareAmount(siteIds));
+            result.put("commission_amount", this.baseMapper.sumSuccessfulShareAmount(siteIds, sixBefore));
         }
         return result;
     }
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
index 3c366cc..56a68cc 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TShoppingOrderServiceImpl.java
@@ -692,8 +692,8 @@
     }
     
     @Override
-    public BigDecimal getSumAmount() {
-        return this.baseMapper.getSumAmount();
+    public BigDecimal getSumAmount(LocalDate sixBefore) {
+        return this.baseMapper.getSumAmount(sixBefore);
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
index 91dc159..72d4ab2 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/TVipOrderServiceImpl.java
@@ -76,8 +76,8 @@
     }
 
     @Override
-    public BigDecimal getSumAmout() {
-        return this.baseMapper.getSumAmout();
+    public BigDecimal getSumAmout(LocalDate sixBefore) {
+        return this.baseMapper.getSumAmout(sixBefore);
     }
 
     @Override
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
index 7cc61f2..d2b2faf 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TChargingOrderMapper.xml
@@ -896,6 +896,9 @@
                        0 AS sharing_amount
                 FROM t_charging_order_share_record
                 WHERE del_flag = 0 AND online_share_status IN ('SUCCESS', 'RECORDED')
+                <if test="sixBefore != null">
+                    AND create_time &gt;= #{sixBefore}
+                </if>
                 <if test="siteIds != null and siteIds.size() > 0">
                     AND site_id IN
                     <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
@@ -910,6 +913,10 @@
                        COALESCE(ROUND(SUM(IFNULL(tripartite_commission, 0)), 2), 0) AS sharing_amount
                 FROM t_charging_settlement_bill
                 WHERE statistical_date_type = 1 AND site_id != 0
+                <if test="sixBefore != null">
+                    AND billing_cycle &gt;= #{sixBefore}
+                    AND billing_cycle &lt; DATE_FORMAT(CURDATE(), '%Y-%m-01')
+                </if>
                 <if test="siteIds != null and siteIds.size() > 0">
                     AND site_id IN
                     <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
@@ -924,6 +931,9 @@
         SELECT COALESCE(ROUND(SUM(IFNULL(share_amount, 0)), 2), 0)
         FROM t_charging_order_share_record
         WHERE del_flag = 0 AND online_share_status IN ('SUCCESS', 'RECORDED')
+        <if test="sixBefore != null">
+            AND create_time &gt;= #{sixBefore}
+        </if>
         <if test="siteIds != null and siteIds.size() > 0">
             AND site_id IN
             <foreach collection="siteIds" item="siteId" open="(" separator="," close=")">
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
index d5f39c0..3576c22 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TShoppingOrderMapper.xml
@@ -278,6 +278,9 @@
         select sum(payment_amount)
         from t_shopping_order
         where del_flag = 0 and payment_status = 2 and ISNULL(refund_status) and status!=4
+        <if test="sixBefore != null">
+            and DATE_FORMAT(create_time, '%Y-%m-%d') &gt;= DATE_FORMAT(#{sixBefore}, '%Y-%m-%d')
+        </if>
     </select>
     <select id="getData" resultType="java.util.Map">
 
diff --git a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
index adc6881..dac58c0 100644
--- a/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
+++ b/ruoyi-service/ruoyi-order/src/main/resources/mapper/order/TVipOrderMapper.xml
@@ -90,6 +90,9 @@
         WHERE
             del_flag = ${@com.ruoyi.common.core.enums.DelFlagEnum@NO.getCode()} AND
             payment_status = 2
+            <if test="sixBefore != null">
+                AND create_time &gt; #{sixBefore}
+            </if>
     </select>
 
 </mapper>
diff --git a/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/service/impl/PlatformRevenueAnalysisTest.java b/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/service/impl/PlatformRevenueAnalysisTest.java
index 66f2e05..d6b5355 100644
--- a/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/service/impl/PlatformRevenueAnalysisTest.java
+++ b/ruoyi-service/ruoyi-order/src/test/java/com/ruoyi/order/service/impl/PlatformRevenueAnalysisTest.java
@@ -27,6 +27,7 @@
     private TChargingOrderServiceImpl service;
     private TChargingOrderMapper mapper;
     private List<Integer> siteIds;
+    private LocalDate sixBefore;
 
     @BeforeEach
     void setUp() {
@@ -35,6 +36,7 @@
         siteIds = new ArrayList<>();
         siteIds.add(122);
         siteIds.add(123);
+        sixBefore = LocalDate.of(2026, 1, 1);
         ReflectionTestUtils.setField(service, "baseMapper", mapper);
     }
 
@@ -42,27 +44,27 @@
     void platformViewAddsSuccessfulPartnerShareAmount() {
         Map<String, Object> totals = new HashMap<>();
         totals.put("electrovalence", new BigDecimal("100.00"));
-        when(mapper.countAll(siteIds, false)).thenReturn(totals);
-        when(mapper.sumSuccessfulShareAmount(siteIds)).thenReturn(new BigDecimal("12.34"));
+        when(mapper.countAll(siteIds, false, sixBefore)).thenReturn(totals);
+        when(mapper.sumSuccessfulShareAmount(siteIds, sixBefore)).thenReturn(new BigDecimal("12.34"));
 
-        Map<String, Object> result = service.countAll(siteIds, false);
+        Map<String, Object> result = service.countAll(siteIds, false, sixBefore);
 
         assertSame(totals, result);
         assertEquals(new BigDecimal("12.34"), result.get("commission_amount"));
-        verify(mapper).sumSuccessfulShareAmount(siteIds);
+        verify(mapper).sumSuccessfulShareAmount(siteIds, sixBefore);
     }
 
     @Test
     void partnerViewUsesShareRecordTotalsWithoutASecondQuery() {
         Map<String, Object> totals = new HashMap<>();
         totals.put("commission_amount", new BigDecimal("8.90"));
-        when(mapper.countAll(siteIds, true)).thenReturn(totals);
+        when(mapper.countAll(siteIds, true, sixBefore)).thenReturn(totals);
 
-        Map<String, Object> result = service.countAll(siteIds, true);
+        Map<String, Object> result = service.countAll(siteIds, true, sixBefore);
 
         assertSame(totals, result);
         assertEquals(new BigDecimal("8.90"), result.get("commission_amount"));
-        verify(mapper, never()).sumSuccessfulShareAmount(siteIds);
+        verify(mapper, never()).sumSuccessfulShareAmount(siteIds, sixBefore);
     }
 
     @Test

--
Gitblit v1.7.1