From f4a0f2acc63d7785eab108419a4e16f5f688cb95 Mon Sep 17 00:00:00 2001 From: yujian <yujian@163.com> Date: 星期六, 18 一月 2020 12:06:27 +0800 Subject: [PATCH] 用户注册信息 --- fanli/src/main/java/com/yeshi/fanli/aspect/integral/IntegralGetFrequencyLimitAspect.java | 39 ++++++++++++++++++++++++--------------- 1 files changed, 24 insertions(+), 15 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..c7dfbb2 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 @@ -16,22 +16,19 @@ 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 public class IntegralGetFrequencyLimitAspect { @Resource - private RedisManager redisManager; + private JedisPool jedisPool; private ExpressionParser parser = new SpelExpressionParser(); @@ -49,7 +46,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 +57,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 = jedisPool.getResource(); 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