From 55d0612a31198acafd2e5fd2e6f20a699dc3d809 Mon Sep 17 00:00:00 2001 From: bunny <1319900154@qq.com> Date: Thu, 28 Mar 2024 14:51:24 +0800 Subject: [PATCH] =?UTF-8?q?feat(=E6=96=B0=E5=A2=9E):=20=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E8=B4=AD=E7=89=A9=E8=BD=A6=E5=95=86=E5=93=81=E5=85=A8=E9=83=A8?= =?UTF-8?q?=E9=80=89=E4=B8=AD=E7=8A=B6=E6=80=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: bunny <1319900154@qq.com> --- .../cart/controller/CartController.java | 7 ++++++ .../com/atguigu/cart/service/CartService.java | 7 ++++++ .../cart/service/impl/CartServiceImpl.java | 22 +++++++++++++++++++ 3 files changed, 36 insertions(+) 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 a086d49..45c0c98 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 @@ -48,4 +48,11 @@ public class CartController { cartService.checkCart(skuId, isChecked); return Result.success(); } + + @Operation(summary = "更新购物车商品全部选中状态") + @GetMapping("/auth/allCheckCart/{isChecked}") + public Result allCheckCart(@Parameter(name = "isChecked", description = "是否选中 1:选中 0:取消选中", required = true) @PathVariable(value = "isChecked") Integer isChecked) { + cartService.allCheckCart(isChecked); + return Result.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 f4dc7b7..4c1288e 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 @@ -34,4 +34,11 @@ public interface CartService { * @param isChecked 是否选中 */ void checkCart(Long skuId, Integer isChecked); + + /** + * 更新购物车商品全部选中状态 + * + * @param isChecked 是否选中 + */ + void allCheckCart(Integer isChecked); } 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 3217d79..614dfda 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 @@ -125,4 +125,26 @@ public class CartServiceImpl implements CartService { redisTemplate.opsForHash().put(cartKey, String.valueOf(skuId), JSON.toJSONString(cartInfo)); } } + + /** + * 更新购物车商品全部选中状态 + * + * @param isChecked 是否选中 + */ + @Override + public void allCheckCart(Integer isChecked) { + // 获取当前登录的用户数据 + Long userId = BaseContext.getUserInfo().getId(); + String cartKey = userId.toString(); + + // 获取所有的购物项数据 + List objectList = redisTemplate.opsForHash().values(cartKey); + if (!CollectionUtils.isEmpty(objectList)) { + objectList.stream().map(cartInfoJSON -> { + CartInfo cartInfo = JSON.parseObject(cartInfoJSON.toString(), CartInfo.class); + cartInfo.setIsChecked(isChecked); + return cartInfo; + }).forEach(cartInfo -> redisTemplate.opsForHash().put(cartKey, String.valueOf(cartInfo.getSkuId()), JSON.toJSONString(cartInfo))); + } + } }