From 9153a858f1ae61fa29bb7a926e7d50359117cd69 Mon Sep 17 00:00:00 2001
From: xuhy <3313886187@qq.com>
Date: 星期三, 15 一月 2025 14:32:08 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'

---
 ruoyi-service/ruoyi-account/src/main/java/com/ruoyi/account/controller/AppUserController.java |  123 +++++++++++++++++++++++++++++++++--------
 1 files changed, 99 insertions(+), 24 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 1c89f22..14f15b9 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
@@ -23,6 +23,7 @@
 import com.ruoyi.common.core.domain.R;
 import com.ruoyi.common.core.utils.bean.BeanUtils;
 import com.ruoyi.common.core.web.page.PageInfo;
+import com.ruoyi.common.redis.annotation.DistributedLock;
 import com.ruoyi.common.security.service.TokenService;
 import com.ruoyi.order.feignClient.OrderClient;
 import com.ruoyi.order.feignClient.RemoteOrderGoodsClient;
@@ -137,6 +138,8 @@
     @PostMapping("/editAppUserById")
     public R<Void> editAppUserById(@RequestBody AppUser appUser) {
         appUserService.updateById(appUser);
+        appUserService.update(new LambdaUpdateWrapper<AppUser>().eq(AppUser::getId, appUser.getId())
+                .set(AppUser::getLastShopTime, appUser.getLastShopTime()));
         return R.ok();
 
     }
@@ -235,6 +238,14 @@
         userCancellationLogService.save(userCancellationLog);
         user.setStatus(3);
         appUserService.updateById(user);
+
+        List<AppUser> subUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
+                .eq(AppUser::getInviteUserId, userId));
+        for (AppUser appUser : subUserList) {
+            Long inviteUserId = user.getInviteUserId();
+            appUser.setInviteUserId(inviteUserId);
+        }
+        appUserService.updateBatchById(subUserList);
         return R.ok();
     }
 
@@ -261,15 +272,54 @@
             user.setTopUser(byId);
         }
         //获取绑定下级列表
-        List<AppUser> list = appUserService.lambdaQuery().eq(AppUser::getInviteUserId, user.getId()).list();
+        List<AppUser> list = appUserService.lambdaQuery()
+                .eq(AppUser::getInviteUserId, user.getId())
+                .eq(AppUser::getDelFlag, 0)
+                .ne(AppUser::getStatus, 3)
+                .list();
         for (AppUser appUser : list) {
-            Long count1 = appUserService.lambdaQuery().eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count2 = appUserService.lambdaQuery().eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count3 = appUserService.lambdaQuery().eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count4 = appUserService.lambdaQuery().eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count5 = appUserService.lambdaQuery().eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count6 = appUserService.lambdaQuery().eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, appUser.getId()).count();
-            Long count7 = appUserService.lambdaQuery().eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, appUser.getId()).count();
+            Long count1 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 1)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count2 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 2)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count3 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 3)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count4 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 4)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count5 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 5)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count6 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 6)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
+            Long count7 = appUserService.lambdaQuery()
+                    .eq(AppUser::getVipId, 7)
+                    .eq(AppUser::getInviteUserId, appUser.getId())
+                    .eq(AppUser::getDelFlag, 0)
+                    .ne(AppUser::getStatus, 3)
+                    .count();
             appUser.setCount1(count1);
             appUser.setCount2(count2);
             appUser.setCount3(count3);
@@ -319,13 +369,18 @@
                 user.setShopName(shop.getName());
             }
         }
-        Long count1 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count2 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count3 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count4 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count5 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count6 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
-        Long count7 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+        List<AppUser> appUserList = appUserService.list(new LambdaQueryWrapper<AppUser>()
+                .ne(AppUser::getStatus, 3));
+        ArrayList<Long> userIds = new ArrayList<>();
+        userIds.add(userId);
+        getUserAncestorList(userIds, appUserList);
+//        Long count1 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 1).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count2 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 2).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count3 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 3).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count4 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 4).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count5 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 5).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count6 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 6).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
+//        Long count7 = appUserService.lambdaQuery().ne(AppUser::getStatus,3).eq(AppUser::getVipId, 7).eq(AppUser::getInviteUserId, userId).or().eq(AppUser::getTopInviteId,userId).count();
         user.setCount1(count1);
         user.setCount2(count2);
         user.setCount3(count3);
@@ -334,15 +389,35 @@
         user.setCount6(count6);
         user.setCount7(count7);
 
-        List<UserSignRecord> list = userSignRecordService.lambdaQuery().eq(UserSignRecord::getSignDay, LocalDate.now()).list();
+        List<UserSignRecord> list = userSignRecordService.lambdaQuery().eq(UserSignRecord::getSignDay, LocalDate.now())
+                .eq(UserSignRecord::getAppUserId,userId).list();
         if (!list.isEmpty()) {
             user.setIsSign(1);
         } else {
             user.setIsSign(0);
         }
         return R.ok(user);
-
-
+    }
+    private Long count1 = 0L;
+    private Long count2 = 0L;
+    private Long count3 = 0L;
+    private Long count4 = 0L;
+    private Long count5 = 0L;
+    private Long count6 = 0L;
+    private Long count7 = 0L;
+    public void getUserAncestorList(List<Long> userIds, List<AppUser> list) {
+        List<AppUser> children = list.stream().filter(u -> userIds.contains(u.getInviteUserId()) || userIds.contains(u.getTopInviteId())).collect(Collectors.toList());
+        if(!CollectionUtils.isEmpty(children)){
+            count1 = count1 + children.stream().filter(e->e.getVipId() == 1).count();
+            count2 = count2 + children.stream().filter(e->e.getVipId() == 2).count();
+            count3 = count3 + children.stream().filter(e->e.getVipId() == 3).count();
+            count4 = count4 + children.stream().filter(e->e.getVipId() == 4).count();
+            count5 = count5 + children.stream().filter(e->e.getVipId() == 5).count();
+            count6 = count6 + children.stream().filter(e->e.getVipId() == 6).count();
+            count7 = count7 + children.stream().filter(e->e.getVipId() == 7).count();
+            List<Long> userIdList = children.stream().map(AppUser::getId).collect(Collectors.toList());
+            getUserAncestorList(userIdList, children);
+        }
     }
 
     @GetMapping("/index/change")
@@ -461,8 +536,10 @@
         //获取在该本店下单的用户ids
         Integer objectId = sysUser.getObjectId();
         R<List<Order>> listR = remoteOrderGoodsClient.byShopId(objectId);
-        for (Order datum : listR.getData()) {
-            userIds.add(datum.getAppUserId());
+        if (listR.getData()!=null){
+            for (Order datum : listR.getData()) {
+                userIds.add(datum.getAppUserId());
+            }
         }
         IPage<AppUser> appuserPage = appUserService.getAppuserPage1(pageCurr, pageSize, appUser, objectId, userIds);
         return R.ok(appuserPage);
@@ -699,14 +776,11 @@
         SysUser data = sysUserClient.getSysUser(userid).getData();
         Integer shopId = null;
         Set<Long> userId = null;
-        Set<Long> userIdT = null;
         if(data.getRoleType() == 2){
             shopId = data.getObjectId();
             userId = orderClient.getAppUserByShoppingShop(shopId).getData();
         }
         UserStatistics userStatistics = appUserMapper.getUserStatistics(shopId, userId);
-        UserStatistics userStatistics1 = appUserMapper.getUserStatistics(shopId, userIdT);
-        userStatistics.setShopUser(userStatistics1.getShopUser());
         return R.ok(userStatistics);
     }
 
@@ -896,7 +970,8 @@
                 .limit(daysBetween + 1)
                 .collect(Collectors.toList());
     }
-    
+
+
     
     /**
      * 上传图片

--
Gitblit v1.7.1