From 2c99eb1b27b9fbad752aaeab8783399af32514e6 Mon Sep 17 00:00:00 2001
From: puzhibing <393733352@qq.com>
Date: 星期三, 15 一月 2025 21:00:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java | 52 +++++++++++++++++++++++++++++++++++++++++++++-------
1 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
index 147d78f..0198cd8 100644
--- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
+++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java
@@ -53,6 +53,19 @@
IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord);
// 过滤商城购物
List<BalanceChangeRecord> collect = balanceChangeRecordIPage.getRecords().stream().filter(e -> e.getChangeType() != 5).collect(Collectors.toList());
+ for (BalanceChangeRecord changeRecord : collect) {
+ if (changeRecord.getBeforeAmount()!=null && changeRecord.getAfterAmount()!=null){
+ BigDecimal subtract = changeRecord.getBeforeAmount().subtract(changeRecord.getAfterAmount());
+ if (subtract.compareTo(BigDecimal.ZERO)>0){
+ // 减少
+ changeRecord.setChangeAmountString("-¥"+changeRecord.getChangeAmount());
+ }else if (subtract.compareTo(BigDecimal.ZERO)<0){
+ changeRecord.setChangeAmountString("+¥"+changeRecord.getChangeAmount());
+ }else{
+ changeRecord.setChangeAmountString("¥"+changeRecord.getChangeAmount());
+ }
+ }
+ }
balanceChangeRecordIPage.setRecords(collect);
return new CommissionStatistics(totalCommission, balanceChangeRecordIPage);
}
@@ -62,14 +75,35 @@
ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
shopBalanceStatement.setType(1);
- IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord);
- IPage<WalletStatisticsDetail> walletStatisticsDetailIPage = balanceChangeRecordIPage.convert(changeRecord -> {
+ List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord);
+ List<WalletStatisticsDetail> walletStatisticsDetailList = new ArrayList<>();
+ for (BalanceChangeRecord changeRecord : balanceChangeRecordList) {
WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail();
BeanUtils.copyBeanProp(walletStatisticsDetail, changeRecord);
- return walletStatisticsDetail;
- });
+ walletStatisticsDetailList.add(walletStatisticsDetail);
+ }
- Map<Integer, BigDecimal> shopCommissionMap = walletStatisticsDetailIPage.getRecords().stream()
+
+ // 按时间排序(倒序)
+ walletStatisticsDetailList.sort(Comparator.comparing(WalletStatisticsDetail::getCreateTime).reversed());
+
+ long current = page.getCurrent();
+ long size = page.getSize();
+ if (current < 1) {
+ current = 1;
+ }
+ int fromIndex = (int) ((current - 1) * size);
+ int toIndex = (int) Math.min(fromIndex + size, walletStatisticsDetailList.size());
+
+
+ Page<WalletStatisticsDetail> walletStatisticsDetailPage = new Page<>();
+ WalletStatistics walletStatistics = new WalletStatistics();
+ if (fromIndex >= walletStatisticsDetailList.size()) {
+ walletStatistics.setPage(walletStatisticsDetailPage);
+ return walletStatistics;
+ }
+
+ Map<Integer, BigDecimal> shopCommissionMap = walletStatisticsDetailList.stream()
.collect(Collectors.groupingBy(
WalletStatisticsDetail::getChangeType,
Collectors.reducing(
@@ -83,9 +117,13 @@
BigDecimal totalWithdraw = shopCommissionMap.get(2);
BigDecimal totalShopWithdraw = shopCommissionMap.get(7);
+ List<WalletStatisticsDetail> walletStatisticsDetailList2 = walletStatisticsDetailList.subList(fromIndex, toIndex);
- WalletStatistics walletStatistics = new WalletStatistics();
- walletStatistics.setPage(walletStatisticsDetailIPage);
+ walletStatisticsDetailPage.setCurrent(current);
+ walletStatisticsDetailPage.setSize(size);
+ walletStatisticsDetailPage.setTotal(walletStatisticsDetailList.size());
+ walletStatisticsDetailPage.setRecords(walletStatisticsDetailList2);
+ walletStatistics.setPage(walletStatisticsDetailPage);
walletStatistics.setTotalRecharge(totalRecharge);
walletStatistics.setTotalWithdraw(totalWithdraw);
walletStatistics.setTotalShopWithdraw(totalShopWithdraw);
--
Gitblit v1.7.1