refactor: 按用户缓存

This commit is contained in:
曹鹏飞 2024-04-10 15:05:09 +08:00
parent cdfdb4b0ce
commit a50007a526
1 changed files with 31 additions and 9 deletions

View File

@ -1,14 +1,16 @@
package com.nflg.product.bomnew.api.user;
import cn.hutool.core.util.StrUtil;
import com.nflg.product.base.core.api.BaseApi;
import com.nflg.product.base.core.conmon.util.SessionUtil;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import nflg.product.common.vo.ResultVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.lang.NonNull;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
/**
@ -22,26 +24,46 @@ public class CacheApi extends BaseApi {
private static final String PREFIX = "frontend:";
@Autowired
@Resource
private RedisTemplate<String, String> redisTemplate;
/**
* 设置用户缓存
* @param key 缓存key
* @param content 缓存内容
* @return
*/
@PostMapping("set")
@ApiOperation("设置缓存")
public ResultVO setCache(@Valid @RequestParam @NonNull String key, @Valid @RequestParam @NonNull String content) {
redisTemplate.boundValueOps(PREFIX + key).set(content);
public ResultVO<String> setCache(@Valid @RequestParam @NonNull String key, @Valid @RequestParam @NonNull String content) {
redisTemplate.boundValueOps(buildKey(key)).set(content);
return ResultVO.success();
}
/**
* 获取用户缓存
* @param key 缓存key
* @return
*/
@GetMapping("get")
@ApiOperation("获取缓存")
public ResultVO getCache(@Valid @RequestParam @NonNull String key) {
return ResultVO.success(redisTemplate.boundValueOps(PREFIX + key).get());
public ResultVO<String> getCache(@Valid @RequestParam @NonNull String key) {
return ResultVO.success(redisTemplate.boundValueOps(buildKey(key)).get());
}
@PostMapping("del")
/**
* 删除用户缓存
* @param key 缓存key
* @return
*/
@DeleteMapping("del")
@ApiOperation("删除缓存")
public ResultVO delCache(@Valid @RequestParam @NonNull String key) {
redisTemplate.delete(PREFIX + key);
public ResultVO<String> delCache(@Valid @RequestParam @NonNull String key) {
redisTemplate.delete(buildKey(key));
return ResultVO.success();
}
private String buildKey(String key) {
return StrUtil.format("{}:{}:{}", PREFIX, SessionUtil.getUserCode(), key);
}
}