diff --git a/src/main/java/com/kms/dto/payment/PaymentStatusBatchResp.java b/src/main/java/com/kms/dto/payment/PaymentStatusBatchResp.java new file mode 100644 index 0000000000000000000000000000000000000000..cae6d38e528d3eb7bb85df69f98c7c4c30a027e3 --- /dev/null +++ b/src/main/java/com/kms/dto/payment/PaymentStatusBatchResp.java @@ -0,0 +1,26 @@ +package com.kms.dto.payment; + +import lombok.*; + +@Getter +@Setter +@AllArgsConstructor +@NoArgsConstructor +@Builder +public class PaymentStatusBatchResp { + + private String message; + private PaymentWrapper[] paidList; + + @Getter + @Setter + @AllArgsConstructor + @NoArgsConstructor + @Builder + public static class PaymentWrapper { + + private Integer paymentId; + private Boolean paid; + + } +} diff --git a/src/main/java/com/kms/service/PaymentService.java b/src/main/java/com/kms/service/PaymentService.java index 3687d359392abcbd3f318fb86a747079c9b00034..0b46424d1a8cc821c71b5c80e180cd9dd52f6425 100644 --- a/src/main/java/com/kms/service/PaymentService.java +++ b/src/main/java/com/kms/service/PaymentService.java @@ -2,9 +2,7 @@ package com.kms.service; import com.j256.ormlite.dao.Dao; import com.kms.crosscut.SoapFaultHelper; -import com.kms.dto.payment.PaymentInitReq; -import com.kms.dto.payment.PaymentInitResp; -import com.kms.dto.payment.PaymentStatusResp; +import com.kms.dto.payment.*; import com.kms.model.Payment; import lombok.RequiredArgsConstructor; @@ -15,6 +13,7 @@ import javax.jws.WebService; import java.sql.SQLException; import java.sql.Timestamp; import java.util.List; +import java.util.stream.Collectors; @WebService @HandlerChain(file = "handlers.xml") @@ -70,6 +69,26 @@ public class PaymentService { } } + @WebMethod + public PaymentStatusBatchResp checkPaymentStatusBatch(@WebParam(name = "paymentIds") List<Integer> paymentIds) { + List<Payment> payments = paymentIds.stream().map(paymentId -> { + try { + return paymentDao.queryForId(paymentId); + } catch (SQLException e) { + return null; + } + }).collect(Collectors.toList()); + + if (payments.isEmpty()) { + return new PaymentStatusBatchResp("Payment ids not found or unexpected error has happened", null); + } + return new PaymentStatusBatchResp(null, payments.stream() + .map(payment -> PaymentStatusBatchResp.PaymentWrapper.builder() + .paymentId(payment.getPaymentId()) + .paid(payment.isPaid()) + .build()).toArray(PaymentStatusBatchResp.PaymentWrapper[]::new)); + } + private void verifyInitPaymentData(PaymentInitReq req) { if (req == null) { SoapFaultHelper.throwFault("InvalidRequest", "Request is empty");