| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137 |
- using System;
- using System.Collections.Generic;
- using Library;
- using LitJson;
- using System.Linq;
- using System.Data;
- using MySystem.PxcModels;
- namespace MySystem
- {
- public class StatService
- {
- public readonly static StatService Instance = new StatService();
- private StatService()
- { }
- public void Start(JobMqMsg jobInfo)
- {
- string content = "";
- try
- {
- string doDate = DateTime.Now.AddDays(-1).ToString("yyyy-MM-dd");
- string flag = function.ReadInstance("/Stat/" + doDate + ".txt");
- if (string.IsNullOrEmpty(flag))
- {
- function.WritePage("/Stat/", doDate + ".txt", DateTime.Now.ToString("HH:mm:ss"));
- dosomething(doDate);
- }
- string Msg = "success";
- jobInfo.Status = Msg == "success" ? 1 : 0;
- jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
- RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
- }
- catch (Exception ex)
- {
- if (!string.IsNullOrEmpty(content))
- {
- Dictionary<string, string> data = new Dictionary<string, string>();
- data.Add("ErrTime", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"));
- data.Add("ErrMsg", ex.ToString());
- function.WriteLog(Newtonsoft.Json.JsonConvert.SerializeObject(data), "public_err");
- }
- else
- {
- function.WriteLog(DateTime.Now.ToString() + ":" + ex.ToString(), "public_service");
- }
- }
- }
- public void clear()
- {
- RedisDbconn.Instance.Clear("TotalAmount*");
- RedisDbconn.Instance.Clear("TotalCloudPayAmount*");
- RedisDbconn.Instance.Clear("TotalPosAmount*");
- RedisDbconn.Instance.Clear("TeamTotalAmount*");
- RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount*");
- RedisDbconn.Instance.Clear("TeamTotalPosAmount*");
- RedisDbconn.Instance.Clear("TotalUser*");
- RedisDbconn.Instance.Clear("TeamTotalUser*");
- RedisDbconn.Instance.Clear("AddUser*");
- RedisDbconn.Instance.Clear("TeamAddUser*");
- RedisDbconn.Instance.Clear("TotalPosMerchant*");
- RedisDbconn.Instance.Clear("TeamTotalPosMerchant*");
- RedisDbconn.Instance.Clear("MerTotalAmount*");
- }
- public void dosomething(string date)
- {
- WebCMSEntities db = new WebCMSEntities();
- string yesterday = date + " 00:00:00";
- string today = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
- string TradeMonth = DateTime.Parse(date).ToString("yyyyMM");
- string TradeDate = DateTime.Parse(date).ToString("yyyyMMdd");
- DataTable dt = dbconn.dtable("select UserId,BrandId,MerchantId,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,QrPayFlag");
- foreach (DataRow dr in dt.Rows)
- {
- int UserId = int.Parse(dr["UserId"].ToString()); //创客ID
- int BrandId = int.Parse(dr["BrandId"].ToString()); //品牌
- int MerchantId = int.Parse(dr["MerchantId"].ToString()); //商户Id
- int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
- decimal TradeAmount = decimal.Parse(dr[4].ToString()); //当日交易额
- RedisDbconn.Instance.AddNumber("MerTotalAmount:" + MerchantId, TradeAmount);
- RedisDbconn.Instance.AddNumber("MerTotalAmount:" + MerchantId + ":" + TradeMonth, TradeAmount); //商户当月交易
- RedisDbconn.Instance.AddNumber("MerTotalAmount:" + MerchantId + ":" + TradeDate, TradeAmount); //商户当日交易
- int Level = 0;
- while (UserId > 0)
- {
- Level += 1;
- Users user = db.Users.FirstOrDefault(m => m.Id == UserId);
- if (user != null)
- {
- if (user.AuthFlag == 1)
- {
- if (Level == 1)
- {
- RedisDbconn.Instance.AddNumber("TotalAmount:" + UserId, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TotalAmount:" + UserId + ":" + TradeDate, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TotalAmount:" + UserId + ":" + TradeMonth, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeMonth, TradeAmount); //总交易
- if (QrPayFlag == 1)
- {
- RedisDbconn.Instance.AddNumber("TotalCloudPayAmount:" + UserId + ":" + TradeDate, TradeAmount); //云闪付小额交易额
- RedisDbconn.Instance.AddNumber("TotalCloudPayAmount:" + UserId + ":" + TradeMonth, TradeAmount); //云闪付小额交易额
- }
- else
- {
- RedisDbconn.Instance.AddNumber("TotalPosAmount:" + UserId + ":" + TradeDate, TradeAmount); //POS机刷卡交易额
- RedisDbconn.Instance.AddNumber("TotalPosAmount:" + UserId + ":" + TradeMonth, TradeAmount); //POS机刷卡交易额
- }
- }
- RedisDbconn.Instance.AddNumber("TeamTotalAmount:" + UserId, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TeamTotalAmount:" + UserId + ":" + TradeDate, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TeamTotalAmount:" + UserId + ":" + TradeMonth, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TeamTotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate, TradeAmount); //总交易
- RedisDbconn.Instance.AddNumber("TeamTotalAmount:" + UserId + ":" + BrandId + ":" + TradeMonth, TradeAmount); //总交易
- if (QrPayFlag == 1)
- {
- RedisDbconn.Instance.AddNumber("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate, TradeAmount); //云闪付小额交易额
- RedisDbconn.Instance.AddNumber("TeamTotalCloudPayAmount:" + UserId + ":" + TradeMonth, TradeAmount); //云闪付小额交易额
- }
- else
- {
- RedisDbconn.Instance.AddNumber("TeamTotalPosAmount:" + UserId + ":" + TradeDate, TradeAmount); //POS机刷卡交易额
- RedisDbconn.Instance.AddNumber("TeamTotalPosAmount:" + UserId + ":" + TradeMonth, TradeAmount); //POS机刷卡交易额
- }
- }
- UserId = user.ParentUserId;
- }
- }
- }
- db.Dispose();
- }
- }
- }
|