修改xml消息在分发前一次转成MSG对象,避免后面业务反复做不必要的转换操作
This commit is contained in:
@@ -0,0 +1,32 @@
|
||||
package com.gzzn.omms.msgexchangeapi.entity;
|
||||
|
||||
import org.springframework.beans.BeanUtils;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
|
||||
/**
|
||||
* Cminmsg 消息的封装,加入cminmsgsClobMsg 转换成 MSG 后的字段,避免不断的进行转换
|
||||
* @author zhouxiunai
|
||||
*
|
||||
*/
|
||||
public class CminmsgWapper extends Cminmsg{
|
||||
|
||||
/**
|
||||
* 从Cminmsg构造封装
|
||||
* @param cminmsg
|
||||
*/
|
||||
public CminmsgWapper(Cminmsg cminmsg)
|
||||
{
|
||||
BeanUtils.copyProperties(cminmsg, this);
|
||||
}
|
||||
|
||||
private MSG msg; //附加的字段
|
||||
|
||||
public MSG getMsg() {
|
||||
return msg;
|
||||
}
|
||||
|
||||
public void setMsg(MSG msg) {
|
||||
this.msg = msg;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +1,7 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
|
||||
public interface IBaseHandler {
|
||||
public HandlerResult run(Cminmsg cminmsg);
|
||||
public HandlerResult run(CminmsgWapper cminmsg);
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.service.ICminmsgService;
|
||||
import com.gzzn.omms.msgexchangeapi.service.exchange.IExchangeService;
|
||||
@@ -27,13 +28,18 @@ public class MsgHandlerDispatcher {
|
||||
{
|
||||
try
|
||||
{
|
||||
//
|
||||
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||
CminmsgWapper cminmsgWapper = new CminmsgWapper(cminmsg);
|
||||
cminmsgWapper.setMsg(msg);
|
||||
|
||||
|
||||
String type = msg.getMETA().getTYPE().name();
|
||||
String subType = msg.getMETA().getSTYP().name();
|
||||
|
||||
Class clazzHandler = Class.forName(getHandlerClassName(type,subType));
|
||||
Object classObject = clazzHandler.newInstance();
|
||||
Method runMethod = clazzHandler.getMethod("run", Cminmsg.class);
|
||||
Method runMethod = clazzHandler.getMethod("run", CminmsgWapper.class);
|
||||
HandlerResult result = (HandlerResult) runMethod.invoke(classObject, cminmsg);
|
||||
return result;
|
||||
} catch (Exception e) {
|
||||
|
||||
@@ -3,7 +3,7 @@ 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.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
@@ -19,8 +19,8 @@ public class FDELHandler extends FlopBaseHandler {
|
||||
private static Logger logger = LoggerFactory.getLogger(FDELHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
MSG msg = cminmsg.getMsg();
|
||||
FLOP flop = msg.getFLOP();
|
||||
|
||||
|
||||
|
||||
+7
-10
@@ -6,6 +6,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.FLOP;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
@@ -44,8 +45,8 @@ public class FlopBaseHandler implements IBaseHandler {
|
||||
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
MSG msg = cminmsg.getMsg();
|
||||
FLOP flop = msg.getFLOP();
|
||||
|
||||
|
||||
@@ -89,16 +90,14 @@ public class FlopBaseHandler implements IBaseHandler {
|
||||
* @param fltr
|
||||
* @param cminmsg
|
||||
*/
|
||||
protected void sendFltrAndMsg(SCHD.FLTR fltr,Cminmsg cminmsg)
|
||||
protected void sendFltrAndMsg(SCHD.FLTR fltr,CminmsgWapper cminmsg)
|
||||
{
|
||||
//send schd
|
||||
String schdMsg = JsonUtil.getString(fltr);
|
||||
kafkaservice.msgSend("schd", schdMsg);
|
||||
|
||||
//send msg
|
||||
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||
cminmsg.getCminmsgsClobMsg()
|
||||
);
|
||||
String msg = exchangeService.msgToJson(cminmsg.getMsg());
|
||||
kafkaservice.msgSend("msg", msg);
|
||||
}
|
||||
|
||||
@@ -107,12 +106,10 @@ public class FlopBaseHandler implements IBaseHandler {
|
||||
* 仅发送动态消息
|
||||
* @param cminmsg
|
||||
*/
|
||||
protected void sendMsg(Cminmsg cminmsg)
|
||||
protected void sendMsg(CminmsgWapper cminmsg)
|
||||
{
|
||||
//send msg
|
||||
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||
cminmsg.getCminmsgsClobMsg()
|
||||
);
|
||||
String msg = exchangeService.msgToJson(cminmsg.getMsg());
|
||||
kafkaservice.msgSend("msg", msg);
|
||||
}
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.MSG;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD.FLTR;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
@@ -18,8 +19,8 @@ public class ADFTHandler extends SchdBaseHandler{
|
||||
private static Logger logger = LoggerFactory.getLogger(ADFTHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
MSG msg = exchangeService.xmlToMsg(cminmsg.getCminmsgsClobMsg());
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
MSG msg = cminmsg.getMsg();
|
||||
if(msg.getSCHD().getFLTR().size() != 1)
|
||||
{
|
||||
logger.error("预期每条消息只会包含一个动态航班,当前{}",msg.getSCHD().getFLTR().size());
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler.schd;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.schd.base.SchdBaseHandler;
|
||||
|
||||
@@ -16,7 +16,7 @@ public class DNLDHandler extends SchdBaseHandler{
|
||||
private static Logger logger = LoggerFactory.getLogger(DNLDHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
Boolean updateResult = flightInfoService.updateByDaySchd(cminmsg);
|
||||
if(false == updateResult)
|
||||
{
|
||||
|
||||
@@ -3,7 +3,7 @@ package com.gzzn.omms.msgexchangeapi.msghandler.schd;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.schd.base.SchdBaseHandler;
|
||||
|
||||
@@ -16,7 +16,7 @@ public class RESPHandler extends SchdBaseHandler {
|
||||
private static Logger logger = LoggerFactory.getLogger(RESPHandler.class);
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
Boolean updateResult = flightInfoService.updateByDaySchd(cminmsg);
|
||||
if(false == updateResult)
|
||||
{
|
||||
|
||||
+8
-14
@@ -1,16 +1,15 @@
|
||||
package com.gzzn.omms.msgexchangeapi.msghandler.schd.base;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.List;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.dto.ResponseDto;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
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.HandlerResult;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.IBaseHandler;
|
||||
import com.gzzn.omms.msgexchangeapi.service.ICminmsgService;
|
||||
@@ -42,7 +41,7 @@ public class SchdBaseHandler implements IBaseHandler{
|
||||
}
|
||||
|
||||
@Override
|
||||
public HandlerResult run(Cminmsg cminmsg) {
|
||||
public HandlerResult run(CminmsgWapper cminmsg) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@@ -50,11 +49,10 @@ public class SchdBaseHandler implements IBaseHandler{
|
||||
* 发送日计划到kafka队列
|
||||
* @param cminmsg
|
||||
*/
|
||||
protected void sendDschd(Cminmsg cminmsg)
|
||||
protected void sendDschd(CminmsgWapper cminmsg)
|
||||
{
|
||||
//发送日航班消息的通知给前端,让前端重新加载全部动态
|
||||
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
||||
MSG dnldMsg = exchangeService.xmlToMsg(clobMsg);
|
||||
MSG dnldMsg = cminmsg.getMsg();
|
||||
|
||||
int recs = dnldMsg.getSCHD().getRECS();
|
||||
logger.info("发送日计划到kafka,条数:{}",recs);
|
||||
@@ -70,12 +68,10 @@ public class SchdBaseHandler implements IBaseHandler{
|
||||
* 仅发送动态消息
|
||||
* @param cminmsg
|
||||
*/
|
||||
protected void sendMsg(Cminmsg cminmsg)
|
||||
protected void sendMsg(CminmsgWapper cminmsg)
|
||||
{
|
||||
//send msg
|
||||
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||
cminmsg.getCminmsgsClobMsg()
|
||||
);
|
||||
String msg = exchangeService.msgToJson(cminmsg.getMsg());
|
||||
kafkaservice.msgSend("msg", msg);
|
||||
}
|
||||
|
||||
@@ -85,16 +81,14 @@ public class SchdBaseHandler implements IBaseHandler{
|
||||
* @param fltr
|
||||
* @param cminmsg
|
||||
*/
|
||||
protected void sendFltrAndMsg(SCHD.FLTR fltr,Cminmsg cminmsg)
|
||||
protected void sendFltrAndMsg(SCHD.FLTR fltr,CminmsgWapper cminmsg)
|
||||
{
|
||||
//send schd
|
||||
String schdMsg = JsonUtil.getString(fltr);
|
||||
kafkaservice.msgSend("schd", schdMsg);
|
||||
|
||||
//send msg
|
||||
String msg = exchangeService.xmlMsgToJsonMsg(
|
||||
cminmsg.getCminmsgsClobMsg()
|
||||
);
|
||||
String msg = exchangeService.msgToJson(cminmsg.getMsg());
|
||||
kafkaservice.msgSend("msg", msg);
|
||||
}
|
||||
|
||||
|
||||
+3
-3
@@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
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;
|
||||
@@ -32,9 +33,8 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
|
||||
MsgHandlerDispatcher msgHandlerDispatcher;
|
||||
|
||||
@Override
|
||||
public Boolean updateByDaySchd(Cminmsg cminmsg) {
|
||||
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
||||
MSG dnldMsg = exchangeService.xmlToMsg(clobMsg);
|
||||
public Boolean updateByDaySchd(CminmsgWapper cminmsg) {
|
||||
MSG dnldMsg = cminmsg.getMsg();
|
||||
|
||||
//
|
||||
List<SCHD.FLTR> lsFltr = dnldMsg
|
||||
|
||||
+2
-1
@@ -3,6 +3,7 @@ package com.gzzn.omms.msgexchangeapi.service.flightInfo;
|
||||
import java.util.List;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.CminmsgWapper;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.SCHD;
|
||||
|
||||
public interface IFlightInfoService {
|
||||
@@ -17,7 +18,7 @@ public interface IFlightInfoService {
|
||||
/**
|
||||
* 同步日计划更新航班信息
|
||||
*/
|
||||
public Boolean updateByDaySchd(Cminmsg cminmsg);
|
||||
public Boolean updateByDaySchd(CminmsgWapper cminmsg);
|
||||
|
||||
/**
|
||||
* 通过航班id获取航班动态
|
||||
|
||||
Reference in New Issue
Block a user