package cn.iocoder.yudao.module.promotion.mq.consumer.coupon; import cn.iocoder.yudao.module.member.api.message.user.MemberUserCreateMessage; import cn.iocoder.yudao.module.promotion.service.coupon.CouponService; import lombok.extern.slf4j.Slf4j; import org.springframework.context.event.EventListener; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import jakarta.annotation.Resource; /** * 用户注册时,发送优惠劵的消费者,基 {@link MemberUserCreateMessage} 消息 * * @author owen */ @Component @Slf4j public class CouponTakeByRegisterConsumer { @Resource private CouponService couponService; @EventListener @Async // Spring Event 默认在 Producer 发送的线程,通过 @Async 实现异步 public void onMessage(MemberUserCreateMessage message) { log.info("[onMessage][消息内容({})]", message); couponService.takeCouponByRegister(message.getUserId()); } }