添加动态航班整体处理框架
This commit is contained in:
+93
@@ -0,0 +1,93 @@
|
||||
package com.gzzn.omms.msgexchangeapi.service.flightInfo;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Set;
|
||||
|
||||
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.msg.schd.dnld.DnldMsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.schd.dnld.FLTR;
|
||||
import com.gzzn.omms.msgexchangeapi.msghandler.MsgHandlerDispatcher;
|
||||
import com.gzzn.omms.msgexchangeapi.redis.RedisService;
|
||||
import com.gzzn.omms.msgexchangeapi.service.IExchangeService;
|
||||
|
||||
@Service
|
||||
public class FlightInfoServiceImpl implements IFlightInfoService {
|
||||
private static final String redisKey="FlightInfo:";
|
||||
|
||||
@Autowired
|
||||
RedisService redisService;
|
||||
|
||||
@Autowired
|
||||
IExchangeService exchangeService;
|
||||
|
||||
@Autowired
|
||||
MsgHandlerDispatcher msgHandlerDispatcher;
|
||||
|
||||
@Override
|
||||
public Boolean updateByDaySchd(Cminmsg cminmsg) {
|
||||
String clobMsg = cminmsg.getCminmsgsClobMsg();
|
||||
DnldMsg dnldMsg = exchangeService.xmlstrToObject(clobMsg, DnldMsg.class);
|
||||
|
||||
this.removeAll();
|
||||
|
||||
//
|
||||
List<FLTR> lsFltr = dnldMsg
|
||||
.getSchd()
|
||||
.getFltr();
|
||||
for(FLTR fltr : lsFltr)
|
||||
{
|
||||
Boolean result = redisSet(fltr);
|
||||
if(result == false)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}//end for
|
||||
|
||||
return true;
|
||||
} //end function
|
||||
|
||||
|
||||
@Override
|
||||
public List<UpdateByCminmsgsResult> updateByCminmsgs(List<Cminmsg> lsCminmsgs) {
|
||||
for (Cminmsg cminmsg : lsCminmsgs) {
|
||||
//更新动态航班消息
|
||||
String strClobMsg = cminmsg.getCminmsgsClobMsg();
|
||||
msgHandlerDispatcher.dispatch(strClobMsg);
|
||||
|
||||
|
||||
}
|
||||
return null;
|
||||
}//end function
|
||||
|
||||
/**
|
||||
* 重新包装的set
|
||||
* @param fltr
|
||||
* @return
|
||||
*/
|
||||
private boolean redisSet(FLTR fltr)
|
||||
{
|
||||
return redisService.set(redisKey + fltr.getFlid(), fltr);
|
||||
}
|
||||
|
||||
/**
|
||||
* 重新包装的get
|
||||
* @param flid
|
||||
* @return
|
||||
*/
|
||||
private Object redisGet(String flid)
|
||||
{
|
||||
return redisService.get(redisKey + flid);
|
||||
}
|
||||
|
||||
/**
|
||||
* 情况所有动态航班信息
|
||||
*/
|
||||
private void removeAll()
|
||||
{
|
||||
Set<String> keys = redisService.keys(redisKey + "*");
|
||||
redisService.del(keys);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
package com.gzzn.omms.msgexchangeapi.service.flightInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
|
||||
public interface IFlightInfoService {
|
||||
/**
|
||||
* 同步日计划更新航班信息
|
||||
*/
|
||||
public Boolean updateByDaySchd(Cminmsg cminmsg);
|
||||
|
||||
/**
|
||||
* 根据消息更新航班信息
|
||||
* @param lsCminmsgs
|
||||
* @return 返回被更新了的动态航班信息
|
||||
*/
|
||||
public List<UpdateByCminmsgsResult> updateByCminmsgs(List<Cminmsg> lsCminmsgs);
|
||||
}
|
||||
+12
@@ -0,0 +1,12 @@
|
||||
package com.gzzn.omms.msgexchangeapi.service.flightInfo;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.gzzn.omms.msgexchangeapi.entity.Cminmsg;
|
||||
import com.gzzn.omms.msgexchangeapi.entity.msg.schd.dnld.FLTR;
|
||||
|
||||
public class UpdateByCminmsgsResult {
|
||||
Boolean isSuccess;//是否更新成功
|
||||
Cminmsg cminmsg; //消息
|
||||
List<FLTR> fltrs; //影响的航班动态信息
|
||||
}
|
||||
Reference in New Issue
Block a user