1.店铺营业状态设置
需求分析和设计
左上角要求是有回显的
所以至少两个接口
1.查询营业状态接口(分为了管理端和用户端)
2.修改营业状态接口
因为管理端和用户端路径不同,所以现在是至少三个接口的
可以发现如果存到表里除了id只有一个字段且只有一列
所以 我们存储到redis中,提高效率
代码开发
管理端
java
@RestController("adminShopController")
@RequestMapping("/admin/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {//这种操作redis都用不到service和dao
public static final String KEY = "SHOP_STATUS";
@Autowired
private RedisTemplate redisTemplate;
@ApiOperation("设置店铺营业状态")
@PutMapping("/{status}")
public Result setStatus(@PathVariable Integer status){
log.info("设置店铺营业状态为:{}",status==1 ? "营业中" : "打烊中");
ValueOperations valueOperations = redisTemplate.opsForValue();
valueOperations.set(KEY,status);
return Result.success();
}
@ApiOperation("查询店铺营业状态")
@GetMapping("/status")
public Result<Integer> getStatus(){
//之前用Integer存进去的,所以取的时候也用Integer
Integer status = (Integer)redisTemplate.opsForValue().get(KEY);
log.info("获取店铺营业状态为:{}",status==1 ? "营业中" : "打烊中");
return Result.success(status);
}
}
用户端
java
@RestController("userShopController")
@RequestMapping("/user/shop")
@Api(tags = "店铺相关接口")
@Slf4j
public class ShopController {//这种操作redis都用不到service和dao
public static final String KEY = "SHOP_STATUS";
@Autowired
private RedisTemplate redisTemplate;
@ApiOperation("查询店铺营业状态")
@GetMapping("/status")
public Result<Integer> getStatus(){
//之前用Integer存进去的,所以取的时候也用Integer
Integer status = (Integer)redisTemplate.opsForValue().get(KEY);
log.info("获取店铺营业状态为:{}",status==1 ? "营业中" : "打烊中");
return Result.success(status);
}
}
功能测试
注意:一定要保证redis,idea项目同时开启才可以修改状态
(可以自己研究一下吧redis变成默认开启服务)