From fd45fcbd496bbeaf9ee18edd8f2f858cf9cebaf3 Mon Sep 17 00:00:00 2001
From: Pu Zhibing <393733352@qq.com>
Date: 星期五, 24 一月 2025 16:47:38 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/service/impl/UserPointServiceImpl.java |   72 ++++++++++++++++++++++--------------
 1 files changed, 44 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..b7a2fa4 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
@@ -93,10 +93,20 @@
         if (CollectionUtil.isNotEmpty(page.getRecords())) {
             List<UserPointDetailVO> collect = page.getRecords().stream().map(p -> {
                 UserPointDetailVO userPointDetailVO = new UserPointDetailVO();
+                if (p.getType() != null && (p.getType().equals(12) || p.getType().equals(13))){
+                    Long appUserId = p.getObjectId();
+                    AppUser appUser = appUserService.getById(appUserId);
+                    userPointDetailVO.setName(appUser.getName());
+                }
                 userPointDetailVO.setType(p.getType());
                 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 +134,7 @@
         if (vipSetting == null) {
             return R.fail("VIP 设置未找到");
         }
-        if (vipSetting.getId() == 0 && vipSetting.getVipGiftRole() == 0) {
+        if (vipSetting.getVipGiftRole() == 0) {
             return R.fail("转赠积分权限未开启");
         }
 
@@ -132,54 +142,60 @@
         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());
+            userPoint.setObjectId(userid);
+            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());
+            userPoint.setObjectId(appUserForPhoe.getId());
+            userPointService.save(userPoint);
+        }
         return R.ok();
     }
 

--
Gitblit v1.7.1