package cc.mrbird.febs.rabbit.producer; import cc.mrbird.febs.rabbit.QueueEnum; import cn.hutool.core.date.DateUtil; import lombok.extern.slf4j.Slf4j; import org.springframework.amqp.rabbit.connection.CorrelationData; import org.springframework.amqp.rabbit.core.RabbitTemplate; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import javax.validation.constraints.NotNull; import java.util.UUID; /** * @author wzy * @date 2022-05-31 **/ @Slf4j @Component public class ChainProducer implements RabbitTemplate.ConfirmCallback { /** * 配置中配置的RabbitTemplate的是prototype类型,不能直接注入 */ private RabbitTemplate rabbitTemplate; @Autowired public ChainProducer(RabbitTemplate rabbitTemplate) { this.rabbitTemplate = rabbitTemplate; rabbitTemplate.setConfirmCallback(this); } @Override public void confirm(CorrelationData correlationData, boolean ack, String cause) { } /** * speed 支付订单 * @param orderId 订单ID */ public void sendSpeedPayOrderMsg(Long orderId) { log.info("sendSpeedPayOrderMsg:{}", orderId); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.SPEED_PAY_ORDER.getExchange(), QueueEnum.SPEED_PAY_ORDER.getRoute(), orderId, correlationData); } /** * speed 代理升级 * @param memberId */ public void sendAutoLevelUpTeamMsg(@NotNull Long memberId) { log.info("sendAutoLevelUpTeamMsg:{}", memberId); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.SPEED_LEVEL_UP_TEAM.getExchange(), QueueEnum.SPEED_LEVEL_UP_TEAM.getRoute(), memberId, correlationData); } /** * speed 代理升级 * @param memberId */ public void sendAutoLevelUpMsg(@NotNull Long memberId) { log.info("sendAutoLevelUpMsg:{}", memberId); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.SPEED_LEVEL_UP.getExchange(), QueueEnum.SPEED_LEVEL_UP.getRoute(), memberId, correlationData); } /** * speed 直推返利 */ public void sendDirectPerkMsg(@NotNull Long memberId) { log.info("sendDirectPerkMsg:{}", memberId); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.SPEED_DIRECT_PERK.getExchange(), QueueEnum.SPEED_DIRECT_PERK.getRoute(), memberId, correlationData); } /** * speed 卖出资产 */ public void sendSalePackageMsg(@NotNull Long flowId) { log.info("sendSalePackageMsg:{}", flowId); CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); rabbitTemplate.convertAndSend(QueueEnum.SPEED_SALE_PACKAGE.getExchange(), QueueEnum.SPEED_SALE_PACKAGE.getRoute(), flowId, correlationData); } }