添加航班取消事件处理。 提取抽象flop消息处理逻辑
This commit is contained in:
@@ -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 java.util.Arrays;
|
||||||
|
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
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.entity.msg.SCHD;
|
||||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||||
import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler;
|
import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler;
|
||||||
@@ -20,6 +25,8 @@ import com.gzzn.omms.msgexchangeapi.utils.SpringUtil;
|
|||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
public class FlopBaseHandler implements IBaseHandler {
|
public class FlopBaseHandler implements IBaseHandler {
|
||||||
|
private static Logger logger = LoggerFactory.getLogger(CLDTHandler.class);
|
||||||
|
|
||||||
protected IExchangeService exchangeService;
|
protected IExchangeService exchangeService;
|
||||||
protected IFlightInfoService flightInfoService;
|
protected IFlightInfoService flightInfoService;
|
||||||
protected IKafkaService kafkaservice;
|
protected IKafkaService kafkaservice;
|
||||||
@@ -38,9 +45,41 @@ public class FlopBaseHandler implements IBaseHandler {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public HandlerResult run(Cminmsg cminmsg) {
|
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
|
* 发送航班信息到schd topic ,同时发送动态消息到msg topic
|
||||||
* @param fltr
|
* @param fltr
|
||||||
|
|||||||
Reference in New Issue
Block a user