8 小时以前 db46314b9c56256a31c9114bd45d9bd63368cbd8
yudao-module-crm/src/main/java/cn/iocoder/yudao/module/crm/dal/mysql/customer/CrmCustomerMapper.java
@@ -51,7 +51,11 @@
    default PageResult<CrmCustomerDO> selectPage(CrmCustomerPageReqVO pageReqVO, Long ownerUserId) {
        MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
        // 拼接数据权限的查询条件
        if (Boolean.TRUE.equals(pageReqVO.getPool())) {
        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(),
@@ -180,4 +184,26 @@
        return selectCount(query);
    }
    // ========== 统计方法 ==========
    default Long selectTodayCount() {
        LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
        LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
        return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>()
                .between(CrmCustomerDO::getCreateTime, beginOfToday, endOfToday));
    }
    default Long selectDealCount() {
        return selectCount(CrmCustomerDO::getDealStatus, true);
    }
    default Long selectLockCount() {
        return selectCount(CrmCustomerDO::getLockStatus, true);
    }
    default Long selectPoolCount() {
        return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>()
                .isNull(CrmCustomerDO::getOwnerUserId));
    }
}