MerchantChangeSettlementCardRecordUtil.cs 9.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161
  1. using Library;
  2. using MySystem.Models.Main2;
  3. using MySystem.Service.Main2;
  4. using System.Collections.Generic;
  5. using MySystem.Service.KxsMain;
  6. using System;
  7. using System.Linq;
  8. using LitJson;
  9. namespace MySystem.Service.Main2
  10. {
  11. /// <summary>
  12. /// 银联商户修改结算卡记录表工具类
  13. /// </summary>
  14. public class MerchantChangeSettlementCardRecordUtil
  15. {
  16. #region 添加或修改银联商户修改结算卡记录
  17. /// <summary>
  18. /// 添加或修改银联商户修改结算卡记录
  19. /// </summary>
  20. /// <param name="MerchantId">商户Id</param>
  21. /// <param name="MerchantName">商户名称</param>
  22. /// <param name="Operator">操作人</param>
  23. /// <param name="AlterType">结算类型(0 对公结算银行卡 法人1 对私结算银行卡 2 非法人结算)</param>
  24. /// <param name="AcctZBankAreas">开户支行地区</param>
  25. /// <param name="AcctZBankName">开户支行名称</param>
  26. /// <param name="MchtNo">商户号</param>
  27. /// <param name="AcctName">开户名称</param>
  28. /// <param name="AccountNo">卡号</param>
  29. /// <param name="IdCard">非法人身份证号(结算类型为2时必填,默认传空字符串)</param>
  30. /// <param name="AgentCardStartDate">非法人身份证有效开始时间(yyyy-MM-dd,结算类型为2时必填,默认传空字符串)</param>
  31. /// <param name="AgentCardEndDate">非法人身份证有效结束时间(yyyy-MM-dd,结算类型为2时必填,默认传空字符串)</param>
  32. /// <param name="BankCard">银行卡正面照片(结算类型为1和2时必填,默认传空字符串)</param>
  33. /// <param name="OpenAccountLicenses">开户许可证(企业类型商户或结算类型为0时必填,默认传空字符串)</param>
  34. /// <param name="PriLicAgreement">企业法人对私授权书(结算类型为1且为企业商户时必填,默认传空字符串)</param>
  35. /// <param name="AgentProtocol">委托结算授权书(结算类型为2时必填,默认传空字符串)</param>
  36. /// <param name="AgentIdCardFront">被委托人身份证人像面(结算类型为2时必填,默认传空字符串)</param>
  37. /// <param name="AgentIdCardBack">被委托人身份证国徽面(结算类型为2时必填,默认传空字符串)</param>
  38. /// <param name="HoldAgentProtocol">法人手持委托结算授权书(结算类型为2时必填,默认传空字符串)</param>
  39. public static string AddOrEditMerchantChangeSettlementCardRecord(int MerchantId, string MerchantName, string Operator, string AlterType, string AcctZBankAreas, string AcctZBankName, string MchtNo, string AcctName, string AccountNo, string IdCard, string AgentCardStartDate, string AgentCardEndDate, string BankCard, string OpenAccountLicenses, string PriLicAgreement, string AgentProtocol, string AgentIdCardFront, string AgentIdCardBack, string HoldAgentProtocol)
  40. {
  41. WebCMSEntities maindb = new WebCMSEntities();
  42. MerchantChangeSettlementCardRecord merchantChangeSettlementCardRecord = new MerchantChangeSettlementCardRecord();
  43. var AcctZbankCode = HaoDaAreaCodeService.Query(" and CityName like '%" + AcctZBankAreas + "%'").CityCode;
  44. if (string.IsNullOrEmpty(AcctZbankCode))
  45. {
  46. return "未找到所选开户地区";
  47. }
  48. var AcctZbankkNo = OpenBankAllService.Query(" and BankChild='" + AcctZBankName + "'").BankChildNo;
  49. if (string.IsNullOrEmpty(AcctZbankkNo))
  50. {
  51. return "未找到所选开户支行";
  52. }
  53. var info = MerchantChangeSettlementCardRecordService.Query(MerchantId);
  54. if (info.Id > 0) //修改
  55. {
  56. merchantChangeSettlementCardRecord = maindb.MerchantChangeSettlementCardRecord.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantChangeSettlementCardRecord();
  57. merchantChangeSettlementCardRecord.UpdateDate = DateTime.Now;
  58. merchantChangeSettlementCardRecord.Operator = Operator;
  59. merchantChangeSettlementCardRecord.AlterType = int.Parse(AlterType);
  60. merchantChangeSettlementCardRecord.AcctZbankCode = AcctZbankCode;
  61. merchantChangeSettlementCardRecord.ZbankNo = AcctZbankkNo;
  62. merchantChangeSettlementCardRecord.MchtNo = MchtNo;
  63. merchantChangeSettlementCardRecord.MerchantId = MerchantId;
  64. merchantChangeSettlementCardRecord.MerchantName = MerchantName;
  65. merchantChangeSettlementCardRecord.AccountName = AcctName;
  66. merchantChangeSettlementCardRecord.AccountNo = AccountNo;
  67. merchantChangeSettlementCardRecord.IdCard = IdCard;
  68. if (!string.IsNullOrEmpty(AgentCardStartDate) && !string.IsNullOrEmpty(AgentCardEndDate))
  69. {
  70. merchantChangeSettlementCardRecord.AgentCardStartDate = DateTime.Parse(AgentCardStartDate);
  71. merchantChangeSettlementCardRecord.AgentCardEndDate = DateTime.Parse(AgentCardEndDate);
  72. }
  73. merchantChangeSettlementCardRecord.BankCard = BankCard;
  74. merchantChangeSettlementCardRecord.OpenAccountLicenses = OpenAccountLicenses;
  75. merchantChangeSettlementCardRecord.PriLicAgreement = PriLicAgreement;
  76. merchantChangeSettlementCardRecord.AgentProtocol = AgentProtocol;
  77. merchantChangeSettlementCardRecord.AgentIdCardFront = AgentIdCardFront;
  78. merchantChangeSettlementCardRecord.AgentIdCardBack = AgentIdCardBack;
  79. merchantChangeSettlementCardRecord.HoldAgentProtocol = HoldAgentProtocol;
  80. }
  81. else //添加
  82. {
  83. var AgentCardStartDate1 = "9999-01-01";
  84. var AgentCardEndDate1 = "9999-01-01";
  85. if (!string.IsNullOrEmpty(AgentCardStartDate) && !string.IsNullOrEmpty(AgentCardEndDate))
  86. {
  87. AgentCardStartDate1 = AgentCardStartDate;
  88. AgentCardEndDate1 = AgentCardEndDate;
  89. }
  90. merchantChangeSettlementCardRecord = maindb.MerchantChangeSettlementCardRecord.Add(new MerchantChangeSettlementCardRecord()
  91. {
  92. Id = MerchantId,
  93. CreateDate = DateTime.Now,
  94. UpdateDate = DateTime.Now,
  95. Operator = Operator,
  96. AlterType = int.Parse(AlterType),
  97. AcctZbankCode = AcctZbankCode,
  98. ZbankNo = AcctZbankkNo,
  99. MchtNo = MchtNo,
  100. MerchantId = MerchantId,
  101. MerchantName = MerchantName,
  102. AccountName = AcctName,
  103. AccountNo = AccountNo,
  104. IdCard = IdCard,
  105. AgentCardStartDate = DateTime.Parse(AgentCardStartDate1),
  106. AgentCardEndDate = DateTime.Parse(AgentCardEndDate1),
  107. BankCard = BankCard,
  108. OpenAccountLicenses = OpenAccountLicenses,
  109. PriLicAgreement = PriLicAgreement,
  110. AgentProtocol = AgentProtocol,
  111. AgentIdCardFront = AgentIdCardFront,
  112. AgentIdCardBack = AgentIdCardBack,
  113. HoldAgentProtocol = HoldAgentProtocol,
  114. }).Entity;
  115. }
  116. maindb.SaveChanges();
  117. //实体赋值
  118. var request = ChangeMerchantCardSetUtil.SetValue(merchantChangeSettlementCardRecord, MerchantId);
  119. //好哒商户修改银行卡新
  120. JsonData Infos = JsonMapper.ToObject(HaoDaHelper.Instance.ChangeMerchantCard(request));
  121. if (Infos["resultCode"].ToString() == "1")
  122. {
  123. merchantChangeSettlementCardRecord.TaskId = int.Parse(Infos["data"]["taskId"].ToString());
  124. merchantChangeSettlementCardRecord.Status = 1;
  125. maindb.SaveChanges();
  126. //好哒查询修改银行卡任务审核状态
  127. JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(merchantChangeSettlementCardRecord.MchtNo, Infos["data"]["taskId"].ToString()));
  128. if (results["resultCode"].ToString() == "1")
  129. {
  130. var Status = int.Parse(results["data"]["status"].ToString());
  131. var Remark = results["data"]["desc"].ToString();
  132. //Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过)
  133. merchantChangeSettlementCardRecord.Status = Status;
  134. merchantChangeSettlementCardRecord.Remark = Remark;
  135. //审核成功修改商户结算信息
  136. // if (Status == 5)
  137. // {
  138. // var merchantAddInfo = maindb.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new MerchantAddInfo();
  139. // merchantAddInfo.
  140. // }
  141. maindb.SaveChanges();
  142. }
  143. }
  144. maindb.Dispose();
  145. return "success";
  146. }
  147. #endregion
  148. #region 提交好哒商户修改结算卡申请
  149. public static string SendHdChangeMerchantCard(MerchantChangeSettlementCardRecord merchantChangeSettlementCardRecord)
  150. {
  151. return "success";
  152. }
  153. #endregion
  154. }
  155. }