|
|
|
@ -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<ShopCartItemDto> shopCartItemDtoList = event.getShopCartItemDtoList();
|
|
|
|
|
|
|
|
|
|
// 对数据进行组装
|
|
|
|
|
List<ShopCartItemDiscountDto> shopCartItemDiscountDtoList = Lists.newArrayList();
|
|
|
|
|
// 创建一个ShopCartItemDiscountDto对象,用于承载要组装的商品折扣等相关信息(从类名推测,可能涉及商品在购物车中的折扣相关数据处理)。
|
|
|
|
|
// 这里虽然目前只看到简单的设置操作,但可能后续会根据业务需求扩展更多与折扣计算、展示等相关的逻辑。
|
|
|
|
|
ShopCartItemDiscountDto shopCartItemDiscountDto = new ShopCartItemDiscountDto();
|
|
|
|
|
|
|
|
|
|
shopCartItemDiscountDto.setShopCartItems(shopCartItemDtoList);
|
|
|
|
@ -49,5 +63,4 @@ public class ShopCartListener {
|
|
|
|
|
|
|
|
|
|
shopCart.setShopCartItemDiscounts(shopCartItemDiscountDtoList);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|