public GeneratePaymentIdResponse generatePaymentId(GeneratePaymentIdRequest request) { Long merchantId; GeneratePaymentIdResponse response = new GeneratePaymentIdResponse(); try { merchantId = Long.valueOf(request.getMerchantId()); } catch (NumberFormatException e) { return response; } Merchant merchant = merchantDao.get(merchantId); if (merchant == null) { return response; } Payment payment = new Payment(); Discount discount = merchant.getDiscounts().get(0); payment.setDiscount(discount); payment.setCreationDate(new Date()); payment.setAmount(request.getAmount()); payment.setStatus(PaymentStatus.PENDING); paymentDao.saveOrUpdate(payment); response.setPaymentId(String.valueOf(payment.getGeneratedPaymentId())); return response; }