diff --git a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/util/QueryWrapperUtils.java b/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/util/QueryWrapperUtils.java index 5af2c0b5..d0d29f20 100644 --- a/win-framework/win-spring-boot-starter-mybatis/src/main/java/com/win/framework/mybatis/core/util/QueryWrapperUtils.java +++ b/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 QueryWrapper structure(ConditionVo conditionVo) { QueryWrapper 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()) { diff --git a/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/package-info.java b/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/package-info.java deleted file mode 100644 index 7be362f0..00000000 --- a/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/package-info.java +++ /dev/null @@ -1,4 +0,0 @@ -/** - * 采用 Spring Data Redis 操作 Redis,底层使用 Redisson 作为客户端 - */ -package com.win.framework.redis; diff --git a/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/util/RedisCache.java b/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/util/RedisCache.java index c4630073..17db582c 100644 --- a/win-framework/win-spring-boot-starter-redis/src/main/java/com/win/framework/redis/util/RedisCache.java +++ b/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; diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/RedisController.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/RedisController.java new file mode 100644 index 00000000..8192bb64 --- /dev/null +++ b/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 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 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 deleteRedisHash(@Valid @RequestBody RedisReqVo reqVO) { + LoginUser loginUser = SecurityFrameworkUtils.getLoginUser(); + Boolean result = redisCache.deleteCacheMapValue(reqVO.getKey(), String.valueOf(loginUser.getId())); + return success(result); + } + +} diff --git a/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/vo/RedisReqVo.java b/win-module-system/win-module-system-biz/src/main/java/com/win/module/system/controller/redis/vo/RedisReqVo.java new file mode 100644 index 00000000..99cd5da9 --- /dev/null +++ b/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; + +}