Merge branch 'develop' into feature/callbackpaymentintent
This commit is contained in:
@@ -11,7 +11,7 @@ import lombok.NoArgsConstructor;
|
|||||||
@Builder
|
@Builder
|
||||||
public class UserDetailsDTO {
|
public class UserDetailsDTO {
|
||||||
|
|
||||||
private Long id;
|
private String userId;
|
||||||
|
|
||||||
private String userEmailId;
|
private String userEmailId;
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,9 @@ public class UserEntity extends Auditable<String> {
|
|||||||
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
@GeneratedValue(strategy = GenerationType.IDENTITY)
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name = "user_id", unique = true)
|
||||||
|
private String userId;
|
||||||
|
|
||||||
@Column(name = "mobile", nullable = false, unique = true, length = 20)
|
@Column(name = "mobile", nullable = false, unique = true, length = 20)
|
||||||
private String mobile;
|
private String mobile;
|
||||||
|
|
||||||
|
|||||||
@@ -9,5 +9,8 @@ import com.billpaymentservice.bbps.entites.UserEntity;
|
|||||||
|
|
||||||
@Repository
|
@Repository
|
||||||
public interface UserRepository extends JpaRepository<UserEntity, Long> {
|
public interface UserRepository extends JpaRepository<UserEntity, Long> {
|
||||||
Optional<UserEntity> findByMobile(String mobile);
|
Optional<UserEntity> findByMobile(String mobile);
|
||||||
|
|
||||||
|
// check user id exists
|
||||||
|
boolean existsByUserId(String userId);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -93,8 +93,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
Object userDetailsDTO = null;
|
Object userDetailsDTO = null;
|
||||||
|
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
userDetailsDTO = UserDetailsDTO.builder().id(user.getId()).userEmailId(user.getEmail())
|
userDetailsDTO = helper.mapUserToUserDetailsDTO(user);
|
||||||
.userMobNo(user.getMobile()).userName(user.getName()).build();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
AuthResponses authResp = new AuthResponses(token, "Success", "Login Success", 200, userDetailsDTO,
|
AuthResponses authResp = new AuthResponses(token, "Success", "Login Success", 200, userDetailsDTO,
|
||||||
@@ -148,6 +147,7 @@ public class AuthServiceImpl implements AuthService {
|
|||||||
return ResponseModel.builder().message(ar.getMessage()).status("Failure").statusCode(409).data(ar)
|
return ResponseModel.builder().message(ar.getMessage()).status("Failure").statusCode(409).data(ar)
|
||||||
.build();
|
.build();
|
||||||
}
|
}
|
||||||
|
|
||||||
UserEntity userEntity = helper.createNewUser(request);
|
UserEntity userEntity = helper.createNewUser(request);
|
||||||
userRepository.save(userEntity);
|
userRepository.save(userEntity);
|
||||||
String token = jwtUtil.generateToken(userEntity.getMobile());
|
String token = jwtUtil.generateToken(userEntity.getMobile());
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ package com.billpaymentservice.bbps.util;
|
|||||||
import java.security.SecureRandom;
|
import java.security.SecureRandom;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.Random;
|
import java.util.UUID;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
@@ -11,6 +11,7 @@ import org.springframework.http.HttpHeaders;
|
|||||||
import org.springframework.http.MediaType;
|
import org.springframework.http.MediaType;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import com.billpaymentservice.bbps.dto.UserDetailsDTO;
|
||||||
import com.billpaymentservice.bbps.dto.auth.RegisterRequest;
|
import com.billpaymentservice.bbps.dto.auth.RegisterRequest;
|
||||||
import com.billpaymentservice.bbps.entites.BBPSMastersData;
|
import com.billpaymentservice.bbps.entites.BBPSMastersData;
|
||||||
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
|
import com.billpaymentservice.bbps.entites.BharatConnectMaster;
|
||||||
@@ -24,6 +25,7 @@ import com.billpaymentservice.bbps.repository.BillValidationRepository;
|
|||||||
import com.billpaymentservice.bbps.repository.BillerDataRepository;
|
import com.billpaymentservice.bbps.repository.BillerDataRepository;
|
||||||
import com.billpaymentservice.bbps.repository.InboundTraceLogRepository;
|
import com.billpaymentservice.bbps.repository.InboundTraceLogRepository;
|
||||||
import com.billpaymentservice.bbps.repository.OutboundTraceLogRepository;
|
import com.billpaymentservice.bbps.repository.OutboundTraceLogRepository;
|
||||||
|
import com.billpaymentservice.bbps.repository.UserRepository;
|
||||||
import com.fasterxml.jackson.databind.ObjectMapper;
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
@@ -32,6 +34,7 @@ public class Helper {
|
|||||||
private static final Logger LOGGER = LoggerFactory.getLogger(Helper.class);
|
private static final Logger LOGGER = LoggerFactory.getLogger(Helper.class);
|
||||||
private final InboundTraceLogRepository inboundTraceLogRepository;
|
private final InboundTraceLogRepository inboundTraceLogRepository;
|
||||||
private final OutboundTraceLogRepository outboundTraceLogRepository;
|
private final OutboundTraceLogRepository outboundTraceLogRepository;
|
||||||
|
private final UserRepository userRepository;
|
||||||
|
|
||||||
private static final String CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
private static final String CHARACTERS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz";
|
||||||
private static final SecureRandom secureRandom = new SecureRandom();
|
private static final SecureRandom secureRandom = new SecureRandom();
|
||||||
@@ -40,12 +43,13 @@ public class Helper {
|
|||||||
|
|
||||||
// Constructor Injection
|
// Constructor Injection
|
||||||
public Helper(BBPSMasterDataRepo bbpsMasterDataRepo, InboundTraceLogRepository inboundTraceLogRepository,
|
public Helper(BBPSMasterDataRepo bbpsMasterDataRepo, InboundTraceLogRepository inboundTraceLogRepository,
|
||||||
|
|
||||||
OutboundTraceLogRepository outboundTraceLogRepository, BillerDataRepository billerDataRepository,
|
OutboundTraceLogRepository outboundTraceLogRepository, BillerDataRepository billerDataRepository,
|
||||||
BillMasterRepository billMasterRepository, BillValidationRepository billValidationRepository) {
|
BillMasterRepository billMasterRepository, BillValidationRepository billValidationRepository,
|
||||||
|
UserRepository userRepository) {
|
||||||
this.inboundTraceLogRepository = inboundTraceLogRepository;
|
this.inboundTraceLogRepository = inboundTraceLogRepository;
|
||||||
this.outboundTraceLogRepository = outboundTraceLogRepository;
|
this.outboundTraceLogRepository = outboundTraceLogRepository;
|
||||||
this.bbpsMasterDataRepo = bbpsMasterDataRepo;
|
this.bbpsMasterDataRepo = bbpsMasterDataRepo;
|
||||||
|
this.userRepository = userRepository;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -174,23 +178,47 @@ public class Helper {
|
|||||||
public UserEntity createNewUser(RegisterRequest request) {
|
public UserEntity createNewUser(RegisterRequest request) {
|
||||||
UserEntity user = new UserEntity();
|
UserEntity user = new UserEntity();
|
||||||
|
|
||||||
// user.setId(generateUserId());
|
// user.setId(generateUserId());
|
||||||
user.setMobile(request.getMobile());
|
user.setMobile(request.getMobile());
|
||||||
user.setName(request.getName());
|
user.setName(request.getName());
|
||||||
user.setEmail(request.getEmail());
|
user.setEmail(request.getEmail());
|
||||||
user.setMid(request.getMid());
|
user.setMid(request.getMid());
|
||||||
user.setCreateDateTime(new Date());
|
user.setCreateDateTime(new Date());
|
||||||
|
// Generate a unique userId (UUID)
|
||||||
|
String uniqueUserId = generateUniqueUserId();
|
||||||
|
user.setUserId(uniqueUserId);
|
||||||
|
|
||||||
return user;
|
return user;
|
||||||
}
|
}
|
||||||
|
|
||||||
public <T> T convertJsonToObject(String json, Class<T> clazz) {
|
public Object mapUserToUserDetailsDTO(UserEntity user) {
|
||||||
try {
|
if (user != null) {
|
||||||
return objectMapper.readValue(json, clazz);
|
return UserDetailsDTO.builder().userId(user.getUserId() != null ? user.getUserId() : null) // Set null if
|
||||||
} catch (Exception e) {
|
.userEmailId(user.getEmail() != null ? user.getEmail() : null)
|
||||||
throw new CustomException("Invalid JSON from payment API", "FAILED", 400, json);
|
.userMobNo(user.getMobile() != null ? user.getMobile() : null)
|
||||||
}
|
.userName(user.getName() != null ? user.getName() : null).build();
|
||||||
|
}
|
||||||
|
return null; // or handle accordingly if user is null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public <T> T convertJsonToObject(String json, Class<T> clazz) {
|
||||||
|
try {
|
||||||
|
return objectMapper.readValue(json, clazz);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new CustomException("Invalid JSON from payment API", "FAILED", 400, json);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String generateUniqueUserId() {
|
||||||
|
String userId = UUID.randomUUID().toString(); // Generate UUID
|
||||||
|
|
||||||
|
// Check if the userId already exists in the database (theoretically rare but
|
||||||
|
// can happen)
|
||||||
|
while (userRepository.existsByUserId(userId)) {
|
||||||
|
// If it exists, generate a new one
|
||||||
|
userId = UUID.randomUUID().toString();
|
||||||
|
}
|
||||||
|
|
||||||
|
return userId;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user