package cn.iocoder.yudao.module.crm.framework.permission.core.annotations; import cn.iocoder.yudao.module.crm.enums.common.CrmBizTypeEnum; import cn.iocoder.yudao.module.crm.enums.permission.CrmPermissionLevelEnum; import java.lang.annotation.Documented; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; import static java.lang.annotation.ElementType.ANNOTATION_TYPE; import static java.lang.annotation.ElementType.METHOD; /** * CRM 数据操作权限校验 AOP 注解 * * @author HUIHUI */ @Target({METHOD, ANNOTATION_TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface CrmPermission { /** * CRM 类型 */ CrmBizTypeEnum[] bizType() default {}; /** * CRM 类型扩展,通过 Spring EL 表达式获取到 {@link #bizType()} * * 目的:用于 CrmPermissionController 团队权限校验 */ String bizTypeValue() default ""; /** * 数据编号,通过 Spring EL 表达式获取 */ String bizId(); /** * 操作所需权限级别 */ CrmPermissionLevelEnum level(); }