From 36dd5e7edf18d0ab0e0d57ed960bdbd8aa770c40 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期一, 13 一月 2025 13:52:32 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java            |    5 +-
 ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java              |   22 +++++++++-
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java                |    3 +
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/BalanceChangeRecordServiceImpl.java |   37 +++---------------
 4 files changed, 29 insertions(+), 38 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 877b36a..fb85e64 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
@@ -715,6 +715,7 @@
         if(sysUser.getRoleType() == 2){
             queryWrapper.eq(AppUser::getShopId, sysUser.getObjectId());
         }
+        queryWrapper.orderByAsc(AppUser::getCreateTime);
         List<AppUser> appUserList = appUserService.list(queryWrapper);
         if (appUserList.isEmpty()) {
             return R.ok(new CommissionDetail());
@@ -723,7 +724,7 @@
         BigDecimal totalServiceFee = BigDecimal.ZERO;
         BigDecimal totalUserCommission = BigDecimal.ZERO;
         Map<Integer, BigDecimal> vipCommissions = new HashMap<>();
-        Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new HashMap<>();
+        Map<String, Map<Integer, BigDecimal>> dailyVipCommissions = new TreeMap<>();
         for (AppUser appUser : appUserList) {
             BigDecimal distributionAmount = Optional.ofNullable(appUser.getTotalDistributionAmount()).orElse(BigDecimal.ZERO);
             totalCommission = totalCommission.add(distributionAmount);
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 30e60fd..147d78f 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
@@ -62,34 +62,14 @@
         ShopBalanceStatement shopBalanceStatement = new ShopBalanceStatement();
         shopBalanceStatement.setType(1);
 
-        List<BalanceChangeRecord> balanceChangeRecordList = this.baseMapper.selectBalanceChangeRecordList(balanceChangeRecord);
-        List<WalletStatisticsDetail> walletStatisticsDetailList = new ArrayList<>();
-        for (BalanceChangeRecord changeRecord : balanceChangeRecordList) {
+        IPage<BalanceChangeRecord> balanceChangeRecordIPage = this.baseMapper.queryCommissionStatistics(page, balanceChangeRecord);
+        IPage<WalletStatisticsDetail> walletStatisticsDetailIPage = balanceChangeRecordIPage.convert(changeRecord -> {
             WalletStatisticsDetail walletStatisticsDetail = new WalletStatisticsDetail();
             BeanUtils.copyBeanProp(walletStatisticsDetail, changeRecord);
-            walletStatisticsDetailList.add(walletStatisticsDetail);
-        }
+            return walletStatisticsDetail;
+        });
 
-
-        // 按时间排序(倒序)
-        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());
-
-        if (fromIndex >= walletStatisticsDetailList.size()) {
-            throw new ServiceException("页面参数无效");
-        }
-
-        List<WalletStatisticsDetail> walletStatisticsDetailList2 = walletStatisticsDetailList.subList(fromIndex, toIndex);
-
-
-        Map<Integer, BigDecimal> shopCommissionMap = walletStatisticsDetailList.stream()
+        Map<Integer, BigDecimal> shopCommissionMap = walletStatisticsDetailIPage.getRecords().stream()
                 .collect(Collectors.groupingBy(
                         WalletStatisticsDetail::getChangeType,
                         Collectors.reducing(
@@ -105,12 +85,7 @@
 
 
         WalletStatistics walletStatistics = new WalletStatistics();
-        Page<WalletStatisticsDetail> page1 = new Page<>();
-        page1.setRecords(walletStatisticsDetailList2);
-        page1.setTotal(walletStatisticsDetailList.size());
-        page1.setCurrent(current);
-        page1.setSize(size);
-        walletStatistics.setPage(page1);
+        walletStatistics.setPage(walletStatisticsDetailIPage);
         walletStatistics.setTotalRecharge(totalRecharge);
         walletStatistics.setTotalWithdraw(totalWithdraw);
         walletStatistics.setTotalShopWithdraw(totalShopWithdraw);
diff --git a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
index 0647455..760d46f 100644
--- a/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
+++ b/ruoyi-service/ruoyi-order/src/main/java/com/ruoyi/order/service/impl/ShoppingCartServiceImpl.java
@@ -1141,8 +1141,7 @@
 			//处理优惠券
 			if(null != order.getUserCouponId()){
 				UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData();
-				if(null != userCoupon && 1 == userCoupon.getStatus()){
-					userCoupon.setStatus(2);
+				if(null != userCoupon && null == userCoupon.getUseTime()){
 					userCoupon.setUseTime(LocalDateTime.now());
 					userCouponClient.editUserCoupon(userCoupon);
 				}
@@ -1367,7 +1366,7 @@
 		//处理优惠券
 		if(null != order.getUserCouponId()){
 			UserCoupon userCoupon = userCouponClient.getUserCoupon(order.getUserCouponId()).getData();
-			if(null != userCoupon && 1 == userCoupon.getStatus()){
+			if(null != userCoupon && null == userCoupon.getUseTime()){
 				userCoupon.setStatus(2);
 				userCoupon.setUseTime(LocalDateTime.now());
 				userCouponClient.editUserCoupon(userCoupon);
diff --git a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
index 98df583..d70cbd1 100644
--- a/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
+++ b/ruoyi-service/ruoyi-other/src/main/java/com/ruoyi/other/controller/RedPackegeSetController.java
@@ -66,11 +66,11 @@
     @PostMapping("/addRedPackegeSet")
     @Transactional(rollbackFor = Exception.class)
     public R<Void> addRedPackegeSet(@RequestBody RedPackegeSetDto redPackegeSets){
-        redPackegeSetService.remove(null);
         List<RedPackegeSet> redPackegeSetList = redPackegeSets.getRedPackegeSets();
         if (hasOverlap(redPackegeSetList)) {
-            R.fail("时间段存在重叠,请重新配置");
+            return R.fail("时间段存在重叠,请重新配置");
         }
+        redPackegeSetService.remove(null);
         redPackegeSetService.saveBatch(redPackegeSetList);
         return R.ok();
     }
@@ -85,7 +85,7 @@
         return R.ok();
     }
 
-    private boolean hasOverlap(List<RedPackegeSet> redPackegeSetList) {
+    public static boolean hasOverlap(List<RedPackegeSet> redPackegeSetList) {
         // 首先根据startTime对列表进行排序
         Collections.sort(redPackegeSetList, Comparator.comparing(RedPackegeSet::getStartTime));
 
@@ -104,6 +104,22 @@
         return false;
     }
 
+    public static void main(String[] args) {
+        // 示例数据
+        RedPackegeSet redPackegeSet = new RedPackegeSet();
+        redPackegeSet.setStartTime(LocalDateTime.of(2025, 1, 13, 0, 0));
+        redPackegeSet.setEndTime(LocalDateTime.of(2025, 1, 14, 0, 0));
+
+        RedPackegeSet redPackegeSet2 = new RedPackegeSet();
+        redPackegeSet2.setStartTime(LocalDateTime.of(2025, 1, 13, 0, 0));
+        redPackegeSet2.setEndTime(LocalDateTime.of(2025, 1, 14, 0, 0));
+        List<RedPackegeSet> redPackegeSetList = Arrays.asList(
+                redPackegeSet,redPackegeSet2
+        );
+
+        boolean overlapExists = hasOverlap(redPackegeSetList);
+        System.out.println("是否存在重叠: " + overlapExists);
+    }
 
 
 

--
Gitblit v1.7.1