fix stock and demand import
This commit is contained in:
@@ -67,18 +67,25 @@ public class EDDNItemData extends ItemDataBase {
|
||||
@Override
|
||||
public long getSupply() {
|
||||
JsonNode n;
|
||||
JsonNode ln;
|
||||
switch (version) {
|
||||
case V1:
|
||||
n = node.get("stationStock");
|
||||
ln = node.get("supplyLevel");
|
||||
break;
|
||||
case V2:
|
||||
n = node.get("supply");
|
||||
ln = node.get("supplyLevel");
|
||||
break;
|
||||
default:
|
||||
n = node.get("stock");
|
||||
ln = node.get("stockBracket");
|
||||
break;
|
||||
}
|
||||
if (n != null && n.isNumber()){
|
||||
if (ln != null && (ln.isNumber() && ln.asInt() == 0 || ln.asText().isEmpty())){
|
||||
return 0;
|
||||
}
|
||||
return n.asLong();
|
||||
} else {
|
||||
throw new ImportDataError("EDDN message don't have commodity supply");
|
||||
@@ -88,7 +95,20 @@ public class EDDNItemData extends ItemDataBase {
|
||||
@Override
|
||||
public long getDemand() {
|
||||
JsonNode n = node.get("demand");
|
||||
JsonNode ln;
|
||||
switch (version) {
|
||||
case V1:
|
||||
case V2:
|
||||
ln = node.get("demandLevel");
|
||||
break;
|
||||
default:
|
||||
ln = node.get("demandBracket");
|
||||
break;
|
||||
}
|
||||
if (n != null && n.isNumber()){
|
||||
if (ln != null && (ln.isNumber() && ln.asInt() == 0 || ln.asText().isEmpty())){
|
||||
return 0;
|
||||
}
|
||||
return n.asLong();
|
||||
} else {
|
||||
throw new ImportDataError("EDDN message don't have commodity demand");
|
||||
|
||||
@@ -8,7 +8,9 @@ import org.junit.rules.ExpectedException;
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
import ru.trader.TestUtils;
|
||||
import ru.trader.emdn.entities.*;
|
||||
import ru.trader.emdn.entities.Header;
|
||||
import ru.trader.emdn.entities.Message;
|
||||
import ru.trader.emdn.entities.SUPPORT_VERSIONS;
|
||||
import ru.trader.store.imp.ImportDataError;
|
||||
import ru.trader.store.imp.entities.ItemData;
|
||||
import ru.trader.store.imp.entities.ShipData;
|
||||
@@ -482,7 +484,7 @@ public class ParserTest extends Assert {
|
||||
assertEquals(7234, item.getSellOfferPrice());
|
||||
assertEquals(24, item.getSupply());
|
||||
assertEquals(7156, item.getBuyOfferPrice());
|
||||
assertEquals(1, item.getDemand());
|
||||
assertEquals(0, item.getDemand());
|
||||
assertNull(item.getId());
|
||||
assertNull(item.getGroup());
|
||||
} else
|
||||
|
||||
Reference in New Issue
Block a user