Browse Source

个性化设置增加缓存接口。

master
刘忱 2 years ago
parent
commit
142ddc87fb
  1. 50
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/redis/RedisController.java
  2. 2
      win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/redis/vo/RedisReqVo.java
  3. 57
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/RedisController.java

50
win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/redis/RedisController.java

@ -1,7 +1,11 @@
package com.win.module.infra.controller.redis;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.redis.util.RedisCache;
import com.win.framework.security.core.LoginUser;
import com.win.framework.security.core.util.SecurityFrameworkUtils;
import com.win.module.infra.controller.redis.vo.RedisMonitorRespVO;
import com.win.module.infra.controller.redis.vo.RedisReqVo;
import com.win.module.infra.convert.redis.RedisConvert;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
@ -9,11 +13,10 @@ import org.springframework.data.redis.connection.RedisServerCommands;
import org.springframework.data.redis.core.RedisCallback;
import org.springframework.data.redis.core.StringRedisTemplate;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import java.util.Properties;
import static com.win.framework.common.pojo.CommonResult.success;
@ -25,6 +28,8 @@ public class RedisController {
@Resource
private StringRedisTemplate stringRedisTemplate;
@Resource
private RedisCache redisCache;
@GetMapping("/get-monitor-info")
@Operation(summary = "获得 Redis 监控信息")
@ -33,11 +38,46 @@ public class RedisController {
// 获得 Redis 统计信息
Properties info = stringRedisTemplate.execute((RedisCallback<Properties>) RedisServerCommands::info);
Long dbSize = stringRedisTemplate.execute(RedisServerCommands::dbSize);
Properties commandStats = stringRedisTemplate.execute((
RedisCallback<Properties>) connection -> connection.info("commandstats"));
Properties commandStats = stringRedisTemplate.execute((RedisCallback<Properties>) connection -> connection.info("commandstats"));
assert commandStats != null; // 断言,避免警告
// 拼接结果返回
return success(RedisConvert.INSTANCE.build(info, dbSize, commandStats));
}
/**
* 加入缓存
*/
@PostMapping("/set")
@Operation(summary = "加入缓存")
@PreAuthorize("@ss.hasPermission('infra:redis:set')")
public CommonResult<Boolean> setRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
redisCache.setCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()), reqVO.getValue());
return success(Boolean.TRUE);
}
/**
* 获取缓存
*/
@GetMapping("/get")
@Operation(summary = "获取缓存")
@PreAuthorize("@ss.hasPermission('infra:redis:get')")
public CommonResult<String> getRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
String result = redisCache.getCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()));
return success(result);
}
/**
* 删除缓存
*/
@DeleteMapping("/delete")
@Operation(summary = "删除缓存")
@PreAuthorize("@ss.hasPermission('infra:redis:delete')")
public CommonResult<Boolean> deleteRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Boolean result = redisCache.deleteCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()));
return success(result);
}
}

2
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/vo/RedisReqVo.java → win-module-infra/win-module-infra-biz/src/main/java/com/win/module/infra/controller/redis/vo/RedisReqVo.java

@ -1,4 +1,4 @@
package com.win.module.system.controller.redis.vo;
package com.win.module.infra.controller.redis.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

57
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/RedisController.java

@ -1,57 +0,0 @@
package com.win.module.system.controller.redis;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.redis.util.RedisCache;
import com.win.framework.security.core.LoginUser;
import com.win.framework.security.core.util.SecurityFrameworkUtils;
import com.win.module.system.controller.redis.vo.RedisReqVo;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import javax.validation.Valid;
import static com.win.framework.common.pojo.CommonResult.success;
/**
* 个性化设置增加缓存
*
* @author win
*/
@RestController
@RequestMapping("/system/redis")
public class RedisController {
@Resource
private RedisCache redisCache;
/**
* 加入缓存
*/
@PostMapping("/set")
public CommonResult<Boolean> setRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
redisCache.setCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()), reqVO.getValue());
return success(Boolean.TRUE);
}
/**
* 获取缓存
*/
@GetMapping("/get")
public CommonResult<String> getRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
String result = redisCache.getCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()));
return success(result);
}
/**
* 删除缓存
*/
@DeleteMapping("/delete")
public CommonResult<Boolean> deleteRedisHash(@Valid @RequestBody RedisReqVo reqVO) {
LoginUser loginUser = SecurityFrameworkUtils.getLoginUser();
Boolean result = redisCache.deleteCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId()));
return success(result);
}
}
Loading…
Cancel
Save