Untitled

 avatar
unknown
plain_text
2 years ago
1.3 kB
8
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...