Authored by sailing-PC\sailing

add not paid notice

package com.yohoufo.order.event;
import com.yohoufo.order.common.TabType;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Builder;
/**
* Created by chenchao on 2018/10/15.
*/
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class NotPaidNoticeEvent extends Event {
private int uid;
private long orderCode;
private String prdName;
/**
* @see TabType#SELL
* @see TabType#BUY
*/
private TabType actorType;
}
... ...
... ... @@ -24,5 +24,9 @@ public interface TopicConstants {
*/
String SELLER_ORDER_AUTO_CANCEL_DELIVER = "sellerOrder.autoCancelDeliver";
/**
* 付款截止时间前5分钟
*/
String ORDER_NOT_PAID_NOTICE = "order.notPaidNotice";
}
... ...
package com.yohoufo.order.mq.consumer;
import com.yoho.core.rabbitmq.YhConsumer;
import com.yohoufo.order.common.TabType;
import com.yohoufo.order.event.NotPaidNoticeEvent;
import com.yohoufo.order.mq.TopicConstants;
import com.yohoufo.order.service.proxy.InBoxFacade;
import com.yohoufo.order.utils.LoggerUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Objects;
/**
* Created by chenchao on 2018/10/15.
*/
@Component
public class NotPaidNoticeDelayMsgConsumer implements YhConsumer {
private Logger logger = LoggerUtils.getMqConsumerLogger();
@Autowired
private InBoxFacade inBoxFacade;
@Override
public void handleMessage(Object o) throws Exception {
final String topic = TopicConstants.ORDER_NOT_PAID_NOTICE;
logger.info("in topic {}, msg {}", topic, o);
if (o == null){
return;
}
NotPaidNoticeEvent event = (NotPaidNoticeEvent)o;
TabType actorType;
if (Objects.nonNull(actorType=event.getActorType())){
switch (actorType){
case SELL:
inBoxFacade.sellerOrderNotPaid(event.getUid(), event.getPrdName());
break;
case BUY:
inBoxFacade.buyerOrderNotPayed(event.getUid(), event.getOrderCode());
break;
}
}else{
logger.warn("actorType is null in topic {}, msg {}", topic, event);
}
}
}
... ...
package com.yohoufo.order.service.handler;
import com.google.common.eventbus.Subscribe;
import com.yohoufo.order.event.IEventHandler;
import com.yohoufo.order.event.NotPaidNoticeEvent;
import com.yohoufo.order.mq.TopicConstants;
import com.yohoufo.order.mq.producer.TradeMqSender;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
/**
* Created by chenchao on 2018/10/15.
*/
@Component
public class NotPaidNoticeAsyncHandler implements IEventHandler<NotPaidNoticeEvent> {
final Logger logger = LoggerFactory.getLogger(getClass());
public static final int DELAY_MINUTES_10_MINS = 10;
@Autowired
private TradeMqSender tradeMqSender;
@Subscribe
@Override
public void handle(NotPaidNoticeEvent event) {
logger.info("Subscribe NotPaid Notice delay msg, event {}", event);
tradeMqSender.send(TopicConstants.ORDER_NOT_PAID_NOTICE, event, DELAY_MINUTES_10_MINS);
}
}
... ...