|
|
|
|
@ -20,7 +20,6 @@ import org.springframework.lang.Nullable;
|
|
|
|
|
import org.springframework.util.Assert;
|
|
|
|
|
|
|
|
|
|
import java.time.LocalDateTime;
|
|
|
|
|
import java.util.Collection;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
@ -52,8 +51,12 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
default PageResult<CrmCustomerDO> selectPage(CrmCustomerPageReqVO pageReqVO, Long ownerUserId) {
|
|
|
|
|
MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
// 拼接数据权限的查询条件
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType(), pageReqVO.getPool());
|
|
|
|
|
if (Boolean.TRUE.equals(pageReqVO.getPool())) {
|
|
|
|
|
query.isNull(CrmCustomerDO::getOwnerUserId);
|
|
|
|
|
} else {
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType());
|
|
|
|
|
}
|
|
|
|
|
// 拼接自身的查询条件
|
|
|
|
|
query.selectAll(CrmCustomerDO.class)
|
|
|
|
|
.likeIfPresent(CrmCustomerDO::getName, pageReqVO.getName())
|
|
|
|
|
@ -81,15 +84,6 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
return selectJoinPage(pageReqVO, CrmCustomerDO.class, query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default List<CrmCustomerDO> selectBatchIds(Collection<Long> ids, Long ownerUserId) {
|
|
|
|
|
MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
// 拼接数据权限的查询条件
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(), ids, ownerUserId);
|
|
|
|
|
// 拼接自身的查询条件
|
|
|
|
|
query.selectAll(CrmCustomerDO.class).in(CrmCustomerDO::getId, ids).orderByDesc(CrmCustomerDO::getId);
|
|
|
|
|
return selectJoinList(CrmCustomerDO.class, query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default CrmCustomerDO selectByCustomerName(String name) {
|
|
|
|
|
return selectOne(CrmCustomerDO::getName, name);
|
|
|
|
|
}
|
|
|
|
|
@ -102,9 +96,9 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
default Long selectPutPoolRemindCustomerCount(CrmCustomerPageReqVO pageReqVO,
|
|
|
|
|
CrmCustomerPoolConfigDO poolConfigDO,
|
|
|
|
|
CrmCustomerPoolConfigDO poolConfig,
|
|
|
|
|
Long userId) {
|
|
|
|
|
final MPJLambdaWrapperX<CrmCustomerDO> query = buildPutPoolRemindCustomerQuery(pageReqVO, poolConfigDO, userId);
|
|
|
|
|
final MPJLambdaWrapperX<CrmCustomerDO> query = buildPutPoolRemindCustomerQuery(pageReqVO, poolConfig, userId);
|
|
|
|
|
return selectCount(query);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -114,7 +108,7 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
// 拼接数据权限的查询条件
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType(), null);
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, pageReqVO.getSceneType());
|
|
|
|
|
|
|
|
|
|
// 未锁定 + 未成交
|
|
|
|
|
query.eq(CrmCustomerDO::getLockStatus, false).eq(CrmCustomerDO::getDealStatus, false);
|
|
|
|
|
@ -168,7 +162,7 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
// 我负责的 + 非公海
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE);
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, CrmSceneTypeEnum.OWNER.getType());
|
|
|
|
|
// 今天需联系
|
|
|
|
|
LocalDateTime beginOfToday = LocalDateTimeUtil.beginOfDay(LocalDateTime.now());
|
|
|
|
|
LocalDateTime endOfToday = LocalDateTimeUtil.endOfDay(LocalDateTime.now());
|
|
|
|
|
@ -180,7 +174,7 @@ public interface CrmCustomerMapper extends BaseMapperX<CrmCustomerDO> {
|
|
|
|
|
MPJLambdaWrapperX<CrmCustomerDO> query = new MPJLambdaWrapperX<>();
|
|
|
|
|
// 我负责的 + 非公海
|
|
|
|
|
CrmPermissionUtils.appendPermissionCondition(query, CrmBizTypeEnum.CRM_CUSTOMER.getType(),
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, CrmSceneTypeEnum.OWNER.getType(), Boolean.FALSE);
|
|
|
|
|
CrmCustomerDO::getId, ownerUserId, CrmSceneTypeEnum.OWNER.getType());
|
|
|
|
|
// 未跟进
|
|
|
|
|
query.eq(CrmClueDO::getFollowUpStatus, false);
|
|
|
|
|
return selectCount(query);
|
|
|
|
|
|