ge: submit spent price instead of computed per-item price
This commit is contained in:
@@ -35,7 +35,7 @@ public class GrandExchangeTrade
|
|||||||
private int itemId;
|
private int itemId;
|
||||||
private int quantity;
|
private int quantity;
|
||||||
private int total;
|
private int total;
|
||||||
private int price;
|
private int spent;
|
||||||
private int offer;
|
private int offer;
|
||||||
private WorldType worldType;
|
private WorldType worldType;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -79,7 +79,9 @@ public class GrandExchangeController
|
|||||||
Integer userId = session == null ? null : session.getUser();
|
Integer userId = session == null ? null : session.getUser();
|
||||||
|
|
||||||
// We don't keep track of pending trades in the web UI, so only add cancelled or completed trades
|
// We don't keep track of pending trades in the web UI, so only add cancelled or completed trades
|
||||||
if (userId != null && (grandExchangeTrade.isCancel() || grandExchangeTrade.getQuantity() == grandExchangeTrade.getTotal()))
|
if (userId != null &&
|
||||||
|
grandExchangeTrade.getQuantity() > 0 &&
|
||||||
|
(grandExchangeTrade.isCancel() || grandExchangeTrade.getQuantity() == grandExchangeTrade.getTotal()))
|
||||||
{
|
{
|
||||||
grandExchangeService.add(userId, grandExchangeTrade);
|
grandExchangeService.add(userId, grandExchangeTrade);
|
||||||
}
|
}
|
||||||
@@ -90,7 +92,7 @@ public class GrandExchangeController
|
|||||||
trade.setItemId(grandExchangeTrade.getItemId());
|
trade.setItemId(grandExchangeTrade.getItemId());
|
||||||
trade.setQuantity(grandExchangeTrade.getQuantity());
|
trade.setQuantity(grandExchangeTrade.getQuantity());
|
||||||
trade.setTotal(grandExchangeTrade.getTotal());
|
trade.setTotal(grandExchangeTrade.getTotal());
|
||||||
trade.setPrice(grandExchangeTrade.getPrice());
|
trade.setSpent(grandExchangeTrade.getSpent());
|
||||||
trade.setOffer(grandExchangeTrade.getOffer());
|
trade.setOffer(grandExchangeTrade.getOffer());
|
||||||
trade.setTime((int) (System.currentTimeMillis() / 1000L));
|
trade.setTime((int) (System.currentTimeMillis() / 1000L));
|
||||||
trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID));
|
trade.setMachineId(request.getHeader(RuneLiteAPI.RUNELITE_MACHINEID));
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class GrandExchangeService
|
|||||||
.addParameter("action", grandExchangeTrade.isBuy() ? "BUY" : "SELL")
|
.addParameter("action", grandExchangeTrade.isBuy() ? "BUY" : "SELL")
|
||||||
.addParameter("item", grandExchangeTrade.getItemId())
|
.addParameter("item", grandExchangeTrade.getItemId())
|
||||||
.addParameter("quantity", grandExchangeTrade.getQuantity())
|
.addParameter("quantity", grandExchangeTrade.getQuantity())
|
||||||
.addParameter("price", grandExchangeTrade.getPrice())
|
.addParameter("price", grandExchangeTrade.getSpent() / grandExchangeTrade.getQuantity())
|
||||||
.executeUpdate();
|
.executeUpdate();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -35,7 +35,7 @@ class Trade
|
|||||||
private int itemId;
|
private int itemId;
|
||||||
private int quantity;
|
private int quantity;
|
||||||
private int total;
|
private int total;
|
||||||
private int price;
|
private int spent;
|
||||||
private int offer;
|
private int offer;
|
||||||
private int time;
|
private int time;
|
||||||
private String machineId;
|
private String machineId;
|
||||||
|
|||||||
@@ -404,7 +404,7 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
grandExchangeTrade.setItemId(offer.getItemId());
|
grandExchangeTrade.setItemId(offer.getItemId());
|
||||||
grandExchangeTrade.setQuantity(0);
|
grandExchangeTrade.setQuantity(0);
|
||||||
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
||||||
grandExchangeTrade.setPrice(0);
|
grandExchangeTrade.setSpent(0);
|
||||||
grandExchangeTrade.setOffer(offer.getPrice());
|
grandExchangeTrade.setOffer(offer.getPrice());
|
||||||
grandExchangeTrade.setWorldType(getGeWorldType());
|
grandExchangeTrade.setWorldType(getGeWorldType());
|
||||||
|
|
||||||
@@ -433,7 +433,7 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
grandExchangeTrade.setItemId(offer.getItemId());
|
grandExchangeTrade.setItemId(offer.getItemId());
|
||||||
grandExchangeTrade.setQuantity(offer.getQuantitySold());
|
grandExchangeTrade.setQuantity(offer.getQuantitySold());
|
||||||
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
||||||
grandExchangeTrade.setPrice(offer.getQuantitySold() > 0 ? offer.getSpent() / offer.getQuantitySold() : 0);
|
grandExchangeTrade.setSpent(offer.getSpent());
|
||||||
grandExchangeTrade.setOffer(offer.getPrice());
|
grandExchangeTrade.setOffer(offer.getPrice());
|
||||||
grandExchangeTrade.setWorldType(getGeWorldType());
|
grandExchangeTrade.setWorldType(getGeWorldType());
|
||||||
|
|
||||||
@@ -443,16 +443,8 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
final int qty = offer.getQuantitySold() - savedOffer.getQuantitySold();
|
final int qty = offer.getQuantitySold() - savedOffer.getQuantitySold();
|
||||||
if (qty <= 0)
|
|
||||||
{
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// offer.getPrice() is the price of the offer, not necessarily what the item bought at, so we compute it
|
|
||||||
// based on how much was spent & the qty
|
|
||||||
final int dspent = offer.getSpent() - savedOffer.getSpent();
|
final int dspent = offer.getSpent() - savedOffer.getSpent();
|
||||||
final int price = dspent / qty;
|
if (qty <= 0 || dspent <= 0)
|
||||||
if (price <= 0)
|
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@@ -462,7 +454,7 @@ public class GrandExchangePlugin extends Plugin
|
|||||||
grandExchangeTrade.setItemId(offer.getItemId());
|
grandExchangeTrade.setItemId(offer.getItemId());
|
||||||
grandExchangeTrade.setQuantity(qty);
|
grandExchangeTrade.setQuantity(qty);
|
||||||
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
grandExchangeTrade.setTotal(offer.getTotalQuantity());
|
||||||
grandExchangeTrade.setPrice(price);
|
grandExchangeTrade.setSpent(dspent);
|
||||||
grandExchangeTrade.setOffer(offer.getPrice());
|
grandExchangeTrade.setOffer(offer.getPrice());
|
||||||
grandExchangeTrade.setWorldType(getGeWorldType());
|
grandExchangeTrade.setWorldType(getGeWorldType());
|
||||||
|
|
||||||
|
|||||||
@@ -159,7 +159,7 @@ public class GrandExchangePluginTest
|
|||||||
assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId());
|
assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId());
|
||||||
assertEquals(2, trade.getQuantity());
|
assertEquals(2, trade.getQuantity());
|
||||||
assertEquals(10, trade.getTotal());
|
assertEquals(10, trade.getTotal());
|
||||||
assertEquals(10, trade.getPrice());
|
assertEquals(20, trade.getSpent());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
@@ -216,6 +216,6 @@ public class GrandExchangePluginTest
|
|||||||
assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId());
|
assertEquals(ItemID.ABYSSAL_WHIP, trade.getItemId());
|
||||||
assertEquals(1, trade.getQuantity());
|
assertEquals(1, trade.getQuantity());
|
||||||
assertEquals(10, trade.getTotal());
|
assertEquals(10, trade.getTotal());
|
||||||
assertEquals(25, trade.getPrice());
|
assertEquals(25, trade.getSpent());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user