From 72ea67a20bc472aa42eb4abc78216e133037307b Mon Sep 17 00:00:00 2001 From: iMoHax Date: Fri, 9 Jan 2015 18:58:56 +0300 Subject: [PATCH] fix path profit if seller and buyer is once vendor --- core/src/main/java/ru/trader/graph/PathRoute.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/core/src/main/java/ru/trader/graph/PathRoute.java b/core/src/main/java/ru/trader/graph/PathRoute.java index 09aaad5..431cf2b 100644 --- a/core/src/main/java/ru/trader/graph/PathRoute.java +++ b/core/src/main/java/ru/trader/graph/PathRoute.java @@ -145,7 +145,7 @@ public class PathRoute extends Path { Offer buy = buyer.getBuy(sell.getItem()); if (buy != null){ Order order = new Order(sell, buy, 1); - if (order.getProfit() < 0) { + if (order.getProfit() <= 0) { LOG.trace("{} - is no profit, skip", order); } else { addOrder(order); @@ -270,9 +270,15 @@ public class PathRoute extends Path { } public double getProfit(Order order){ + return getProfit(order, true); + } + + private double getProfit(Order order, boolean first){ if (order == TRANSIT) return getTransitProfit(); - if (isPathFrom(order.getBuyer())) return order.getProfit() + profit; - return hasNext() ? getNext().getProfit(order) : order.getProfit(); + if (isPathFrom(order.getBuyer())) { + return first ? order.getProfit() : order.getProfit() + profit; + } + return hasNext() ? getNext().getProfit(order, false) : order.getProfit(); } private int simpleCompareOrders(Order o1, Order o2){