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.

609 lines
31 KiB

1 year ago
  1. using Common.Helper;
  2. using Common.KFTC;
  3. using Common.Model;
  4. using Common.Model.AutoRefund;
  5. using Common.Model.KFTCRegistration;
  6. using Common.Model.KftcSendMoney;
  7. using Common.Model.SendMoney;
  8. using log4net;
  9. using System;
  10. using System.Collections.Generic;
  11. using System.Data;
  12. namespace Repository.KFTCRepository
  13. {
  14. public class KftcProcessRepository : IKftcProcessRepository
  15. {
  16. private readonly Dao _dao;
  17. private static readonly ILog Log = LogManager.GetLogger(typeof(KftcProcessRepository));
  18. public KftcProcessRepository()
  19. {
  20. _dao = new Dao();
  21. }
  22. public DataRow GetCustomerData(string customerId)
  23. {
  24. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-refresh'";
  25. sql += ",@customerId = " + _dao.FilterString(customerId);
  26. Log.Debug("Query : " + sql);
  27. return _dao.ExecuteDataRow(sql);
  28. }
  29. public DataTable GetAccountList(string customerId)
  30. {
  31. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's'";
  32. sql += ",@customerId = " + _dao.FilterString(customerId);
  33. return _dao.ExecuteDataTable(sql);
  34. }
  35. public DataTable GetAllAccountList(string customerId)
  36. {
  37. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-send'";
  38. sql += ",@customerId = " + _dao.FilterString(customerId);
  39. return _dao.ExecuteDataTable(sql);
  40. }
  41. public DataTable GetGMECustomerList(string customerId)
  42. {
  43. var sql = "select * from dbo.FNAGetCustomerInfo(" + _dao.FilterString(customerId) + ")";
  44. return _dao.ExecuteDataTable(sql);
  45. }
  46. public DbResult LogRequestKFTC(string user, string methodName, string requestXml, string processId = "")
  47. {
  48. if (String.IsNullOrEmpty(requestXml))
  49. requestXml = "";
  50. var sql = String.Format("EXEC PROC_KFTC_LOGS @flag='i', @CUSTOMERID='{0}', @methodName='{1}',@requestXml=N'{2}',@processId='{3}'", user, methodName, requestXml.Replace("'", ""), processId);
  51. return _dao.ParseDbResult(sql);
  52. }
  53. public DbResult LogRequest(string user, string providerName, string methodName, string controlNo, string requestXml, string processId = "")
  54. {
  55. if (String.IsNullOrEmpty(requestXml))
  56. requestXml = "";
  57. var sql = String.Format("EXEC proc_tpApiLogs @flag='i', @user='{0}', @providerName='{1}', @methodName='{2}',@controlNo='{3}',@requestXml='{4}',@processId='{5}'", user, providerName, methodName, controlNo, requestXml.Replace("'", ""), processId);
  58. return _dao.ParseDbResult(sql);
  59. }
  60. public DbResult LogResponse(string rowId, string responseXml, string tpErrorCode, string tpErrorMsg)
  61. {
  62. try
  63. {
  64. if (String.IsNullOrEmpty(responseXml))
  65. responseXml = "";
  66. var sql =
  67. String.Format(
  68. "EXEC proc_tpApiLogs @flag='u', @rowId='{0}',@responseXml='{1}', @errorCode='{2}', @errorMessage='{3}'",
  69. rowId, responseXml.Replace("'", ""), tpErrorCode, tpErrorMsg);
  70. return _dao.ParseDbResult(sql);
  71. }
  72. catch (Exception)
  73. {
  74. return new DbResult();
  75. }
  76. }
  77. public DbResult LogResponseKFTC(string rowId, string responseXml, string tpErrorCode, string tpErrorMsg)
  78. {
  79. try
  80. {
  81. if (String.IsNullOrEmpty(responseXml))
  82. responseXml = "";
  83. var sql =
  84. String.Format(
  85. "EXEC PROC_KFTC_LOGS @flag='u', @rowId='{0}',@responseXml=N'{1}', @errorCode='{2}', @errorMessage=N'{3}'",
  86. rowId, responseXml.Replace("'", ""), tpErrorCode, tpErrorMsg);
  87. return _dao.ParseDbResult(sql);
  88. }
  89. catch (Exception)
  90. {
  91. return new DbResult();
  92. }
  93. }
  94. public DbResult DeleteAccount(AccountDetails delAccount)
  95. {
  96. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'DELETE_ACC'";
  97. sql += ",@customerId = " + _dao.FilterString(delAccount.CustomerId);
  98. sql += ",@fintechUseNo = " + _dao.FilterString(delAccount.FintechUseNo);
  99. sql += ",@accountNum = " + _dao.FilterString(delAccount.AccountNum);
  100. return _dao.ParseDbResult(sql);
  101. }
  102. public DbResult DeleteAccount(string customerId, string fintechNo)
  103. {
  104. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'DELETE'";
  105. sql += ",@customerId = " + _dao.FilterString(customerId);
  106. sql += ",@fintechUseNo = " + _dao.FilterString(fintechNo);
  107. return _dao.ParseDbResult(sql);
  108. }
  109. public DbResult GetOPTNumber(string customerId, string user, string amount, string kftcId)
  110. {
  111. var sql = "EXEC PROC_OTP_SEND_TXN @FLAG = " + _dao.FilterString("SEND");
  112. sql += ", @CUSTOMERID = " + _dao.FilterString(customerId);
  113. sql += ", @CUSTOMEREMAIL = " + _dao.FilterString(user);
  114. sql += ", @AMT = " + _dao.FilterString(amount);
  115. sql += ", @KFTCID = " + _dao.FilterString(kftcId);
  116. return _dao.ParseDbResult(sql);
  117. }
  118. public DataTable GetKftcLanguage(string customerId)
  119. {
  120. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'kftc-Lanaguage'";
  121. sql += ",@customerId = " + _dao.FilterString(customerId);
  122. return _dao.ExecuteDataTable(sql);
  123. }
  124. public DataTable GetKftcBankList()
  125. {
  126. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'kftc-Banklist'";
  127. return _dao.ExecuteDataTable(sql);
  128. }
  129. #region KFTC AUTO DEBIT SERVICE
  130. public KftcSendMoneyRequest GetCustomerKFTCInfo(string customerId, string kftcLogId)
  131. {
  132. var sql = "EXEC mobile_proc_KTFC @flag='CUSTOMERINFO' ";
  133. sql += ", @customerId = " + _dao.FilterString(customerId);
  134. sql += ", @kftcLogId = " + _dao.FilterString(kftcLogId);
  135. Log.DebugFormat("GetCustomerKFTCInfo | SQL:{0}", sql);
  136. var dt = _dao.ExecuteDataTable(sql);
  137. return Mapper.DataTableToClass<KftcSendMoneyRequest>(dt)[0];
  138. }
  139. public DbResult SaveKFTCTranData(Response.withdraw respObj, string customerId)
  140. {
  141. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'I-TRAN'";
  142. sql += ",@customerId = " + _dao.FilterString(customerId);
  143. sql += ",@fintechUseNo = " + _dao.FilterString(respObj.fintech_use_num);
  144. sql += ",@apiTranId = " + _dao.FilterString(respObj.api_tran_id);
  145. sql += ",@apiTranDtm = " + _dao.FilterString(respObj.api_tran_dtm);
  146. sql += ",@rspCode = " + _dao.FilterString(respObj.rsp_code);
  147. sql += ",@dpsBankCodeStd = " + _dao.FilterString(respObj.dps_bank_code_std);
  148. sql += ",@dpsAccountNumMasked = " + _dao.FilterString(respObj.dps_account_num_masked);
  149. sql += ",@dpsPrintContent = N" + _dao.FilterString(respObj.dps_print_content);
  150. sql += ",@bankTranId = " + _dao.FilterString(respObj.bank_tran_id);
  151. sql += ",@bankTranDate = " + _dao.FilterString(respObj.bank_tran_date);
  152. sql += ",@bankCodeTran = " + _dao.FilterString(respObj.bank_code_tran);
  153. sql += ",@bankRspCode = " + _dao.FilterString(respObj.bank_rsp_code);
  154. sql += ",@bankCodeStd = " + _dao.FilterString(respObj.bank_code_std);
  155. sql += ",@accountNumMasked = " + _dao.FilterString(respObj.account_num_masked);
  156. sql += ",@printContent = N" + _dao.FilterString(respObj.print_content);
  157. sql += ",@accountName = N" + _dao.FilterString(respObj.account_holder_name);
  158. sql += ",@tranAmt = " + _dao.FilterString(respObj.tran_amt);
  159. sql += ",@remittance_check = " + _dao.FilterString(respObj.remittance_check);
  160. return _dao.ParseDbResult(sql);
  161. }
  162. public DbResult LogFailTransactionForAutoDebit(string rowId, string errorCode, string errorMsg, string refundAmt)
  163. {
  164. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'U-TRAN'";
  165. sql += ", @rowId = " + _dao.FilterString(rowId);
  166. sql += ", @errorCode = " + _dao.FilterString(errorCode);
  167. sql += ", @errorMsg = " + _dao.FilterString(errorMsg);
  168. sql += ", @tranAmt = " + _dao.FilterString(refundAmt);
  169. return _dao.ParseDbResult(sql);
  170. }
  171. public DbResult SendAutoRefund(KJAutoRefundModel kj)
  172. {
  173. var sql = "EXEC PROC_KJAUTOREFUND @flag = " + _dao.FilterString(kj.flag);
  174. sql += ", @pCustomerId = " + _dao.FilterString(kj.customerId);
  175. sql += ", @pCustomerSummary = " + _dao.FilterStringUnicode(kj.customerSummary);
  176. sql += ", @pAmount = " + _dao.FilterString(kj.amount);
  177. sql += ", @pAction = " + _dao.FilterString(kj.action);
  178. sql += ", @pActionDate = " + _dao.FilterString(kj.actionDate);
  179. sql += ", @pActionBy = " + _dao.FilterString(kj.actionBy);
  180. sql += ", @pRowId = " + _dao.FilterString(kj.rowId);
  181. sql += ", @pBankCode = " + _dao.FilterString(kj.bankCode);
  182. sql += ", @pBankAccountNo = " + _dao.FilterString(kj.bankAccountNo);
  183. sql += ", @pSource = " + _dao.FilterString("M");
  184. return _dao.ParseDbResult(sql);
  185. }
  186. #endregion KFTC AUTO DEBIT SERVICE
  187. public DataRow GetGMEMaster()
  188. {
  189. var sql = "EXEC mobile_proc_KTFC @flag = 'GME-INFO'";
  190. sql += ", @CUSTOMERID = ''";
  191. return _dao.ExecuteDataRow(sql);
  192. }
  193. public DataRow GetCustomerMaster(string customerId)
  194. {
  195. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 'CUSTOMER-MASTER'";
  196. sql += ",@customerId = " + _dao.FilterString(customerId);
  197. return _dao.ExecuteDataRow(sql);
  198. }
  199. public DataRow GetRealNameCheck(string customerId)
  200. {
  201. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag='CHK-REAL-NAME'";
  202. sql += ",@customerId = " + _dao.FilterString(customerId);
  203. return _dao.ExecuteDataRow(sql);
  204. }
  205. public DbResult SetRealNameData(string customerId, string idType, string idNumber)
  206. {
  207. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag='SAVE-REAL-NAME'";
  208. sql += ",@customerId = " + _dao.FilterString(customerId);
  209. sql += ",@accHolderInfoType = " + _dao.FilterString(idType);
  210. sql += ",@accHolderInfo = " + _dao.FilterString(idNumber);
  211. return _dao.ParseDbResult(sql);
  212. }
  213. /* 2019.09 Dana */
  214. public DataTable GetRecentHistories(RecentHistoryModel model)
  215. {
  216. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag = 'RECENTLIST'";
  217. sql += ", @customerId = " + _dao.FilterString(model.customerId);
  218. sql += ", @fromDate = " + _dao.FilterString(model.fromDate);
  219. sql += ", @toDate = " + _dao.FilterString(model.toDate);
  220. return _dao.ExecuteDataTable(sql);
  221. }
  222. public DbResult GetRecipientMobileNo(CheckRealNameModel model)
  223. {
  224. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_TRAN_HISTORY @flag = 'RecipientMobileNo'";
  225. sql += ", @customerId = " + _dao.FilterString(model.CustomerId);
  226. sql += ", @bankCode = " + _dao.FilterString(model.BankCode);
  227. sql += ", @accountNumber = " + _dao.FilterString(model.AccountNumber);
  228. return _dao.ParseDbResult(sql);
  229. }
  230. public DbResult GetKFTCServiceFee(string serviceType, string partnerName)
  231. {
  232. var sql = "select '0' errorCode,valueType,value from serviceValueMaster ";
  233. sql += "where partnerName = " + _dao.FilterString(partnerName);
  234. sql += "and serviceType = " + _dao.FilterString(serviceType);
  235. return _dao.ParseDbResult(sql);
  236. }
  237. public DbResult requestKFTCDomesticHistory(DomesticHistoryModel model)
  238. {
  239. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_HISTORY @flag = 'INSERT'";
  240. sql += ", @customerId = " + _dao.FilterString(model.customerId);
  241. sql += ", @transferType = " + _dao.FilterString(model.transferType); //withdraw, deposit, refund
  242. sql += ", @reqNameCheckOption = " + _dao.FilterString(model.reqNameCheckOption);
  243. sql += ", @processId = " + _dao.FilterString(model.processId);
  244. sql += ", @reqCnt = " + _dao.FilterString(model.reqCnt);
  245. sql += ", @reqTranNo = " + _dao.FilterString(model.reqTranNo);
  246. sql += ", @reqMobileNo = " + _dao.FilterStringUnicode(model.reqMobileNo);
  247. sql += ", @accountType = " + _dao.FilterStringUnicode(model.accountType);
  248. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(model.reqWdPrintContent);
  249. sql += ", @reqAmt = " + _dao.FilterString(model.reqAmt);
  250. sql += ", @serviceFee = " + _dao.FilterString(model.serviceFee);
  251. sql += ", @reqTranAmt = " + _dao.FilterString(model.reqTranAmt);
  252. sql += ", @reqBankCodeStd = " + _dao.FilterString(model.reqBankCodeStd);
  253. sql += ", @reqAccountNum = " + _dao.FilterString(model.reqAccountNum);
  254. sql += ", @reqAccountHolderName = " + _dao.FilterStringUnicode(model.reqAccountHolderName);
  255. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode(model.reqPrintContent);
  256. sql += ", @reqFintechUseNum = " + _dao.FilterStringUnicode(model.reqFintechUseNum);
  257. return _dao.ParseDbResult(sql);
  258. }
  259. public DbResult requestKFTCDomesticHistory2(DomeRimitRequestModel model, string processId, string transferType)
  260. {
  261. var gme = GetGMEMaster();
  262. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_HISTORY @flag = 'INSERT'";
  263. sql += ", @customerId = " + _dao.FilterString(model.CustomerId);
  264. sql += ", @transferType = " + _dao.FilterString(transferType); //withdraw, deposit, refund
  265. sql += ", @reqNameCheckOption = " + _dao.FilterString("off");
  266. sql += ", @processId = " + _dao.FilterString(processId);
  267. sql += ", @reqCnt = " + _dao.FilterString("1");
  268. sql += ", @reqTranNo = " + _dao.FilterString("1");
  269. sql += ", @reqMobileNo = " + _dao.FilterStringUnicode(model.RecipientPhone);
  270. sql += ", @accountType = " + _dao.FilterStringUnicode(model.type); //wallet 또는 autodebit
  271. if (model.type == "wallet") // wallet to bank
  272. {
  273. //고객의 이름, 가상계좌번호
  274. var GMEcustomerDetail = GetGMECustomerList(model.CustomerId);
  275. if (transferType == "walletWithdraw")
  276. {
  277. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  278. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  279. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  280. sql += ", @serviceFee = " + _dao.FilterString(model.ServiceFee);
  281. sql += ", @reqTranAmt = " + _dao.FilterString((Convert.ToDecimal(model.SentAmount) + Convert.ToDecimal(model.ServiceFee)).ToString());
  282. }
  283. else if (transferType == "deposit")
  284. {
  285. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  286. sql += ", @reqBankCodeStd = " + _dao.FilterString(model.RecipientBankCode);
  287. sql += ", @reqAccountNum = " + _dao.FilterString(model.RecipientAccountNo);
  288. sql += ", @reqAccountHolderName = " + _dao.FilterStringUnicode(model.RecipientName);
  289. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode(GMEcustomerDetail.Rows[0]["fullName"].ToString());
  290. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  291. sql += ", @serviceFee = " + _dao.FilterString("0");
  292. sql += ", @reqTranAmt = " + _dao.FilterString(model.SentAmount);
  293. // sql += ", @reqFintechUseNum = " + _dao.FilterString(gme["accessToken"].ToString());
  294. }
  295. else if (transferType == "refund")
  296. {
  297. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(GMEcustomerDetail.Rows[0]["fullName"].ToString());
  298. sql += ", @reqAccountNum = " + _dao.FilterString(GMEcustomerDetail.Rows[0]["walletAccountNo"].ToString());
  299. sql += ", @reqAccountHolderName = " + _dao.FilterStringUnicode(GMEcustomerDetail.Rows[0]["fullName"].ToString());
  300. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode("이체실패_환불");
  301. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  302. sql += ", @serviceFee = " + _dao.FilterString(model.ServiceFee);
  303. sql += ", @reqTranAmt = " + _dao.FilterString((Convert.ToDecimal(model.SentAmount) + Convert.ToDecimal(model.ServiceFee)).ToString());
  304. // sql += ", @reqFintechUseNum = " + _dao.FilterString(gme["accessToken"].ToString());
  305. }
  306. }
  307. else if (model.type == "autodebit") // bank to bank
  308. {
  309. var customerDetail = GetAccountList(model.CustomerId);
  310. if (transferType == "withdraw")
  311. {
  312. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  313. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  314. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  315. sql += ", @serviceFee = " + _dao.FilterString(model.ServiceFee);
  316. sql += ", @reqTranAmt = " + _dao.FilterString((Convert.ToDecimal(model.SentAmount) + Convert.ToDecimal(model.ServiceFee)).ToString());
  317. sql += ", @reqFintechUseNum = " + _dao.FilterString(model.FintechUseNo);
  318. }
  319. else if (transferType == "deposit")
  320. {
  321. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(model.RecipientName);
  322. sql += ", @reqBankCodeStd = " + _dao.FilterString(model.RecipientBankCode);
  323. sql += ", @reqAccountNum = " + _dao.FilterString(model.RecipientAccountNo);
  324. sql += ", @reqAccountHolderName = " + _dao.FilterStringUnicode(model.RecipientName);
  325. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode(customerDetail.Rows[0]["accountName"].ToString());
  326. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  327. sql += ", @serviceFee = " + _dao.FilterString("0");
  328. sql += ", @reqTranAmt = " + _dao.FilterString(model.SentAmount);
  329. // sql += ", @reqFintechUseNum = " + _dao.FilterString(gme["accessToken"].ToString());
  330. }
  331. else if (transferType == "refund")
  332. {
  333. sql += ", @reqWdPrintContent = " + _dao.FilterStringUnicode(customerDetail.Rows[0]["accountName"].ToString());
  334. sql += ", @reqBankCodeStd = " + _dao.FilterString(customerDetail.Rows[0]["bankCodeStd"].ToString());
  335. sql += ", @reqAccountNum = " + _dao.FilterString(customerDetail.Rows[0]["accountNum"].ToString());
  336. sql += ", @reqAccountHolderName = " + _dao.FilterStringUnicode(customerDetail.Rows[0]["accountName"].ToString());
  337. sql += ", @reqPrintContent = " + _dao.FilterStringUnicode("이체실패_환불");
  338. sql += ", @reqAmt = " + _dao.FilterString(model.SentAmount);
  339. sql += ", @serviceFee = " + _dao.FilterString(model.ServiceFee);
  340. sql += ", @reqTranAmt = " + _dao.FilterString((Convert.ToDecimal(model.SentAmount) + Convert.ToDecimal(model.ServiceFee)).ToString());
  341. // sql += ", @reqFintechUseNum = " + _dao.FilterString(gme["accessToken"].ToString());
  342. }
  343. }
  344. return _dao.ParseDbResult(sql);
  345. }
  346. public DbResult responseKFTCDomesticHistory_withdraw(Response.withdraw response, DomesticRemitModel model)
  347. {
  348. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_HISTORY @flag = 'UPDATE'";
  349. sql += ", @transferType = " + _dao.FilterString("withdraw");
  350. sql += ", @reqNameCheckOption = " + _dao.FilterString("off");
  351. sql += ", @customerId = " + _dao.FilterString(model.CustomerId);
  352. sql += ", @processId = " + _dao.FilterString(model.processId);
  353. if (response == null)
  354. {
  355. sql += ", @resRspMessage = " + _dao.FilterStringUnicode("FAILED TO KFTC OPEN-FLATFORM (transfer/withdraw) QUERY!");
  356. return _dao.ParseDbResult(sql);
  357. }
  358. sql += ", @resApiTranId = " + _dao.FilterString(response.api_tran_id);
  359. sql += ", @resApiTranDtime = " + _dao.FilterString(response.api_tran_dtm);
  360. sql += ", @resRspCode = " + _dao.FilterString(response.rsp_code);
  361. sql += ", @resRspMessage = " + _dao.FilterStringUnicode(response.rsp_message);
  362. sql += ", @resWdBankCodeStd = " + _dao.FilterString(response.dps_bank_code_std);
  363. sql += ", @resWdBankCodeSub = " + _dao.FilterString(response.dps_bank_code_sub);
  364. sql += ", @resWdBankName = " + _dao.FilterStringUnicode(response.dps_bank_name);
  365. sql += ", @resWdAccountNumMasked = " + _dao.FilterString(response.dps_account_num_masked);
  366. sql += ", @resWdPrintContent = " + _dao.FilterStringUnicode(response.dps_print_content);
  367. sql += ", @resWdAccountHolderName = " + _dao.FilterStringUnicode(response.dps_account_holder_name);
  368. sql += ", @resCnt = " + _dao.FilterString("1");
  369. sql += ", @resTranNo = " + _dao.FilterString("1");
  370. sql += ", @resBankTranId = " + _dao.FilterString(response.bank_tran_id);
  371. sql += ", @resBankTranDate = " + _dao.FilterString(response.bank_tran_date);
  372. sql += ", @resBankCodeTran = " + _dao.FilterString(response.bank_code_tran);
  373. sql += ", @resBankRspCode = " + _dao.FilterString(response.bank_rsp_code);
  374. sql += ", @resBankRspMessage = " + _dao.FilterStringUnicode(response.bank_rsp_message);
  375. sql += ", @resBankCodeStd = " + _dao.FilterString(response.bank_code_std);
  376. sql += ", @resBankCodeSub = " + _dao.FilterString(response.bank_code_sub);
  377. sql += ", @resBankName = " + _dao.FilterStringUnicode(response.bank_name);
  378. sql += ", @resAccountNumMasked = " + _dao.FilterString(response.account_num_masked);
  379. sql += ", @resPrintContent = " + _dao.FilterStringUnicode(response.print_content);
  380. sql += ", @resAccountHolderName = " + _dao.FilterStringUnicode(response.account_holder_name);
  381. sql += ", @resTranAmt = " + _dao.FilterString(response.tran_amt);
  382. return _dao.ParseDbResult(sql);
  383. }
  384. public DbResult responseKFTCDomesticHistory_DepositRefund(Response.deposit response, DomesticRemitModel model)
  385. {
  386. var sql = "EXEC dbo.PROC_KFTC_DOMESTIC_HISTORY @flag = 'UPDATE'";
  387. sql += ", @transferType = " + _dao.FilterString(model.transferType);
  388. sql += ", @reqNameCheckOption = " + _dao.FilterString("off");
  389. sql += ", @customerId = " + _dao.FilterString(model.CustomerId);
  390. sql += ", @processId = " + _dao.FilterString(model.processId);
  391. if (response == null)
  392. {
  393. sql += ", @resRspMessage = " + _dao.FilterStringUnicode("FAILED TO KFTC OPEN-FLATFORM (transfer/deposit2) QUERY!");
  394. return _dao.ParseDbResult(sql);
  395. }
  396. sql += ", @resApiTranId = " + _dao.FilterString(response.api_tran_id);
  397. sql += ", @resApiTranDtime = " + _dao.FilterString(response.api_tran_dtm);
  398. sql += ", @resRspCode = " + _dao.FilterString(response.rsp_code);
  399. sql += ", @resRspMessage = " + _dao.FilterStringUnicode(response.rsp_message);
  400. sql += ", @resWdBankCodeStd = " + _dao.FilterString(response.wd_bank_code_std);
  401. sql += ", @resWdBankCodeSub = " + _dao.FilterString(response.wd_bank_code_sub);
  402. sql += ", @resWdBankName = " + _dao.FilterStringUnicode(response.wd_bank_name);
  403. sql += ", @resWdAccountNumMasked = " + _dao.FilterString(response.wd_account_num_masked);
  404. sql += ", @resWdPrintContent = " + _dao.FilterStringUnicode(response.wd_print_content);
  405. sql += ", @resWdAccountHolderName = " + _dao.FilterStringUnicode(response.wd_account_holder_name);
  406. sql += ", @resCnt = " + _dao.FilterString("1");
  407. sql += ", @resTranNo = " + _dao.FilterString("1");
  408. if (response.res_list != null)
  409. {
  410. sql += ", @resBankTranId = " + _dao.FilterString(response.res_list[0].bank_tran_id);
  411. sql += ", @resBankTranDate = " + _dao.FilterString(response.res_list[0].bank_tran_date);
  412. sql += ", @resBankCodeTran = " + _dao.FilterString(response.res_list[0].bank_code_tran);
  413. sql += ", @resBankRspCode = " + _dao.FilterString(response.res_list[0].bank_rsp_code);
  414. sql += ", @resBankRspMessage = " + _dao.FilterStringUnicode(response.res_list[0].bank_rsp_message);
  415. sql += ", @resBankCodeStd = " + _dao.FilterString(response.res_list[0].bank_code_std);
  416. sql += ", @resBankCodeSub = " + _dao.FilterString(response.res_list[0].bank_code_sub);
  417. sql += ", @resBankName = " + _dao.FilterStringUnicode(response.res_list[0].bank_name);
  418. sql += ", @resAccountNumMasked = " + _dao.FilterString(response.res_list[0].account_num_masked);
  419. sql += ", @resPrintContent = " + _dao.FilterStringUnicode(response.res_list[0].dps_print_content);
  420. sql += ", @resAccountHolderName = " + _dao.FilterStringUnicode(response.res_list[0].account_holder_name);
  421. sql += ", @resTranAmt = " + _dao.FilterString(response.res_list[0].tran_amt);
  422. }
  423. return _dao.ParseDbResult(sql);
  424. }
  425. public DbResult startPushFromDomestit(string processId)
  426. {
  427. var sql = "EXEC dbo.proc_online_PushFromDomestic";
  428. sql += " @tranId = " + _dao.FilterString(processId);
  429. return _dao.ParseDbResult(sql);
  430. }
  431. public DbResult CheckLoginPassword(string user, string txnPassword, string paymentType, string customerId)
  432. {
  433. string sql = "";
  434. if (paymentType.ToLower() == "wallet")
  435. {
  436. sql = "EXEC proc_online_customer_login";
  437. sql += " @flag='checkpass'";
  438. sql += ", @customerEmail =" + _dao.FilterString(user);
  439. sql += ", @password =" + _dao.FilterString(txnPassword);
  440. }
  441. else if (paymentType.ToLower() == "autodebit")
  442. {
  443. sql = "EXEC PROC_OTP_SEND_TXN";
  444. sql += " @FLAG ='VERIFY'";
  445. sql += ", @OTP_NUMBER =" + _dao.FilterString(txnPassword);
  446. sql += ", @CUSTOMERID =" + _dao.FilterString(customerId);
  447. }
  448. return _dao.ParseDbResult(sql);
  449. }
  450. public List<AccountDetails> GetWalletAccountList(string customer)
  451. {
  452. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-send',@customerId =" + _dao.FilterString(customer);
  453. Log.DebugFormat("GetPaymentAccountsByCustomer | SQL:{0}", sql);
  454. var dt = _dao.ExecuteDataTable(sql);
  455. List<AccountDetails> _accountDetails = new List<AccountDetails>();
  456. try
  457. {
  458. if (dt == null || dt.Rows.Count == 0)
  459. {
  460. return _accountDetails;
  461. }
  462. foreach (DataRow item in dt.Rows)
  463. {
  464. var accName = "";
  465. if (item["isApproved"].ToString() == "N")
  466. {
  467. accName = item["walletName"].ToString() + item["autoDebit"].ToString() + " (Unapproved)";
  468. }
  469. else
  470. {
  471. accName = item["walletName"].ToString() + item["autoDebit"].ToString();
  472. }
  473. accName += "(" + item["accountNumMasked"].ToString() + ")";
  474. AccountDetails _account = new AccountDetails();
  475. _account.KftcAccountId = item["RowId"].ToString();
  476. _account.FintechUseNo = item["fintechUseNo"].ToString();
  477. _account.Type = item["type"].ToString();
  478. _account.WalletName = item["walletName"].ToString();
  479. _account.BankName = item["walletName"].ToString();
  480. if (item["type"].ToString() != "wallet")
  481. {
  482. _account.AccountNumMasked = item["accountNumMasked"].ToString();
  483. }
  484. _accountDetails.Add(_account);
  485. }
  486. return _accountDetails;
  487. }
  488. catch (Exception ex)
  489. {
  490. Log.Error("Exception tracked : " + ex.Message, ex);
  491. return _accountDetails;
  492. }
  493. }
  494. public DbResult GetUserEmail(string customerId)
  495. {
  496. var sql = "select '0' errorCode,customerId,email from customerMaster ";
  497. sql += "where customerId = " + _dao.FilterString(customerId);
  498. return _dao.ParseDbResult(sql);
  499. }
  500. /* 2019.10.10 KFTC 계좌 서비스승인 정보조회 Dana*/
  501. public DataRow GetAccountKFTCInfo(string customerId, string kftcLogId)
  502. {
  503. var sql = "EXEC mobile_proc_KTFC @flag='ACCOUNTINFO' ";
  504. sql += ", @customerId = " + _dao.FilterString(customerId);
  505. sql += ", @kftcLogId = " + _dao.FilterString(kftcLogId);
  506. Log.DebugFormat("GetCustomerKFTCInfo | SQL:{0}", sql);
  507. return _dao.ExecuteDataRow(sql);
  508. }
  509. public DataRow GetKFTCAccountInfo(string customerId, string fintechUseNo)
  510. {
  511. var sql = "SELECT * from dbo.FNAGetKFTCAccountInfo(" + _dao.FilterString(customerId) + "," + _dao.FilterString(fintechUseNo) + ")";
  512. return _dao.ExecuteDataRow(sql);
  513. }
  514. public DataRow GetCustomerData_V4(string customerId)
  515. {
  516. var sql = "EXEC KFTC_LOG_CUSTOMER_INFO @flag = 's-refresh-v4'";
  517. sql += ",@customerId = " + _dao.FilterString(customerId);
  518. Log.Debug("Query : " + sql);
  519. return _dao.ExecuteDataRow(sql);
  520. }
  521. public DbResult GetCustomerIdEmail(string email)
  522. {
  523. var sql = "select '0' errorCode,customerId,email from customerMaster ";
  524. sql += "where email = " + _dao.FilterString(email);
  525. return _dao.ParseDbResult(sql);
  526. }
  527. }
  528. }