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