You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
942 lines
29 KiB
942 lines
29 KiB
USE [FastMoneyPro_Remit]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[mobile_proc_userRegistration] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
DROP PROCEDURE [dbo].[mobile_proc_userRegistration]
|
|
GO
|
|
/****** Object: StoredProcedure [dbo].[mobile_proc_userRegistration] Script Date: 7/4/2019 11:35:48 AM ******/
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
|
|
|
|
ALTER PROCEDURE mobile_proc_userRegistration
|
|
@flag VARCHAR(30)
|
|
,@MSISDN VARCHAR(20) = NULL --Mobile Number
|
|
,@email VARCHAR(100) = NULL
|
|
,@code VARCHAR(50) = NULL --one time password
|
|
,@codeType VARCHAR(30) = NULL --one time password
|
|
,@userName VARCHAR(100) = NULL
|
|
,@Password VARCHAR(100) = NULL
|
|
,@newPassword VARCHAR(100) = NULL
|
|
,@Imei VARCHAR(256) = NULL --Imei Number of Mobile
|
|
,@appVersion VARCHAR(100) = NULL
|
|
,@deviceId VARCHAR(100) = NULL
|
|
,@osVersion VARCHAR(100) = NULL
|
|
,@phoneBrand VARCHAR(100) = NULL
|
|
,@phoneOs VARCHAR(100) = NULL
|
|
,@scope VARCHAR(50) = NULL
|
|
,@clientId VARCHAR(100) = NULL
|
|
,@answer DATE = NULL --password secutiry question applies for the dob
|
|
,@refWalletAccNo VARCHAR(50) = NULL
|
|
,@cmRegistrationId VARCHAR(MAX) = NULL
|
|
,@dpUrl VARCHAR(300) = NULL
|
|
|
|
AS
|
|
SET NOCOUNT ON;
|
|
SET XACT_ABORT ON;
|
|
BEGIN TRY
|
|
IF ISNULL(@username,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'User Id not defined.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@scope,'')<>'mobile_app'
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Application scope is not valid for this user.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
----------------------- Local variables declaration ###STARTS------------------------
|
|
|
|
DECLARE @_customerId BIGINT
|
|
,@_imei VARCHAR(256)
|
|
,@_otpUsed BIT
|
|
,@_scope VARCHAR(50)
|
|
,@_isDeleted CHAR(1)
|
|
,@_errorMsg VARCHAR(MAX)
|
|
,@_isExists BIT=0
|
|
,@_Otp VARCHAR(50)
|
|
,@_pwdRecoveryCode VARCHAR(50)
|
|
,@_dob DATE
|
|
,@_errorCode VARCHAR(50)
|
|
,@_isVerified BIT=0
|
|
,@_password VARCHAR(50)
|
|
,@_createdDate DATETIME
|
|
,@_count INT
|
|
,@_onlineUser CHAR(1)
|
|
,@_createdBy VARCHAR(100)
|
|
|
|
----------------------- Local variables declaration ###ENDS------------------------
|
|
|
|
|
|
IF @flag='signup' --first time user create(DONE)
|
|
BEGIN
|
|
------------- ### Check if the user trying to signup is already exists ###STARTS------------
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
)
|
|
BEGIN
|
|
SELECT '1' ErrorCode , @userName +' already exists' Msg ,@userName ID
|
|
RETURN;
|
|
END
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
)
|
|
BEGIN
|
|
SELECT '1' ErrorCode , @userName +' already exists' Msg ,@userName ID
|
|
RETURN;
|
|
END
|
|
|
|
------------- ### Check if the user trying to signup is already exists ###ENDS------------
|
|
|
|
------------- ### Check device registration limit ###STARTS------------
|
|
|
|
--IF EXISTS(SELECT 'x' FROM mobile_userRegistration(NOLOCK) WHERE imei=@imei GROUP BY imei HAVING COUNT(imei)>5)
|
|
--BEGIN
|
|
-- SELECT @_errorMsg = 'This device has exceeded the app registration limit.'
|
|
-- SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
-- RETURN
|
|
--END
|
|
|
|
------------- ### Check device registration limit ###ENDS------------
|
|
|
|
BEGIN TRANSACTION
|
|
INSERT INTO customerMasterTemp(mobile,email,customerpassword,createdBy)
|
|
SELECT @MSISDN,@email,dbo.FNAEncryptString(@Password),@scope
|
|
|
|
SET @_customerId=SCOPE_IDENTITY()
|
|
|
|
INSERT INTO mobile_userRegistration (customerId,username, OTP,OTP_Used,createdDate,IMEI,clientId)
|
|
SELECT @_customerId,@userName,@code,0,GETDATE(),@Imei,@clientId
|
|
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),'dvc',@_customerId
|
|
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
|
|
SELECT '0' ErrorCode , 'Registration Success' Msg ,@userName ID
|
|
RETURN
|
|
-------## if record already exists ##ENDS---------------
|
|
END
|
|
ELSE IF @flag='v-otp' --validate otp (DONE)
|
|
BEGIN
|
|
--SELECT '1' ErrorCode, 'Invalid device verification code.' Msg ,NULL ID
|
|
--RETURN
|
|
|
|
IF ISNULL(@code,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Device verification code is required.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@phoneOs,'') NOT IN('android','ios')
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid Device type(PhoneOs).' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
------------- ### Check if the user trying to validate is already exists ###STARTS------------
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
WHERE (cm.email=@userName OR cm.mobile=@userName) AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to validate is already exists ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
SELECT TOP 1
|
|
@_imei=v.imei
|
|
,@_Otp=otp.OTP
|
|
,@_otpUsed=otp.OTP_Used
|
|
,@_isDeleted=ISNULL(cust.isDeleted,'N')
|
|
,@_createdDate=DATEADD(MINUTE,20,otp.createdDate)
|
|
FROM customermasterTemp(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN dbo.OTPHistory(NOLOCK) otp ON cust.customerId=otp.customerId
|
|
WHERE cust.customerId=@_customerId AND otp.codeType='dvc'
|
|
ORDER BY otp.rowId DESC
|
|
|
|
--INNER JOIN OTPHistory otp(NOLOCK) ON v.username=otp.username
|
|
--WHERE cust.customerId=@_customerId AND otp.codeType='dvc'
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
--SELECT TOP 1
|
|
-- @_imei=v.imei
|
|
-- ,@_Otp=otp.OTP
|
|
-- ,@_otpUsed=otp.OTP_Used
|
|
-- ,@_isDeleted=ISNULL(cust.isDeleted,'N')
|
|
-- ,@_createdDate=DATEADD(MINUTE,20,otp.createdDate)
|
|
--FROM customermaster(NOLOCK) cust
|
|
--LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
--INNER JOIN OTPHistory otp(NOLOCK) ON v.username=otp.username
|
|
--WHERE cust.customerId=@_customerId AND otp.codeType='dvc'
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
IF @_Otp=@code AND DATEDIFF(MINUTE, GETDATE() ,@_createdDate)>0
|
|
AND @_imei=@Imei AND @_otpUsed=0
|
|
BEGIN
|
|
BEGIN TRANSACTION
|
|
|
|
UPDATE mobile_userRegistration
|
|
SET OTP_Used = 1
|
|
,appVersion=@appVersion
|
|
,phoneBrand=@phoneBrand
|
|
,phoneOs=@phoneOs
|
|
,osVersion=@osVersion
|
|
,deviceId=@deviceId
|
|
WHERE imei=@Imei AND otp=@code
|
|
|
|
--UPDATE OTPHistory
|
|
-- SET OTP_Used = 1
|
|
--WHERE username=@userName AND otp=@code
|
|
|
|
UPDATE OTPHistory
|
|
SET OTP_Used = 1
|
|
WHERE customerId=@_customerId AND otp=@code
|
|
|
|
IF EXISTS(SELECT 'x' FROM dbo.customerMasterTemp(NOLOCK)cm WHERE cm.email=@userName)
|
|
BEGIN
|
|
UPDATE cm
|
|
SET cm.isEmailVerified=1,
|
|
cm.isMobileVerified=0
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm WHERE cm.email=@userName
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
UPDATE cm
|
|
SET cm.isMobileVerified=1,
|
|
cm.isEmailVerified=0
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm WHERE cm.mobile=@userName
|
|
END
|
|
|
|
COMMIT TRANSACTION
|
|
SELECT '0' ErrorCode, 'Success' Msg, NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF ISNULL(@_Otp,'')<>@code
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Please enter valid verification code sent to your ' + @userName Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF DATEDIFF(MINUTE, GETDATE() ,@_createdDate)<=0
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Device verification code expired. Please re-send code and try again.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF @_imei=@Imei AND @_otpUsed=1
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'User already verified.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF @_imei<>@Imei
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'User does not belongs to this device for verification.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid device verification code.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
END
|
|
ELSE IF @flag='re-code' --resend OTP(DONE)
|
|
BEGIN
|
|
IF ISNULL(@scope,'')<>'mobile_app'
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Application scope is not valid for this user.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@codeType,'') NOT IN('dvc','prc')
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Requested code type is not valid.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
DECLARE @today VARCHAR(15)=CONVERT(DATE, GETDATE(),101)
|
|
|
|
------------- ### Check if the user trying to re-send code is exists or not ###STARTS------------
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.CustomerMasterTemp(NOLOCK) cm
|
|
WHERE (cm.email=@userName OR cm.mobile=@userName) AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
SELECT TOP 1
|
|
@_imei=v.imei
|
|
,@_Otp=otp.OTP
|
|
,@_otpUsed=otp.OTP_Used
|
|
FROM dbo.CustomerMasterTemp(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN OTPHistory otp(NOLOCK) ON cust.customerId=otp.customerId
|
|
WHERE cust.customerId=@_customerId AND otp.codeType=@codeType
|
|
ORDER BY otp.rowId DESC
|
|
|
|
IF @_otpUsed=1 AND @codeType='dvc' --for device verification code
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'User already verified. You cannot re-send code for the user who is already verified.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
SELECT @_count=COUNT('x')
|
|
FROM dbo.CustomerMasterTemp(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN OTPHistory otp(NOLOCK) ON cust.customerId=otp.customerId
|
|
WHERE cust.customerId=@_customerId
|
|
AND otp.codeType=@codeType
|
|
AND v.imei=@imei
|
|
AND otp.createdDate BETWEEN @today AND @today+ ' 23:59:59'
|
|
|
|
IF ISNULL(@_count,0)>10
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Your device has been blocked. Re-send code attempts exceeded from same device.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),@codeType,@_customerId
|
|
|
|
SELECT '0' ErrorCode, 'Success' Msg ,@code ID
|
|
RETURN
|
|
END
|
|
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE (cm.email=@userName OR cm.mobile=@userName) AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'Invalid UserId.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
------------- ### Check if the user trying to re-send code is exists or not ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
|
|
|
|
--SELECT TOP 1
|
|
-- @_imei=v.imei
|
|
-- ,@_Otp=otp.OTP
|
|
-- ,@_otpUsed=otp.OTP_Used
|
|
--FROM mobile_userRegistration(NOLOCK) v
|
|
--LEFT JOIN OTPHistory otp(NOLOCK) ON v.username=otp.username
|
|
--WHERE otp.username=@userName AND otp.codeType=@codeType
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
|
|
SELECT TOP 1
|
|
@_imei=v.imei
|
|
,@_Otp=otp.OTP
|
|
,@_otpUsed=otp.OTP_Used
|
|
FROM customermaster(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN OTPHistory otp(NOLOCK) ON cust.customerId=otp.customerId
|
|
WHERE cust.customerId=@_customerId AND otp.codeType=@codeType
|
|
ORDER BY otp.rowId DESC
|
|
|
|
------------- ### Check if the user trying to re-send code is already verified or not ###STARTS------------
|
|
|
|
IF @_otpUsed=1 AND @codeType='dvc' --for device verification code
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'User already verified. You cannot re-send code for the user who is already verified.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to re-send code is already verified or not ###ENDS------------
|
|
|
|
------------- ### Check attempts of re-send code from same device ###STARTS------------
|
|
|
|
|
|
|
|
SELECT @_count=COUNT('x')
|
|
FROM customermaster(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN OTPHistory otp(NOLOCK) ON cust.customerId=otp.customerId
|
|
WHERE cust.customerId=@_customerId
|
|
AND otp.codeType=@codeType
|
|
AND v.imei=@imei
|
|
AND otp.createdDate BETWEEN @today AND @today+ ' 23:59:59'
|
|
|
|
IF ISNULL(@_count,0)>10
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Your device has been blocked. Re-send code attempts exceeded from same device.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check attempts of re-send code ###ENDS------------
|
|
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),@codeType,@_customerId
|
|
|
|
SELECT '0' ErrorCode, 'Success' Msg ,@code ID
|
|
RETURN
|
|
END
|
|
ELSE IF @flag='pwd-reset-rq' --password reset request(DONE)
|
|
BEGIN
|
|
|
|
------------- ### Check if the user trying to re-send code is exists or not ###STARTS------------
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.CustomerMasterTemp(NOLOCK) cm
|
|
WHERE (cm.email=@userName OR cm.mobile=@userName) AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.CustomerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),'prc',@_customerId
|
|
|
|
SELECT ErrorCode= '0'
|
|
,userId=@userName
|
|
,isVerified='false'
|
|
RETURN
|
|
END
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE (cm.email=@userName OR cm.mobile=@userName) AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to re-send code is exists or not ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
IF EXISTS(SELECT 'x'
|
|
FROM customermaster(NOLOCK) cust
|
|
WHERE cust.customerId=@_customerId AND ISNULL(cust.verifiedDate,'')<>''
|
|
)
|
|
BEGIN
|
|
SELECT ErrorCode= '0'
|
|
,userId=@userName
|
|
,isVerified='true'
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),'prc',@_customerId
|
|
|
|
SELECT ErrorCode= '0'
|
|
,userId=@userName
|
|
,isVerified='false'
|
|
RETURN
|
|
END
|
|
END
|
|
ELSE IF @flag='qstn_validate' --reset password question validation(DONE)
|
|
BEGIN
|
|
IF ISNULL(@answer,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'The answer field is required.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to validate is already exists ###STARTS------------
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to validate is already exists ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.customerId=@_customerId AND ISNULL(cm.dob,'')=@answer
|
|
)
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Your Date of Birth does not matches with your saved details' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
INSERT INTO OTPHistory(username,OTP,OTP_Used,createdDate,codeType,customerId)
|
|
SELECT @userName,@code,0,GETDATE(),'prc',@_customerId
|
|
|
|
SELECT '0' ErrorCode, 'Correct answer.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
ELSE IF @flag='prc-validate' --password recovery validation(DONE)
|
|
BEGIN
|
|
IF ISNULL(@code,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Password Recovery code is required.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to validate is already exists ###STARTS------------
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.CustomerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
SELECT TOP 1
|
|
@_Otp=otp.OTP
|
|
,@_otpUsed=otp.OTP_Used
|
|
,@_createdDate=DATEADD(MINUTE,20,otp.createdDate)
|
|
FROM dbo.OTPHistory(NOLOCK) otp
|
|
WHERE otp.customerId=@_customerId AND otp.codeType='prc' /* AND otp.OTP=@code */
|
|
ORDER BY otp.rowId DESC
|
|
|
|
IF @_Otp=@code AND DATEDIFF(MINUTE, GETDATE() ,@_createdDate)>0
|
|
AND @_otpUsed=0
|
|
BEGIN
|
|
--UPDATE OTPHistory
|
|
-- SET OTP_Used = 1
|
|
--WHERE username=@userName AND otp=@code
|
|
|
|
UPDATE OTPHistory
|
|
SET OTP_Used = 1
|
|
WHERE customerId=@_customerId AND otp=@code
|
|
|
|
SELECT '0' ErrorCode, 'Success' Msg, @userName ID
|
|
RETURN
|
|
END
|
|
IF @_otpUsed=1
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Password recovery code already used.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF ISNULL(@_Otp,'') <> @code
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid Password recovery code..' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF DATEDIFF(MINUTE, GETDATE() ,@_createdDate)<=0
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Password recovery code expired. Please re-send code and try again.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid Password recovery code.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
IF NOT EXISTS(
|
|
SELECT 'x' FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@username OR cm.mobile=@userName AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to validate is already exists ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cm.customerId
|
|
FROM dbo.customerMaster(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName
|
|
|
|
--SELECT TOP 1
|
|
-- @_Otp=otp.OTP
|
|
-- ,@_otpUsed=otp.OTP_Used
|
|
-- ,@_createdDate=DATEADD(MINUTE,20,otp.createdDate)
|
|
--FROM dbo.OTPHistory(NOLOCK) otp
|
|
--WHERE otp.username=@userName AND otp.codeType='prc' AND otp.OTP=@code
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
SELECT TOP 1
|
|
@_Otp=otp.OTP
|
|
,@_otpUsed=otp.OTP_Used
|
|
,@_createdDate=DATEADD(MINUTE,20,otp.createdDate)
|
|
FROM dbo.OTPHistory(NOLOCK) otp
|
|
WHERE otp.customerId=@_customerId AND otp.codeType='prc' /* AND otp.OTP=@code */
|
|
ORDER BY otp.rowId DESC
|
|
|
|
IF @_Otp=@code AND DATEDIFF(MINUTE, GETDATE() ,@_createdDate)>0
|
|
AND @_otpUsed=0
|
|
BEGIN
|
|
--UPDATE OTPHistory
|
|
-- SET OTP_Used = 1
|
|
--WHERE username=@userName AND otp=@code
|
|
|
|
UPDATE OTPHistory
|
|
SET OTP_Used = 1
|
|
WHERE customerId=@_customerId AND otp=@code
|
|
|
|
SELECT '0' ErrorCode, 'Success' Msg, @userName ID
|
|
RETURN
|
|
END
|
|
IF @_otpUsed=1
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Password recovery code already used.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF ISNULL(@_Otp,'') <> @code
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid Password recovery code..' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE IF DATEDIFF(MINUTE, GETDATE() ,@_createdDate)<=0
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Password recovery code expired. Please re-send code and try again.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid Password recovery code.' Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
|
|
END
|
|
ELSE IF @flag='u-pwd' --used to update user fields before login(DONE)
|
|
BEGIN
|
|
--SELECT TOP 1
|
|
-- @_customerId=cust.customerId
|
|
-- ,@_otpUsed=otp.OTP_Used
|
|
-- ,@_onlineUser=cust.onlineUser
|
|
--FROM customermaster(NOLOCK) cust
|
|
--LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
--INNER JOIN OTPHistory otp(NOLOCK) ON v.username=otp.username
|
|
--WHERE cust.email=@userName OR cust.mobile=@userName AND ISNULL(cust.createdBy, '')=@scope
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
IF EXISTS(
|
|
SELECT 'x' FROM dbo.CustomerMasterTemp(NOLOCK) cm
|
|
WHERE cm.email=@userName OR cm.mobile=@userName AND ISNULL(cm.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT TOP 1
|
|
@_customerId=cust.customerId
|
|
,@_otpUsed=otp.OTP_Used
|
|
,@_onlineUser=cust.onlineUser
|
|
,@_createdBy=cust.createdBy
|
|
FROM customermasterTemp(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
LEFT JOIN OTPHistory(NOLOCK) otp ON cust.customerId=otp.customerId
|
|
WHERE cust.email=@userName OR cust.mobile=@userName AND ISNULL(cust.createdBy, '')=@scope
|
|
ORDER BY otp.rowId DESC
|
|
|
|
IF ISNULL(@_customerId,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid username.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@Password,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'The password field is Required.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
IF @_otpUsed<>1 AND @_createdBy IN ('mobile','mobile_app')
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'To update your password, please verify your account first with the verification code sent to your ' + @userName Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
UPDATE customermasterTemp SET
|
|
customerpassword=ISNULL(dbo.FNAEncryptString(@Password),customerPassword)
|
|
WHERE customerId=@_customerId
|
|
|
|
SELECT
|
|
errorCode='0'
|
|
,userId=@userName
|
|
,firstName=cm.firstName
|
|
,middleName=cm.middleName
|
|
,lastName=cm.lastName1
|
|
,nickName=cm.nickName
|
|
,email=ISNULL(cm.email,'')
|
|
,phone=ISNULL(cm.mobile,'')
|
|
,rewardPoint=CAST(ISNULL(cm.bonusPoint,0) AS DECIMAL)
|
|
,verificationCode=ISNULL(ur.OTP,'')
|
|
,VerificationCodeExpiryDate=''
|
|
,createdDate=ISNULL(ur.createdDate,'')
|
|
,userRoles=''
|
|
,active=CASE WHEN ISNULL(cm.isActive,'Y')='Y' THEN 1 ELSE 0 END
|
|
,kyc=CASE WHEN ISNULL(cm.createdDate,'') <> '' THEN 1 ELSE 0 END
|
|
,verified=CASE WHEN ISNULL(cm.verifiedDate,'') <> '' THEN 1 ELSE 0 END
|
|
,forgetCode=ISNULL(ur.passRecoveryCode,'')
|
|
,ForgetCodeExpiryDate=''
|
|
,primaryBankName=ISNULL(bl.BankName,'')
|
|
,walletNumber=ISNULL(cm.walletAccountNo,'')
|
|
,availableBalance=CAST([dbo].FNAGetCustomerACBal(@userName) AS DECIMAL)
|
|
,dpUrl=ISNULL(cm.dpUrl,'')
|
|
,cmRegistrationId=ISNULL(ur.cmRegistrationId,'')
|
|
FROM dbo.customerMasterTemp(NOLOCK) cm
|
|
LEFT JOIN dbo.mobile_userRegistration(NOLOCK) ur
|
|
ON ur.customerId=cm.customerId
|
|
LEFT JOIN dbo.vwBankLists bl WITH(NOLOCK)
|
|
ON bl.bankCode=cm.bankName
|
|
WHERE cm.customerId=@_customerId
|
|
RETURN
|
|
|
|
END
|
|
|
|
SELECT TOP 1
|
|
@_customerId=cust.customerId
|
|
,@_otpUsed=otp.OTP_Used
|
|
,@_onlineUser=cust.onlineUser
|
|
FROM customermaster(NOLOCK) cust
|
|
LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
LEFT JOIN OTPHistory(NOLOCK) otp ON cust.customerId=otp.customerId
|
|
WHERE cust.email=@userName OR cust.mobile=@userName AND ISNULL(cust.createdBy, '')=@scope
|
|
ORDER BY otp.rowId DESC
|
|
|
|
IF ISNULL(@_customerId,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid username.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
IF ISNULL(@Password,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'The password field is Required.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
IF @_otpUsed<>1 AND @_createdBy IN ('mobile','mobile_app')
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'To update your password, please verify your account first with the verification code sent to your ' + @userName Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
UPDATE customermaster SET
|
|
customerpassword=ISNULL(dbo.FNAEncryptString(@Password),customerPassword)
|
|
WHERE customerId=@_customerId
|
|
|
|
SELECT
|
|
errorCode='0'
|
|
,userId=@userName
|
|
,firstName=cm.firstName
|
|
,middleName=cm.middleName
|
|
,lastName=cm.lastName1
|
|
,nickName=''
|
|
,email=ISNULL(cm.email,'')
|
|
,phone=ISNULL(cm.mobile,'')
|
|
,rewardPoint=CAST(ISNULL(cm.bonusPoint,0) AS DECIMAL)
|
|
,verificationCode=ISNULL(ur.OTP,'')
|
|
,VerificationCodeExpiryDate=''
|
|
,createdDate=ISNULL(ur.createdDate,'')
|
|
,userRoles=''
|
|
,active=CASE WHEN ISNULL(cm.isActive,'Y')='Y' THEN 1 ELSE 0 END
|
|
,kyc=CASE WHEN ISNULL(cm.createdDate,'') <> '' THEN 1 ELSE 0 END
|
|
,verified=CASE WHEN ISNULL(cm.verifiedDate,'') <> '' THEN 1 ELSE 0 END
|
|
,forgetCode=ISNULL(ur.passRecoveryCode,'')
|
|
,ForgetCodeExpiryDate=''
|
|
,primaryBankName=ISNULL(bl.BankName,'')
|
|
,walletNumber=ISNULL(cm.walletAccountNo,'')
|
|
,availableBalance=CAST([dbo].FNAGetCustomerACBal(@userName) AS DECIMAL)
|
|
,dpUrl=''
|
|
,cmRegistrationId=ISNULL(ur.cmRegistrationId,'')
|
|
FROM dbo.customerMaster(NOLOCK) cm
|
|
LEFT JOIN dbo.mobile_userRegistration(NOLOCK) ur
|
|
ON ur.customerId=cm.customerId
|
|
LEFT JOIN dbo.vwBankLists bl WITH(NOLOCK)
|
|
ON bl.bankCode=cm.bankName
|
|
WHERE cm.customerId=@_customerId
|
|
RETURN
|
|
END
|
|
ELSE IF @flag='u-user'
|
|
BEGIN
|
|
--SELECT TOP 1
|
|
-- @_customerId=cust.customerId
|
|
-- ,@_otpUsed=otp.OTP_Used
|
|
-- ,@email=cust.email
|
|
-- ,@MSISDN=cust.mobile
|
|
--FROM customermaster(NOLOCK) cust
|
|
--LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
--INNER JOIN OTPHistory otp(NOLOCK) ON v.username=otp.username
|
|
--WHERE cust.email=@userName OR cust.mobile=@userName AND ISNULL(cust.createdBy, '')=@scope
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
SELECT TOP 1
|
|
@_customerId=cust.customerId
|
|
--,@_otpUsed=otp.OTP_Used
|
|
,@email=cust.email
|
|
,@MSISDN=cust.mobile
|
|
FROM customermaster(NOLOCK) cust
|
|
--LEFT JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
INNER JOIN mobile_userRegistration(NOLOCK) v ON cust.customerId=v.customerId
|
|
--LEFT JOIN OTPHistory(NOLOCK) otp ON cust.customerId=otp.customerId
|
|
WHERE (cust.email=@userName OR cust.mobile=@userName)
|
|
--AND ISNULL(cust.createdBy, '')=@scope
|
|
--WHERE ((cust.email=@userName AND cust.isEmailVerified=1) OR (cust.mobile=@userName AND cust.isMobileVerified=1)) AND ISNULL(cust.createdBy, '')=@scope
|
|
--ORDER BY otp.rowId DESC
|
|
|
|
IF ISNULL(@_customerId,'')=''
|
|
BEGIN
|
|
SELECT '1' ErrorCode, 'Invalid username.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
IF ISNULL(@cmRegistrationId,'') <> ''
|
|
BEGIN
|
|
UPDATE mobile_userRegistration SET
|
|
cmRegistrationId=ISNULL(@cmRegistrationId,cmRegistrationId)
|
|
WHERE customerId=@_customerId
|
|
END
|
|
--IF ISNULL(@dpUrl,'') <> ''
|
|
--BEGIN
|
|
-- UPDATE cm SET dpUrl=ISNULL(@dpUrl,dpUrl)
|
|
-- FROM dbo.customerMaster cm
|
|
-- WHERE cm.customerId=@_customerId
|
|
--END
|
|
SELECT errorCode='0'
|
|
,userId=@userName
|
|
,firstName=cm.firstName
|
|
,middleName=cm.middleName
|
|
,lastName=cm.lastName1
|
|
,nickName=''
|
|
,email=ISNULL(cm.email,'')
|
|
,phone=ISNULL(cm.mobile,'')
|
|
,rewardPoint=CAST(ISNULL(cm.bonusPoint,0) AS DECIMAL)
|
|
,verificationCode=ISNULL(ur.OTP,'')
|
|
,VerificationCodeExpiryDate=''
|
|
,createdDate=ISNULL(ur.createdDate,'')
|
|
,userRoles=''
|
|
,active=CASE WHEN ISNULL(cm.isActive,'Y')='Y' THEN 1 ELSE 0 END
|
|
,kyc=CASE WHEN ISNULL(cm.createdDate,'') <> '' THEN 1 ELSE 0 END
|
|
,verified=CASE WHEN ISNULL(cm.verifiedDate,'') <> '' THEN 1 ELSE 0 END
|
|
,forgetCode=ISNULL(ur.passRecoveryCode,'')
|
|
,ForgetCodeExpiryDate=''
|
|
,primaryBankName=ISNULL(bl.BankName,'')
|
|
,walletNumber=ISNULL(cm.walletAccountNo,'')
|
|
,availableBalance=CAST([dbo].FNAGetCustomerACBal(@userName) AS DECIMAL)
|
|
,dpUrl=''
|
|
,cmRegistrationId=ISNULL(ur.cmRegistrationId,'')
|
|
FROM dbo.mobile_userRegistration(NOLOCK) ur
|
|
INNER JOIN dbo.customerMaster(NOLOCK) cm
|
|
ON ur.customerId=cm.customerId
|
|
LEFT JOIN dbo.vwBankLists(NOLOCK) bl
|
|
ON bl.bankCode=cm.bankName
|
|
WHERE cm.customerId=@_customerId
|
|
RETURN
|
|
END
|
|
ELSE IF @flag='pwd-change' --password changed after successful login(DONE)
|
|
BEGIN
|
|
------------- ### Check if the user trying to change password exists or not ###STARTS------------
|
|
|
|
IF NOT EXISTS(SELECT 'x' FROM dbo.customerMaster(NOLOCK) cust
|
|
WHERE cust.email=@userName OR cust.mobile=@userName AND ISNULL(cust.isDeleted,'N')='N'
|
|
)
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
------------- ### Check if the user trying to change password exists or not ###ENDS------------
|
|
|
|
SELECT
|
|
@_customerId=cust.customerId
|
|
,@_password=cust.customerpassword
|
|
FROM customermaster(NOLOCK) cust
|
|
WHERE cust.email=@userName OR cust.mobile=@userName
|
|
|
|
IF @_password <> dbo.FNAEncryptString(@Password)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Incorrect existing password.. Please try again!', @userName
|
|
RETURN;
|
|
END
|
|
|
|
IF @_password = dbo.FNAEncryptString(@newPassword)
|
|
BEGIN
|
|
EXEC proc_errorHandler 1, 'Please enter a new password.Old passwords are not accepted.', @userName
|
|
RETURN;
|
|
END
|
|
|
|
IF ISNULL(@_customerId,'') = ''
|
|
BEGIN
|
|
SELECT @_errorMsg = 'User with contact Info ' + @username + ' does not exists. If you are a new user, then sign up and proceed further.'
|
|
SELECT '1' ErrorCode, @_errorMsg Msg ,NULL ID
|
|
RETURN
|
|
END
|
|
|
|
BEGIN TRANSACTION
|
|
UPDATE customermaster SET
|
|
customerpassword=dbo.FNAEncryptString(@newPassword)
|
|
WHERE customerId=@_customerId
|
|
|
|
IF @@TRANCOUNT > 0
|
|
COMMIT TRANSACTION
|
|
|
|
SELECT '0' ErrorCode, 'Password changed successfully.' Msg ,@userName ID
|
|
RETURN
|
|
END
|
|
|
|
ELSE IF @flag='chk-referred'
|
|
BEGIN
|
|
IF EXISTS(SELECT 'x' FROM referralmaster(NOLOCK) WHERE email = @email OR mobile = @MSISDN)
|
|
BEGIN
|
|
SELECT @userName=userId FROM dbo.referralMaster(NOLOCK) WHERE email=@email OR mobile=@MSISDN
|
|
SELECT errorCode = '0' ,
|
|
referredBy=@userName,
|
|
isReferred=1
|
|
RETURN
|
|
END
|
|
ELSE
|
|
BEGIN
|
|
SELECT errorCode = '1',
|
|
referredBy='',
|
|
isReferred=0
|
|
RETURN
|
|
END
|
|
END
|
|
|
|
|
|
END TRY
|
|
BEGIN CATCH
|
|
IF @@TRANCOUNT > 0
|
|
ROLLBACK TRANSACTION
|
|
DECLARE @errorMessage VARCHAR(MAX)
|
|
SET @errorMessage = ERROR_MESSAGE()
|
|
SELECT '1' ErrorCode, @errorMessage Msg ,NULL ID
|
|
END CATCH
|
|
|