|  |  | 
 |  |  | package cc.mrbird.febs.rabbit.producter; | 
 |  |  |  | 
 |  |  | import cc.mrbird.febs.rabbit.constants.ExchangeConstants; | 
 |  |  | import cc.mrbird.febs.rabbit.constants.RouteKeyConstants; | 
 |  |  | import cc.mrbird.febs.mall.dto.ApiMemberChargeFailDto; | 
 |  |  | import cc.mrbird.febs.rabbit.enumerates.RabbitQueueEnum; | 
 |  |  | import com.alibaba.fastjson.JSON; | 
 |  |  | import lombok.extern.slf4j.Slf4j; | 
 |  |  | import org.springframework.amqp.AmqpException; | 
 |  |  | import org.springframework.amqp.core.Message; | 
 |  |  | 
 |  |  | 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.Date; | 
 |  |  | import java.util.UUID; | 
 |  |  |  | 
 |  |  | /** | 
 |  |  |  * @author wzy | 
 |  |  | 
 |  |  |  | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void sendOrderReturn(Long id) { | 
 |  |  |         log.info("发送消息:{}", id); | 
 |  |  |         CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); | 
 |  |  |         rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_RETURN_MONEY.getExchange(), RabbitQueueEnum.ORDER_RETURN_MONEY.getRoute(), id, correlationData); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void sendOrderCancelDelayMsg(Long id, Long times) { | 
 |  |  |         log.info("发送自动取消订单消息:{}, {}", id, times); | 
 |  |  |         rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getExchange(), RabbitQueueEnum.ORDER_CANCEL_DELAY_TTL.getRoute(), id, new MessagePostProcessor() { | 
 |  |  |             @Override | 
 |  |  |             public Message postProcessMessage(Message message) throws AmqpException { | 
 |  |  |                 message.getMessageProperties().setExpiration(String.valueOf(times)); | 
 |  |  |                 return message; | 
 |  |  |             } | 
 |  |  |         }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     /** | 
 |  |  |      * 发送代理自动升级消息 | 
 |  |  |      * | 
 |  |  |      * @param memberId | 
 |  |  |      * 购买VIP自动过期 | 
 |  |  |      * @param apiMemberChargeFailDto | 
 |  |  |      */ | 
 |  |  |     public void sendAutoLevelUpMsg(@NotNull Long memberId) { | 
 |  |  |         log.info("发送代理自动升级消息:{}", memberId); | 
 |  |  |         rabbitTemplate.convertAndSend(ExchangeConstants.EXCHANGE_DEFAULT, RouteKeyConstants.ROUTE_KEY_DEFAULT, memberId); | 
 |  |  |     public void sendMemberChargeFailMsg(ApiMemberChargeFailDto apiMemberChargeFailDto) { | 
 |  |  |         log.info("发送购买VIP自动过期: {}", JSON.toJSONString(apiMemberChargeFailDto)); | 
 |  |  |         rabbitTemplate.convertAndSend( | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_OPERATION_CHARGE_FAIL_TTL.getExchange(), | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_OPERATION_CHARGE_FAIL_TTL.getRoute(), | 
 |  |  |                 apiMemberChargeFailDto, | 
 |  |  |                 new MessagePostProcessor() { | 
 |  |  |                     @Override | 
 |  |  |                     public Message postProcessMessage(Message message) throws AmqpException { | 
 |  |  |                         message.getMessageProperties().setExpiration(String.valueOf(apiMemberChargeFailDto.getFailTime())); | 
 |  |  |                         return message; | 
 |  |  |                     } | 
 |  |  |                 }); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void sendReturnMoneyMsg(Long orderId) { | 
 |  |  |         log.info("发送返利消息:{}", orderId); | 
 |  |  |         rabbitTemplate.convertAndSend(RabbitQueueEnum.AGENT_REUTRN_MONEY.getExchange(), RabbitQueueEnum.AGENT_REUTRN_MONEY.getRoute(), orderId); | 
 |  |  |     public void sendBuyVipSuccessMsg(Long id) { | 
 |  |  |         log.info("发送购买成功消息:{}",id); | 
 |  |  |         rabbitTemplate.convertAndSend( | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_OPERATION_CHARGE.getExchange(), | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_OPERATION_CHARGE.getRoute(), | 
 |  |  |                 id); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |  | 
 |  |  |     public void sendOrderCoupon(Long id) { | 
 |  |  |         log.info("发送使用优惠卷消息:{}", id); | 
 |  |  |         CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); | 
 |  |  |         rabbitTemplate.convertAndSend(RabbitQueueEnum.ORDER_COUPON.getExchange(), RabbitQueueEnum.ORDER_COUPON.getRoute(), id, correlationData); | 
 |  |  |     } | 
 |  |  |  | 
 |  |  |     public void sendGetScoreMsg(Long orderId) { | 
 |  |  |         log.info("发送获得积分消息:{}", orderId); | 
 |  |  |  | 
 |  |  |         CorrelationData correlationData = new CorrelationData(UUID.randomUUID().toString()); | 
 |  |  |         rabbitTemplate.convertAndSend(RabbitQueueEnum.GET_SCORE_MSG.getExchange(), RabbitQueueEnum.GET_SCORE_MSG.getRoute(), orderId, correlationData); | 
 |  |  |     public void sendNodeUpMsg(Long memberId) { | 
 |  |  |         log.info("发送节点升级消息:{}",memberId); | 
 |  |  |         rabbitTemplate.convertAndSend( | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_NODE_UP.getExchange(), | 
 |  |  |                 RabbitQueueEnum.RUN_VIP_NODE_UP.getRoute(), | 
 |  |  |                 memberId); | 
 |  |  |     } | 
 |  |  | } |