| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265 |
- using System;
- using System.Threading;
- using System.Linq;
- using System.Data;
- using Library;
- using LitJson;
- using Newtonsoft.Json;
- using MySystem.Models.Main2;
- using MySystem.Service.Main2;
- /// <summary>
- /// 更新商户修改结算卡状态
- /// </summary>
- 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();
- Thread thread2 = new Thread(RealTimeUpdateStatus); // 实时更新商户修改结算卡状态
- thread2.IsBackground = true;
- thread2.Start();
- }
- public void RealTimeUpdateStatus()
- {
- while (true)
- {
- try
- {
- 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;
- //审核成功修改商户结算信息
- if (Status == 5)
- {
- var merchantAddInfo = maindb.MerchantAddInfo.FirstOrDefault(m => m.Id == info.MerchantId) ?? new MerchantAddInfo();
- merchantAddInfo.AccountNumber = info.AccountNo;
- merchantAddInfo.AccountName = info.AccountName;
- var bankInfo = OpenBankAllService.Query(" and BankChildNo='" + info.ZbankNo + "'");
- merchantAddInfo.BankName = bankInfo.BankChild;
- var AreaInfo = HaoDaAreaCodeService.Query(" and CityCode='" + info.AcctZbankCode + "'");
- merchantAddInfo.BankAddressCode = AreaInfo.CityName;
- merchantAddInfo.AccountType = info.AccountType.ToString();
- //开户许可证
- if (info.AccountType == 0 && !string.IsNullOrEmpty(info.OpenAccountLicenses))
- {
- merchantAddInfo.OpenAccountLicenses = info.OpenAccountLicenses;
- }
- if (info.AccountType == 1)
- {
- //银行卡正面
- if (!string.IsNullOrEmpty(info.BankCard))
- {
- merchantAddInfo.BankCard = info.BankCard;
- }
- //企业法人对私授权书
- if (merchantAddInfo.SubjectType == "SUBJECT_TYPE_ENTERPRISE" && !string.IsNullOrEmpty(info.PriLicAgreement))
- {
- merchantAddInfo.Support = info.PriLicAgreement;
- }
- }
- merchantAddInfo.OpenUnionNo = info.ZbankNo;
- }
- }
- maindb.SaveChanges();
- maindb.Dispose();
- }
- Thread.Sleep(180000);
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "实时更新商户修改结算卡状态队列异常");
- }
- }
- }
- 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;
- //审核成功修改商户结算信息
- if (Status == 5)
- {
- var merchantAddInfo = maindb.MerchantAddInfo.FirstOrDefault(m => m.Id == info.MerchantId) ?? new MerchantAddInfo();
- merchantAddInfo.AccountNumber = info.AccountNo;
- merchantAddInfo.AccountName = info.AccountName;
- var bankInfo = OpenBankAllService.Query(" and BankChildNo='" + info.ZbankNo + "'");
- merchantAddInfo.BankName = bankInfo.BankChild;
- var AreaInfo = HaoDaAreaCodeService.Query(" and CityCode='" + info.AcctZbankCode + "'");
- merchantAddInfo.BankAddressCode = AreaInfo.CityName;
- merchantAddInfo.AccountType = info.AccountType.ToString();
- //开户许可证
- if (info.AccountType == 0 && !string.IsNullOrEmpty(info.OpenAccountLicenses))
- {
- merchantAddInfo.OpenAccountLicenses = info.OpenAccountLicenses;
- }
- if (info.AccountType == 1)
- {
- //银行卡正面
- if (!string.IsNullOrEmpty(info.BankCard))
- {
- merchantAddInfo.BankCard = info.BankCard;
- }
- //企业法人对私授权书
- if (merchantAddInfo.SubjectType == "SUBJECT_TYPE_ENTERPRISE" && !string.IsNullOrEmpty(info.PriLicAgreement))
- {
- merchantAddInfo.Support = info.PriLicAgreement;
- }
- }
- merchantAddInfo.OpenUnionNo = info.ZbankNo;
- }
- }
- }
- 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<string>("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;
- //审核成功修改商户结算信息
- if (Status == 5)
- {
- var merchantAddInfo = maindb.MerchantAddInfo.FirstOrDefault(m => m.Id == info.MerchantId) ?? new MerchantAddInfo();
- merchantAddInfo.AccountNumber = info.AccountNo;
- merchantAddInfo.AccountName = info.AccountName;
- var bankInfo = OpenBankAllService.Query(" and BankChildNo='" + info.ZbankNo + "'");
- merchantAddInfo.BankName = bankInfo.BankChild;
- var AreaInfo = HaoDaAreaCodeService.Query(" and CityCode='" + info.AcctZbankCode + "'");
- merchantAddInfo.BankAddressCode = AreaInfo.CityName;
- merchantAddInfo.AccountType = info.AccountType.ToString();
- //开户许可证
- if (info.AccountType == 0 && !string.IsNullOrEmpty(info.OpenAccountLicenses))
- {
- merchantAddInfo.OpenAccountLicenses = info.OpenAccountLicenses;
- }
- if (info.AccountType == 1)
- {
- //银行卡正面
- if (!string.IsNullOrEmpty(info.BankCard))
- {
- merchantAddInfo.BankCard = info.BankCard;
- }
- //企业法人对私授权书
- if (merchantAddInfo.SubjectType == "SUBJECT_TYPE_ENTERPRISE" && !string.IsNullOrEmpty(info.PriLicAgreement))
- {
- merchantAddInfo.Support = info.PriLicAgreement;
- }
- }
- merchantAddInfo.OpenUnionNo = info.ZbankNo;
- }
- }
- }
- maindb.SaveChanges();
- maindb.Dispose();
- }
- else
- {
- Thread.Sleep(50000);
- }
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "触发更新商户修改结算卡状态队列异常");
- }
- }
- }
- }
- }
|