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.

273 lines
12 KiB

1 year ago
  1. using Common;
  2. using Common.Helper;
  3. using Common.Model.Config;
  4. using Common.Model.Reward;
  5. using log4net;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.IO;
  10. using System.Runtime.Remoting.Messaging;
  11. namespace Repository.Reward
  12. {
  13. public class RewardRepository : IRewardRepository
  14. {
  15. private readonly Dao _dao = new Dao();
  16. private static readonly ILog Log = LogManager.GetLogger(typeof(RewardRepository));
  17. JsonRxResponse IRewardRepository.GetProductLists(string rooturl)
  18. {
  19. JsonRxResponse jsonRx = new JsonRxResponse();
  20. try
  21. {
  22. var sql = "EXEC proc_RewardPointOperation @flag='productlist' ";
  23. Log.Debug(sql);
  24. var dataSet = _dao.ExecuteDataset(sql);
  25. List<ResponsingProductsListDetail> productDetails = new List<ResponsingProductsListDetail>();
  26. if (dataSet.Tables[0].Rows.Count == 0)
  27. {
  28. Log.DebugFormat("ProductList count is 0");
  29. jsonRx.ErrorCode = "0";
  30. jsonRx.Msg = "No Product List";
  31. jsonRx.Data = new System.Collections.ArrayList();
  32. return jsonRx;
  33. }
  34. string currentpath = AppDomain.CurrentDomain.BaseDirectory;
  35. foreach (DataRow row in dataSet.Tables[0].Rows)
  36. {
  37. string imgtemppath = null, resultimgpath = null;
  38. string ipath = row["productImgPath"].ToString();
  39. if (File.Exists(ipath))
  40. {
  41. imgtemppath = ipath.Replace(currentpath, "");
  42. resultimgpath = rooturl + "/" + imgtemppath.Replace("\\", "/");
  43. }
  44. productDetails.Add(new ResponsingProductsListDetail
  45. {
  46. productCode = row["productCode"].ToString(),
  47. productName = row["productName"].ToString(),
  48. pointPrice = (Convert.ToDouble(row["pointPrice"].ToString())).ToString(),
  49. deliverYN = row["deliveryYN"].ToString(),
  50. productImgPath = resultimgpath
  51. });
  52. }
  53. jsonRx.ErrorCode = "0";
  54. jsonRx.Msg = "Success";
  55. jsonRx.Data = productDetails;
  56. return jsonRx;
  57. }
  58. catch (Exception e)
  59. {
  60. Log.DebugFormat($"Exception : {e.ToString()}");
  61. jsonRx.ErrorCode = "1";
  62. jsonRx.Msg = "Failed";
  63. jsonRx.Data = e.ToString();
  64. return jsonRx;
  65. }
  66. }
  67. JsonRxResponse IRewardRepository.BuyProduct(RequestedOrderDetail orderRequest)
  68. {
  69. JsonRxResponse jsonRx = new JsonRxResponse();
  70. // 동대문 코드 1034
  71. var sql = string.Format($@"EXEC proc_RewardPointOperation @flag='buyproduct',
  72. @orderId = '{DateTime.Now.ToString("yyyyMMddHHmmssfff")}',
  73. @email = '{orderRequest.userId}',
  74. @branchCode = '{orderRequest.branchCode}',
  75. @productCode = '{orderRequest.productCode}',
  76. @recvType = '{orderRequest.recvType}',
  77. @recvAddress = '{orderRequest.recvAddress}',
  78. @recvZipCode = '{orderRequest.recvZipCode}',
  79. @recvPhoneNumber = '{orderRequest.recvPhoneNumber}',
  80. @recvName = '{orderRequest.recvName}',
  81. @orderType = '{orderRequest.orderType}'
  82. ").Replace("\r\n", string.Empty);
  83. Log.Debug(sql);
  84. var dbdataset = _dao.ExecuteDataset(sql);
  85. if (dbdataset.Tables.Count == 0)
  86. {
  87. Log.DebugFormat("[REWARD-POINT] proc_RewardPointOperation fail");
  88. jsonRx.ErrorCode = "1";
  89. jsonRx.Msg = "[REWARD-POINT] Please contact GME";
  90. return jsonRx;
  91. }
  92. var dbresult = _dao.ParseDbResult(dbdataset.Tables[0]);
  93. string branchemail = null, branchname = null, productname = null, mobile = null;
  94. if (dbdataset.Tables.Count >= 2)
  95. {
  96. foreach (DataRow row in dbdataset.Tables[1].Rows)
  97. {
  98. branchemail = row["agentEmail1"].ToString();
  99. branchname = row["agentName"].ToString();
  100. productname = row["productname"].ToString();
  101. mobile = row["mobile"].ToString();
  102. }
  103. }
  104. jsonRx.ErrorCode = dbresult.ResponseCode;
  105. jsonRx.Msg = dbresult.Msg;
  106. jsonRx.Data = new System.Collections.ArrayList();
  107. jsonRx.Extra = branchemail;
  108. jsonRx.Extra2 = branchname + "," + productname + "," + mobile;
  109. return jsonRx;
  110. }
  111. JsonRxResponse IRewardRepository.OrderedProductList(RequestedOrderDetail orderRequest)
  112. {
  113. JsonRxResponse jsonRx = new JsonRxResponse();
  114. try
  115. {
  116. var sql = string.Format($@"EXEC proc_RewardPointOperation @flag='orderedlist',
  117. @email = '{orderRequest.userId}',
  118. @startDate = '{orderRequest.startDate}',
  119. @endDate = '{orderRequest.endDate}'
  120. ").Replace("\r\n", string.Empty);
  121. Log.Debug(sql);
  122. var dataSet = _dao.ExecuteDataset(sql);
  123. var dbresult = _dao.ParseDbResult(dataSet.Tables[0]);
  124. if (dbresult.ResponseCode == "0")
  125. {
  126. List<RequestedProductDetail> orderProductDetail = new List<RequestedProductDetail>();
  127. if (dataSet.Tables[1].Rows.Count == 0)
  128. {
  129. Log.DebugFormat("Orderd List count is 0");
  130. jsonRx.ErrorCode = "0";
  131. jsonRx.Msg = "Orderd List count is 0";
  132. jsonRx.Data = new System.Collections.ArrayList();
  133. return jsonRx;
  134. }
  135. foreach (DataRow row in dataSet.Tables[1].Rows)
  136. {
  137. orderProductDetail.Add(new RequestedProductDetail
  138. {
  139. orderId = row["orderId"].ToString(),
  140. productCode = row["productCode"].ToString(),
  141. productName = row["productName"].ToString(),
  142. usePoint = (Convert.ToDouble(row["usePoint"].ToString())).ToString(),
  143. orderType = row["orderType"].ToString(),
  144. recvType = row["recvType"].ToString(),
  145. branchCode = row["branchCode"].ToString(),
  146. branchName = row["agentName"].ToString(),
  147. recvAddress = row["recvAddress"].ToString(),
  148. recvZipCode = row["recvZipCode"].ToString(),
  149. recvPhoneNumber = row["recvPhoneNumber"].ToString(),
  150. recvName = row["recvName"].ToString(),
  151. orderStatus = row["orderStatus"].ToString(),
  152. createdDate = row["createdDate"].ToString(),
  153. modifiedDate = row["modifiedDate"].ToString(),
  154. recvDate = row["recvDate"].ToString()
  155. });
  156. }
  157. jsonRx.ErrorCode = "0";
  158. jsonRx.Msg = "Success";
  159. jsonRx.Data = orderProductDetail;
  160. return jsonRx;
  161. }
  162. else
  163. {
  164. return new JsonRxResponse { ErrorCode = dbresult.ResponseCode, Msg = dbresult.Msg };
  165. }
  166. }
  167. catch (Exception e)
  168. {
  169. Log.DebugFormat($"Exception : {e.ToString()}");
  170. jsonRx.ErrorCode = "1";
  171. jsonRx.Msg = "Failed";
  172. jsonRx.Data = e.ToString();
  173. return jsonRx;
  174. }
  175. }
  176. JsonRxResponse IRewardRepository.GetAgentInfo()
  177. {
  178. var lang = Convert.ToString(CallContext.GetData(Constants.Language));
  179. JsonRxResponse jsonRx = new JsonRxResponse();
  180. try
  181. {
  182. var sql = string.Format($@"EXEC mobile_proc_userLogin @flag = 'agentDetail'").Replace("\r\n", string.Empty);
  183. Log.Debug(sql);
  184. var dataSet = _dao.ExecuteDataset(sql);
  185. List<ResponsingAgentDetail> agentList = new List<ResponsingAgentDetail>();
  186. if (dataSet.Tables[0].Rows.Count == 0)
  187. {
  188. Log.DebugFormat("Agent List count is 0");
  189. jsonRx.ErrorCode = "0";
  190. jsonRx.Msg = "Agent List count is 0";
  191. jsonRx.Data = new System.Collections.ArrayList();
  192. return jsonRx;
  193. }
  194. foreach (DataRow row in dataSet.Tables[0].Rows)
  195. {
  196. agentList.Add(new ResponsingAgentDetail
  197. {
  198. agentId = row["agentId"].ToString(),
  199. agentName = row["agentName"].ToString(),
  200. agentState = row["agentState"].ToString(),
  201. agentCity = row["agentCity"].ToString(),
  202. agentAddress = row["agentAddress"].ToString(),
  203. agentZip = row["agentZip"].ToString(),
  204. agentPhone1 = row["agentPhone1"].ToString()
  205. });
  206. }
  207. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_BRANCH_INFOS_SUCCESS.ToString(), lang);
  208. jsonRx.ErrorCode = "0";
  209. jsonRx.Msg = map.Message;
  210. jsonRx.Data = agentList;
  211. return jsonRx;
  212. }
  213. catch (Exception e)
  214. {
  215. var map = Utilities.GetLanguageMapping(RESPONSE_MSG.GET_BRANCH_INFOS_FAIL.ToString(), lang);
  216. Log.DebugFormat($"Exception : {e.ToString()}");
  217. jsonRx.ErrorCode = "1";
  218. jsonRx.Msg = map.Message;
  219. jsonRx.Data = e.ToString();
  220. return jsonRx;
  221. }
  222. }
  223. string IRewardRepository.GetExpectedReward(string customerId, string tranId)
  224. {
  225. JsonRxResponse jsonRx = new JsonRxResponse();
  226. try
  227. {
  228. string reward = null;
  229. var sql = string.Format($@"EXEC PROC_PointMasterDetails @flag = 'expectedreward',
  230. @customerId = '{customerId}', @holdtranId = '{tranId}'
  231. ").Replace("\r\n", string.Empty);
  232. Log.Debug(sql);
  233. var dataSet = _dao.ExecuteDataset(sql);
  234. if (dataSet.Tables[0].Rows.Count == 0)
  235. {
  236. return null;
  237. }
  238. foreach (DataRow row in dataSet.Tables[0].Rows)
  239. {
  240. reward = row["expectedReward"].ToString();
  241. }
  242. double dreward = 0;
  243. if (double.TryParse(reward, out dreward))
  244. {
  245. reward = Math.Round(dreward, 0).ToString();
  246. }
  247. return reward;
  248. }
  249. catch (Exception e)
  250. {
  251. Log.DebugFormat($"Exception : {e.ToString()}");
  252. return null;
  253. }
  254. }
  255. }
  256. }