文章目录
一.Redis入门
Redis服务启动与停止&&可视化客户端
二.Redis数据类型
三.Redis常用命令
四.在Java中操作Redis
根据RdisTemplate获取不同的类型数据操作是非常重要的!
五.店铺营业状态设置
1.需求分析和设计
2.代码开发
在admin包下的ShopController类下:
@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Api(tags = "店铺操作相关接口")
@Slf4j
public class ShopController {
public static final String KEY = "SHOP_STATUS";
@Autowired
private RedisTemplate redisTemplate;
/**
* 设置店铺营业状态
* @param status
* @return
*/
@PutMapping("/{status}")
@ApiOperation("设置店铺营业状态")
public Result<String> setStatus(@PathVariable Integer status) {
log.info("设置营业状态为:{}", status == 1 ? "营业中" : "打样中");
redisTemplate.opsForValue().set(KEY, status);
return Result.success();
}
/**
* 查询店铺营业状态
* @return
*/
@GetMapping("/status")
@ApiOperation("查询店铺营业状态")
public Result<Integer> getStatus(){
Integer status = (Integer) redisTemplate.opsForValue().get(KEY);
log.info("查询店铺营业状态为:{}", status == 1 ? "营业中" : "打烊中");
return Result.success(status);
}
}
在user包下的ShopController类下:
@RestController("userShopController")
@RequestMapping("/user/shop")
@Api(tags = "店铺操作相关接口")
@Slf4j
public class ShopController {
public static final String KEY = "SHOP_STATUS";
@Autowired
private RedisTemplate redisTemplate;
/**
* 查询店铺营业状态
* @return
*/
@GetMapping("/status")
@ApiOperation("查询店铺营业状态")
public Result<Integer> getStatus(){
Integer status = (Integer) redisTemplate.opsForValue().get(KEY);
log.info("查询店铺营业状态为:{}", status == 1 ? "营业中" : "打烊中");
return Result.success(status);
}
}
3.在WebMvcConfiguration类下,配置两个Docket方法用于分组不同的接口文档
/**
* 通过knife4j生成接口文档
* @return
*/
@Bean
public Docket docket1() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("2.0")
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName("管理端接口")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller.admin"))
.paths(PathSelectors.any())
.build();
return docket;
}
@Bean
public Docket docket2() {
ApiInfo apiInfo = new ApiInfoBuilder()
.title("苍穹外卖项目接口文档")
.version("2.0")
.description("苍穹外卖项目接口文档")
.build();
Docket docket = new Docket(DocumentationType.SWAGGER_2)
.groupName("用户端接口")
.apiInfo(apiInfo)
.select()
.apis(RequestHandlerSelectors.basePackage("com.sky.controller.user"))
.paths(PathSelectors.any())
.build();
return docket;
}
功能测试:通过前后端联调测试和接口文档测试