跳到主要内容

基于内置事件二开

在javashop中如果要消费已经定义好的业务消息,如订单状态改变,会员注册等这些,并不需要自己去接收amqp消息
只需要实现一些特定的接口,其它javashop会帮你来完成

一、根据业务需要实现相应事件

1、创建一个consumer消费者,命令可以使用<相关的业务+Consumer>命名

2、implements相关的内置事件,如OrderStatusChangeEvent

3、加上@service注解,交给spring容器管理

4、实现event事件中的方法,方法体填充具体的业务即可

比如需求在订单变为某个状态后,修改商品单信息,如下:

@Service
public class OrderGoodsConsumer implements OrderStatusChangeEvent{
@Override
public void orderChange(OrderStatusChangeMsg orderMessage) {
//在这里处理具体的业务
}
}

注意要@service,使其作为bean注入到spring容器中

二、内置事件列表

名称事件
AfterSaleChangeEvent售后服务单状态变化事件
AskReplyEvent会员商品咨询回复事件
ASNewOrderEvent售后服务创建新订单事件
CategoryChangeEvent商品分类变化事件
GoodsChangeEvent商品变化事件
GoodsCommentEvent商品评论事件
GoodsIndexInitEvent商品索引初始化事件
GoodsPriorityChangeEvent商品搜索优先级变化事件
GoodsSkuChangeEvent商品sku变化事件
GoodsWordsChangeEvent商品搜索提示词变化事件
HelpChangeEvent帮助变化事件
IndexChangeEvent首页改变事件
MemberAskSendMessageEvent会员商品咨询事件
MemberHistoryEvent会员浏览足迹事件
MemberInfoChangeEvent会员资料修改事件
MemberInfoCompleteEvent会员完善个人信息事件
MemberLoginEvent会员登陆事件
MemberMessageEvent站内消息事件
MemberRegisterEvent会员注册事件
MobileIndexChangeEvent移动端首页改变事件
OnlinePayEvent在线支付事件
OrderStatusChangeEvent订单状态改变事件
PageCreateEvent页面创建事件
PintuanSuccessEvent拼团成功事件
SearchKeywordEvent搜索关键字历史变更事件
SendEmailEvent发送邮件事件
ShipTemplateChangeEvent运费模板更新事件
ShopChangeEvent店铺信息变更事件
ShopCollectionEvent店铺收藏信息变更事件
ShopStatusChangeEvent店铺状态变更事件
SiteNavigationChangeEvent站点导航变化事件
SmsSendMessageEvent发送短信事件
TradeIntoDbEvent交易入库事件
EveryHourExecute定时任务—每小时执行事件
EveryDayExecute定时任务—每天执行事件
EveryMonthExecute定时任务—每月执行事件
EveryYearExecute定时任务—每年执行事件