添加航班取消事件处理。 提取抽象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 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
|
||||
|
||||
Reference in New Issue
Block a user