| | |
| | | } |
| | | |
| | | 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()); |
| | |
| | | .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 查询 |
| | |
| | | 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(); |
| | |
| | | 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()); |
| | |
| | | |
| | | default Long selectPoolCount() { |
| | | return selectCount(new LambdaQueryWrapperX<CrmCustomerDO>() |
| | | .isNull(CrmCustomerDO::getOwnerUserId)); |
| | | .eq(!CrmPermissionUtils.isSuperAdmin(), CrmCustomerDO::getAutoPoolEnabled, true)); |
| | | } |
| | | |
| | | } |