From 5a2bf4015a016e912b540d2a608b261095333afd Mon Sep 17 00:00:00 2001 From: zhouxiunai <154707516@qq.com> Date: Tue, 11 Dec 2018 09:54:01 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E8=88=AA=E7=8F=AD=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E4=BA=8B=E4=BB=B6=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../msghandler/flop/FDELHandler.java | 45 +++++++++++++++++++ .../msghandler/flop/FlopBaseHandler.java | 16 ++++++- .../flightInfo/FlightInfoServiceImpl.java | 9 ++++ .../flightInfo/IFlightInfoService.java | 8 ++++ 4 files changed, 77 insertions(+), 1 deletion(-) create mode 100644 src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java new file mode 100644 index 00000000..546ca57b --- /dev/null +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/msghandler/flop/FDELHandler.java @@ -0,0 +1,45 @@ +package com.gzzn.omms.msgexchangeapi.msghandler.flop; + +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; + +/** + * 处理航班删除事件 + * @author zhouxiunai + * + */ +public class FDELHandler extends FlopBaseHandler { + private static Logger logger = LoggerFactory.getLogger(FDELHandler.class); + + @Override + public HandlerResult run(Cminmsg cminmsg) { + 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) + { + // + flightInfoService.deleteFltr(fltr); + + //send and update + this.sendMsg(cminmsg); //只发送删除消息,前端自行物理删除动态航班信息 + this.updateCminmsgToProcessed(cminmsg); + + return HandlerResult.success(fltr); + } + else { + //没有该动态航班信息 + logger.warn("没有flid为:{}的消息",flop.getFLID()); + return HandlerResult.failure(); + } + } +} 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 895def1f..8fddc6d2 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 @@ -25,7 +25,7 @@ import com.gzzn.omms.msgexchangeapi.utils.SpringUtil; * */ public class FlopBaseHandler implements IBaseHandler { - private static Logger logger = LoggerFactory.getLogger(CLDTHandler.class); + private static Logger logger = LoggerFactory.getLogger(FlopBaseHandler.class); protected IExchangeService exchangeService; protected IFlightInfoService flightInfoService; @@ -100,6 +100,20 @@ public class FlopBaseHandler implements IBaseHandler { ); kafkaservice.msgSend("msg", msg); } + + + /** + * 仅发送动态消息 + * @param cminmsg + */ + protected void sendMsg(Cminmsg cminmsg) + { + //send msg + String msg = exchangeService.xmlstrToJson( + cminmsg.getCminmsgsClobMsg() + ); + kafkaservice.msgSend("msg", msg); + } /** * 更新Cminmsg状态为已处理 diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java index 4e5fd5ee..ba3c36ce 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/FlightInfoServiceImpl.java @@ -1,6 +1,7 @@ package com.gzzn.omms.msgexchangeapi.service.flightInfo; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Set; @@ -10,6 +11,7 @@ import org.springframework.stereotype.Service; import com.gzzn.omms.msgexchangeapi.entity.Cminmsg; import com.gzzn.omms.msgexchangeapi.entity.msg.MSG; import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD; +import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR; import com.gzzn.omms.msgexchangeapi.msghandler.MsgHandlerDispatcher; import com.gzzn.omms.msgexchangeapi.redis.RedisService; import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService; @@ -107,4 +109,11 @@ public class FlightInfoServiceImpl implements IFlightInfoService { return lsResult; }//end method + + + @Override + public boolean deleteFltr(FLTR fltr) { + redisService.del(Arrays.asList(redisKey + fltr.getFLID())); + return true; + } } diff --git a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java index 3ed4f06c..af53065b 100644 --- a/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java +++ b/src/main/java/com/gzzn/omms/msgexchangeapi/service/flightInfo/IFlightInfoService.java @@ -30,4 +30,12 @@ public interface IFlightInfoService { * 保存航班动态信息,新增或更新 */ public boolean saveFltr(SCHD.FLTR fltr); + + + /** + * 物理删除动态航班信息 + * @param fltr + * @return + */ + public boolean deleteFltr(SCHD.FLTR fltr); }