From cac805011b1be64a42cdee794a8343a188baa7f1 Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Mon, 10 Dec 2018 15:17:42 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=88=AA=E7=8F=AD=E5=8F=96?= =?UTF-8?q?=E6=B6=88=E4=BA=8B=E4=BB=B6=E5=A4=84=E7=90=86=E3=80=82=20?= =?UTF-8?q?=E6=8F=90=E5=8F=96=E6=8A=BD=E8=B1=A1flop=E6=B6=88=E6=81=AF?= =?UTF-8?q?=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msghandler/flop/CNCLHandler.java | 26 ++++++++++++ .../msghandler/flop/FlopBaseHandler.java | 41 ++++++++++++++++++- 2 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/CNCLHandler.java diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/CNCLHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/CNCLHandler.java new file mode 100644 index 00000000..61a53e36 --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/CNCLHandler.java @@ -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; + } +} diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FlopBaseHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FlopBaseHandler.java index 41112081..2db5d3d1 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FlopBaseHandler.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FlopBaseHandler.java @@ -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