USE [FastMoneyPro_Remit] GO /****** Object: StoredProcedure [dbo].[mobile_proc_userLogin] Script Date: 3/29/2024 3:32:56 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 IME London 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 IME London 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