From 81da61b828e29b7745e1382dfbbaeb685dc083ef Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 23 一月 2024 17:17:55 +0800 Subject: [PATCH] 抖音转链修改 --- fanli/src/main/java/com/yeshi/fanli/aspect/VersionLimitAspect.java | 194 ++++++++++++++++++++++++------------------------ 1 files changed, 97 insertions(+), 97 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/VersionLimitAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/VersionLimitAspect.java index 0aac5be..57cf11c 100644 --- a/fanli/src/main/java/com/yeshi/fanli/aspect/VersionLimitAspect.java +++ b/fanli/src/main/java/com/yeshi/fanli/aspect/VersionLimitAspect.java @@ -1,97 +1,97 @@ -package com.yeshi.fanli.aspect; - -import java.lang.reflect.Method; - -import javax.annotation.Resource; - -import org.aspectj.lang.ProceedingJoinPoint; -import org.aspectj.lang.Signature; -import org.aspectj.lang.annotation.Around; -import org.aspectj.lang.annotation.Aspect; -import org.aspectj.lang.reflect.MethodSignature; -import org.springframework.core.DefaultParameterNameDiscoverer; -import org.springframework.expression.EvaluationContext; -import org.springframework.expression.Expression; -import org.springframework.expression.ExpressionParser; -import org.springframework.expression.spel.standard.SpelExpressionParser; -import org.springframework.expression.spel.support.StandardEvaluationContext; -import org.springframework.stereotype.Component; -import org.yeshi.utils.NumberUtil; - -import com.yeshi.fanli.entity.bus.user.UserActiveLog; -import com.yeshi.fanli.service.inter.user.UserActiveLogService; -import com.yeshi.fanli.util.VersionUtil; -import com.yeshi.fanli.util.annotation.integral.IntegralGetVersionLimit; -import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit; - -@Component -@Aspect -public class VersionLimitAspect { - - @Resource - private UserActiveLogService userActiveLogService; - - private ExpressionParser parser = new SpelExpressionParser(); - - private DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); - - public String generateKeyBySpEL(String spELString, ProceedingJoinPoint joinPoint) { - MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); - String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); - Expression expression = parser.parseExpression(spELString); - EvaluationContext context = new StandardEvaluationContext(); - Object[] args = joinPoint.getArgs(); - for (int i = 0; i < args.length; i++) { - context.setVariable(paramNames[i], args[i]); - } - return expression.getValue(context).toString(); - } - - @Around("execution(public * com.yeshi.fanli.service.impl..*.*(..))") - public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable { - Signature signature = joinPoint.getSignature(); - MethodSignature methodSignature = (MethodSignature) signature; - Method targetMethod = methodSignature.getMethod(); - try { - Method realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(), - targetMethod.getParameterTypes()); - if (realMethod.isAnnotationPresent(IntegralGetVersionLimit.class)) { - IntegralGetVersionLimit rs = realMethod.getAnnotation(IntegralGetVersionLimit.class); - String key = rs.uid(); - String uid = generateKeyBySpEL(key, joinPoint); - if (uid != null && NumberUtil.isNumeric(uid)) { - UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(Long.parseLong(uid)); - if (activeLog != null) { - // 灏忎簬1.6.5鐗堟湰涓嶅鍔犵Н鍒� - if (!VersionUtil.greaterThan_1_6_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", - activeLog.getVersionCode())) - return null; - } - } - } - - if (realMethod.isAnnotationPresent(RedPackGetVersionLimit.class)) { - RedPackGetVersionLimit rs = realMethod.getAnnotation(RedPackGetVersionLimit.class); - String key = rs.uid(); - String uid = generateKeyBySpEL(key, joinPoint); - if (uid != null && NumberUtil.isNumeric(uid)) { - UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(Long.parseLong(uid)); - if (activeLog != null) { - // 灏忎簬2.1鐗堟湰涓嶅鍔犵孩鍖� - if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", - activeLog.getVersionCode())) - return null; - } - } - } - } catch (NoSuchMethodException e) { - e.printStackTrace(); - } catch (SecurityException e) { - e.printStackTrace(); - } - - return joinPoint.proceed(); - - } - -} +package com.yeshi.fanli.aspect; + +import java.lang.reflect.Method; + +import javax.annotation.Resource; + +import org.aspectj.lang.ProceedingJoinPoint; +import org.aspectj.lang.Signature; +import org.aspectj.lang.annotation.Around; +import org.aspectj.lang.annotation.Aspect; +import org.aspectj.lang.reflect.MethodSignature; +import org.springframework.core.DefaultParameterNameDiscoverer; +import org.springframework.expression.EvaluationContext; +import org.springframework.expression.Expression; +import org.springframework.expression.ExpressionParser; +import org.springframework.expression.spel.standard.SpelExpressionParser; +import org.springframework.expression.spel.support.StandardEvaluationContext; +import org.springframework.stereotype.Component; +import org.yeshi.utils.NumberUtil; + +import com.yeshi.fanli.entity.bus.user.UserActiveLog; +import com.yeshi.fanli.service.inter.user.UserActiveLogService; +import com.yeshi.fanli.util.VersionUtil; +import com.yeshi.fanli.util.annotation.integral.IntegralGetVersionLimit; +import com.yeshi.fanli.util.annotation.redpack.RedPackGetVersionLimit; + +@Component +@Aspect +public class VersionLimitAspect { + + @Resource + private UserActiveLogService userActiveLogService; + + private ExpressionParser parser = new SpelExpressionParser(); + + private DefaultParameterNameDiscoverer nameDiscoverer = new DefaultParameterNameDiscoverer(); + + public String generateKeyBySpEL(String spELString, ProceedingJoinPoint joinPoint) { + MethodSignature methodSignature = (MethodSignature) joinPoint.getSignature(); + String[] paramNames = nameDiscoverer.getParameterNames(methodSignature.getMethod()); + Expression expression = parser.parseExpression(spELString); + EvaluationContext context = new StandardEvaluationContext(); + Object[] args = joinPoint.getArgs(); + for (int i = 0; i < args.length; i++) { + context.setVariable(paramNames[i], args[i]); + } + return expression.getValue(context).toString(); + } + + @Around("execution(public * com.yeshi.fanli.service.impl..*.*(..))") + public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable { + Signature signature = joinPoint.getSignature(); + MethodSignature methodSignature = (MethodSignature) signature; + Method targetMethod = methodSignature.getMethod(); + try { + Method realMethod = joinPoint.getTarget().getClass().getDeclaredMethod(joinPoint.getSignature().getName(), + targetMethod.getParameterTypes()); + if (realMethod.isAnnotationPresent(IntegralGetVersionLimit.class)) { + IntegralGetVersionLimit rs = realMethod.getAnnotation(IntegralGetVersionLimit.class); + String key = rs.uid(); + String uid = generateKeyBySpEL(key, joinPoint); + if (uid != null && NumberUtil.isNumeric(uid)) { + UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(Long.parseLong(uid)); + if (activeLog != null) { + // 灏忎簬1.6.5鐗堟湰涓嶅鍔犵Н鍒� + if (!VersionUtil.greaterThan_1_6_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", + activeLog.getVersionCode())) + return null; + } + } + } + + if (realMethod.isAnnotationPresent(RedPackGetVersionLimit.class)) { + RedPackGetVersionLimit rs = realMethod.getAnnotation(RedPackGetVersionLimit.class); + String key = rs.uid(); + String uid = generateKeyBySpEL(key, joinPoint); + if (uid != null && NumberUtil.isNumeric(uid)) { + UserActiveLog activeLog = userActiveLogService.getUserLatestActiveInfo(Long.parseLong(uid)); + if (activeLog != null) { + // 灏忎簬2.1鐗堟湰涓嶅鍔犵孩鍖� + if (!VersionUtil.greaterThan_2_0_5("appstore".equalsIgnoreCase(activeLog.getChannel()) ? "ios" : "android", + activeLog.getVersionCode())) + return null; + } + } + } + } catch (NoSuchMethodException e) { + e.printStackTrace(); + } catch (SecurityException e) { + e.printStackTrace(); + } + + return joinPoint.proceed(); + + } + +} -- Gitblit v1.8.0