UpdateMerchantChangeCardStatusService.cs 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125
  1. using System;
  2. using System.Threading;
  3. using System.Linq;
  4. using System.Data;
  5. using Library;
  6. using MySystem.Models;
  7. using System.Collections.Generic;
  8. using LitJson;
  9. using Newtonsoft.Json;
  10. using MySystem.Models.Main2;
  11. /// <summary>
  12. /// 更新商户修改结算卡状态
  13. /// </summary>
  14. namespace MySystem
  15. {
  16. public class UpdateMerchantChangeCardStatusService
  17. {
  18. public readonly static UpdateMerchantChangeCardStatusService Instance = new UpdateMerchantChangeCardStatusService();
  19. private UpdateMerchantChangeCardStatusService()
  20. {
  21. }
  22. public void Start()//启动
  23. {
  24. Thread thread = new Thread(EveryDayUpdateStatus); // 每天更新商户修改结算卡状态
  25. thread.IsBackground = true;
  26. thread.Start();
  27. Thread thread1 = new Thread(TriggerUpdateStatus); // 触发更新商户修改结算卡状态
  28. thread1.IsBackground = true;
  29. thread1.Start();
  30. }
  31. public void EveryDayUpdateStatus()
  32. {
  33. while (true)
  34. {
  35. if (DateTime.Now.Hour > 2 && DateTime.Now.Hour < 9)
  36. {
  37. try
  38. {
  39. string check = function.ReadInstance("/UpdateMerchantChangeCardStatus/check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt");
  40. if (!string.IsNullOrEmpty(check))
  41. {
  42. function.WritePage("/UpdateMerchantChangeCardStatus/", "check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss"));
  43. WebCMSEntities maindb = new WebCMSEntities();
  44. var infos = maindb.MerchantChangeSettlementCardRecord.Where(m => m.Status == 1).ToList();
  45. foreach (var item in infos)
  46. {
  47. var info = infos.FirstOrDefault(m => m.Id == item.Id) ?? new MerchantChangeSettlementCardRecord();
  48. //好哒查询修改银行卡任务审核状态
  49. JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(info.MchtNo, info.TaskId.ToString()));
  50. if (results["resultCode"].ToString() == "1")
  51. {
  52. var Status = int.Parse(results["data"]["status"].ToString());
  53. var Remark = results["data"]["desc"].ToString();
  54. //Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过)
  55. info.Status = Status;
  56. info.Remark = Remark;
  57. }
  58. }
  59. maindb.SaveChanges();
  60. maindb.Dispose();
  61. }
  62. }
  63. catch (Exception ex)
  64. {
  65. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "定时更新商户修改结算卡状态队列异常");
  66. }
  67. }
  68. else
  69. {
  70. Thread.Sleep(60000);
  71. }
  72. }
  73. }
  74. public void TriggerUpdateStatus()
  75. {
  76. while (true)
  77. {
  78. try
  79. {
  80. string data = RedisDbconn.Instance.RPop<string>("UpdateMerchantChangeCardStatus");
  81. if (!string.IsNullOrEmpty(data))
  82. {
  83. WebCMSEntities maindb = new WebCMSEntities();
  84. var infos = maindb.MerchantChangeSettlementCardRecord.Where(m => m.Status == 1).ToList();
  85. foreach (var item in infos)
  86. {
  87. var info = infos.FirstOrDefault(m => m.Id == item.Id) ?? new MerchantChangeSettlementCardRecord();
  88. //好哒查询修改银行卡任务审核状态
  89. JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(info.MchtNo, info.TaskId.ToString()));
  90. if (results["resultCode"].ToString() == "1")
  91. {
  92. var Status = int.Parse(results["data"]["status"].ToString());
  93. var Remark = results["data"]["desc"].ToString();
  94. //Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过)
  95. info.Status = Status;
  96. info.Remark = Remark;
  97. }
  98. }
  99. maindb.SaveChanges();
  100. maindb.Dispose();
  101. }
  102. else
  103. {
  104. Thread.Sleep(50000);
  105. }
  106. }
  107. catch (Exception ex)
  108. {
  109. function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "触发更新商户修改结算卡状态队列异常");
  110. }
  111. }
  112. }
  113. }
  114. }