diff --git a/sky-server/src/main/java/com/sky/config/RedisConfiguration.java b/sky-server/src/main/java/com/sky/config/RedisConfiguration.java index cd24054..72d6537 100644 --- a/sky-server/src/main/java/com/sky/config/RedisConfiguration.java +++ b/sky-server/src/main/java/com/sky/config/RedisConfiguration.java @@ -3,23 +3,30 @@ package com.sky.config; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Configurable; import org.springframework.context.annotation.Bean; +import org.springframework.context.annotation.Configuration; import org.springframework.data.redis.connection.RedisConnectionFactory; +import org.springframework.data.redis.connection.lettuce.LettuceConnectionFactory; import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.data.redis.serializer.GenericJackson2JsonRedisSerializer; import org.springframework.data.redis.serializer.StringRedisSerializer; import javax.annotation.Resource; -@Configurable +@Configuration @Slf4j public class RedisConfiguration { - @Resource - RedisTemplate redisTemplate; @Bean - public RedisTemplate redisTemplate(RedisConnectionFactory redisConnectionFactory) { - // 设置redis的连接工厂对象 - redisTemplate.setConnectionFactory(redisConnectionFactory); + public RedisTemplate redisTemplate(LettuceConnectionFactory lettuceConnectionFactory) { + RedisTemplate redisTemplate = new RedisTemplate<>(); + redisTemplate.setConnectionFactory(lettuceConnectionFactory); + // 设置key序列化为string redisTemplate.setKeySerializer(new StringRedisSerializer()); + // 设置value序列化为JSON,使用GenericJackson2JsonRedisSerializer替换默认序列化 + redisTemplate.setValueSerializer(new GenericJackson2JsonRedisSerializer()); + redisTemplate.setHashKeySerializer(new StringRedisSerializer()); + redisTemplate.setHashValueSerializer(new GenericJackson2JsonRedisSerializer()); + return redisTemplate; } } diff --git a/sky-server/src/main/java/com/sky/controller/admin/ShopController.java b/sky-server/src/main/java/com/sky/controller/admin/ShopController.java new file mode 100644 index 0000000..f79a623 --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/admin/ShopController.java @@ -0,0 +1,45 @@ +package com.sky.controller.admin; + +import com.sky.result.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.*; + +import javax.annotation.Resource; + +@RestController("adminShopController") +@RequestMapping("/admin/shop") +@Api(tags = "店铺相关接口") +@Slf4j +public class ShopController { + public static final String KEY = "SHOP_STATUS"; + + @Resource + private RedisTemplate redisTemplate; + + /** + * 设置店铺营业状态 + * + * @param status 状态 + * @return 结果 + */ + @ApiOperation("设置店铺营业状态") + @PutMapping("/{status}") + public Result setStatus(@PathVariable Integer status) { + log.info("设置店铺营业状态:{}", status == 1 ? "营业中" : "打样中"); + redisTemplate.opsForValue().set(KEY, status); + + return Result.success(); + } + + @ApiOperation(("获取店铺营业状态")) + @GetMapping("/{status}") + public Result getStatus() { + Integer status = (Integer) redisTemplate.opsForValue().get(KEY); + log.info("获取当前店铺营业状态:{}", status == 1 ? "营业中" : "打样中"); + + return Result.success(status); + } +} diff --git a/sky-server/src/main/java/com/sky/controller/user/ShopController.java b/sky-server/src/main/java/com/sky/controller/user/ShopController.java new file mode 100644 index 0000000..3818267 --- /dev/null +++ b/sky-server/src/main/java/com/sky/controller/user/ShopController.java @@ -0,0 +1,31 @@ +package com.sky.controller.user; + +import com.sky.result.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import lombok.extern.slf4j.Slf4j; +import org.springframework.data.redis.core.RedisTemplate; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PathVariable; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +import javax.annotation.Resource; + +@RestController("userShopController") +@RequestMapping("/admin/user") +@Api(tags = "用户店铺相关接口") +@Slf4j +public class ShopController { + public static final String KEY = "SHOP_STATUS"; + @Resource + private RedisTemplate redisTemplate; + + @ApiOperation("设置店铺营业状态") + @GetMapping("/{status}") + public Result setStatus(@PathVariable Integer status) { + log.info("设置店铺营业状态:{}", status == 1 ? "营业中" : "打样中"); + redisTemplate.opsForValue().set(KEY, status); + return Result.success(); + } +}