Browse Source

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

master
刘忱 2 years ago
parent
commit
88970b6639
  1. 8
      win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/util/QueryWrapperUtils.java
  2. 4
      win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/package-info.java
  3. 2
      win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/util/RedisCache.java
  4. 57
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/RedisController.java
  5. 26
      win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/vo/RedisReqVo.java

8
win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/util/QueryWrapperUtils.java

@ -2,8 +2,10 @@ package com.win.framework.mybatis.core.util;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.google.common.base.CaseFormat;
import com.win.framework.common.util.collection.CollectionUtils;
import com.win.framework.mybatis.core.vo.ConditionVo;
import com.win.framework.mybatis.core.vo.FilterVo;
import org.apache.commons.lang3.StringUtils;
/**
* QueryWrapper工具类
@ -19,15 +21,15 @@ public class QueryWrapperUtils {
public static <T> QueryWrapper<T> structure(ConditionVo<T> conditionVo) {
QueryWrapper<T> queryWrapper = new QueryWrapper<>();
String sorting = conditionVo.getSort();
if(sorting != null && !sorting.equals("")) {
if(StringUtils.isEmpty(sorting)) {
sorting = CaseFormat.LOWER_CAMEL.to(CaseFormat.LOWER_UNDERSCORE, sorting);
if(conditionVo.getBy() != null && conditionVo.getBy().equalsIgnoreCase("DESC")) {
if(StringUtils.equalsIgnoreCase(conditionVo.getBy(), "DESC")) {
queryWrapper.orderByDesc(sorting);
} else {
queryWrapper.orderByAsc(sorting);
}
}
if(conditionVo.getFilters() == null || conditionVo.getFilters().size() == 0) {
if(CollectionUtils.isAnyEmpty(conditionVo.getFilters())) {
return queryWrapper;
}
for(FilterVo filterVo : conditionVo.getFilters()) {

4
win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/package-info.java

@ -1,4 +0,0 @@
/**
* 采用 Spring Data Redis 操作 Redis底层使用 Redisson 作为客户端
*/
package com.win.framework.redis;

2
win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/util/RedisCache.java

@ -5,7 +5,6 @@ import org.springframework.data.redis.core.BoundSetOperations;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Component;
import java.util.*;
import java.util.concurrent.TimeUnit;
@ -16,7 +15,6 @@ import java.util.concurrent.TimeUnit;
* @author win
**/
@SuppressWarnings(value = {"unchecked", "rawtypes"})
@Component
public class RedisCache {
@Autowired
public RedisTemplate redisTemplate;

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

@ -0,0 +1,57 @@
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);
}
}

26
win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/vo/RedisReqVo.java

@ -0,0 +1,26 @@
package com.win.module.system.controller.redis.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.Pattern;
import javax.validation.constraints.Size;
/**
* 个性化设置增加缓存接口
*/
@Data
public class RedisReqVo {
@Schema(description = "缓存键", requiredMode = Schema.RequiredMode.REQUIRED, example = "basic_itembasic")
@NotBlank(message = "缓存键不能为空")
@Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "缓存键账号由 数字、字母 组成")
@Size(min = 4, max = 30, message = "缓存键长度为 4-30 个字符")
private String key;
@Schema(description = "缓存值", requiredMode = Schema.RequiredMode.REQUIRED, example = "个性化列表")
@NotBlank(message = "缓存值不能为空")
private String value;
}
Loading…
Cancel
Save