| | |
| | | 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(), |
| | |
| | | throw new IllegalArgumentException("未知联系状态:" + pageReqVO.getContactStatus()); |
| | | } |
| | | } |
| | | // 重点客户(A/level=1)默认排在前面 |
| | | query.orderByAsc(CrmCustomerDO::getLevel); |
| | | return selectJoinPage(pageReqVO, CrmCustomerDO.class, query); |
| | | } |
| | | |
| | |
| | | |
| | | default Long selectPoolCount() { |
| | | return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>() |
| | | .isNull(CrmCustomerDO::getOwnerUserId) |
| | | .eq(!CrmPermissionUtils.isSuperAdmin(), CrmCustomerDO::getAutoPoolEnabled, true)); |
| | | } |
| | | |