From eec7e789a87863c25d92c10ad5dfc22ad80c448d Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期二, 14 七月 2020 12:36:48 +0800 Subject: [PATCH] 系统区分BUG修复 --- fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java | 38 ++++++++++++++++++++++++-------------- 1 files changed, 24 insertions(+), 14 deletions(-) diff --git a/fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java b/fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java index 75f0472..85d044b 100644 --- a/fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java +++ b/fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java @@ -4,6 +4,7 @@ import javax.annotation.Resource; +import com.yeshi.fanli.util.RedisManager; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.Signature; import org.aspectj.lang.annotation.Around; @@ -16,15 +17,12 @@ 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.RedisManager; import com.yeshi.fanli.util.StringUtil; -import com.yeshi.fanli.util.VersionUtil; import com.yeshi.fanli.util.annotation.integral.IntegralGetFrequencyLimit; -import com.yeshi.fanli.util.annotation.integral.IntegralGetVersionLimit; + +import redis.clients.jedis.Jedis; +import redis.clients.jedis.JedisPool; @Component @Aspect @@ -49,7 +47,7 @@ return expression.getValue(context).toString(); } - @Around("execution(public * com.yeshi.fanli.service.impl.integral.*.*(..))") + @Around("execution(public * com.yeshi.fanli.service.impl.user.integral.*.*(..))") public Object requestSerializable(ProceedingJoinPoint joinPoint) throws Throwable { Signature signature = joinPoint.getSignature(); MethodSignature methodSignature = (MethodSignature) signature; @@ -60,17 +58,29 @@ if (realMethod.isAnnotationPresent(IntegralGetFrequencyLimit.class)) { IntegralGetFrequencyLimit rs = realMethod.getAnnotation(IntegralGetFrequencyLimit.class); String key = rs.key(); - String catchKey = StringUtil.Md5("integral-get-frequency-" + generateKeyBySpEL(key, joinPoint)); + int timeS = rs.time(); - if (!StringUtil.isNullOrEmpty(redisManager.getCommonString(catchKey))) { - return null; - } + String catchKey = "integral-get-frequency-" + StringUtil.Md5(generateKeyBySpEL(key, joinPoint)); + Jedis jedis =redisManager.getJedis(); try { - return joinPoint.proceed(); + if (jedis.setnx(catchKey, "1") > 0) { + jedis.expire(catchKey, timeS); + try { + return joinPoint.proceed(); + } catch (Exception e) {// 寮傚父浜嗘湰娆¤姹備笉绠� + jedis.del(catchKey); + } + } else { + return null; + } + } catch (Exception e) { + try { + return joinPoint.proceed(); + } finally { + } } finally { - // 30鍒嗛挓鍐呬笉鍏佽鎿嶄綔 - redisManager.cacheCommonString(catchKey, "1", 60 * 30); + jedis.close(); } } } catch (NoSuchMethodException e) { -- Gitblit v1.8.0