From c92f24634117e605a52f3b732129bfc4f078d113 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Thu, 28 Mar 2024 14:47:27 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E6=9F=A5=E8=AF=A2?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: bunny <1319900154@qq.com> --- .../src/main/resources/application.yml | 4 +++ .../cart/controller/CartController.java | 11 ++++++++ .../com/atguigu/cart/service/CartService.java | 11 ++++++++ .../cart/service/impl/CartServiceImpl.java | 27 +++++++++++++++++++ 4 files changed, 53 insertions(+) diff --git a/spzx-server-gateway/src/main/resources/application.yml b/spzx-server-gateway/src/main/resources/application.yml index 622350a..5d44fac 100644 --- a/spzx-server-gateway/src/main/resources/application.yml +++ b/spzx-server-gateway/src/main/resources/application.yml @@ -47,6 +47,10 @@ spring: uri: lb://service-order predicates: - Path=/*/order/** + - id: service-cart + uri: lb://service-cart + predicates: + - Path=/*/order/cart/** data: redis: host: ${bunny.redis.host} diff --git a/spzx-service/service-cart/src/main/java/com/atguigu/cart/controller/CartController.java b/spzx-service/service-cart/src/main/java/com/atguigu/cart/controller/CartController.java index 716db4c..d217a27 100644 --- a/spzx-service/service-cart/src/main/java/com/atguigu/cart/controller/CartController.java +++ b/spzx-service/service-cart/src/main/java/com/atguigu/cart/controller/CartController.java @@ -1,7 +1,9 @@ package com.atguigu.cart.controller; import com.atguigu.cart.service.CartService; +import com.atguigu.spzx.model.entity.h5.CartInfo; import com.atguigu.spzx.model.vo.result.Result; +import com.atguigu.spzx.model.vo.result.ResultCodeEnum; import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Parameter; import io.swagger.v3.oas.annotations.tags.Tag; @@ -11,6 +13,8 @@ import org.springframework.web.bind.annotation.PathVariable; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; +import java.util.List; + @Tag(name = "购物车接口") @RestController @RequestMapping("api/order/cart") @@ -25,4 +29,11 @@ public class CartController { cartService.addToCart(skuId, skuNum); return Result.success(); } + + @Operation(summary = "查询购物车") + @GetMapping("auth/cartList") + public Result> cartList() { + List cartInfoList = cartService.getCartList(); + return Result.build(cartInfoList, ResultCodeEnum.SUCCESS); + } } \ No newline at end of file diff --git a/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/CartService.java b/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/CartService.java index 89d1b53..e572a18 100644 --- a/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/CartService.java +++ b/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/CartService.java @@ -1,5 +1,9 @@ package com.atguigu.cart.service; +import com.atguigu.spzx.model.entity.h5.CartInfo; + +import java.util.List; + public interface CartService { /** * 添加购物车 @@ -8,4 +12,11 @@ public interface CartService { * @param skuNum 商品数量 */ void addToCart(Long skuId, Integer skuNum); + + /** + * 查询购物车 + * + * @return 购物车列表 + */ + List getCartList(); } diff --git a/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/impl/CartServiceImpl.java b/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/impl/CartServiceImpl.java index 9cc33c0..ab84d51 100644 --- a/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/impl/CartServiceImpl.java +++ b/spzx-service/service-cart/src/main/java/com/atguigu/cart/service/impl/CartServiceImpl.java @@ -1,6 +1,7 @@ package com.atguigu.cart.service.impl; import com.alibaba.fastjson.JSON; +import com.alibaba.nacos.client.naming.utils.CollectionUtils; import com.atguigu.cart.service.CartService; import com.atguigu.context.BaseContext; import com.atguigu.feign.product.ProductFeignClient; @@ -11,7 +12,10 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.data.redis.core.RedisTemplate; import org.springframework.stereotype.Service; +import java.util.ArrayList; import java.util.Date; +import java.util.List; +import java.util.stream.Collectors; @Service public class CartServiceImpl implements CartService { @@ -61,4 +65,27 @@ public class CartServiceImpl implements CartService { // 将商品数据存储到购物车中 redisTemplate.opsForHash().put(cartKey, String.valueOf(skuId), JSON.toJSONString(cartInfo)); } + + /** + * 查询购物车 + * + * @return 购物车列表 + */ + @Override + public List getCartList() { + // 获取当前登录的用户信息 + Long userId = BaseContext.getUserInfo().getId(); + String cartKey = userId.toString(); + + // 获取数据 + List cartInfoList = redisTemplate.opsForHash().values(cartKey); + + if (!CollectionUtils.isEmpty(cartInfoList)) { + return cartInfoList.stream().map(cartInfoJSON -> JSON.parseObject(cartInfoJSON.toString(), CartInfo.class)) + .sorted((o1, o2) -> o2.getCreateTime().compareTo(o1.getCreateTime())) + .collect(Collectors.toList()); + } + + return new ArrayList<>(); + } }