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.

317 lines
12 KiB

1 year ago
  1. ALTER PROCEDURE [dbo].[Mobile_proc_changeinformation] @flag VARCHAR(20) = NULL,
  2. @userId VARCHAR(70) =NULL, -- Request customerId 값
  3. @password VARCHAR(100) =NULL,
  4. @newValue VARCHAR(100) = NULL,
  5. @target VARCHAR(10) = NULL,
  6. @tempValue VARCHAR(20) = NULL, -- 사용자가 변경을 하고자하는 번호(임시사용) 모든 인증과정 후 최종 변경됨
  7. @check_OTP VARCHAR(4) = NULL,
  8. @targetInfo CHAR(1) = NULL
  9. AS
  10. BEGIN
  11. DECLARE @DBpassword VARCHAR(200),
  12. @customerId VARCHAR(200),-- 체크값용 customerId 변수
  13. @SMS_MESSAGE VARCHAR(200),
  14. @return_OTP VARCHAR(4),
  15. @chkValue VARCHAR(100), -- 기존값과의 비교를 위한 변수
  16. @RANDOM_NUMBER VARCHAR(4)
  17. -- 입력받은 pwd와 DB pwd값 비교 / CheckValidation custeomr Password
  18. IF @flag = 'pwd_validation'
  19. BEGIN
  20. DECLARE @RANDOM_OTP VARCHAR(4) = RIGHT(Checksum(Newid()), 4)
  21. SELECT @DBpassword = dbo.Fnadecryptstring(customerpassword)
  22. FROM customermaster(nolock)
  23. WHERE customerid = @userId
  24. -- pwd 체 크 먼 저
  25. IF ( @password <> @DBpassword OR @password IS NULL )
  26. BEGIN
  27. EXEC Proc_errorhandler
  28. 1,
  29. 'Invaild Password Check and Try again!',
  30. @userId
  31. RETURN
  32. END
  33. IF @targetInfo = 'm'
  34. AND @tempValue IS NOT NULL
  35. BEGIN
  36. SELECT @chkValue = mobile
  37. FROM customermaster
  38. WHERE customerid = @userId
  39. -- 변경 값이 기존과 동일한 경우
  40. IF ( @chkValue = @tempValue )
  41. BEGIN
  42. EXEC Proc_errorhandler
  43. 1,
  44. 'This is the same number as the existing number.',
  45. @userId
  46. RETURN
  47. END
  48. SET @SMS_MESSAGE = 'Your GME OTP = '
  49. + Cast(@RANDOM_OTP AS VARCHAR)
  50. --SET @return_OTP = Cast(@RANDOM_OTP AS VARCHAR)
  51. IF EXISTS(SELECT 'A'
  52. FROM tbl_otp_for_auth (nolock)
  53. WHERE customerid = @userId)
  54. BEGIN
  55. UPDATE tbl_otp_for_auth
  56. SET otp_number = dbo.Fnaencryptstring(@RANDOM_OTP),
  57. assigned_date = Getdate()
  58. WHERE customerid = @userId
  59. END
  60. ELSE
  61. BEGIN
  62. INSERT INTO tbl_otp_for_auth
  63. (customerid,
  64. otp_number,
  65. assigned_date)
  66. SELECT @userId,
  67. dbo.Fnaencryptstring(@RANDOM_OTP),
  68. Getdate()
  69. END
  70. EXEC Proc_calltosendsms
  71. @FLAG = 'I',
  72. @SMSBody = @SMS_MESSAGE,
  73. @MobileNo = @tempValue
  74. EXEC Proc_errorhandler
  75. 0,
  76. 'Check Successfully!',
  77. @RANDOM_OTP
  78. RETURN
  79. END
  80. ELSE IF @targetInfo = 'e'
  81. AND @tempValue IS NOT NULL
  82. BEGIN
  83. SELECT @chkValue = customeremail
  84. FROM customermaster
  85. WHERE customerid = @userId
  86. -- 변경 값이 기존과 동일한 경우
  87. IF ( @chkValue = @tempValue )
  88. BEGIN
  89. EXEC Proc_errorhandler
  90. 1,
  91. 'This is the same email as the existing email.',
  92. @userId
  93. RETURN
  94. END
  95. DECLARE @Mobile VARCHAR(11) = NULL
  96. --@email_OTP VARCHAR(4) = RIGHT(CHECKSUM(NEWID()),4)
  97. SELECT @Mobile = mobile
  98. FROM customermaster(nolock)
  99. WHERE customerid = @userId
  100. SET @SMS_MESSAGE = 'Your GME OTP = '
  101. + Cast(@RANDOM_OTP AS VARCHAR)
  102. IF EXISTS(SELECT 'A'
  103. FROM tbl_otp_for_auth (nolock)
  104. WHERE customerid = @userId)
  105. BEGIN
  106. UPDATE tbl_otp_for_auth
  107. SET otp_number = dbo.Fnaencryptstring(@RANDOM_OTP),
  108. assigned_date = Getdate()
  109. WHERE customerid = @userId
  110. END
  111. ELSE
  112. BEGIN
  113. INSERT INTO tbl_otp_for_auth
  114. (customerid,
  115. otp_number,
  116. assigned_date)
  117. SELECT @userId,
  118. dbo.Fnaencryptstring(@RANDOM_OTP),
  119. Getdate()
  120. END
  121. EXEC Proc_calltosendsms
  122. @FLAG = 'I',
  123. @SMSBody = @SMS_MESSAGE,
  124. @MobileNo = @Mobile
  125. EXEC Proc_errorhandler
  126. 0,
  127. 'Check Successfully!',
  128. @RANDOM_OTP
  129. RETURN
  130. END
  131. ELSE
  132. BEGIN
  133. EXEC Proc_errorhandler
  134. 1,
  135. 'TargetInfo or Value Missing..',
  136. @userId
  137. RETURN
  138. END
  139. END
  140. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  141. ELSE IF @flag = 'change_information'
  142. BEGIN
  143. IF EXISTS(SELECT 'A'
  144. FROM customermaster(nolock)
  145. WHERE customerid = @userId
  146. AND isactive = 'Y')
  147. BEGIN
  148. -- email 변경 로직 --
  149. IF ( @target = 'e' )
  150. BEGIN
  151. UPDATE customermaster
  152. SET customeremail = @newValue
  153. WHERE customerid = @userId
  154. -- email name customerEmail
  155. -- SELECT customerEmail, email FROM customerMaster WHERE customerEmail IS NULL
  156. EXEC Proc_errorhandler
  157. 0,
  158. 'Change Your Email Completed',
  159. @userId
  160. RETURN
  161. END
  162. -- Mobile No 변경 로직 --
  163. ELSE IF( @target = 'm' )
  164. BEGIN
  165. UPDATE customermaster
  166. SET mobile = @newValue
  167. WHERE customerid = @userId
  168. EXEC Proc_errorhandler
  169. 0,
  170. 'Change Your Mobile Number Completed',
  171. @userId
  172. RETURN
  173. END
  174. END
  175. IF EXISTS(SELECT 'A'
  176. FROM customermastertemp (nolock)
  177. WHERE customerid = @userId
  178. AND isactive = 'Y')
  179. BEGIN
  180. -- email 변경 로직 --
  181. IF ( @target = 'e' )
  182. BEGIN
  183. UPDATE customermastertemp
  184. SET email = @newValue
  185. EXEC Proc_errorhandler
  186. 0,
  187. 'Change Your Email Completed',
  188. @userId
  189. RETURN
  190. END
  191. -- Mobile No 변경 로직 --
  192. IF( @target = 'm' )
  193. BEGIN
  194. UPDATE customermastertemp
  195. SET mobile = @newValue
  196. EXEC Proc_errorhandler
  197. 0,
  198. 'Change Your Mobile Number Completed',
  199. @userId
  200. RETURN
  201. END
  202. END
  203. END
  204. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  205. ELSE IF @flag = 're_send'
  206. BEGIN
  207. IF NOT EXISTS(SELECT 'A'
  208. FROM customermaster(nolock)
  209. WHERE customerid = @userId)
  210. BEGIN
  211. EXEC Proc_errorhandler
  212. '1',
  213. 'Invalid Request! customer not found..',
  214. @userId
  215. RETURN
  216. END
  217. SET @RANDOM_NUMBER = RIGHT(Checksum(Newid()), 4)
  218. --SELECT @MOBILE_NUMBER = mobile FROM customerMaster(NOLOCK) WHERE customerId = @CUSTOMERID
  219. SET @SMS_MESSAGE = 'Your GME OTP = '
  220. + Cast(@RANDOM_NUMBER AS VARCHAR)
  221. SET @return_OTP = Cast(@RANDOM_NUMBER AS VARCHAR)
  222. IF EXISTS(SELECT 'A'
  223. FROM tbl_otp_for_auth (nolock)
  224. WHERE customerid = @userId)
  225. BEGIN
  226. UPDATE tbl_otp_for_auth
  227. SET otp_number = dbo.Fnaencryptstring(@RANDOM_NUMBER),
  228. assigned_date = Getdate()
  229. WHERE customerid = @userId
  230. END
  231. ELSE
  232. BEGIN
  233. INSERT INTO tbl_otp_for_auth
  234. (customerid,
  235. otp_number,
  236. assigned_date)
  237. SELECT @userId,
  238. dbo.Fnaencryptstring(@RANDOM_NUMBER),
  239. Getdate()
  240. END
  241. EXEC Proc_calltosendsms
  242. @FLAG = 'I',
  243. @SMSBody = @SMS_MESSAGE,
  244. @MobileNo = @tempValue
  245. EXEC Proc_errorhandler
  246. '0',
  247. 'Send Successfully!',
  248. @return_OTP
  249. RETURN
  250. --SELECT 'A', 'Success'
  251. --RETURN
  252. END
  253. --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  254. ELSE IF @flag = 'validation_OTP'
  255. BEGIN
  256. IF EXISTS(SELECT 'A'
  257. FROM customermaster
  258. WHERE customerid = @userId)
  259. BEGIN
  260. EXEC Proc_validationotp
  261. @check_OTP,
  262. @userId
  263. END
  264. ELSE IF EXISTS(SELECT 'A'
  265. FROM customermastertemp
  266. WHERE customerid = @userId)
  267. BEGIN
  268. EXEC Proc_validationotp @check_OTP,
  269. @userId
  270. END
  271. ELSE
  272. BEGIN
  273. EXEC Proc_errorhandler
  274. '1',
  275. 'User Not Found..! Please Check Your ID',
  276. @userId
  277. END
  278. RETURN
  279. END
  280. END