From ce7f72ff0a44cb6e980b05a538a0339439248b99 Mon Sep 17 00:00:00 2001 From: luodangjia <luodangjia> Date: 星期二, 17 十二月 2024 16:03:46 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java | 89 +++++++++++++++++++++++++------------------- 1 files changed, 51 insertions(+), 38 deletions(-) diff --git a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java index 2e58044..61c0ede 100644 --- a/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java +++ b/ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java @@ -163,56 +163,69 @@ @Override public UserPointStatistics getStatistics(UserPoint userPoint) { + try { + if (StringUtils.isNotEmpty(userPoint.getUserName()) && StringUtils.isNotEmpty(userPoint.getPhone())) { + List<Long> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>() + .select(AppUser::getId) + .like(AppUser::getName, userPoint.getUserName()) + .like(AppUser::getPhone, userPoint.getPhone())) + .stream() + .map(appUserId -> (Long) appUserId) + .collect(Collectors.toList()); + userPoint.setUserIds(userIds); + } - if (StringUtils.isNotEmpty(userPoint.getUserName()) || StringUtils.isNotEmpty(userPoint.getPhone())) { - List<Long> userIds = appUserService.listObjs(new LambdaQueryWrapper<AppUser>() - .select(AppUser::getId) - .like(StringUtils.isNotEmpty(userPoint.getUserName()),AppUser::getName, userPoint.getUserName()) - .like(StringUtils.isNotEmpty(userPoint.getPhone()),AppUser::getPhone, userPoint.getPhone())) - .stream() - .map(appUserId -> (Long) appUserId) - .collect(Collectors.toList()); - userPoint.setUserIds(userIds); + List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint); + + Map<Integer, Integer> userBalanceMap = userPointList.stream() + .collect(Collectors.groupingBy( + UserPoint::getType, + Collectors.summingInt(UserPoint::getBalance) + )); + + int consumePoint = userBalanceMap.getOrDefault(PointChangeType.CONSUME.getCode(), 0); + int sharePoint = userBalanceMap.getOrDefault(PointChangeType.COMMISSION_RETURN.getCode(), 0); + int pullNewPoint = userBalanceMap.getOrDefault(PointChangeType.NEW_USER_REFERRAL.getCode(), 0); + int registerPoint = userBalanceMap.getOrDefault(PointChangeType.REGISTRATION.getCode(), 0); + int workPoint = userBalanceMap.getOrDefault(PointChangeType.WORK_PERFORMANCE.getCode(), 0); + int shopAchievementPoint = userBalanceMap.getOrDefault(PointChangeType.TECHNICIAN_PERFORMANCE.getCode(), 0); + int exchangeGoodsPoint = userBalanceMap.getOrDefault(PointChangeType.EXCHANGE_GOODS.getCode(), 0); + int storeAchievementPoint = userBalanceMap.getOrDefault(PointChangeType.STORE_PERFORMANCE.getCode(), 0); + int storeCommissionPoint = userBalanceMap.getOrDefault(PointChangeType.STORE_COMMISSION_RETURN.getCode(), 0); + int transferPoint = userBalanceMap.getOrDefault(PointChangeType.TRANSFER_POINTS.getCode(), 0); + int totalPoint = consumePoint + sharePoint + pullNewPoint + registerPoint + workPoint + shopAchievementPoint + exchangeGoodsPoint + storeAchievementPoint + storeCommissionPoint + transferPoint; + + UserPointStatistics userPointStatistics = new UserPointStatistics(); + userPointStatistics.setTotalPoint(totalPoint); + userPointStatistics.setConsumePoint(consumePoint); + userPointStatistics.setSharePoint(sharePoint); + userPointStatistics.setPullNewPoint(pullNewPoint); + userPointStatistics.setRegisterPoint(registerPoint); + userPointStatistics.setWorkPoint(workPoint); + userPointStatistics.setShopAchievementPoint(shopAchievementPoint); + + return userPointStatistics; + } catch (Exception e) { + // 记录异常日志 + log.error("获取用户点统计信息时出错", e); + throw new RuntimeException("获取用户点统计信息时出错", e); } - - List<UserPoint> userPointList = userPointMapper.findLatestChangeByType(userPoint); - Map<Integer, Integer> userBalanceMap = userPointList.stream() - .collect(Collectors.toMap(UserPoint::getType, UserPoint::getBalance)); - - - Integer consumePoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.CONSUME.getCode())).orElse(0); - Integer sharePoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.COMMISSION_RETURN.getCode())).orElse(0); - Integer pullNewPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.NEW_USER_REFERRAL.getCode())).orElse(0); - Integer registerPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.REGISTRATION.getCode())).orElse(0); - Integer workPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.WORK_PERFORMANCE.getCode())).orElse(0); - Integer shopAchievementPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.TECHNICIAN_PERFORMANCE.getCode())).orElse(0); - Integer exchangeGoodsPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.EXCHANGE_GOODS.getCode())).orElse(0); - Integer storeAchievementPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.STORE_PERFORMANCE.getCode())).orElse(0); - Integer storeCommissionPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.STORE_COMMISSION_RETURN.getCode())).orElse(0); - Integer transferPoint = Optional.ofNullable(userBalanceMap.get(PointChangeType.TRANSFER_POINTS.getCode())).orElse(0); - Integer totalPoint = consumePoint + sharePoint + pullNewPoint + registerPoint + workPoint + shopAchievementPoint + exchangeGoodsPoint + storeAchievementPoint + storeCommissionPoint + transferPoint; - - - UserPointStatistics userPointStatistics = new UserPointStatistics(); - userPointStatistics.setTotalPoint(totalPoint); - userPointStatistics.setConsumePoint(consumePoint); - userPointStatistics.setSharePoint(sharePoint); - userPointStatistics.setPullNewPoint(pullNewPoint); - userPointStatistics.setRegisterPoint(registerPoint); - userPointStatistics.setWorkPoint(workPoint); - userPointStatistics.setShopAchievementPoint(shopAchievementPoint); - return userPointStatistics; } + @Override public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) { List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>() .eq(AppUser::getPhone, userPoint.getPhone()) .like(AppUser::getName, userPoint.getUserName())); + if (appUserList.isEmpty()){ + return page; + } + List<Long> userIds = appUserList.stream().map(AppUser::getId).collect(Collectors.toList()); Page<UserPoint> userPointPage = page(page, new LambdaQueryWrapper<UserPoint>() - .in(!CollectionUtils.isEmpty(userIds), UserPoint::getAppUserId, userIds) + .in(UserPoint::getAppUserId, userIds) .eq(userPoint.getType() != null, UserPoint::getType, userPoint.getType()) .between( userPoint.getStartTime()!= null && userPoint.getEndTime() !=null,UserPoint::getCreateTime, userPoint.getStartTime(), userPoint.getEndTime()) .orderByDesc(UserPoint::getCreateTime)); -- Gitblit v1.7.1