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 >= #{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 >= #{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 >= #{sixBefore}
+ AND billing_cycle < 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 >= #{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') >= 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 > #{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