From 9ec893deb72b917cb2aaf3bbb114654be5148de6 Mon Sep 17 00:00:00 2001 From: pbvfus8to <480171784@qq.com> Date: Wed, 18 Dec 2024 10:38:56 +0800 Subject: [PATCH] Update ShopCartListener.java --- .../shop/api/listener/ShopCartListener.java | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/yami-shop-api/src/main/java/com/yami/shop/api/listener/ShopCartListener.java b/yami-shop-api/src/main/java/com/yami/shop/api/listener/ShopCartListener.java index 4c4087e..49d8fd8 100644 --- a/yami-shop-api/src/main/java/com/yami/shop/api/listener/ShopCartListener.java +++ b/yami-shop-api/src/main/java/com/yami/shop/api/listener/ShopCartListener.java @@ -8,6 +8,7 @@ * 版权所有,侵权必究! */ +// 该类所属的包名,表明其位于商城API相关的监听器包下,主要用于监听与购物车相关的事件,并执行相应的业务逻辑。 package com.yami.shop.api.listener; import com.google.common.collect.Lists; @@ -23,25 +24,38 @@ import org.springframework.stereotype.Component; import java.util.List; /** - * 默认的购物车链进行组装时的操作 + * ShopCartListener类主要用于处理购物车相关事件的监听与操作,在默认的购物车链进行组装时执行特定的业务逻辑。 + * 具体来说,它会接收购物车相关事件(ShopCartEvent),并将店铺下的所有商品按照一定规则归属到该店铺的购物车当中,完成购物车数据的组装工作。 + * * @author LGH */ @Component("defaultShopCartListener") +// 使用@Component注解将该类标记为Spring组件,使得Spring容器能够识别并管理它。同时,为该组件指定了一个名称"defaultShopCartListener", +// 在其他地方可以通过这个名称来获取该组件的实例(例如在基于名称进行依赖注入时)。 public class ShopCartListener { /** - * 将店铺下的所有商品归属到该店铺的购物车当中 - * @param event#getShopCart() 购物车 - * @param event#shopCartItemDtoList 该购物车的商品 - * @return 是否继续组装 + * defaultShopCartEvent方法是一个事件处理方法,用于监听ShopCartEvent类型的事件,并在事件触发时执行相应的购物车数据组装逻辑。 + * 它会获取事件中携带的购物车信息以及购物车商品列表信息,然后进行一系列的操作,将商品信息按照一定的格式组装到购物车相关的数据结构中,以便后续的业务处理。 + * + * @param event 传入的ShopCartEvent类型的事件对象,该对象包含了与购物车相关的重要信息,例如购物车本身的信息(通过event.getShopCart()获取)以及购物车中商品的列表信息(通过event.getShopCartItemDtoList()获取)。 + * 具体来说,event.getShopCart()方法可以获取到ShopCartDto类型的购物车对象,它可能包含购物车的标识、所属用户等基本信息; + * event.getShopCartItemDtoList()方法可以获取到一个包含ShopCartItemDto类型对象的列表,每个ShopCartItemDto对象代表购物车中的一个商品条目,包含商品的详细信息如商品ID、数量、价格等。 */ @EventListener(ShopCartEvent.class) + // @EventListener注解用于标记该方法为一个事件监听器方法,表明它会监听指定类型(这里是ShopCartEvent类型)的事件。当对应的事件在Spring应用上下文中被发布时, + // 该方法就会被自动调用,从而执行相应的业务逻辑来处理这个事件。 @Order(ShopCartEventOrder.DEFAULT) + // @Order注解用于指定该事件监听器的执行顺序。在存在多个相同类型事件监听器的情况下,Spring会按照这个顺序来依次调用它们,确保业务逻辑按照预定的顺序执行。 + // 这里的ShopCartEventOrder.DEFAULT表示该监听器的执行顺序遵循默认的设定,具体的顺序数值可能在ShopCartEventOrder类中定义,它决定了在整个购物车相关事件处理流程中的先后顺序。 public void defaultShopCartEvent(ShopCartEvent event) { ShopCartDto shopCart = event.getShopCartDto(); List shopCartItemDtoList = event.getShopCartItemDtoList(); + // 对数据进行组装 List shopCartItemDiscountDtoList = Lists.newArrayList(); + // 创建一个ShopCartItemDiscountDto对象,用于承载要组装的商品折扣等相关信息(从类名推测,可能涉及商品在购物车中的折扣相关数据处理)。 + // 这里虽然目前只看到简单的设置操作,但可能后续会根据业务需求扩展更多与折扣计算、展示等相关的逻辑。 ShopCartItemDiscountDto shopCartItemDiscountDto = new ShopCartItemDiscountDto(); shopCartItemDiscountDto.setShopCartItems(shopCartItemDtoList); @@ -49,5 +63,4 @@ public class ShopCartListener { shopCart.setShopCartItemDiscounts(shopCartItemDiscountDtoList); } - -} +} \ No newline at end of file