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