CRM-客户:添加分页数据场景过滤

This commit is contained in:
puhui999
2023-11-08 16:42:22 +08:00
parent 388e07c834
commit f4c92089e5
4 changed files with 62 additions and 4 deletions

View File

@ -1,6 +1,7 @@
package cn.iocoder.yudao.module.crm.controller.admin.customer.vo;
import cn.iocoder.yudao.framework.common.pojo.PageParam;
import cn.iocoder.yudao.module.crm.enums.customer.CrmCustomerSceneEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
@ -27,5 +28,10 @@ public class CrmCustomerPageReqVO extends PageParam {
@Schema(description = "客户来源", example = "1")
private Integer source;
// TODO @芋艿:场景;
/**
* 场景类型,关联 {@link CrmCustomerSceneEnum}
*/
@Schema(description = "场景类型", example = "1")
private Integer sceneType;
}

View File

@ -59,9 +59,9 @@ public class CrmPermissionAspect {
@Before("@annotation(crmPermission)")
public void doBefore(JoinPoint joinPoint, CrmPermission crmPermission) throws NoSuchMethodException {
// TODO 芋艿:临时,方便大家调试
//if (true) {
// return;
//}
if (true) {
return;
}
KeyValue<Long, Integer> bizIdAndBizType = getBizIdAndBizType(joinPoint, crmPermission);
Integer bizType = bizIdAndBizType.getValue(); // 模块类型
Long bizId = bizIdAndBizType.getKey(); // 模块数据编号

View File

@ -3,11 +3,13 @@ package cn.iocoder.yudao.module.crm.service.customer;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils;
import cn.iocoder.yudao.module.crm.controller.admin.customer.vo.*;
import cn.iocoder.yudao.module.crm.convert.customer.CrmCustomerConvert;
import cn.iocoder.yudao.module.crm.dal.dataobject.customer.CrmCustomerDO;
import cn.iocoder.yudao.module.crm.dal.dataobject.permission.CrmPermissionDO;
import cn.iocoder.yudao.module.crm.dal.mysql.customer.CrmCustomerMapper;
import cn.iocoder.yudao.module.crm.enums.customer.CrmCustomerSceneEnum;
import cn.iocoder.yudao.module.crm.framework.core.annotations.CrmPermission;
import cn.iocoder.yudao.module.crm.framework.enums.CrmBizTypeEnum;
import cn.iocoder.yudao.module.crm.framework.enums.CrmPermissionLevelEnum;
@ -100,6 +102,10 @@ public class CrmCustomerServiceImpl implements CrmCustomerService {
// 1.2 获取当前用户能看的分页数据
List<CrmPermissionDO> permissions = crmPermissionService.getPermissionListByBizTypeAndUserId(
CrmBizTypeEnum.CRM_CUSTOMER.getType(), userId);
// 1.3 TODO 场景数据过滤
if (CrmCustomerSceneEnum.isOwner(pageReqVO.getSceneType())) { // 场景一:我负责的数据
permissions = CollectionUtils.filterList(permissions, item -> CrmPermissionLevelEnum.isOwner(item.getLevel()));
}
Set<Long> ids = convertSet(permissions, CrmPermissionDO::getBizId);
if (CollUtil.isEmpty(ids)) { // 没得说明没有什么给他看的
return PageResult.empty();