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