From 8e704c6474b8a9df9652191112f6dc280992ba52 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期二, 13 十月 2026 17:15:45 +0800
Subject: [PATCH] fix(crm): 修复客户公海数据显示问题

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java |   23 ++++++++++++++++-------
 1 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
index 25de6e6..5c277a4 100644
--- a/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
+++ b/yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
@@ -49,14 +49,20 @@
     }
 
     default PageResult<CrmCustomerDO> selectPage(CrmCustomerPageReqVO pageReqVO, Long ownerUserId) {
+        return selectPage(pageReqVO, ownerUserId,
+                Boolean.TRUE.equals(pageReqVO.getPool()) && CrmPermissionUtils.isSuperAdmin());
+    }
+
+    default PageResult<CrmCustomerDO> selectPage(CrmCustomerPageReqVO pageReqVO, Long ownerUserId,
+                                               boolean superAdmin) {
         MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
-        // 鎷兼帴鏁版嵁鏉冮檺鐨勬煡璇㈡潯浠�
-        if (CrmSceneTypeEnum.isAll(pageReqVO.getSceneType())) {
+        // 鍏捣灞曠ず鍏佽鍏变韩鐨勫鎴凤紙鍖呭惈宸叉湁璐熻矗浜猴級锛屼笌瀹㈡埛绠$悊浣跨敤鍚屼竴浠芥暟鎹��
+        if (Boolean.TRUE.equals(pageReqVO.getPool())) {
+            query.eq(!superAdmin, CrmCustomerDO::getAutoPoolEnabled, true);
+        } else if (CrmSceneTypeEnum.isAll(pageReqVO.getSceneType())) {
             // 鍦烘櫙鍥涳細鍏ㄩ儴鏁版嵁锛屼笉鍖哄垎鍏捣/闈炲叕娴凤紝鐢� appendPermissionCondition 缁熶竴澶勭悊
             CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
                     CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType());
-        } else if (Boolean.TRUE.equals(pageReqVO.getPool())) {
-            query.isNull(CrmCustomerDO::getOwnerUserId);
         } else {
             CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
                     CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType());
@@ -68,6 +74,7 @@
                 .eqIfPresent(CrmCustomerDO::getIndustryId, pageReqVO.getIndustryId())
                 .eqIfPresent(CrmCustomerDO::getLevel, pageReqVO.getLevel())
                 .eqIfPresent(CrmCustomerDO::getSource, pageReqVO.getSource())
+                .eqIfPresent(CrmCustomerDO::getAutoPoolEnabled, pageReqVO.getAutoPoolEnabled())
                 .eqIfPresent(CrmCustomerDO::getFollowUpStatus, pageReqVO.getFollowUpStatus());
 
         // backlog 鏌ヨ
@@ -115,7 +122,8 @@
                 CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType());
 
         // 鏈攣瀹� + 鏈垚浜�
-        query.eq(CrmCustomerDO::getLockStatus, false).eq(CrmCustomerDO::getDealStatus, false);
+        query.eq(CrmCustomerDO::getLockStatus, false).eq(CrmCustomerDO::getDealStatus, false)
+                .eq(CrmCustomerDO::getAutoPoolEnabled, true);
 
         // 鎯呭喌涓�锛氭湭鎴愪氦鎻愰啋鏃ユ湡鍖洪棿
         Integer dealExpireDays = poolConfig.getDealExpireDays();
@@ -147,7 +155,8 @@
         LambdaQueryWrapper<CrmCustomerDO> query = new LambdaQueryWrapper<>();
         query.gt(CrmCustomerDO::getOwnerUserId, 0);
         // 鏈攣瀹� + 鏈垚浜�
-        query.eq(CrmCustomerDO::getLockStatus, false).eq(CrmCustomerDO::getDealStatus, false);
+        query.eq(CrmCustomerDO::getLockStatus, false).eq(CrmCustomerDO::getDealStatus, false)
+                .eq(CrmCustomerDO::getAutoPoolEnabled, true);
         // 宸茬粡瓒呮椂
         LocalDateTime dealExpireTime = LocalDateTime.now().minusDays(poolConfig.getDealExpireDays());
         LocalDateTime contactExpireTime = LocalDateTime.now().minusDays(poolConfig.getContactExpireDays());
@@ -203,7 +212,7 @@
 
     default Long selectPoolCount() {
         return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>()
-                .isNull(CrmCustomerDO::getOwnerUserId));
+                .eq(!CrmPermissionUtils.isSuperAdmin(), CrmCustomerDO::getAutoPoolEnabled, true));
     }
 
 }

--
Gitblit v1.9.3