using System;
using System.Collections.Generic;
using System.Linq;
using System.Data;
using MySystem.Models.Main;
using Library;
using System.Threading;
using Microsoft.Extensions.Hosting;
using System.Threading.Tasks;
using LitJson;
///
/// 获取商户门店号、微信支付宝商户号
///
namespace MySystem
{
public class GetStoreNoHelper
{
public readonly static GetStoreNoHelper Instance = new GetStoreNoHelper();
private GetStoreNoHelper()
{
}
#region
public void Start()
{
Thread th = new Thread(StartDo);
th.IsBackground = true;
th.Start();
}
public void StartDo()
{
while (true)
{
string MerchantId = RedisDbconn.Instance.RPop("UnionPayGetStoreNoQueue");
if (!string.IsNullOrEmpty(MerchantId))
{
DoSomeThing(MerchantId);
Thread.Sleep(2000);
}
else
{
Thread.Sleep(60000);
}
}
}
public void DoSomeThing(string MerchantId)
{
try
{
int Id = int.Parse(function.CheckInt(MerchantId));
WebCMSEntities db = new WebCMSEntities();
MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantAddInfo();
MerchantInfo merInfo = db.MerchantInfo.FirstOrDefault(m => m.Id == Id) ?? new MerchantInfo();
if (string.IsNullOrEmpty(AddInfo.StoreNo) && string.IsNullOrEmpty(AddInfo.OutMchtNo))
{
var BrhCode = HaodaUnionParam.BrhCode;
if (AddInfo.BrandId == 1) BrhCode = HaodaParam.BrhCode;
//查询商户审核状态
var returnInfo = HaoDaHelper.Instance.QueryMerchantStatus(BrhCode, AddInfo.MchtNo, AddInfo.BrandId);
var check = false;
JsonData jsonObj = JsonMapper.ToObject(returnInfo);
if (jsonObj["resultCode"].ToString() == "1")
{
var StoreNo = jsonObj["data"]["storeNo"].ToString();
var OutMchtNo = jsonObj["data"]["outMchtNo"].ToString();
if (!string.IsNullOrEmpty(StoreNo) && !string.IsNullOrEmpty(OutMchtNo))
{
AddInfo.StoreNo = StoreNo;
AddInfo.OutMchtNo = OutMchtNo;
db.SaveChanges();
}
//查询实名认证状态
var result = HaoDaHelper.Instance.QueryAuthStatus(AddInfo.OutMchtNo, AddInfo.StoreNo, AddInfo.BrandId);
JsonData jsonData = JsonMapper.ToObject(result);
if (jsonData["resultCode"].ToString() == "1")
{
var AliMerchantId = jsonObj["aliMerchantId"].ToString();
var WeChatMerchantId = jsonObj["wechatMerchantId"].ToString();
if (!string.IsNullOrEmpty(AliMerchantId) && !string.IsNullOrEmpty(WeChatMerchantId))
{
AddInfo.AliMerchantId = AliMerchantId;
AddInfo.WeChatMerchantId = WeChatMerchantId;
db.SaveChanges();
}
check = true;
}
}
if (check)
{
AddInfo.Status = 0;
merInfo.Status = 0;
db.SaveChanges();
}
else
{
RedisDbconn.Instance.AddList("UnionPayGetStoreNoQueue", MerchantId.ToString());
}
}
db.Dispose();
}
catch (Exception ex)
{
function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "获取商户门店号队列异常");
}
}
#endregion
}
}