完善航班动态信息服务

This commit is contained in:
zhouxiunai
2018-12-04 10:26:02 +08:00
parent 0cc33b89c5
commit af4809efca
2 changed files with 51 additions and 12 deletions
@@ -1,5 +1,6 @@
package com.gzzn.omms.msgexchangeapi.redis;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -64,13 +65,9 @@ public final class RedisService {
* @param key 可以传一个值 或多个
*/
@SuppressWarnings("unchecked")
public void del(String... key) {
if (key != null && key.length > 0) {
if (key.length == 1) {
redisTemplate.delete(key[0]);
} else {
redisTemplate.delete(CollectionUtils.arrayToList(key));
}
public void del(Collection<String> keys) {
if (keys != null && keys.size() > 0) {
redisTemplate.delete(keys);
}
}
// ============================String=============================
@@ -498,4 +495,14 @@ public final class RedisService {
return 0;
}
}
/**
* 返回指定模式的keys
* @param patten
* @return
*/
public Set<String> keys(String pattern)
{
return redisTemplate.keys(pattern);
}
}
@@ -1,6 +1,7 @@
package com.gzzn.omms.msgexchangeapi.service;
import java.util.List;
import java.util.Set;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@@ -13,10 +14,11 @@ import com.gzzn.omms.msgexchangeapi.redis.RedisService;
@Service
public class FlightInfoServiceImpl implements IFlightInfoService {
private static final String redisKey="FlightInfo:";
@Autowired
RedisService redisService;
@Autowired
IExchangeService exchangeService;
@@ -28,13 +30,15 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
String clobMsg = cminmsg.getCminmsgsClobMsg();
DnldMsg dnldMsg = exchangeService.xmlstrToObject(clobMsg, DnldMsg.class);
this.removeAll();
//
List<FLTR> lsFltr = dnldMsg
.getSchd()
.getFltr();
for(FLTR fltr : lsFltr)
{
redisService.set(fltr.getFlid(), fltr);
redisSet(fltr);
}
return true;
@@ -52,7 +56,35 @@ public class FlightInfoServiceImpl implements IFlightInfoService {
}
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);
}
}