Untitled
unknown
plain_text
3 years ago
1.3 kB
12
Indexable
@PostMapping("/limitorder")
public String processLimitOrderForm(@ModelAttribute("limitOrder") LimitOrder limitOrder, HttpSession httpSession, Model model) {
User user = httpSession.getUser;
// check if user has enough balance to process trade
double balanceAvailable = holdingRepository.findByUserIdAndCurrencyId(userId, fromCurrencyId).getAmount();
double balanceRequired = limitOrder.getToCurrencyQuantity() * limitOrder.getFromPriceLimit();
if (balanceAvailable < balanceRequired) {
model.addAttribute("alert", "You do not have enough funds in your wallet.");
return "limit-order";
}
// deduct from his wallet
Holding wallet = holdingRepository.findByUserIdAndCurrencyId(userId, fromCurrencyId);
wallet.setAmount(balanceAvailable - balanceRequired);
// add to the limit order hold
limitOrder.setFromCurrencyHold(balanceRequired);
// initialize order
limitOrder.setUser(user);
limitOrder.setInitializationDate(new Timestamp(System.currentTimeMillis()));
limitOrderRepository.save(limitOrder);
model.addAttribute("alert", "Limit order successfully placed.");
//limitOrderService.archiveExpiredLimitOrders();
//limitOrderService.approveLimitOrder();
//limitOrderService.matchLimitOrder();
//limitOrderService.executeLimitOrders();
return "limit-order";
}Editor is loading...