|
|
USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[mobile_proc_userLogin] Script Date: 12/18/2023 11:01:32 PM ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO
ALTER PROCEDURE [dbo].[mobile_proc_userLogin] @flag VARCHAR(30) ,@userName VARCHAR(100) = NULL ,@Password VARCHAR(100) = NULL ,@Imei VARCHAR(256) = NULL --Imei Number/UUID or Android id of Mobile ,@accessCode VARCHAR(MAX) = NULL -- access token used in every request
,@scope VARCHAR(50) = NULL --for mobile applicatin, @scope='mobile_app' ,@clientId VARCHAR(200) = NULL --basic header key ,@fcmid VARCHAR(250) = NULL ,@customerId VARCHAR(100) = NULL ,@ip VARCHAR(100) = NULL ,@isBiometricLogin VARCHAR(5) = NULL ,@biometricLoginType VARCHAR(20) = NULL ,@deviceType VARCHAR(100) = NULL ,@accessToken VARCHAR(MAX) = NULL -- access token for Biometric
,@residenceType VARCHAR(20) = NULL AS BEGIN TRY ----------------------------------------
--@fcmid varchar(250), add @IP param --#182 - @isBiometricLogin VARCHAR(5), @biometricLoginType VARCHAR(20) , modifications in @flag='l'
-- @isbiometricEnabled
-- #225 - flag = l, check accessCode and status for biometric login
-- add new param @accessToken for Biometric
--select column [mobile_userRegistration].isForcePassChange --#101 , #361 - Mobile changes for multi lingual
--#101 -set biometric as empty for '5' ErrorCode
--No email OTP verification was prompt for existing customer which was activate over the counter. --#665 Remove JME online from Branch list
--add for trustdoc @residenceType ----------------------------------------
SET NOCOUNT ON; SET XACT_ABORT ON;
DECLARE @UserData VARCHAR(500) ,@UserInfoDetail VARCHAR(MAX) ,@AccessCodeExpiresAfter INT = 5 --Minutes ,@email VARCHAR(100) ,@mobile VARCHAR(100) ,@customerPwd VARCHAR(50) ,@isActive CHAR(1) ,@isEmailVerified BIT
,@approvedDate DATETIME
,@isBiometricEnabled VARCHAR(10) --,@customerStatus VARCHAR(5) ----------------------- Local variables declaration ###STARTS------------------------
DECLARE @_imei VARCHAR(256) ,@_otpUsed BIT
,@_scope VARCHAR(50) ,@_isDeleted CHAR(1) ,@_errorMsg VARCHAR(MAX) ,@_isExists BIT = 0 ,@_Otp VARCHAR(50) ,@_accessCode VARCHAR(MAX) ,@_accessCodeExpiry DATETIME
,@_errorCode VARCHAR(20) ,@_lastLoggedInDevice VARCHAR(200) ,@previousAccessCode VARCHAR(MAX)
----------------------- Local variables declaration ###ENDS------------------------
-- Check This Customer Infoagree State
IF @flag = 'check-agree' BEGIN IF EXISTS ( SELECT TOP 1 'X' FROM CustomerMasterTemp(NOLOCK) WHERE username = @userName AND ISNULL(agreeYn, '0') = '0' ) BEGIN SELECT 0 ErrorCode ,'Get PDF List Success About Agree infomation' Msg ,NULL Id ,rowId ,PdfName ,AgreePdfPath FROM customerAgreeDocumentTbl(NOLOCK) WHERE targetObj = 'STAGING'
RETURN END ELSE IF EXISTS ( SELECT TOP 1 'X' FROM CustomerMaster(NOLOCK) WHERE email = @userName AND ISNULL(agreeYn, '0') = '0' ) BEGIN SELECT 0 ErrorCode ,'Get PDF List Success About Agree infomation' Msg ,NULL Id ,rowId ,PdfName ,AgreePdfPath FROM customerAgreeDocumentTbl(NOLOCK) WHERE targetObj = 'STAGING'
RETURN END ELSE BEGIN SELECT 1 ErrorCode ,'Invaild user.. Check user value ' Msg ,NULL Id END END ELSE IF @flag = 'l' -- login to system(done)
BEGIN IF ISNULL(@username, '') = '' BEGIN SELECT '1' ErrorCode ,'User Id not defined.' Msg ,NULL ID
RETURN END
--IF EXISTS(SELECT * FROM customerMaster WHERE email = @userName AND ISNULL(mobileUser,'N') = 'N') --BEGIN -- SELECT '20' errorCode
-- ,'Your JME account is disabled. Contact JME support.' msg
-- ,@username id
-- SET @UserInfoDetail = 'Reason = Login fails, Your mobile login is disabled. Please, contact your administrator.'
-- EXEC proc_applicationLogs @flag = 'login'
-- ,@logType = 'Login fails'
-- ,@createdBy = @userName
-- ,@Reason = 'Mobile login is disabled '
-- ,@UserData = @UserData
-- ,@fieldValue = @UserInfoDetail
-- RETURN
--END
SELECT @scope = dbo.mobile_FNAGetApplicationScope(@clientId)
IF ISNULL(@scope, '') <> 'mobile_app' BEGIN SELECT '2' ErrorCode ,'Application scope is not valid for this user.' Msg ,NULL ID
RETURN END
SET @UserData = 'User: ' + @username + ' ,Password: ' + @Password + ' ,User Type:Mobile User' + ' ,Device Info: ' + @imei + ' ,IsBiometricLogin: ' + @isBiometricLogin + ' ,BiometricTypeLogin: ' + @biometricLoginType + ' ,DeviceType: ' + @deviceType + ' ,AccessCode: ' + ISNULL(@accessCode, '') + ' ,AccessToken: ' + ISNULL(@accessToken, '')
DECLARE @isReferred BIT = 0,@existingCustomer INT,@createdFrom VARCHAR(50)
--IF EXISTS ( -- SELECT TOP 1 'x'
-- FROM referralmaster(NOLOCK)
-- WHERE email = @userName
-- OR mobile = @userName
-- )
-- SET @isReferred = 1
--SELECT * FROM customerMaster WHERE email = @userName SELECT @_lastLoggedInDevice = lastLoggedInDevice ,@_accessCodeExpiry = accessCodeExpiry ,@_accessCode = accessCode FROM dbo.mobile_userRegistration(NOLOCK) WHERE username = @userName SELECT @existingCustomer= ISNULL(isexistingcustomer,0), @customerPwd=customerPassword ,@createdFrom=createdFrom FROM customerMaster WITH (NOLOCK) WHERE ISNULL(username,email)=@userName --and ISNULL(onlineUser, 'N')='Y' --IF @_lastLoggedInDevice = @Imei AND @_accessCodeExpiry > GETDATE() --BEGIN -- SET @accessCode=@_accessCode
-- UPDATE mobile_userRegistration SET
-- accessCodeExpiry = DATEADD(MINUTE,@AccessCodeExpiresAfter,GETDATE()) --adding validity of access token for 20 minutes.
-- FROM dbo.mobile_userRegistration(NOLOCK) ur
-- WHERE ur.username = @userName --END
--ELSE DECLARE @JmeclientId VARCHAR(50)
SELECT @JmeclientId = DBO.DECRYPTDB(clientId) FROM KFTC_GME_MASTER(NOLOCK)
BEGIN BEGIN TRANSACTION IF @ResidenceType='0' SET @ResidenceType = NULL ELSE IF @ResidenceType='RESIDENCE' -- JAPANESE
SET @ResidenceType = 'RESIDENT' /*ANDROID*/
UPDATE mobile_userRegistration SET accessCode = @accessCode ,accessCodeExpiry = DATEADD(MINUTE, @AccessCodeExpiresAfter, GETDATE()) --adding validity of access token for 20 minutes. ,IMEI = @Imei ,lastLoggedInDevice = getdate() ,deviceId = ISNULL(@fcmid, deviceId) ,ipAddress = @ip ,BiometricLoginType = @biometricLoginType --,IsBiometricLogin = @isBiometricLogin ,DeviceType = @deviceType ,modifiedDate=GETDATE() ,ResidenceType=CASE WHEN @ResidenceType IS NOT NULL THEN @ResidenceType WHEN @ResidenceType='0' THEN ResidenceType ELSE ResidenceType END FROM dbo.mobile_userRegistration(NOLOCK) WHERE username = @userName
IF @@TRANCOUNT > 0 COMMIT TRANSACTION END
DELETE T FROM customerMaster(NOLOCK) c INNER JOIN CustomerMasterTemp t ON c.username = t.username AND C.username = @userName
DECLARE @redirectTo VARCHAR(100) = 'EYKC';
IF( @existingCustomer=1 and (@customerPwd IS NULL OR @customerPwd=''))
BEGIN SELECT '1' ErrorCode ,'Login Failed. Please click forgot Password to set new password.' Msg ,NULL
RETURN END
IF( @createdFrom='C' and (@customerPwd IS NULL OR @customerPwd=''))
BEGIN SELECT '1' ErrorCode ,'Login Failed. Please click forgot Password to set new password.' Msg ,NULL
RETURN END
IF EXISTS ( SELECT TOP 1 'X' FROM customerMasterTemp cm(NOLOCK) WHERE cm.username = @userName AND cm.customerPassword = dbo.FNAEncryptString(@Password) ) OR ( EXISTS ( SELECT TOP 1 'X' FROM customerMasterTemp cm(NOLOCK) INNER JOIN MobileToken mt(NOLOCK) ON cm.email = mt.userName WHERE cm.username = @userName AND @isBiometricLogin = 'TRUE' AND mt.token = @accessToken AND mt.activeStatus = 'Y' ) ) BEGIN SELECT '0' ErrorCode ,'a' scope ,@userName userId ,cust.customerId SenderId ,ISNULL(cust.firstName, '') firstName -- ,ISNULL(cust.middleName,'') middleName
-- ,ISNULL(cust.lastName1,'') lastName
-- ,ISNULL(cust.nickName,'') nickName
,ISNULL(cust.email, '') email ,ISNULL(cust.customerEmail, '') customerEmail ,ISNULL(cust.mobile, '') phone -- ,cust.idType AS idType
--,cust.idNumber AS idNumber ,cm.countryCode AS countryCode -- ,CAST(ISNULL(cust.bonusPoint,0) AS DECIMAL) rewardPoint
,CASE WHEN ISNULL(cust.isActive, 'Y') = 'Y' THEN 1 ELSE 0 END active ,kyc = 0 ,CASE WHEN ISNULL(cust.verifiedDate, '') <> '' THEN 1 ELSE 0 END verified ,ISNULL(cust.walletAccountNo, '') walletNumber ,0 availableBalance ,'Fast Remit Bank' primaryBankName -- ,'' primaryBankAccount
,@accessCode accessCode ,DATEDIFF(SS, GETDATE(), ur.accessCodeExpiry) expiresIn -- ,ISNULL(dpUrl,'') dpUrl
-- ,ISNULL(ur.cmRegistrationId,'') cmRegistrationId
,'' country ,ISNULL(cust.city, '') city ,ISNULL(cust.[address], '') [address] -- ,ISNULL(cust.state2,'') [province]
,'' [provinceId] -- ,@isReferred isReferred
,'' sourceId ,yearlyLimit = 0 ,'0' AS pennyTestStatus ,gmeClientId = @JmeclientId ,redirectTo = @redirectTo ,cust.customerType ,ISNULL(ur.ResidenceType,'FOREIGNER') ResidenceType ,isExistingCustomer = ISNULL(isExistingCustomer, 1) ,IsBiometricLogin = ISNULL(IsBiometricLogin, 0) ,BiometricLoginType = ISNULL(BiometricLoginType, '') --,@customerStatus= ISNULL(customerStatus,'') ,CASE ur.isForcePassChange WHEN '1' THEN 'Y' ELSE 'N' END IsForcedPwdChange ,ISNULL(@accessToken, '') accessToken FROM ( SELECT TOP 1 * FROM customerMasterTemp(NOLOCK) cust WHERE cust.username = @userName ) cust LEFT JOIN mobile_userRegistration(NOLOCK) ur ON cust.customerId = ur.customerId LEFT JOIN dbo.countryMaster(NOLOCK) AS CM ON cm.countryId = cust.nativeCountry --PRINT @ResidenceType --UPDATE customerMasterTemp SET idType =CASE WHEN @ResidenceType='FOREIGNER' THEN 11168 --WHEN @ResidenceType IN('JAPANESE','RESIDENCE','RESIDENT') THEN 11079 ELSE 11168 END --WHERE username = @userName
--WHERE cust.username=@userName EXEC proc_applicationLogs @flag = 'login' ,@logType = 'Login Success' ,@createdBy = @username ,@Reason = 'Login' ,@UserData = @UserData ,@fieldValue = @UserInfoDetail
RETURN END
IF UPPER(@isBiometricLogin) = 'TRUE' BEGIN SELECT @isbiometricEnabled = ( SELECT ISNULL(isBiometricLogin, 0) FROM mobile_userRegistration WHERE username = @userName )
IF @isbiometricEnabled = 0 BEGIN SELECT '3' ErrorCode ,'Fingerprint login is not enabled. Please login using password.' Msg ,NULL ID
RETURN END
IF ISNULL(@accessToken, '') = '' BEGIN SELECT '4' ErrorCode ,'Access Token is required for Fingerprint login.' Msg ,NULL ID
RETURN END
IF NOT EXISTS ( SELECT TOP 1 * FROM MobileToken(NOLOCK) WHERE userName = @userName AND token = @accessToken AND activeStatus = 'Y' ) BEGIN UPDATE mobile_userRegistration SET isBiometricLogin=0,BiometricLoginType=null,DeviceType=null, modifiedDate=GETDATE(), modifiedby= @userName WHERE username = @userName
SELECT '5' ErrorCode ,'Unauthorized Login for Fingerprint login. Please login using password.' Msg ,NULL
RETURN END
SELECT @email = email ,@mobile = cm.mobile ,@customerPwd = customerPassword ,@isActive = isactive ,@customerId = cm.customerId ,@approvedDate = cm.approvedDate FROM customerMaster(NOLOCK) cm WHERE cm.username = @userName -- AND ISNULL(cm.mobileUser,'Y') = 'Y'
END ELSE BEGIN SELECT @email = email ,@mobile = cm.mobile ,@customerPwd = customerPassword ,@isActive = isactive ,@customerId = cm.customerId ,@approvedDate = cm.approvedDate --,@customerStatus=ISNULL(customerStatus,'') FROM customerMaster(NOLOCK) cm WHERE cm.username = @userName --OR cm.mobile=@userName ## NOT MOBILE LOGIN NOT APPLICABLE
AND cm.customerPassword = dbo.FNAEncryptString(@Password) -- AND ISNULL(cm.mobileUser,'Y')='Y'
END
IF @customerId IS NULL --OR @activeStatus = 'N' BEGIN SELECT '6' errorCode,'The username/password do not match.' msg SET @UserInfoDetail = 'Reason = Incorrect username.'
EXEC dbo.proc_applicationLogs @flag = 'login' ,@logType = 'Login fails' ,@createdBy = @username ,@Reason = 'Invalid Username' ,@UserData = @UserData ,@fieldValue = @UserInfoDetail
RETURN END
DECLARE @isMobileLoginEnabled VARCHAR(1) IF EXISTS(SELECT * FROM customerMasterTemp WHERE email = @userName AND ISNULL(mobileUser,'Y') = 'N') BEGIN SELECT @isMobileLoginEnabled = 'N' END ELSE SELECT @isMobileLoginEnabled = 'Y' IF EXISTS(SELECT * FROM customerMaster WHERE email = @userName AND ISNULL(mobileUser,'Y') = 'N') BEGIN SELECT @isMobileLoginEnabled = 'N' END ELSE SELECT @isMobileLoginEnabled = 'Y'
IF @isMobileLoginEnabled = 'N' BEGIN SELECT '20' errorCode ,'Your IME account is disabled. Contact JME support.' msg ,@username id SET @UserInfoDetail = 'Reason = Login fails, Your mobile login is disabled. Please, contact your administrator.'
EXEC proc_applicationLogs @flag = 'login' ,@logType = 'Login fails' ,@createdBy = @userName ,@Reason = 'Mobile login is disabled ' ,@UserData = @UserData ,@fieldValue = @UserInfoDetail
RETURN END BEGIN TRANSACTION
IF NOT EXISTS ( SELECT TOP 1 'X' FROM mobile_userRegistration ur(NOLOCK) WHERE ur.username = @userName ) BEGIN INSERT INTO mobile_userRegistration ( customerId ,username ,OTP ,OTP_Used ,createdDate ,IMEI ,clientId ,deviceId ,ipAddress ,BiometricLoginType ,IsBiometricLogin ,DeviceType ,ResidenceType ) SELECT @customerId ,@userName ,0 ,0 ,GETDATE() ,@Imei ,@clientId ,@fcmid ,@ip ,@biometricLoginType ,@isBiometricLogin ,@deviceType ,@residenceType UPDATE cm SET cm.isEmailVerified = 1 FROM dbo.customerMaster cm WHERE cm.customerId = @customerId AND ISNULL(cm.customerStatus,'')<>'OTC' END
IF @@TRANCOUNT > 0 COMMIT TRANSACTION
DECLARE @attemptsCount INT
SELECT TOP 1 @attemptsCount = loginAttemptCount FROM passwordFormat WITH (NOLOCK)
IF (ISNULL(@isActive, 'Y') = 'N') BEGIN SELECT '7' errorCode ,'Your account is Inactive. Please, contact JME Support Team.' msg ,@userName id
SET @UserInfoDetail = 'Reason = Login fails, Your account is Inactive. Please, contact your administrator.'
EXEC proc_applicationLogs @flag = 'login' ,@logType = 'Login fails' ,@createdBy = @userName ,@Reason = 'User is not active ' ,@UserData = @UserData ,@fieldValue = @UserInfoDetail
RETURN END
UPDATE customerMaster SET lastLoginTs = GETDATE() --,idType =CASE WHEN @ResidenceType='FOREIGNER' THEN 11168 WHEN @ResidenceType='JAPANESE' THEN 11079 ELSE idType END WHERE customerId = @customerId
DECLARE @yearlyLimit VARCHAR(100) = '' DECLARE @totalSend MONEY ,@totalSendText VARCHAR(200) ,@YearStart DATE
,@YearEnd DATETIME
SELECT @YearStart = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()), 0) ,@YearEnd = DATEADD(yy, DATEDIFF(yy, 0, GETDATE()) + 1, - 1) + ' 23:59:59'
SELECT @totalSend = SUM(R.cAmt) FROM REMITTRAN R(NOLOCK) INNER JOIN TRANSENDERS T(NOLOCK) ON T.TRANID = R.ID AND T.CUSTOMERID = @customerId AND R.TRANSTATUS <> 'Cancel' AND R.approvedDate BETWEEN @YearStart AND @YearEnd
SELECT @yearlyLimit = amount FROM dbo.csDetail CD(NOLOCK) INNER JOIN csMaster CM(NOLOCK) ON CM.csMasterId = CD.csMasterId AND CD.period = 365 AND CD.condition = 4600 AND ISNULL(CD.isActive, 'Y') = 'Y' AND ISNULL(CD.isDeleted, 'N') = 'N' AND ISNULL(CD.isEnable, 'Y') = 'Y' AND ISNULL(CM.isActive, 'Y') = 'Y' AND ISNULL(CM.isDeleted, 'N') = 'N'
SET @yearlyLimit = (@yearlyLimit - ISNULL(@totalSend, 0))
DECLARE @hasPennyTestDone VARCHAR(1) = '1'
--IF EXISTS ( -- SELECT TOP 1 'x'
-- FROM dbo.customerMaster(NOLOCK)
-- WHERE approvedDate < '2018-12-19'
-- AND customerId = @customerId
-- )
--BEGIN -- SET @hasPennyTestDone = '2'
--END
SELECT '0' ErrorCode ,@scope scope ,@userName userId ,cust.customerId SenderId ,ISNULL(cust.firstName, '') firstName -- ,ISNULL(cust.middleName,'') middleName
-- ,ISNULL(cust.lastName1,'') lastName
-- ,'' nickName
,ISNULL(cust.email, '') email ,ISNULL(cust.customerEmail, '') customerEmail ,ISNULL(cust.mobile, '') phone -- ,cust.idType AS idType
--,cust.idNumber AS idNumber ,cm1.countryCode AS countryCode ,CAST(ISNULL(cust.bonusPoint, 0) AS DECIMAL) rewardPoint ,CASE WHEN ISNULL(cust.isActive, 'Y') = 'Y' THEN 1 ELSE 0 END active ,ISNULL(HasDeclare, 0) kyc ,CASE WHEN ISNULL(isExistingCustomer, 1) = 0 THEN CASE WHEN cust.ApprovedDate IS NOT NULL THEN 1 ELSE 0 END ELSE CASE WHEN mobileVerifiedDate IS NOT NULL THEN 1 ELSE 0 END END verified ,ISNULL(cust.walletAccountNo, '') walletNumber ,CAST([dbo].FNAGetCustomerACBal(@email) AS DECIMAL) availableBalance --,ISNULL(bl.BankName,'') primaryBankName ,primaryBankName = 'Fast Remit Bank' --CASE WHEN cust.customerType='11048' THEN 'Mutual savings bank' ELSE 'Kwangju Bank (034)' END -- ,'' AS primaryBankAccount
,@accessCode accessCode ,DATEDIFF(SS, GETDATE(), ur.accessCodeExpiry) expiresIn -- ,'' dpUrl
-- ,ISNULL(ur.cmRegistrationId,'') cmRegistrationId
,ISNULL(co.countryName, '') country ,ISNULL(cust.city, '') city ,ISNULL(cust.[address], '') [address] -- ,ISNULL(cust.state2,'') [province]
,ISNULL(cm.cityId, '') [provinceId] -- ,@isReferred isReferred
,ISNULL(sdv.valueId, '') sourceId ,yearlyLimit = @yearlyLimit ,PennyTestStatus = @hasPennyTestDone -----0 not started, 1 requested , 2 completed ,gmeClientId = @JmeclientId ,redirectTo = @redirectTo ,cust.customerType ,ISNULL(ur.ResidenceType,'FOREIGNER') ResidenceType ,isExistingCustomer = ISNULL(isExistingCustomer, 1) ,IsBiometricLogin = ISNULL(IsBiometricLogin, 0) ,BiometricLoginType = ISNULL(BiometricLoginType, '') ,CASE ur.isForcePassChange WHEN '1' THEN 'Y' ELSE 'N' END IsForcedPwdChange ,ISNULL(@accessToken, '') accessToken FROM ( SELECT TOP 1 * FROM customerMaster(NOLOCK) cust WHERE cust.customerId = @customerId ) cust LEFT JOIN dbo.countryMaster AS CM1 ON cm1.countryId = cust.nativeCountry LEFT JOIN mobile_userRegistration(NOLOCK) ur ON cust.customerId = ur.customerId LEFT JOIN dbo.vwBankLists(NOLOCK) bl ON cust.bankName = bl.bankCode LEFT JOIN countryMaster co(NOLOCK) ON cust.country = co.countryId LEFT JOIN staticDatavalue sdv(NOLOCK) ON cust.sourceOfFund = sdv.detailTitle AND ISNULL(sdv.IS_DELETE, 'N') = 'N' LEFT JOIN dbo.CityMaster cm(NOLOCK) ON cust.state2 = cm.cityName
--WHERE cust.customerId=@customerId AND ISNULL(sdv.IS_DELETE,'N')='N' EXEC proc_applicationLogs @flag = 'login' ,@logType = 'Login Success' ,@createdBy = @username ,@Reason = 'Login' ,@UserData = @UserData ,@fieldValue = @UserInfoDetail
RETURN END ELSE IF @flag = 'chk-access-code' --validating access code(done) BEGIN --SELECT -- @_accessCodeExpiry=l.accessCodeExpiry
-- ,@username=ISNULL(l.username,cust.email)
-- ,@_scope=ISNULL(a.scope,'')
-- ,@_lastLoggedInDevice=ISNULL(cust.lastLoggedInDevice,'')
-- ,@_imei =ISNULL(cust.lastLoggedInDevice,'')
--FROM customermasterTemp(NOLOCK) cust --INNER JOIN customermaster(NOLOCK) main ON main.customerId=cust.customerMasterId --LEFT JOIN mobile_userRegistration(NOLOCK) l ON cust.customerId=l.customerId --INNER JOIN mobile_GmeApiClientRegistration a(NOLOCK) ON a.clientId=l.clientId --WHERE l.accessCode=@accessCode SELECT @_accessCodeExpiry = MUR.accessCodeExpiry ,@username = mur.username ,@_scope = ISNULL(a.scope, '') ,@_lastLoggedInDevice = mur.lastLoggedInDevice ,@_imei = mur.IMEI ,@customerId = mur.rowId FROM dbo.mobile_userRegistration AS MUR(NOLOCK) INNER JOIN mobile_GmeApiClientRegistration a(NOLOCK) ON a.clientId = MUR.clientId AND MUR.accessCode = @accessCode AND ( mur.IMEI = @Imei OR mur.lastLoggedInDevice = @Imei )
--PRINT @_accessCodeExpiry --IF NOT EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration AS MUR WHERE MUR.accessCode=@accessCode AND MUR.IMEI=@Imei) --BEGIN -- SELECT '2' errorCode, 'Access code expired..' Msg ,NULL ID
-- RETURN
--END --IF NOT EXISTS(SELECT 'x' FROM dbo.mobile_userRegistration AS MUR WHERE MUR.accessCode=@accessCode AND MUR.lastLoggedInDevice=@Imei) --BEGIN -- SELECT '2' errorCode, 'Access code expired..' Msg ,NULL ID
-- RETURN
--END IF ISNULL(@username, '') = '' AND ISNULL(@_lastLoggedInDevice, '') = @imei BEGIN SELECT '8' errorCode ,'Access code expired..' Msg ,NULL ID
RETURN END
IF ISNULL(@username, '') = '' AND ISNULL(@_lastLoggedInDevice, '') <> @imei BEGIN SELECT '9' errorCode ,'Access code expired..' Msg ,NULL ID
RETURN END
IF (@_accessCodeExpiry < GETDATE()) BEGIN SELECT '10' errorCode ,'It seems like you are using old access code. Please use newly generated access code.' Msg ,NULL ID
RETURN END
------------- ### Check if the user trying to validate access-code exists or not ###STARTS------------
IF @username IS NULL BEGIN SELECT @_errorMsg = 'User with contact Info ' + @username + ' doesnot 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 access-code exists or not ###ENDS------------
IF @_lastLoggedInDevice <> @Imei BEGIN SELECT '11' errorCode ,'You are logged in from another device.' Msg ,NULL ID
RETURN END ELSE IF ISNULL(@_scope, '') <> 'mobile_app' BEGIN SELECT '12' ErrorCode ,'Application scope is not valid for this user.' Msg ,NULL ID
RETURN END
UPDATE mobile_userRegistration SET accessCodeExpiry = DATEADD(MINUTE, @AccessCodeExpiresAfter, GETDATE()) --expiry time for access code(token) increased to 20 minutes. WHERE rowId = @customerId
SELECT '0' ErrorCode ,'Success' Msg ,@_scope ID
RETURN END ELSE IF @flag = 's-accesscode' --validating accessCode for "Get user by access code" BEGIN IF @scope <> 'social_comp' BEGIN SELECT '13' ErrorCode ,'Application scope is not valid for this user.' Msg ,NULL ID
RETURN END
DECLARE @user VARCHAR(100);
SELECT @email = cm.email ,@mobile = cm.mobile ,@isEmailVerified = cm.isEmailVerified ,@customerId = cm.customerId FROM dbo.customerMaster(NOLOCK) cm INNER JOIN dbo.mobile_userRegistration(NOLOCK) ur ON cm.customerId = ur.customerId AND ur.accessCode = @accessCode
IF @email IS NOT NULL AND @isEmailVerified = 1 BEGIN SET @user = @email END ELSE BEGIN SET @user = @mobile END
SELECT @_imei = l.imei ,@_accessCodeExpiry = l.accessCodeExpiry ,@username = @user FROM customermaster cust(NOLOCK) INNER JOIN mobile_userRegistration l(NOLOCK) ON cust.customerId = l.customerId AND l.accessCode = @accessCode
IF DATEDIFF(MINUTE, GETDATE(), @_accessCodeExpiry) > 0 BEGIN SELECT '0' ErrorCode ,@userName userId ,ISNULL(cust.firstName, '') firstName ,ISNULL(cust.middleName, '') middleName ,ISNULL(cust.lastName1, '') lastName ,ISNULL(cm.countryName, '') nativeCountry ,'' nickName ,userRoles = '' ,'' dpUrl ,ISNULL(ur.cmRegistrationId, '') cmRegistrationId ,ISNULL(ur.IMEI, '') uuid FROM ( SELECT TOP 1 * FROM customerMaster(NOLOCK) cust WHERE cust.customerId = @customerId ) cust LEFT JOIN mobile_userRegistration ur(NOLOCK) ON cust.customerId = ur.customerId LEFT JOIN dbo.countryMaster cm(NOLOCK) ON cust.nativeCountry = cm.countryId
--WHERE cust.customerId=@customerId --WHERE cust.email=@userName OR cust.mobile=@userName RETURN END ELSE IF DATEDIFF(MINUTE, GETDATE(), @_accessCodeExpiry) <= 0 BEGIN SELECT '14' ErrorCode ,'Access code expired.' Msg ,NULL ID
RETURN END ELSE BEGIN SELECT '15' ErrorCode ,'Access code does not match.' Msg ,NULL ID
RETURN END END ELSE IF @flag = 'ckeck-guid' BEGIN IF EXISTS ( SELECT TOP 1 'A' FROM dbo.mobile_userRegistration(NOLOCK) WHERE accessCode IS NULL AND username = @userName ) BEGIN UPDATE dbo.mobile_userRegistration SET accessCode = @accessCode WHERE accessCode IS NULL AND username = @userName END
IF EXISTS ( SELECT TOP 1 'A' FROM dbo.mobile_userRegistration(NOLOCK) WHERE accessCode = @accessCode AND username = @userName ) BEGIN SELECT '0' ErrorCode ,'The access code is valid and is from trusted customer.' Msg ,NULL Id
RETURN END
BEGIN SELECT '1' ErrorCode ,'No such access code found in system. Invalid username and customer is not trusted.' Msg ,NULL Id
RETURN END END ELSE IF @flag = 'get-device' BEGIN SELECT deviceId FROM mobile_userRegistration(NOLOCK) WHERE customerId = @customerId
RETURN END ELSE IF @flag = 'agentDetail' BEGIN SELECT agentId ,agentName ,agentState ,agentCity ,agentAddress ,agentZip ,agentPhone1 FROM AGENTMASTER(NOLOCK) WHERE PARENTID = '393877' and agentid<>'394395' AND ACTASBRANCH = 'Y'
RETURN 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
|