using System; using System.Threading; using System.Linq; using System.Data; using Library; using MySystem.Models; using System.Collections.Generic; using LitJson; using Newtonsoft.Json; using MySystem.Models.Main2; /// /// 更新商户修改结算卡状态 /// namespace MySystem { public class UpdateMerchantChangeCardStatusService { public readonly static UpdateMerchantChangeCardStatusService Instance = new UpdateMerchantChangeCardStatusService(); private UpdateMerchantChangeCardStatusService() { } public void Start()//启动 { Thread thread = new Thread(EveryDayUpdateStatus); // 每天更新商户修改结算卡状态 thread.IsBackground = true; thread.Start(); Thread thread1 = new Thread(TriggerUpdateStatus); // 触发更新商户修改结算卡状态 thread1.IsBackground = true; thread1.Start(); } public void EveryDayUpdateStatus() { while (true) { if (DateTime.Now.Hour > 2 && DateTime.Now.Hour < 9) { try { string check = function.ReadInstance("/UpdateMerchantChangeCardStatus/check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"); if (!string.IsNullOrEmpty(check)) { function.WritePage("/UpdateMerchantChangeCardStatus/", "check" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt", DateTime.Now.ToString("HH:mm:ss")); WebCMSEntities maindb = new WebCMSEntities(); var infos = maindb.MerchantChangeSettlementCardRecord.Where(m => m.Status == 1).ToList(); foreach (var item in infos) { var info = infos.FirstOrDefault(m => m.Id == item.Id) ?? new MerchantChangeSettlementCardRecord(); //好哒查询修改银行卡任务审核状态 JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(info.MchtNo, info.TaskId.ToString())); if (results["resultCode"].ToString() == "1") { var Status = int.Parse(results["data"]["status"].ToString()); var Remark = results["data"]["desc"].ToString(); //Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过) info.Status = Status; info.Remark = Remark; } } maindb.SaveChanges(); maindb.Dispose(); } } catch (Exception ex) { function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "定时更新商户修改结算卡状态队列异常"); } } else { Thread.Sleep(60000); } } } public void TriggerUpdateStatus() { while (true) { try { string data = RedisDbconn.Instance.RPop("UpdateMerchantChangeCardStatus"); if (!string.IsNullOrEmpty(data)) { WebCMSEntities maindb = new WebCMSEntities(); var infos = maindb.MerchantChangeSettlementCardRecord.Where(m => m.Status == 1).ToList(); foreach (var item in infos) { var info = infos.FirstOrDefault(m => m.Id == item.Id) ?? new MerchantChangeSettlementCardRecord(); //好哒查询修改银行卡任务审核状态 JsonData results = JsonMapper.ToObject(HaoDaHelper.Instance.QueryChangeCardStatus(info.MchtNo, info.TaskId.ToString())); if (results["resultCode"].ToString() == "1") { var Status = int.Parse(results["data"]["status"].ToString()); var Remark = results["data"]["desc"].ToString(); //Status(1 待审核 3 审核拒绝 4 任务失效 5 审核通过) info.Status = Status; info.Remark = Remark; } } maindb.SaveChanges(); maindb.Dispose(); } else { Thread.Sleep(50000); } } catch (Exception ex) { function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "触发更新商户修改结算卡状态队列异常"); } } } } }