123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114 |
- using System;
- using System.Collections.Generic;
- using System.Threading;
- using System.Threading.Tasks;
- using System.Linq;
- using Microsoft.Extensions.Hosting;
- using MySystem;
- using MySystem.PxcModels;
- using LitJson;
- using Library;
- public class TradeStatTimer
- {
- public readonly static TradeStatTimer Instance = new TradeStatTimer();
- private TradeStatTimer()
- {
- }
-
- public void Start()
- {
- Thread th = new Thread(DoWorks);
- th.IsBackground = true;
- th.Start();
- }
- private void DoWorks()
- {
- while (true)
- {
- string content = RedisDbconn.Instance.RPop<string>("TradeStatQueue");
- if (!string.IsNullOrEmpty(content))
- {
- JsonData jsonObj = JsonMapper.ToObject(content);
- string DateString = jsonObj["DateString"].ToString();
- int UserId = int.Parse(jsonObj["UserId"].ToString()); //创客ID
- int BrandId = int.Parse(jsonObj["BrandId"].ToString()); //品牌
- int BankCardType = int.Parse(jsonObj["BankCardType"].ToString()); //卡类型
- int MerchantId = int.Parse(jsonObj["MerchantId"].ToString()); //商户Id
- int QrPayFlag = int.Parse(jsonObj["QrPayFlag"].ToString()); //云闪付
- decimal TradeAmount = decimal.Parse(jsonObj["TradeAmount"].ToString()); //当日交易额
- string TradeMonth = DateTime.Parse(DateString).ToString("yyyyMM");
- string TradeDate = DateTime.Parse(DateString).ToString("yyyyMMdd");
- WebCMSEntities db = new WebCMSEntities();
- var tran = db.Database.BeginTransaction();
- try
- {
- PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == MerchantId) ?? new PosMerchantInfo();
- MachineForMerNo machineFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.KqMerNo) ?? new MachineForMerNo();
- PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == machineFor.SnId) ?? new PosMachinesTwo();
- int MerchantTypeUserId = int.Parse(function.CheckInt(pos.SeoTitle));
- if (MerchantTypeUserId > 0)
- {
- Users merchantUser = db.Users.FirstOrDefault(m => m.Id == MerchantTypeUserId && m.MerchantType == 1);
- if (merchantUser != null)
- {
- UserId = MerchantTypeUserId;
- }
- }
- Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
- if (user != null)
- {
- if (user.AuthFlag == 1)
- {
- if (QrPayFlag == 1)
- {
- }
- else
- {
- }
- string ParentNav = user.ParentNav;
- if (UserId != pos.UserId)
- {
- user = db.Users.FirstOrDefault(m => m.Id == pos.UserId);
- if (user != null)
- {
- ParentNav = user.ParentNav;
- UserId = pos.UserId;
- }
- }
- if (!string.IsNullOrEmpty(ParentNav))
- {
- ParentNav += "," + UserId + ",";
- string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
- foreach (string UserIdString in ParentNavList)
- {
- int ParentUserId = int.Parse(UserIdString);
- if (QrPayFlag == 1)
- {
- }
- else
- {
- }
- }
- }
- }
- }
- tran.Commit();
- }
- catch (Exception ex)
- {
- function.WriteLog(DateTime.Now.ToString() + "\n" + content + "\n" + ex.ToString(), "统计交易额异常");
- tran.Rollback();
- }
- tran.Dispose();
- db.Dispose();
- }
- else
- {
- Thread.Sleep(900000);
- }
- }
- }
- }
|