using System; using System.Collections.Generic; using System.Linq; using System.Text.RegularExpressions; using MySystem.Models.Main; using Library; using LitJson; using System.Threading; namespace MySystem { public class MerchantConfirmService { public readonly static MerchantConfirmService Instance = new MerchantConfirmService(); private MerchantConfirmService() { } public void Start() { Thread th = new Thread(StartListen); th.IsBackground = true; th.Start(); } public void StartListen() { // while (true) // { // string content = RedisDbconn.Instance.RPop("MerchantConfirmQueue"); // if (!string.IsNullOrEmpty(content)) // { // try // { // JsonData jsonObj = JsonMapper.ToObject(content); // int MerchantId = int.Parse(jsonObj["MerchantId"].ToString()); // StartDo(MerchantId); // } // catch (Exception ex) // { // function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "好哒商户进件异常"); // } // } // else // { // Thread.Sleep(2000); // } // } StartDo(1); } public void StartDo(int MerchantId) { WebCMSEntities db = new WebCMSEntities(); MerchantAddInfo AddInfo = db.MerchantAddInfo.FirstOrDefault(m => m.Id == MerchantId); MerchantInfo merchant = db.MerchantInfo.FirstOrDefault(m => m.Id == MerchantId); if (AddInfo != null && merchant != null) { string BusinessCode = AddInfo.BusinessCode; if (string.IsNullOrEmpty(BusinessCode)) { BusinessCode = "LKB" + DateTime.Now.ToString("yyyyMMddHHmmssfff") + function.get_Random(5); AddInfo.BusinessCode = BusinessCode; } merchant.LoginPwd = function.MD532(AddInfo.MobilePhone.Substring(5)); MerchantParamSet query = db.MerchantParamSet.FirstOrDefault(m => m.Id == MerchantId); if (query == null) { query = new MerchantParamSet(); query.IsAll = 1; db.MerchantParamSet.Add(query); db.SaveChanges(); } MerchantForMobile merchantForMobile = db.MerchantForMobile.FirstOrDefault(m => m.Mobile == AddInfo.MobilePhone); if (merchantForMobile == null) { merchantForMobile = db.MerchantForMobile.Add(new MerchantForMobile() { Mobile = AddInfo.MobilePhone, }).Entity; db.SaveChanges(); } merchantForMobile.MerchantId = MerchantId; db.SaveChanges(); if (AddInfo.Status <= 0) { var info = AddNewMerchantSetUtil.SetValue(AddInfo); string result = HaoDaHelper.Instance.AddNewMerchant(info); JsonData jsonObj = JsonMapper.ToObject(result); if (jsonObj["resultCode"].ToString() == "1") { AddInfo.WeChatRemark = ""; AddInfo.MchtNo = jsonObj["data"]["mchtNo"].ToString(); AddInfo.Status = 0; merchant.Status = 0; db.SaveChanges(); QueryMerchantStatus queryMerchantStatus = new QueryMerchantStatus(); queryMerchantStatus.MerchantId = MerchantId.ToString(); queryMerchantStatus.MerchantNo = AddInfo.MchtNo; RedisDbconn.Instance.AddList("WeChatSignQueue", queryMerchantStatus); } else { AddInfo.Status = -1; merchant.Status = -1; AddInfo.WeChatRemark = jsonObj["errorDesc"].ToString(); db.SaveChanges(); } } } db.Dispose(); } } }