From d17024670efca145ff97bc26913bfd9b0fef2cd0 Mon Sep 17 00:00:00 2001
From: 云 <2163098428@qq.com>
Date: 星期五, 16 十月 2026 10:26:31 +0800
Subject: [PATCH] feat(crm): 开放客户跨模块访问权限以支持业务集成

---
 yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java |   25 +++++++++++++++++++++----
 1 files changed, 21 insertions(+), 4 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 9e3935b..0467060 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
@@ -56,10 +56,9 @@
     default PageResult<CrmCustomerDO> selectPage(CrmCustomerPageReqVO pageReqVO, Long ownerUserId,
                                                boolean superAdmin) {
         MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
-        // 鍏捣鏌ヨ蹇呴』浼樺厛杩囨护锛屼笉鑳借鈥滃叏閮ㄦ暟鎹�濆満鏅粫杩囥��
+        // 鍏捣灞曠ず鍏佽鍏变韩鐨勫鎴凤紙鍖呭惈宸叉湁璐熻矗浜猴級锛屼笌瀹㈡埛绠$悊浣跨敤鍚屼竴浠芥暟鎹��
         if (Boolean.TRUE.equals(pageReqVO.getPool())) {
-            query.isNull(CrmCustomerDO::getOwnerUserId)
-                    .eq(!superAdmin, CrmCustomerDO::getAutoPoolEnabled, true);
+            query.eq(!superAdmin, CrmCustomerDO::getAutoPoolEnabled, true);
         } else if (CrmSceneTypeEnum.isAll(pageReqVO.getSceneType())) {
             // 鍦烘櫙鍥涳細鍏ㄩ儴鏁版嵁锛屼笉鍖哄垎鍏捣/闈炲叕娴凤紝鐢� appendPermissionCondition 缁熶竴澶勭悊
             CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
@@ -93,6 +92,25 @@
                 throw new IllegalArgumentException("鏈煡鑱旂郴鐘舵�侊細" + pageReqVO.getContactStatus());
             }
         }
+        // 閲嶇偣瀹㈡埛锛圓/level=1锛夐粯璁ゆ帓鍦ㄥ墠闈�
+        query.orderByAsc(CrmCustomerDO::getLevel);
+        return selectJoinPage(pageReqVO, CrmCustomerDO.class, query);
+    }
+
+    /**
+     * 渚� MES銆丒RP銆佸敭鍚庣瓑涓氬姟妯″潡閫夋嫨鎴栧洖鏄惧鎴枫�傝鏌ヨ涓嶅鐢� CRM 璐熻矗浜烘潈闄愶紝
+     * 浠呮寜瀹㈡埛绛涢�夋潯浠跺垎椤碉紝閬垮厤涓氬姟鍗曟嵁鍥犲綋鍓嶇櫥褰曚汉涓嶆槸瀹㈡埛璐熻矗浜鸿�屾棤娉曟樉绀哄鎴枫��
+     */
+    default PageResult<CrmCustomerDO> selectBusinessPage(CrmCustomerPageReqVO pageReqVO) {
+        MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
+        query.selectAll(CrmCustomerDO.class)
+                .likeIfPresent(CrmCustomerDO::getName, pageReqVO.getName())
+                .eqIfPresent(CrmCustomerDO::getMobile, pageReqVO.getMobile())
+                .eqIfPresent(CrmCustomerDO::getIndustryId, pageReqVO.getIndustryId())
+                .eqIfPresent(CrmCustomerDO::getLevel, pageReqVO.getLevel())
+                .eqIfPresent(CrmCustomerDO::getSource, pageReqVO.getSource())
+                .eqIfPresent(CrmCustomerDO::getAutoPoolEnabled, pageReqVO.getAutoPoolEnabled())
+                .orderByAsc(CrmCustomerDO::getLevel);
         return selectJoinPage(pageReqVO, CrmCustomerDO.class, query);
     }
 
@@ -213,7 +231,6 @@
 
     default Long selectPoolCount() {
         return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>()
-                .isNull(CrmCustomerDO::getOwnerUserId)
                 .eq(!CrmPermissionUtils.isSuperAdmin(), CrmCustomerDO::getAutoPoolEnabled, true));
     }
 

--
Gitblit v1.9.3