From 350ed2a2b87470377272924ec4403c42a52472db Mon Sep 17 00:00:00 2001 From: Salman Manoe Date: Mon, 21 Aug 2023 19:18:16 +0700 Subject: [PATCH] Update service pelayanan pasien Pembuatan api pengecekan kode voucher --- .../service/PelayananPasienService.java | 2 ++ .../impl/PelayananPasienServiceImpl.java | 19 ++++++++++++++++++ .../controller/PelayananController.java | 20 +++++++++++++++++++ 3 files changed, 41 insertions(+) diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java index 568a02fa..2348fe4c 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/PelayananPasienService.java @@ -33,4 +33,6 @@ public interface PelayananPasienService { List tagihan(String noRegistrasi); void diskonTagihan(String kodeVoucher, List dtoList); + + boolean isValidVoucher(String kodeVoucher, String noRegistrasi); } diff --git a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java index 00f0be8c..1519b7cc 100644 --- a/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java +++ b/jasamedika-business/src/main/java/com/jasamedika/medifirst2000/service/impl/PelayananPasienServiceImpl.java @@ -2284,7 +2284,26 @@ public class PelayananPasienServiceImpl extends BaseVoServiceImpl implements Pel }); pelayananPasienDao.save(listPelayanan); } + } + @Override + public boolean isValidVoucher(String kodeVoucher, String noRegistrasi) { + if (kodeVoucher.isEmpty()) + throw new ServiceVOException("Kode voucher harus diisi"); + VoucherPaket voucher = voucherPaketDao.findByKode(kodeVoucher); + if (CommonUtil.isNullOrEmpty(voucher)) + throw new ServiceVOException("Kode voucher tidak ditemukan"); + if (voucher.getTmt().after(new Date())) + throw new ServiceVOException("Kode voucher baru dapat dipakai mulai " + + new SimpleDateFormat("dd MMMM yyyy HH:mm:ss", new Locale("in", "ID")).format(voucher.getTmt())); + if (voucher.getTglKedaluwarsa().before(new Date())) + throw new ServiceVOException("Kode voucher sudah kedaluwarsa pada " + + new SimpleDateFormat("dd MMMM yyyy HH:mm:ss", new Locale("in", "ID")) + .format(voucher.getTglKedaluwarsa())); + PasienDaftar pendaftaran = pasienDaftarDao.findByNoRegistrasi(noRegistrasi); + if (CommonUtil.isNotNullOrEmpty(pendaftaran) && !pendaftaran.getPasien().getId().equals(voucher.getPasienId())) + throw new ServiceVOException("Kode voucher tidak sesuai dengan pasien yang diperuntukkan"); + return true; } } \ No newline at end of file diff --git a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java index 2f9d4002..2aaa02d8 100644 --- a/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java +++ b/jasamedika-sdm/src/main/java/com/jasamedika/medifirst2000/controller/PelayananController.java @@ -237,4 +237,24 @@ public class PelayananController extends LocaleController { return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); } } + + @RequestMapping(value = "/vouchers/validity", method = RequestMethod.GET) + public ResponseEntity isValidVoucher(HttpServletRequest request, + @RequestParam("kode-voucher") String kodeVoucher, @RequestParam("no-registrasi") String noRegistrasi) { + try { + boolean validVoucher = pelayananPasienService.isValidVoucher(kodeVoucher, noRegistrasi); + mapHeaderMessage.put(WebConstants.HttpHeaderInfo.LABEL_SUCCESS, + getMessage(MessageResource.LABEL_SUCCESS, request)); + return RestUtil.getJsonResponse(validVoucher, HttpStatus.OK, mapHeaderMessage); + } catch (ServiceVOException e) { + LOGGER.error("Got exception {} when check voucher validity", e.getMessage()); + Map error = new HashMap<>(); + error.put("bad_request", e.getMessage()); + return RestUtil.getJsonResponse(null, HttpStatus.BAD_REQUEST, error); + } catch (JpaSystemException jse) { + LOGGER.error("Got exception {} when check voucher validity", jse.getMessage()); + addHeaderMessage(Constants.MessageInfo.ERROR_MESSAGE, jse.getMessage()); + return RestUtil.getJsonHttptatus(HttpStatus.CONFLICT, mapHeaderMessage); + } + } }