From 09e4e820b20e6d3b9556e9e6d3b84bf0366ded2d Mon Sep 17 00:00:00 2001 From: zhizhi wu <2377881365@qq.com> Date: Wed, 27 Oct 2021 09:25:55 +0800 Subject: [PATCH] mustLogin --- .../cloudutil/annotation/MustLogin.java | 8 +++++ .../cloudutil/aspect/MustLoginAspect.java | 34 +++++++++++++++++-- 2 files changed, 40 insertions(+), 2 deletions(-) diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/annotation/MustLogin.java b/cloudutil/src/main/java/com/ccsens/cloudutil/annotation/MustLogin.java index 1ea0dc9a..00bb399b 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/annotation/MustLogin.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/annotation/MustLogin.java @@ -12,5 +12,13 @@ import java.lang.annotation.*; @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) public @interface MustLogin { + /** + * -1 不处理 + * 0: 数组 + * 1:List + * 2:Set + * 3: Map + * */ + byte type() default -1; } diff --git a/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java b/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java index 3fdee07d..5af6adde 100644 --- a/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java +++ b/cloudutil/src/main/java/com/ccsens/cloudutil/aspect/MustLoginAspect.java @@ -11,6 +11,7 @@ import com.ccsens.util.JsonResponse; import com.ccsens.util.WebConstant; import com.ccsens.util.bean.dto.QueryDto; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.ss.formula.functions.T; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Around; @@ -24,7 +25,10 @@ import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; -import java.lang.reflect.Method; +import java.lang.reflect.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; /** * @description: @@ -66,8 +70,9 @@ public class MustLoginAspect { Signature signature = pjp.getSignature(); MethodSignature methodSignature = (MethodSignature) signature; Method targetMethod = methodSignature.getMethod(); - MustLogin mustLoginAnnotation = targetMethod.getAnnotation(MustLogin.class); + MustLogin mustLoginAnnotation = targetMethod.getAnnotation(MustLogin.class); + fillSeptial(dto, mustLoginAnnotation); if (mustLoginAnnotation == null) { log.info("不是必须登录,有token,则添加userId,没有则不添加"); if (response != null && response.getCode().intValue() == CodeEnum.SUCCESS.getCode().intValue() && response.getData() != null) { @@ -115,4 +120,29 @@ public class MustLoginAspect { return result; } + private void fillSeptial(QueryDto dto, MustLogin mustLoginAnnotation) { + if (dto != null && mustLoginAnnotation.type() > -1) { + switch (mustLoginAnnotation.type()) { + case 0: + Object obj = dto.getParam(); + if (obj!= null && !obj.getClass().isArray()) { + Class aClass = dto.getParam().getClass(); + Object o = Array.newInstance(aClass, 1); + Array.set(o, 0, dto.getParam()); + dto.setParam(o); + } + break; + case 1: + Object obj1 = dto.getParam(); + if (obj1!= null && !(obj1 instanceof List)) { + ArrayList arrayList = new ArrayList(); + arrayList.add(dto.getParam()); + dto.setParam(arrayList); + } + break; + } + + } + } + }