From bfa1377737eec794d10e41964f2ff514ce2d0dc0 Mon Sep 17 00:00:00 2001
From: jieyuu <645634619@qq.com>
Date: Sat, 17 Aug 2024 11:27:24 +0800
Subject: [PATCH] =?UTF-8?q?=E6=9F=A5=E7=9C=8B=E8=B4=AD=E7=89=A9=E8=BD=A6?=
=?UTF-8?q?=E6=8E=A5=E5=8F=A3=E5=BC=80=E5=8F=91?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.../net/jieyuu/controller/CartController.java | 11 ++-
.../java/net/jieyuu/service/CartService.java | 9 +++
.../net/jieyuu/service/ProductService.java | 17 ++++-
.../jieyuu/service/impl/CartServiceImpl.java | 69 +++++++++++++++++++
.../service/impl/ProductServiceImpl.java | 8 +++
.../src/main/java/net/jieyuu/vo/CartVO.java | 2 +-
6 files changed, 110 insertions(+), 6 deletions(-)
diff --git a/xdclass-product-service/src/main/java/net/jieyuu/controller/CartController.java b/xdclass-product-service/src/main/java/net/jieyuu/controller/CartController.java
index 642d092..e8371bc 100644
--- a/xdclass-product-service/src/main/java/net/jieyuu/controller/CartController.java
+++ b/xdclass-product-service/src/main/java/net/jieyuu/controller/CartController.java
@@ -8,6 +8,7 @@ import net.jieyuu.request.CartItemRequest;
import net.jieyuu.service.CartService;
import net.jieyuu.service.ProductService;
import net.jieyuu.utils.JsonData;
+import net.jieyuu.vo.CartVO;
import net.jieyuu.vo.ProductVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
@@ -34,7 +35,7 @@ public class CartController {
@ApiOperation("添加到购物车")
- @PostMapping("add")
+ @PostMapping("/add")
public JsonData addToCart(@ApiParam("购物项") @RequestBody CartItemRequest cartItemRequest) {
cartService.addToCart(cartItemRequest);
return JsonData.buildSuccess();
@@ -42,10 +43,16 @@ public class CartController {
@ApiOperation("清空购物车")
- @DeleteMapping("clear")
+ @DeleteMapping("/clear")
public JsonData clearMyCart() {
cartService.clear();
return JsonData.buildSuccess();
}
+ @ApiOperation("查找购物车")
+ @GetMapping("/mycart")
+ public JsonData findMyCart() {
+ CartVO cartVO = cartService.getMyCart();
+ return JsonData.buildSuccess(cartVO);
+ }
}
\ No newline at end of file
diff --git a/xdclass-product-service/src/main/java/net/jieyuu/service/CartService.java b/xdclass-product-service/src/main/java/net/jieyuu/service/CartService.java
index 4f60185..0445c34 100644
--- a/xdclass-product-service/src/main/java/net/jieyuu/service/CartService.java
+++ b/xdclass-product-service/src/main/java/net/jieyuu/service/CartService.java
@@ -1,10 +1,12 @@
package net.jieyuu.service;
import net.jieyuu.request.CartItemRequest;
+import net.jieyuu.vo.CartVO;
public interface CartService {
/**
* 添加商品到购物车
+ *
* @param cartItemRequest
*/
public void addToCart(CartItemRequest cartItemRequest);
@@ -13,4 +15,11 @@ public interface CartService {
* 清空购物车
*/
void clear();
+
+ /**
+ * 查看购物车
+ *
+ * @return
+ */
+ CartVO getMyCart();
}
diff --git a/xdclass-product-service/src/main/java/net/jieyuu/service/ProductService.java b/xdclass-product-service/src/main/java/net/jieyuu/service/ProductService.java
index 69b63ba..a068096 100644
--- a/xdclass-product-service/src/main/java/net/jieyuu/service/ProductService.java
+++ b/xdclass-product-service/src/main/java/net/jieyuu/service/ProductService.java
@@ -4,30 +4,41 @@ import net.jieyuu.model.ProductDO;
import com.baomidou.mybatisplus.extension.service.IService;
import net.jieyuu.vo.ProductVO;
+import java.util.List;
import java.util.Map;
/**
*
- * 服务类
+ * 服务类
*
*
* @author jieyuu
* @since 2024-08-07
*/
-public interface ProductService {
+public interface ProductService {
/**
* 分页查询商品列表
+ *
* @param page
* @param size
* @return
*/
- Map page(int page,int size);
+ Map page(int page, int size);
/**
* 根据id查找商品详情
+ *
* @param productId
* @return
*/
ProductVO findDetailById(long productId);
+
+ /**
+ * 根据id批量查询商品
+ *
+ * @param productIdList
+ * @return
+ */
+ List findProductByIdBatch(List productIdList);
}
diff --git a/xdclass-product-service/src/main/java/net/jieyuu/service/impl/CartServiceImpl.java b/xdclass-product-service/src/main/java/net/jieyuu/service/impl/CartServiceImpl.java
index 9aa739f..fe0baec 100644
--- a/xdclass-product-service/src/main/java/net/jieyuu/service/impl/CartServiceImpl.java
+++ b/xdclass-product-service/src/main/java/net/jieyuu/service/impl/CartServiceImpl.java
@@ -8,10 +8,12 @@ import net.jieyuu.enums.BizCodeEnum;
import net.jieyuu.exception.BizException;
import net.jieyuu.interceptor.LoginInterceptor;
import net.jieyuu.model.LoginUser;
+import net.jieyuu.model.ProductDO;
import net.jieyuu.request.CartItemRequest;
import net.jieyuu.service.CartService;
import net.jieyuu.service.ProductService;
import net.jieyuu.vo.CartItemVO;
+import net.jieyuu.vo.CartVO;
import net.jieyuu.vo.ProductVO;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
@@ -19,6 +21,12 @@ import org.springframework.data.redis.core.BoundHashOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.function.Function;
+import java.util.stream.Collectors;
+
@Service
@Slf4j
public class CartServiceImpl implements CartService {
@@ -77,6 +85,67 @@ public class CartServiceImpl implements CartService {
redisTemplate.delete(cartKey);
}
+ @Override
+ public CartVO getMyCart() {
+ // 获取全部cart
+ List cartItemVOList = buildCartItem(false);
+ //拼装cartVO
+ CartVO cartVO = new CartVO();
+ cartVO.setCartItems(cartItemVOList);
+ return cartVO;
+ }
+
+ /**
+ * 获取最新购物项
+ *
+ * @param latestPrice
+ * @return
+ */
+ private List buildCartItem(boolean latestPrice) {
+ BoundHashOperations myCartOps = getMyCartOps();
+
+ List