From 9e1f60b6bde3cafedded785c0b7c57cdfa1ec61c Mon Sep 17 00:00:00 2001 From: bruce Date: Wed, 6 May 2020 13:05:40 +0800 Subject: [PATCH] =?UTF-8?q?[=E4=BC=98=E5=8C=96]=E7=BB=9F=E4=B8=80=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E7=AE=A1=E7=90=86=EF=BC=8C=E8=B0=83=E6=95=B4=E9=BB=98?= =?UTF-8?q?=E8=AE=A4=E7=BC=93=E5=AD=98=E6=97=B6=E9=97=B41=E5=88=86?= =?UTF-8?q?=E9=92=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/iformall/annotation/RedisCache.java | 4 +-- .../WxDateAmountRecordController.java | 6 ++-- .../com/iformall/annotation/RedisCache.java | 4 +-- .../iformall/controller/WxMallController.java | 2 +- .../com/iformall/service/RedisService.java | 5 +-- .../service/impl/RedisServiceImpl.java | 31 ++++++++++--------- 6 files changed, 27 insertions(+), 25 deletions(-) diff --git a/mallinkBApi/src/main/java/com/iformall/annotation/RedisCache.java b/mallinkBApi/src/main/java/com/iformall/annotation/RedisCache.java index 7f35a8288..a7ca0d919 100644 --- a/mallinkBApi/src/main/java/com/iformall/annotation/RedisCache.java +++ b/mallinkBApi/src/main/java/com/iformall/annotation/RedisCache.java @@ -40,10 +40,10 @@ public @interface RedisCache { boolean md5() default true ; /** - * key 过期日期默认300秒 + * key 过期日期默认60秒 * @return */ - int expireTime() default 300; + int expireTime() default 60; /** * 时间单位默认为秒 diff --git a/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java b/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java index 01a74f0eb..7b96bed78 100644 --- a/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java +++ b/mallinkBApi/src/main/java/com/iformall/controller/WxDateAmountRecordController.java @@ -32,21 +32,21 @@ public class WxDateAmountRecordController extends BaseController { @Autowired private WxDateAmountRecordService wxDateAmountRecordService; - @RedisCache(expireTime = 120) + @RedisCache @ApiOperation("首页查询交易金额记录接口") @GetMapping("listOrder") public ResultData listOrder() { return list(EnumDateAmtType.PAY_RECORD.getCode()); } - @RedisCache(expireTime = 120) + @RedisCache @ApiOperation("首页查询核销金额记录接口") @GetMapping("listVerified") public ResultData listVerified() { return list(EnumDateAmtType.VERIFY_RECORD.getCode()); } - @RedisCache(expireTime = 120) + @RedisCache @ApiOperation("首页查询刷卡金额记录接口") @GetMapping("listMicropay") public ResultData listMicropay() { diff --git a/mallinkCApi/src/main/java/com/iformall/annotation/RedisCache.java b/mallinkCApi/src/main/java/com/iformall/annotation/RedisCache.java index da8512502..185736606 100644 --- a/mallinkCApi/src/main/java/com/iformall/annotation/RedisCache.java +++ b/mallinkCApi/src/main/java/com/iformall/annotation/RedisCache.java @@ -40,10 +40,10 @@ public @interface RedisCache { boolean md5() default true ; /** - * key 过期日期默认300秒 + * key 过期日期默认60秒 * @return */ - int expireTime() default 300; + int expireTime() default 60; /** * 时间单位默认为秒 diff --git a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java index bff21da65..2f6b5813b 100644 --- a/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java +++ b/mallinkCApi/src/main/java/com/iformall/controller/WxMallController.java @@ -130,7 +130,7 @@ public class WxMallController extends BaseController { @ApiOperation("删除指定key") @PostMapping("/delRedisKey") - public ResultData delRedisKey(@RequestBody List keys) { + public ResultData delRedisKey(@RequestBody Collection keys) { return new ResultData(redisService.delRedisKey(keys)); } diff --git a/mallinkService/src/main/java/com/iformall/service/RedisService.java b/mallinkService/src/main/java/com/iformall/service/RedisService.java index 1cffaefcd..d1bd09801 100644 --- a/mallinkService/src/main/java/com/iformall/service/RedisService.java +++ b/mallinkService/src/main/java/com/iformall/service/RedisService.java @@ -1,5 +1,6 @@ package com.iformall.service; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -11,12 +12,12 @@ public interface RedisService { * 获取热点缓存接口列表 * @return */ - Set hotApi() ; + Collection hotApi() ; /** * 清除指定key * @param keys * @return */ - boolean delRedisKey(List keys) ; + boolean delRedisKey(Collection keys) ; } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/RedisServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/RedisServiceImpl.java index bd21b508b..4d3a905ee 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/RedisServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/RedisServiceImpl.java @@ -4,9 +4,13 @@ import com.iformall.service.RedisService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.collections.CollectionUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.dao.DataAccessException; +import org.springframework.data.redis.core.RedisOperations; +import org.springframework.data.redis.core.SessionCallback; import org.springframework.data.redis.core.StringRedisTemplate; import org.springframework.stereotype.Service; +import java.util.Collection; import java.util.List; import java.util.Set; @@ -18,28 +22,25 @@ public class RedisServiceImpl implements RedisService { private StringRedisTemplate stringRedisTemplate; @Override - public Set hotApi() { + public Collection hotApi() { return stringRedisTemplate.opsForHash().keys(KEY_HOT_API); } @Override - public boolean delRedisKey(List keys) { + public boolean delRedisKey(Collection keys) { if (CollectionUtils.isEmpty(keys)) { return false; } - boolean result; - stringRedisTemplate.multi(); - try { - stringRedisTemplate.opsForValue().getOperations().delete(keys); - stringRedisTemplate.opsForHash().delete(KEY_HOT_API, keys.toArray()); - result = true; - } catch (Exception e) { - log.error("delRedisKey error", e); - stringRedisTemplate.discard(); - result = false; - } finally { - stringRedisTemplate.exec(); - } + boolean result = stringRedisTemplate.execute(new SessionCallback() { + @Override + public Boolean execute(RedisOperations redisOperations) throws DataAccessException { + redisOperations.multi(); + redisOperations.opsForValue().getOperations().delete(keys); + redisOperations.opsForHash().delete(KEY_HOT_API, keys.toArray()); + redisOperations.exec(); + return true ; + } + }); return result; } }