添加航班取消事件处理。 提取抽象flop消息处理逻辑

This commit is contained in:
zhouxiunai
2018-12-10 15:17:42 +08:00
parent 2f320f3020
commit cac805011b
2 changed files with 66 additions and 1 deletions
@@ -0,0 +1,26 @@
package com.gzzn.omms.msgexchangeapi.msghandler.flop;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
/**
* 添加航班取消消息
* @author zhouxiunai
*
*/
public class CNCLHandler extends FlopBaseHandler {
private static Logger logger = LoggerFactory.getLogger(CNCLHandler.class);
@Override
protected SCHD.FLTR handlerMsg(FLOP flop,SCHD.FLTR fltr)
{
//save
fltr.setCNCL(flop.getCNCL());
flightInfoService.saveFltr(fltr);
return fltr;
}
}
@@ -2,7 +2,12 @@ package com.gzzn.omms.msgexchangeapi.msghandler.flop;
import java.util.Arrays;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler;
@@ -20,6 +25,8 @@ import com.gzzn.omms.msgexchangeapi.utils.SpringUtil;
*
*/
public class FlopBaseHandler implements IBaseHandler {
private static Logger logger = LoggerFactory.getLogger(CLDTHandler.class);
protected IExchangeService exchangeService;
protected IFlightInfoService flightInfoService;
protected IKafkaService kafkaservice;
@@ -38,9 +45,41 @@ public class FlopBaseHandler implements IBaseHandler {
@Override
public HandlerResult run(Cminmsg cminmsg) {
return null;
MSG cldtMsg = exchangeService.xmlstrToObject(cminmsg.getCminmsgsClobMsg(), MSG.class);
FLOP flop = cldtMsg.getFLOP().get(0);
SCHD.FLTR fltr = flightInfoService.getByFlid(flop.getFLID().toString());
if(null != fltr)
{
SCHD.FLTR fltrResult = handlerMsg(flop,fltr);
//send and update
this.sendFltrAndMsg(fltrResult, cminmsg);
this.updateCminmsgToProcessed(cminmsg);
return HandlerResult.success(fltrResult);
}
else {
//没有该动态航班信息
logger.warn("没有flid为:{}的消息",flop.getFLID());
return HandlerResult.failure();
}
}
/**
* 关键处理逻辑 ,子类只需要重写本方法处理更新fltr的逻辑
* @param flop 消息
* @param fltr 存在的航班动态信息
*/
protected SCHD.FLTR handlerMsg(FLOP flop,SCHD.FLTR fltr)
{
logger.warn("默认handlerMsg,不进行任何消息处理逻辑");
return fltr;
}
/**
* 发送航班信息到schd topic ,同时发送动态消息到msg topic
* @param fltr