From a23f0ba99b7e3c1ad270dd5a263a6b48b4b8fb6f Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期四, 16 一月 2025 20:48:43 +0800
Subject: [PATCH] 修改bug

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java |   65 ++++++++++++++++++--------------
 1 files changed, 37 insertions(+), 28 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 f75ee37..4b49ae9 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
@@ -97,6 +97,11 @@
                 userPointDetailVO.setVariablePoint(p.getVariablePoint());
                 String format = p.getCreateTime().format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
                 userPointDetailVO.setCreateTime(format);
+                Integer historicalPoint = p.getHistoricalPoint();
+                Integer balance = p.getBalance();
+                if (historicalPoint != null && balance != null) {
+                    userPointDetailVO.setFlag(historicalPoint > balance ? 2 : 1);
+                }
                 return userPointDetailVO;
             }).collect(Collectors.toList());
             PageInfo<UserPointDetailVO> pageInfo1 = new PageInfo<>(pageCurr, pageSize);
@@ -124,7 +129,7 @@
         if (vipSetting == null) {
             return R.fail("VIP 设置未找到");
         }
-        if (vipSetting.getId() == 0 && vipSetting.getVipGiftRole() == 0) {
+        if (vipSetting.getVipGiftRole() == 0) {
             return R.fail("转赠积分权限未开启");
         }
 
@@ -132,54 +137,58 @@
         if (appUser == null) {
             return R.fail("用户未找到");
         }
-
-        PointSetting pointSetting = pointSettingService.getPointSettingByAppUserId(userid);
-        if (pointSetting == null) {
-            return R.fail("积分设置未找到");
-        }
         // 可转赠积分总数
         Integer transferablePoint = appUser.getTransferablePoint();
         if (point > transferablePoint) {
-            return R.fail("转赠积分不足");
+            return R.fail("可转赠积分不足");
         }
 
         AppUser appUserForPhoe = appUserService.getOne(new LambdaQueryWrapper<AppUser>()
-                .eq(AppUser::getPhone, phone));
+                .eq(AppUser::getPhone, phone).eq(AppUser::getDelFlag, 0).ne(AppUser::getStatus, 3));
         if (appUserForPhoe == null) {
-            return R.fail("目标用户未找到");
+            return R.fail("目标用户不存在");
+        }
+        if(appUserForPhoe.getStatus() == 2){
+            return R.fail("目标用户已被冻结");
+        }
+        if(appUserForPhoe.getId().equals(userid)){
+            return R.fail("不能转增给自己");
         }
         Integer lavePoint1 = appUserForPhoe.getLavePoint();
         appUserForPhoe.setLavePoint(appUserForPhoe.getLavePoint() + point);
         appUserForPhoe.setTotalPoint(appUserForPhoe.getTotalPoint() + point);
         appUserForPhoe.setTransferablePoint(transferablePoint + point);
         appUserForPhoe.setAvailablePoint(appUserForPhoe.getAvailablePoint() + point);
+        appUserForPhoe.setTotalAvailablePoint(appUserForPhoe.getTotalAvailablePoint() + point);
         appUserService.updateById(appUserForPhoe);
         //构建积分流水记录
-        UserPoint userPoint = new UserPoint();
-        userPoint.setType(12);
-        userPoint.setHistoricalPoint(lavePoint1);
-        userPoint.setVariablePoint(point);
-        userPoint.setBalance(appUserForPhoe.getLavePoint());
-        userPoint.setCreateTime(LocalDateTime.now());
-        userPoint.setAppUserId(appUserForPhoe.getId());
-        userPointService.save(userPoint);
+        if(point > 0){
+            UserPoint userPoint = new UserPoint();
+            userPoint.setType(12);
+            userPoint.setHistoricalPoint(lavePoint1);
+            userPoint.setVariablePoint(point);
+            userPoint.setBalance(appUserForPhoe.getLavePoint());
+            userPoint.setCreateTime(LocalDateTime.now());
+            userPoint.setAppUserId(appUserForPhoe.getId());
+            userPointService.save(userPoint);
+        }
 
         Integer lavePoint = appUser.getLavePoint();
-        appUser.setLavePoint(lavePoint - point);
-        Integer totalPoint = appUser.getTotalPoint();
-        appUser.setTotalPoint(totalPoint - point);
+        appUser.setLavePoint(appUser.getLavePoint() - point);
         appUser.setTransferablePoint(appUser.getTransferablePoint() - point);
         appUser.setAvailablePoint(appUser.getAvailablePoint() - point);
         appUserService.updateById(appUser);
         //构建积分流水记录
-        userPoint = new UserPoint();
-        userPoint.setType(13);
-        userPoint.setHistoricalPoint(lavePoint);
-        userPoint.setVariablePoint(point);
-        userPoint.setBalance(appUser.getLavePoint());
-        userPoint.setCreateTime(LocalDateTime.now());
-        userPoint.setAppUserId(appUser.getId());
-        userPointService.save(userPoint);
+        if(point > 0){
+            UserPoint userPoint = new UserPoint();
+            userPoint.setType(13);
+            userPoint.setHistoricalPoint(lavePoint);
+            userPoint.setVariablePoint(point);
+            userPoint.setBalance(appUser.getLavePoint());
+            userPoint.setCreateTime(LocalDateTime.now());
+            userPoint.setAppUserId(appUser.getId());
+            userPointService.save(userPoint);
+        }
         return R.ok();
     }
 

--
Gitblit v1.7.1