Commit[1]:Revamping User Controller
parent
e504b4bc49
commit
6e877435d5
@ -1,13 +1,13 @@
|
||||
package com.mfsys.uco_bs_poc;
|
||||
package com.mfsys.uco;
|
||||
|
||||
import org.springframework.boot.SpringApplication;
|
||||
import org.springframework.boot.autoconfigure.SpringBootApplication;
|
||||
|
||||
@SpringBootApplication
|
||||
public class UcoBsPocApplication {
|
||||
public class UcoApplication {
|
||||
|
||||
public static void main(String[] args) {
|
||||
SpringApplication.run(UcoBsPocApplication.class, args);
|
||||
SpringApplication.run(UcoApplication.class, args);
|
||||
}
|
||||
|
||||
}
|
||||
@ -0,0 +1,6 @@
|
||||
package com.mfsys.uco.constants;
|
||||
|
||||
public interface UCOURI {
|
||||
|
||||
String ONBOARD_CUSTOMER = "/auth/user/authenticate/onboardCutomer";
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.mfsys.uco.controller;
|
||||
|
||||
import com.mfsys.uco.constants.UCOURI;
|
||||
import com.mfsys.uco.request.SignupStep3Request;
|
||||
import com.mfsys.uco.service.UcoAccountService;
|
||||
import org.springframework.http.HttpStatus;
|
||||
import org.springframework.http.ResponseEntity;
|
||||
import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
@RestController
|
||||
@RequestMapping
|
||||
public class UserController {
|
||||
|
||||
private final UcoAccountService ucoAccountService;
|
||||
|
||||
public UserController(UcoAccountService ucoAccountService) {
|
||||
this.ucoAccountService = ucoAccountService;
|
||||
}
|
||||
|
||||
@PostMapping(UCOURI.ONBOARD_CUSTOMER)
|
||||
public ResponseEntity<HttpStatus> customerOnBoarding(@RequestBody SignupStep3Request signupStep3Request) {
|
||||
ucoAccountService.onBoardCustomer(signupStep3Request);
|
||||
return ResponseEntity.ok(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@ -0,0 +1,67 @@
|
||||
package com.mfsys.uco.model;
|
||||
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
@Entity
|
||||
@Table(name = "BN_CS_MP_CUSTOMERPROFILE")
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CustomerProfile {
|
||||
|
||||
@Id
|
||||
@Column(name = "POR_ORGACODE")
|
||||
protected String porOrgacode;
|
||||
|
||||
@Column(name = "CMP_CUSTCODE")
|
||||
protected String cmpCustcode;
|
||||
|
||||
@Column(name = "PIT_IDENVALUE")
|
||||
protected String pitIdenvalue;
|
||||
|
||||
|
||||
@Column(name = "PIT_IDENCODE")
|
||||
protected String pitIdencode;
|
||||
|
||||
@Column(name = "PAD_ADRSMOBPHONE")
|
||||
protected String padAdrsmobphone;
|
||||
|
||||
@Column(name = "KYC_RENEWAL_DATE")
|
||||
protected LocalDate kycRenewalDate;
|
||||
|
||||
@Column(name = "CMP_ISKYC_VERIFIED")
|
||||
protected boolean cmpIsKycVerified = false;
|
||||
|
||||
@Column(name = "CMP_TRAN_PIN")
|
||||
protected String cmpTranpin;
|
||||
|
||||
@Column(name = "CMP_UNVERIFIED_TRAN_PIN")
|
||||
protected String cmpUnverifiedTranpin;
|
||||
|
||||
@Column(name = "CMP_TRAN_PIN_VERIFIED")
|
||||
protected boolean cmpTranpinVerfied = false;
|
||||
|
||||
@Column(name = "CMP_EMAIL")
|
||||
private String cmpEmail;
|
||||
|
||||
@Column(name = "CMP_NAME")
|
||||
private String cmpName;
|
||||
|
||||
@Column(name = "CMP_USERNAME")
|
||||
private String cmpUserName;
|
||||
|
||||
@Column(name = "CMP_ADDRESS")
|
||||
private String cmpAddress;
|
||||
|
||||
@Column(name = "CMP_CUSTIMG")
|
||||
@Lob
|
||||
private String cmpCustImage;
|
||||
|
||||
}
|
||||
@ -0,0 +1,13 @@
|
||||
package com.mfsys.uco.repository;
|
||||
|
||||
import com.mfsys.uco.model.CustomerProfile;
|
||||
import org.springframework.data.jpa.repository.JpaRepository;
|
||||
import org.springframework.data.jpa.repository.Query;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
@Repository
|
||||
public interface CustomerProfileRepository extends JpaRepository<CustomerProfile, String> {
|
||||
|
||||
@Query("SELECT c FROM CustomerProfile c WHERE c.porOrgacode =:porOrgacode and c.cmpEmail = :email")
|
||||
CustomerProfile findbyEmail(String porOrgacode, String email);
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AddAccountRequest {
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String email;
|
||||
|
||||
private String title;
|
||||
|
||||
private String dmpProdcode;
|
||||
|
||||
private String channelCode;
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BeneficiaryRequest {
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String email;
|
||||
|
||||
private String pcrCurrcode;
|
||||
|
||||
private String pcrCurrdesc;
|
||||
|
||||
private String pcrCurrshort;
|
||||
|
||||
private String mbmBkmstitleRef;
|
||||
|
||||
private String mbmBkmsnumberRef;
|
||||
|
||||
private String refPhoneNumber;
|
||||
|
||||
private String refEmail;
|
||||
|
||||
private String refNickName;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ChangeTransactionPinRequest {
|
||||
|
||||
private String oldTransPincode;
|
||||
|
||||
private String newTransPincode;
|
||||
|
||||
private String channelCode;
|
||||
|
||||
private String pctCstycode;
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String cmpCustcode;
|
||||
|
||||
private boolean isOtpRequired;
|
||||
|
||||
private String pinType;
|
||||
}
|
||||
@ -0,0 +1,28 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CreateTransactionPinRequest {
|
||||
|
||||
private String newTransPincode;
|
||||
|
||||
private String channelCode;
|
||||
|
||||
private String pctCstycode;
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String cmpCustcode;
|
||||
|
||||
private boolean isOtpRequired;
|
||||
|
||||
private String pinType;
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonProperty;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class OTPRequest {
|
||||
|
||||
private boolean isOtpRequired;
|
||||
|
||||
private String email;
|
||||
|
||||
private String phone;
|
||||
|
||||
private String channelCode;
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String username;
|
||||
|
||||
private String pinType;
|
||||
|
||||
private String subject;
|
||||
}
|
||||
@ -0,0 +1,43 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class SignupStep3Request {
|
||||
|
||||
private String username;
|
||||
|
||||
private String email;
|
||||
|
||||
private String phone;
|
||||
|
||||
private String name;
|
||||
|
||||
private String address;
|
||||
|
||||
private String identificationType;
|
||||
|
||||
private String identificationNumber;
|
||||
|
||||
private boolean isKycAdded;
|
||||
|
||||
private String dmpProdcode;
|
||||
|
||||
private String kycType;
|
||||
|
||||
private String kycDocumentId1; // base64 encoded
|
||||
|
||||
private String kycDocumentId2; // base64 encoded
|
||||
|
||||
private String userRole;
|
||||
|
||||
private String channelCode;
|
||||
|
||||
private String porOrgacode;
|
||||
}
|
||||
@ -0,0 +1,23 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class TransactionHistoryRequest {
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String mbmBkmsnumber;
|
||||
|
||||
private String sgtGntrvaluedatefrom;
|
||||
|
||||
private String sgtGntrvaluedateto;
|
||||
|
||||
private String type; // Expected to be "pdf"
|
||||
}
|
||||
@ -0,0 +1,20 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class UpdateProfileRequest {
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String cmpCustcode;
|
||||
|
||||
private String cmpCustImage;
|
||||
|
||||
}
|
||||
@ -0,0 +1,27 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class VerifyPinRequest {
|
||||
|
||||
String channelCode;
|
||||
|
||||
String pctCstycode;
|
||||
|
||||
String porOrgacode;
|
||||
|
||||
String cmpCustcode;
|
||||
|
||||
String email;
|
||||
|
||||
String obpPincode;
|
||||
|
||||
String pinType;
|
||||
}
|
||||
@ -0,0 +1,19 @@
|
||||
package com.mfsys.uco.request;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ViewBalanceRequest {
|
||||
|
||||
String cmpCustcode;
|
||||
|
||||
String porOrgacode;
|
||||
|
||||
String mbmBkmsNumber;
|
||||
}
|
||||
@ -0,0 +1,86 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Map;
|
||||
|
||||
@Data
|
||||
@RequiredArgsConstructor
|
||||
@AllArgsConstructor
|
||||
@Builder
|
||||
public class AccountDetailResponse {
|
||||
|
||||
protected String porOrgacode;
|
||||
|
||||
protected String mbmBkmsnumber;
|
||||
|
||||
protected String mbmBkmstitle;
|
||||
|
||||
protected String dmpProddesc;
|
||||
|
||||
protected String plcLocadesc;
|
||||
|
||||
protected String pcrCurrcode;
|
||||
|
||||
protected String pcrCurrshort;
|
||||
|
||||
protected String mbmBkmsopendate;
|
||||
|
||||
protected String pcrCurrdesc;
|
||||
|
||||
protected String cmpCustcode;
|
||||
|
||||
protected boolean mbmBkmsclosed;
|
||||
|
||||
protected String pctCstycode;
|
||||
|
||||
protected BigDecimal mbmBkmsbalance;
|
||||
|
||||
protected Map<String, BigDecimal> charges = Map.of();
|
||||
|
||||
protected String dmpProdcode;
|
||||
|
||||
protected boolean cmpBlacklisted;
|
||||
|
||||
protected String plcLocacode;
|
||||
|
||||
protected boolean mbmNotificationService;
|
||||
|
||||
protected String dmpCredittype;
|
||||
|
||||
protected BigDecimal perEratrateact;
|
||||
|
||||
protected LocalDate kycRenewalDate;
|
||||
|
||||
protected String padAdrsmobphone;
|
||||
|
||||
protected boolean btaRolloverSpecialRate;
|
||||
|
||||
private String pasAcstcode;
|
||||
|
||||
private BigDecimal btaBookingamount;
|
||||
|
||||
private BigDecimal bdaDpacblockamt;
|
||||
|
||||
private boolean bdaDpacblocked;
|
||||
|
||||
private String pbdBankname;
|
||||
|
||||
private String pbbBranchname;
|
||||
|
||||
private String pbbBranchcountry;
|
||||
|
||||
private String pbbBranchcity;
|
||||
|
||||
private String pcaGlaccode;
|
||||
|
||||
private String accJointStatus;
|
||||
|
||||
private String accAttortype;
|
||||
|
||||
}
|
||||
@ -0,0 +1,24 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class AccountInquiryResponse {
|
||||
|
||||
private String mbmBkmstitle;
|
||||
|
||||
private String mbmBkmsnumber;
|
||||
|
||||
private String pcrCurrcode;
|
||||
|
||||
private String pcrCurrdesc;
|
||||
|
||||
private String pcrCurrshort;
|
||||
|
||||
}
|
||||
@ -0,0 +1,33 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class BeneficiaryResponse {
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String email;
|
||||
|
||||
private String pcrCurrcode;
|
||||
|
||||
private String pcrCurrdesc;
|
||||
|
||||
private String pcrCurrshort;
|
||||
|
||||
private String mbmBkmstitleRef;
|
||||
|
||||
private String mbmBkmsnumberRef;
|
||||
|
||||
private String refPhoneNumber;
|
||||
|
||||
private String refEmail;
|
||||
|
||||
private String refNickName;
|
||||
}
|
||||
@ -0,0 +1,42 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonIgnore;
|
||||
import com.mfsys.uco.model.CustomerProfile;
|
||||
import jakarta.persistence.*;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDateTime;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CustomerAccountActivityResponse {
|
||||
|
||||
@Id
|
||||
@GeneratedValue(strategy = GenerationType.AUTO)
|
||||
private Long id;
|
||||
|
||||
private String porOrgacode;
|
||||
|
||||
private String cmpCustcode;
|
||||
|
||||
private LocalDateTime date;
|
||||
|
||||
private String channal;
|
||||
|
||||
private String deviceName;
|
||||
|
||||
private String activity;
|
||||
|
||||
@JsonIgnore
|
||||
@ManyToOne(fetch = FetchType.LAZY)
|
||||
@JoinColumns({
|
||||
@JoinColumn(name = "POR_ORGACODE", referencedColumnName = "POR_ORGACODE", insertable = false, updatable = false),
|
||||
@JoinColumn(name = "CMP_CUSTCODE", referencedColumnName = "CMP_CUSTCODE", insertable = false, updatable = false)})
|
||||
private CustomerProfile customer;
|
||||
|
||||
}
|
||||
@ -0,0 +1,47 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.time.LocalDate;
|
||||
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class CustomerProfileResponse {
|
||||
|
||||
protected String porOrgacode;
|
||||
|
||||
protected String cmpCustcode;
|
||||
|
||||
protected String pitIdenvalue;
|
||||
|
||||
protected String pitIdencode;
|
||||
|
||||
protected String padAdrsmobphone;
|
||||
|
||||
protected LocalDate kycRenewalDate;
|
||||
|
||||
protected boolean cmpIsKycVerified = false;
|
||||
|
||||
protected String cmpTranpin;
|
||||
|
||||
protected String cmpUnverifiedTranpin;
|
||||
|
||||
protected boolean cmpTranpinVerfied = false;
|
||||
|
||||
private String cmpEmail;
|
||||
|
||||
private String cmpName;
|
||||
|
||||
private String cmpUserName;
|
||||
|
||||
private String cmpAddress;
|
||||
|
||||
private String cmpCustImage;
|
||||
|
||||
}
|
||||
@ -0,0 +1,30 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class DepositAccountTransactionResponse {
|
||||
|
||||
private String tranID;
|
||||
|
||||
private String sgtGntrCreatedAt;
|
||||
|
||||
private String sgtGntrNarration;
|
||||
|
||||
private String sgtGntrvaluedate;
|
||||
|
||||
private String deposit;
|
||||
|
||||
private String withdrawal;
|
||||
|
||||
private String status;
|
||||
|
||||
private String sgtGntramt;
|
||||
|
||||
}
|
||||
@ -0,0 +1,15 @@
|
||||
package com.mfsys.uco.response;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
@Data
|
||||
@Builder
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
public class ViewBalanceResponse {
|
||||
|
||||
private Double mbmBkmsbalance;
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.mfsys.uco.service;
|
||||
|
||||
import com.mfsys.uco.model.CustomerProfile;
|
||||
import com.mfsys.uco.repository.CustomerProfileRepository;
|
||||
|
||||
public class CustomerProfileService {
|
||||
|
||||
private final CustomerProfileRepository customerProfileRepository;
|
||||
|
||||
public CustomerProfileService(CustomerProfileRepository customerProfileRepository) {
|
||||
this.customerProfileRepository = customerProfileRepository;
|
||||
}
|
||||
|
||||
public CustomerProfile fetchCustcodeBasedOnEmail(String porOrgacode, String email) {
|
||||
return customerProfileRepository.findbyEmail(porOrgacode, email);
|
||||
}
|
||||
}
|
||||
@ -0,0 +1,17 @@
|
||||
package com.mfsys.uco.service;
|
||||
|
||||
import com.mfsys.uco.request.SignupStep3Request;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
@Service
|
||||
public class UcoAccountService {
|
||||
public void onBoardCustomer(SignupStep3Request signupStep3Request) {
|
||||
//check if user already present in db
|
||||
//interservice call to crmService
|
||||
//fetch AccountDetail
|
||||
//create customer profile and save in CustomerProfile Table
|
||||
//build UcoAccount and save in UcoAccount Table
|
||||
//call updateCustomerApplication using arguments of map email and porOrgacode
|
||||
|
||||
}
|
||||
}
|
||||
@ -1,4 +1,4 @@
|
||||
package com.mfsys.uco_bs_poc;
|
||||
package com.mfsys.uco;
|
||||
|
||||
import org.junit.jupiter.api.Test;
|
||||
import org.springframework.boot.test.context.SpringBootTest;
|
||||
Loading…
Reference in New Issue