From d3e9a09cb54017a8063e5bfe3ace5012f66f3130 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期二, 25 三月 2025 18:34:34 +0800
Subject: [PATCH] 修改统计bug

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java |   32 ++++++++++++++++++++++++++------
 1 files changed, 26 insertions(+), 6 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 4bf672f..9f91beb 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
@@ -13,6 +13,7 @@
 import com.ruoyi.account.vo.UserPointDetailVO;
 import com.ruoyi.account.vo.UserPointStatistics;
 import com.ruoyi.account.vo.UserPointVO;
+import com.ruoyi.account.vo.UserStatisticsDetail;
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.PhoneNumberValidator;
 import com.ruoyi.common.core.web.page.PageInfo;
@@ -23,6 +24,7 @@
 import com.ruoyi.order.model.OrderGood;
 import com.ruoyi.other.api.domain.VipSetting;
 import com.ruoyi.other.api.enums.PointChangeType;
+import com.ruoyi.system.api.domain.SysUser;
 import com.ruoyi.system.api.model.LoginUser;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
@@ -33,9 +35,7 @@
 import java.math.BigDecimal;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
-import java.util.ArrayList;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
 
@@ -71,7 +71,8 @@
     public UserPointVO getUserPoint(Long userId) {
         AppUser appUser = appUserService.getById(userId);
         VipSetting vipSetting = vipSettingService.getVipSettingByUserId(userId);
-        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>().eq(AppUserGiveawayTemporary::getAppUserId, userId));
+        List<AppUserGiveawayTemporary> list = appUserGiveawayTemporaryService.list(new LambdaQueryWrapper<AppUserGiveawayTemporary>()
+                .eq(AppUserGiveawayTemporary::getAppUserId, userId));
         int totalPoint = 0;
         int sharePoint = 0;
         int shopAchievementPoint = 0;
@@ -205,6 +206,16 @@
     @Override
     public UserPointStatistics getStatistics(UserPoint userPoint) {
         List<UserPoint> userPointList = this.baseMapper.selectUserPoint(userPoint);
+
+        userPointList.forEach(item -> {
+            int i = item.getHistoricalPoint() - item.getBalance();
+            if (i>0){
+                item.setVariablePoint(item.getVariablePoint() * -1);
+            }else {
+                item.setVariablePoint(item.getVariablePoint());
+            }
+        });
+
         Map<Integer, Integer> userBalanceMap = userPointList.stream()
                 .collect(Collectors.groupingBy(
                         UserPoint::getType,
@@ -216,7 +227,7 @@
         int pullNewPoint = userBalanceMap.getOrDefault(PointChangeType.PULL_NEW.getCode(), 0);
         int registerPoint = userBalanceMap.getOrDefault(PointChangeType.REGISTER.getCode(), 0);
 
-        // 做工积分:签到积分 + 每日分享积分 + 每日签到积分 + 每日使用时长积分
+        // 做工积分:每日分享积分 + 每日签到积分 + 每日使用时长积分
         int share = userBalanceMap.getOrDefault(PointChangeType.SHARE.getCode(), 0);
         int signIn = userBalanceMap.getOrDefault(PointChangeType.SIGN_IN.getCode(), 0);
         int useTime = userBalanceMap.getOrDefault(PointChangeType.USE_TIME.getCode(), 0);
@@ -239,6 +250,15 @@
 
     @Override
     public IPage<UserPoint> getUserPointPage(Page<UserPoint> page, UserPoint userPoint) {
-        return this.baseMapper.queryUserPointPage(page, userPoint);
+        IPage<UserPoint> userPointIPage = this.baseMapper.queryUserPointPage(page, userPoint);
+        userPointIPage.getRecords().forEach(item -> {
+            int i = item.getHistoricalPoint() - item.getBalance();
+            if (i>0){
+                item.setVariablePoint(item.getVariablePoint() * -1);
+            }else {
+                item.setVariablePoint(item.getVariablePoint());
+            }
+        });
+        return userPointIPage;
     }
 }

--
Gitblit v1.7.1