From 934d97b2e6086db0be2772acbbe2ec33133bd77e Mon Sep 17 00:00:00 2001
From: zj <1772600164@qq.com>
Date: Thu, 16 Oct 2025 00:13:55 +0800
Subject: [PATCH] 1

---
 ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountVo.java                    |    3 +++
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java |   32 ++++++++++++++++++++++++++++----
 ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java                 |   16 ++++++++++++++++
 3 files changed, 47 insertions(+), 4 deletions(-)

diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java
index 223993c..79af75c 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/HomePageStatisticsController.java
@@ -48,26 +48,50 @@
      * 首页统计
      */
     @GetMapping("/getStatistics")
-    public AjaxResult getUserTeamAndPosition() {
+    public AjaxResult getUserTeamAndPosition(@RequestParam(value = "invitationCode",required = false) String invitationCode) {
         HomePageStatisticsOut statisticsOut = new HomePageStatisticsOut();
+
+        //邀请人账号
+        String account = null;
+        if(StringUtils.isNotEmpty(invitationCode)){
+            UserAccount userAccount = userAccountService.getOne(new LambdaQueryWrapper<UserAccount>()
+                    .eq(UserAccount::getInvitationCode, invitationCode)
+            );
+            if(ObjectUtil.isNotEmpty(userAccount)){
+                account = userAccount.getAccount();
+            }
+        }
+
 
         // 今日注册
         LambdaQueryWrapper<UserAccount> todayWrapper = new LambdaQueryWrapper<>();
         todayWrapper.apply("DATE(create_time) = CURDATE()");
+        todayWrapper.eq(StringUtils.isNotEmpty(account),UserAccount::getInvitationAccount,account);
         statisticsOut.setTodayRegister(userAccountService.count(todayWrapper));
 
         // 总注册
-        statisticsOut.setTotalRegister(userAccountService.count());
+        statisticsOut.setTotalRegister(userAccountService.count(new LambdaQueryWrapper<UserAccount>().eq(StringUtils.isNotEmpty(account),UserAccount::getInvitationAccount,account)));
+
+
+        List<UserAccount> userAccounts = userAccountService.list(new LambdaQueryWrapper<UserAccount>()
+                .eq(StringUtils.isNotEmpty(account), UserAccount::getInvitationAccount, account)
+        );
+
+        List<String> accounts = userAccounts.stream().map(UserAccount::getAccount).collect(Collectors.toList());
 
         // 今日激活
         LambdaQueryWrapper<UserPolicy> userPolicyTodayWrapper = new LambdaQueryWrapper<>();
-        userPolicyTodayWrapper.eq(UserPolicy::getApprovalStatus, 1)
+        userPolicyTodayWrapper
+                .eq(UserPolicy::getApprovalStatus, 1)
+                .in(!CollectionUtils.isEmpty(accounts),UserPolicy::getAccount,accounts)
                 .apply("DATE(created_at) = CURDATE()");
         statisticsOut.setTodayActivate(userPolicyService.count(userPolicyTodayWrapper));
 
         // 总激活
         LambdaQueryWrapper<UserPolicy> userPolicyTotalWrapper = new LambdaQueryWrapper<>();
-        userPolicyTotalWrapper.eq(UserPolicy::getApprovalStatus, 1);
+        userPolicyTotalWrapper
+                .in(!CollectionUtils.isEmpty(accounts),UserPolicy::getAccount,accounts)
+                .eq(UserPolicy::getApprovalStatus, 1);
         statisticsOut.setTotalActivate(userPolicyService.count(userPolicyTotalWrapper));
 
         return AjaxResult.success(statisticsOut);
diff --git a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java
index c639b9f..e89a724 100644
--- a/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java
+++ b/ruoyi-admin/src/main/java/com/ruoyi/web/controller/user/UserController.java
@@ -60,6 +60,22 @@
         // 创建查询条件包装器
         LambdaQueryWrapper<UserAccount> queryWrapper = new LambdaQueryWrapper<>();
 
+
+        LambdaQueryWrapper<UserPolicy> userPolicyWrapper = new LambdaQueryWrapper<>();
+        userPolicyWrapper
+                .eq(UserPolicy::getApprovalStatus, 1)
+                .eq(UserPolicy::getPayStatus,2)
+                .select(UserPolicy::getUserId);
+        List<UserPolicy> userPolicies = userPolicyService.list(userPolicyWrapper);
+        List<Integer> userIds = userPolicies.stream()
+                .map(UserPolicy::getUserId)
+                .collect(Collectors.toList());
+        if(null != vo.getActivate() && vo.getActivate()){
+            queryWrapper.in(UserAccount::getId,userIds);
+        }else if(null != vo.getActivate() && !vo.getActivate()){
+            queryWrapper.notIn(UserAccount::getId,userIds);
+        }
+
         if (ObjectUtil.isNotEmpty(vo.getKeywords())) {
             String keywords = vo.getKeywords().trim();
             if (StringUtils.isNotEmpty(keywords)) {
diff --git a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountVo.java b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountVo.java
index 13133ea..b981764 100644
--- a/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountVo.java
+++ b/ruoyi-system/src/main/java/com/ruoyi/system/domain/vo/UserAccountVo.java
@@ -30,6 +30,9 @@
     // 账号类型: 0:真实 1:虚拟
     private Integer accountType;
 
+    //是否已激活  true 已激活  false  未激活
+    private Boolean activate;
+
     // 云信账号
     private String cloudMessageAccount;
 

--
Gitblit v1.9.3