diff --git a/src/main/java/com/mfsys/uco/UCOURI.java b/src/main/java/com/mfsys/uco/UCOURI.java index 03a4e48..c1e6196 100644 --- a/src/main/java/com/mfsys/uco/UCOURI.java +++ b/src/main/java/com/mfsys/uco/UCOURI.java @@ -34,6 +34,6 @@ public interface UCOURI { String FETCH_UCO_GLS = "/deposit/fetchUcoGls"; String REVERSE_TRANSACTION = "/reverseTransaction"; String CORE_REVERSE_TRANSACTION = "/deposit/transactions/uco/reverse-transaction"; - + String ADD_BENEFICIARY = "/addBeneficary"; } diff --git a/src/main/java/com/mfsys/uco/controller/UserController.java b/src/main/java/com/mfsys/uco/controller/UserController.java index 8c73773..e20fe53 100644 --- a/src/main/java/com/mfsys/uco/controller/UserController.java +++ b/src/main/java/com/mfsys/uco/controller/UserController.java @@ -7,6 +7,7 @@ import com.itextpdf.layout.element.Paragraph; import com.mfsys.uco.UCOURI; import com.mfsys.uco.dto.*; import com.mfsys.uco.dto.webclientdto.AccountDetail; +import com.mfsys.uco.model.Beneficiary; import com.mfsys.uco.model.CustomerAccountActivity; import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.service.*; @@ -166,4 +167,9 @@ public class UserController { customerProfileService.updateCustomerProfile(updateProfileRequestPayload); return ResponseEntity.ok(HttpStatus.OK); } + @PostMapping(UCOURI.ADD_BENEFICIARY) + public ResponseEntity updateCustomerProfile(@RequestBody Beneficiary beneficiary) { + customerProfileService.addBeneficiary(beneficiary); + return ResponseEntity.ok(HttpStatus.OK); + } } diff --git a/src/main/java/com/mfsys/uco/model/Beneficiary.java b/src/main/java/com/mfsys/uco/model/Beneficiary.java new file mode 100644 index 0000000..3627619 --- /dev/null +++ b/src/main/java/com/mfsys/uco/model/Beneficiary.java @@ -0,0 +1,46 @@ +package com.mfsys.uco.model; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.mfsys.comm.util.FieldNameLength; +import jakarta.persistence.*; +import lombok.Data; +import lombok.NoArgsConstructor; +import lombok.RequiredArgsConstructor; +import org.hibernate.annotations.CacheConcurrencyStrategy; + +import java.time.LocalDateTime; +@Entity(name = "UCO_CS_OC_UCOBENEFICARY") +@Table(name = "UCO_CS_OC_UCOBENEFICARY") +@Data +@org.hibernate.annotations.Cache(usage = CacheConcurrencyStrategy.READ_WRITE) +public class Beneficiary { + + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "SERIAL", nullable = false, updatable = false, columnDefinition = FieldNameLength.BIGINT) + private Long serial; + @Column(name = "POR_ORGACODE", nullable = false, updatable = false, columnDefinition = FieldNameLength.POR_ORGACODE) + private String porOrgacode; + @Column(name = "email", nullable = false, columnDefinition = FieldNameLength.CODE_50) + private String email; + @Column(name = "PCR_CURRDCODE", nullable = false, updatable = true, columnDefinition = FieldNameLength.DESCRIPTION_SHORT) + private String pcrCurrcode; + @Column(name = "PCR_CURRDESC", nullable = false, updatable = true, columnDefinition = FieldNameLength.DESCRIPTION_SHORT) + private String pcrCurrdesc; + @Column(name = "PCR_CURRSHORT", nullable = false, updatable = true, columnDefinition = FieldNameLength.DESCRIPTION_SHORT) + private String pcrCurrshort; + @Column(name = "MBM_BKMSTITLE_REF", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_TITLE) + private String mbmBkmstitleRef; + @Column(name = "MBM_BKMSNUMBER_REF", nullable = false, updatable = true, columnDefinition = FieldNameLength.ACCOUNT_NUMBER) + private String mbmBkmsnumberRef; +// @Column(name = "OCB_BENEFICIARYVERIFIED", nullable = false, updatable = true, columnDefinition = FieldNameLength.BOOLEAN_BIT) +// private boolean ocbBeneficiaryverified; +// @Column(name = "OCB_BENEFICIARYVERIFYDATE", nullable = true, updatable = true, columnDefinition = FieldNameLength.DATETIME) +// private LocalDateTime ocbBeneficiaryverifydate; + @Column(name = "REF_PHONE_NUMBER", nullable = true, columnDefinition = FieldNameLength.CODE_50) + private String refPhoneNumber; + @Column(name = "REF_EMAIL", nullable = true, columnDefinition = FieldNameLength.CODE_50) + private String refEmail; + @Column(name = "REF_NICK_NAME", nullable = true, columnDefinition = FieldNameLength.CODE_50) + private String refNickName; +} diff --git a/src/main/java/com/mfsys/uco/repository/BeneficiaryRepository.java b/src/main/java/com/mfsys/uco/repository/BeneficiaryRepository.java new file mode 100644 index 0000000..90d55d5 --- /dev/null +++ b/src/main/java/com/mfsys/uco/repository/BeneficiaryRepository.java @@ -0,0 +1,14 @@ +package com.mfsys.uco.repository; + +import com.mfsys.uco.model.Beneficiary; +import com.mfsys.uco.model.BeneficiaryId; +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.stereotype.Repository; + +import java.util.Optional; + +@Repository +public interface BeneficiaryRepository extends JpaRepository { + + Optional findBeneficiaryByEmailAndPorOrgacodeAndMbmBkmsnumberRef(String email, String porOrgacode, String mbmBkmsnumberRef); +} diff --git a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java index 72a72e8..dbf8560 100644 --- a/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java +++ b/src/main/java/com/mfsys/uco/repository/TransactionTrailRepository.java @@ -18,7 +18,7 @@ public interface TransactionTrailRepository extends JpaRepository> fetchDepositAccountStatement(String mbmBkmsnumber); TransactionTrail findByPorOrgacodeAndSgtSentNodeIdAndSgtSentGntrnumber(String porOrgacode, String sgtSentNodeId, String sgtSentGntrnumber); diff --git a/src/main/java/com/mfsys/uco/service/CustomerProfileService.java b/src/main/java/com/mfsys/uco/service/CustomerProfileService.java index 6fcbad4..79bb5a3 100644 --- a/src/main/java/com/mfsys/uco/service/CustomerProfileService.java +++ b/src/main/java/com/mfsys/uco/service/CustomerProfileService.java @@ -1,8 +1,10 @@ package com.mfsys.uco.service; import com.mfsys.uco.dto.UpdateProfileRequestPayload; +import com.mfsys.uco.model.Beneficiary; import com.mfsys.uco.model.CustomerProfile; import com.mfsys.uco.model.CustomerProfileId; +import com.mfsys.uco.repository.BeneficiaryRepository; import com.mfsys.uco.repository.CustomerProfileRepository; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Service; @@ -13,6 +15,7 @@ import java.util.Optional; @RequiredArgsConstructor public class CustomerProfileService { private final CustomerProfileRepository customerProfileRepository; + private final BeneficiaryRepository beneficiaryRepository; public CustomerProfile fetchCustcodeBasedOnEmail(String porOrgacode, String email) { return customerProfileRepository.findbyEmail(porOrgacode, email); @@ -25,4 +28,10 @@ public class CustomerProfileService { customerProfileRepository.save(customerProfile); }); } + + public void addBeneficiary(Beneficiary beneficiary) { + OptionalbeneficiaryRepository.findBeneficiaryByEmailAndPorOrgacodeAndMbmBkmsnumberRef(beneficiary.getEmail(),beneficiary.getPorOrgacode(), beneficiary.getMbmBkmsnumberRef()); + if() + beneficiaryRepository.save(beneficiary); + } }