优惠券:新人券使用 MQ 发放
parent
497ea2eee8
commit
fc432ba073
@ -0,0 +1,29 @@
|
|||||||
|
package cn.iocoder.yudao.module.promotion.mq.consumer.coupon;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessageListener;
|
||||||
|
import cn.iocoder.yudao.module.member.mq.message.user.RegisterCouponSendMessage;
|
||||||
|
import cn.iocoder.yudao.module.promotion.service.coupon.CouponService;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 针对 {@link RegisterCouponSendMessage} 的消费者
|
||||||
|
*
|
||||||
|
* @author owen
|
||||||
|
*/
|
||||||
|
@Component
|
||||||
|
@Slf4j
|
||||||
|
public class RegisterCouponSendConsumer extends AbstractStreamMessageListener<RegisterCouponSendMessage> {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private CouponService couponService;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void onMessage(RegisterCouponSendMessage message) {
|
||||||
|
log.info("[onMessage][消息内容({})]", message);
|
||||||
|
couponService.takeCouponByRegister(message.getUserId());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,29 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.mq.message.user;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mq.core.stream.AbstractStreamMessage;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新人券发放消息
|
||||||
|
*
|
||||||
|
* @author owen
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = true)
|
||||||
|
public class RegisterCouponSendMessage extends AbstractStreamMessage {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 用户编号
|
||||||
|
*/
|
||||||
|
@NotNull(message = "用户编号不能为空")
|
||||||
|
private Long userId;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getStreamKey() {
|
||||||
|
return "member.register-coupon.send";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@ -0,0 +1,31 @@
|
|||||||
|
package cn.iocoder.yudao.module.member.mq.producer.user;
|
||||||
|
|
||||||
|
import cn.iocoder.yudao.framework.mq.core.RedisMQTemplate;
|
||||||
|
import cn.iocoder.yudao.module.member.mq.message.user.RegisterCouponSendMessage;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 新人券发放 Producer
|
||||||
|
*
|
||||||
|
* @author owen
|
||||||
|
*/
|
||||||
|
@Slf4j
|
||||||
|
@Component
|
||||||
|
public class RegisterCouponProducer {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private RedisMQTemplate redisMQTemplate;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 发送 {@link RegisterCouponSendMessage} 消息
|
||||||
|
*
|
||||||
|
* @param userId 用户编号
|
||||||
|
*/
|
||||||
|
public void sendMailSendMessage(Long userId) {
|
||||||
|
redisMQTemplate.send(new RegisterCouponSendMessage().setUserId(userId));
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue