企业级开发项目“苍穹外卖”(三)

发布时间 2023-09-17 16:43:46作者: 何平安

设置店铺营业状态

先去我之前写的博客“Redis数据库学习笔记"学习Redis的基本操作。

在config层下创建Redis的配置类,里面编写:

@Configuration
@Slf4j
public class RedisConfiguration {

    @Bean
    public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory){
        log.info("开始创建redis对象:{}",redisConnectionFactory);
        RedisTemplate redisTemplate  = new RedisTemplate();
        //设置redis工厂对象
        redisTemplate.setConnectionFactory(redisConnectionFactory);
        //设置redis序列化器
        redisTemplate.setKeySerializer(new StringRedisSerializer());
        return redisTemplate;
    }
}

 然后再在controller层里面创建shop店铺管理的类,里面编写设置店铺状态和查询店铺状态的代码:

@RestController("adminShopController")
@Slf4j
@Api(tags = "店铺管理")
@RequestMapping("/admin/shop")
public class ShopController {

    @Autowired
    private RedisTemplate redisTemplate;

    @PutMapping("/{status}")
    @ApiOperation("设置店铺营业状态")
    public Result setStaus(@PathVariable Integer status){
        log.info("设置店铺营业状态:{}",status ==1 ?"营业中": "打烊中");
        redisTemplate.opsForValue().set("SHOP_STATUS",status);
        return Result.success();
    }

    @GetMapping("/status")
    @ApiOperation("获取店铺营业状态")
    public Result<Integer> getStatus(){
        Integer shopStatus = (Integer) redisTemplate.opsForValue().get("SHOP_STATUS");
        log.info("获取店铺营业状态:{}",shopStatus ==1 ?"营业中": "打烊中");
        return Result.success(shopStatus);
    }
}