添加动态航班整体处理框架

This commit is contained in:
zhouxiunai
2018-12-04 11:37:45 +08:00
parent af4809efca
commit 747232bc89
6 changed files with 100 additions and 21 deletions
@@ -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);
}
@@ -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; //影响的航班动态信息
}