Эх сурвалжийг харах

更改盛付通押金机制

lichunlei 3 жил өмнө
parent
commit
80b12dfad2
29 өөрчлөгдсөн 63 нэмэгдсэн , 14224 устгасан
  1. 0 1891
      .history/AppStart/Helper/StatService_20220524003252.cs
  2. 0 1891
      .history/AppStart/Helper/StatService_20220524191613.cs
  3. 0 1891
      .history/AppStart/Helper/StatService_20220524191614.cs
  4. 0 1891
      .history/AppStart/Helper/StatService_20220525164444.cs
  5. 0 1891
      .history/AppStart/Helper/StatService_20220525164445.cs
  6. 0 108
      .history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220502130035.cs
  7. 0 108
      .history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190450.cs
  8. 0 108
      .history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190518.cs
  9. 0 108
      .history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190519.cs
  10. 0 409
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220522141932.cs
  11. 0 421
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524190809.cs
  12. 0 421
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191030.cs
  13. 0 421
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191031.cs
  14. 0 421
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191112.cs
  15. 0 421
      .history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524213842.cs
  16. 0 266
      .history/Startup_20220523234811.cs
  17. 0 266
      .history/Startup_20220525102702.cs
  18. 0 266
      .history/Startup_20220525102707.cs
  19. 0 266
      .history/Startup_20220525102708.cs
  20. 0 266
      .history/Startup_20220525155548.cs
  21. 0 266
      .history/Startup_20220525155550.cs
  22. 0 39
      .history/appsettings_20220520215259.json
  23. 0 39
      .history/appsettings_20220525155728.json
  24. 0 39
      .history/appsettings_20220525155741.json
  25. 0 39
      .history/appsettings_20220525155742.json
  26. 0 39
      .history/appsettings_20220525160001.json
  27. 19 0
      AppStart/Helper/StatService.cs
  28. 42 30
      AppStart/Helper/SycnSpServer/SycnSpTradeService.cs
  29. 2 2
      Startup.cs

+ 0 - 1891
.history/AppStart/Helper/StatService_20220524003252.cs

@@ -1,1891 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Library;
-using LitJson;
-using System.Linq;
-using System.Data;
-using System.Threading;
-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"));
-                    dosomething1(doDate);
-                    dosomething11(doDate);
-                    // dosomething2(doDate);
-                    StartEverDay(doDate);
-                    dosomething4(doDate);
-                    ListenFluxRecord(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 ActiveReward(JobMqMsg jobInfo)
-        {
-            string content = "";
-            try
-            {
-                dosomething3();
-                string Msg = "success";
-                jobInfo.Status = Msg == "success" ? 1 : 0;
-                jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
-                RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
-                function.WritePage("/static/", "act.txt", DateTime.Now.ToString());
-            }
-            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*");
-        }
-
-
-        // 1. 前一天的绑定记录和创客信息匹配,设置商户型创客
-        public void dosomething1(string date)
-        {
-            // TODO: 每天扫描非商户型创客的持有机具数量
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.CreateTime >= yesterday && m.CreateTime < today).ToList();
-            foreach (SpModels.BindRecord bind in binds)
-            {
-                string Mobile = bind.MerNewSnNo;
-                string MerNo = bind.MerNo;
-                string BeforeNum = "";
-                string AfterNum = "";
-                if (Mobile.Contains("****") && Mobile.Length == 11)
-                {
-                    BeforeNum = Mobile.Substring(0, 3);
-                    AfterNum = Mobile.Substring(7);
-                }
-                string Name = bind.MerName;
-                if (bind.ProductType == "2")
-                {
-                    if (Name.Contains("-"))
-                    {
-                        Name = Name.Split('-')[1];
-                    }
-                    else if (Name.Contains("_"))
-                    {
-                        Name = Name.Split('_')[1];
-                    }
-                }
-                else if (bind.ProductType == "4")
-                {
-                    Name = bind.SeoTitle;
-                }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                if (user != null)
-                {
-                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
-                    if (!checkPos)
-                    {
-                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                        if (pos != null)
-                        {
-                            pos.UserId = user.Id;
-                            user.MerchantType = 1;
-                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                            merchant.UserId = user.Id;
-                            merchant.MerUserType = 1;
-                            pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                            RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                            RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-        }
-
-        // 1. 前一天的商户型创客,判断名下是否3台激活机器,是则变为非商户型创客
-        public void dosomething11(string date)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            var users = db.Users.Select(m => new { m.Id, m.MerchantType }).Where(m => m.MerchantType == 1).ToList();
-            foreach (var user in users)
-            {
-                int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
-                if (machineCount + couponCount >= 3)
-                {
-                    Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
-                    if (edit != null)
-                    {
-                        edit.MerchantType = 0;
-                        db.SaveChanges();
-                        RedisDbconn.Instance.Set("Users:" + user.Id, edit);
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        
-        public void testStatTrade(string date)
-        {
-            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,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,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 BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
-            }
-        }
-
-        // 3. 前一天的激活记录,根据创客类型,如果是商户型创客,则激活奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething3(int posid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddDays(-1);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (posid > 0)
-            { 
-                posList = posList.Where(m => m.Id == posid);
-            }
-            else
-            {
-                posList = posList.Where(m => m.ActivationTime >= yesterday && m.ActivationTime < today);
-            }
-            foreach (PosMachinesTwo pos in posList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                if (merchant != null)
-                {
-                    // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                    // if (otherInfo != null)
-                    // {
-                    //     otherInfo.PrizeFlag1 = 1;
-                    //     db.SaveChanges();
-                    string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                    if (user != null)
-                    {
-                        int GetUserId = user.Id;
-                        ParentNav = user.ParentNav;
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                        if (pos.BrandId == 1 || pos.BrandId == 3 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                        {
-                            ActPrize = ActPrize / 100;
-                        }
-                        if (ActPrize > 0)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            else if (ActPrize == 249)
-                            {
-                                ActPrize = 260;
-                            }
-                            if (GetUserId > 0)
-                            {
-                                doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, ActPrize);
-                            }
-                        }
-                    }
-                    // }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
-        {
-            bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
-            if (!check)
-            {
-                Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                db.ActiveReward.Add(new ActiveReward()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    MerchantId = pos.BindMerchantId, //商户
-                    StandardDate = pos.ActivationTime, //达标日期
-                    RewardAmount = ActPrize, //奖励金额
-                    BrandId = pos.BrandId, //品牌
-                    UserNav = ParentNav, //创客父级
-                    DirectBuddyNo = merchant.UserId, //商户直属创客
-                    KqMerNo = merchant.KqMerNo, //渠道商户编号
-                    KqSnNo = pos.PosSn, //渠道SN号
-                    SnType = pos.PosSnType, //机具类型
-                    SnApplyUserId = pos.BuyUserId, //机具申请创客
-                    ActType = 0, //激活类型
-                    SnStoreId = pos.StoreId, //SN仓库
-                    RewardTips = "激活奖励", //奖励描述
-                    Remark = "激活奖励", //备注
-                    ActDate = pos.ActivationTime, //激活时间
-                    TopUserId = TopUserId, //顶级创客
-                    SeoTitle = machineUser.RealName,
-                });
-                db.SaveChanges();
-                string IdBrand = GetUserId + "_" + pos.BrandId;
-                UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                if (userData == null)
-                {
-                    userData = db.UserMachineData.Add(new UserMachineData()
-                    {
-                        IdBrand = IdBrand,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                userData.ActProfit += ActPrize;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                if (account == null)
-                {
-                    account = db.UserAccount.Add(new UserAccount()
-                    {
-                        Id = GetUserId,
-                        UserId = GetUserId,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                account.BalanceAmount += ActPrize;
-                account.TotalAmount += ActPrize;
-                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    ChangeType = ChangeType, //变动类型
-                    ProductType = pos.BrandId, //产品类型
-                    ChangeAmount = ActPrize, //变更金额
-                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                }).Entity;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                // 激活奖励列表
-                List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                if (!dates.Contains(dateString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                if (!months.Contains(monthString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                // 激活奖励详情
-                List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                if (!actPrizeList.Contains(pos.BindMerchantId))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                //收支明细
-                RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                RedisDbconn.Instance.Clear("UserAccount:Income:" + GetUserId + ":" + monthString);
-            }
-        }
-
-
-        //根据商户信息发放激活奖励
-        public void dosomething32(int merid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddHours(-3);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (merid > 0)
-            { 
-                merList = merList.Where(m => m.Id == merid);
-            }
-            else
-            {
-                merList = merList.Where(m => m.MerStandardDate >= yesterday && m.MerStandardDate < today);
-            }
-            foreach (PosMerchantInfo merchant in merList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                // if (otherInfo != null)
-                // {
-                //     otherInfo.PrizeFlag1 = 1;
-                //     db.SaveChanges();
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                string ParentNav = "";
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                if (user != null)
-                {
-                    int GetUserId = user.Id;
-                    ParentNav = user.ParentNav;
-                    int TopUserId = 0;
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                    }
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                    {
-                        ActPrize = ActPrize / 100;
-                    }
-                    if (ActPrize > 0)
-                    {
-                        bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn);
-                        if (!check)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            db.ActiveReward.Add(new ActiveReward()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                StandardDate = pos.ActivationTime, //达标日期
-                                RewardAmount = ActPrize, //奖励金额
-                                BrandId = pos.BrandId, //品牌
-                                UserNav = ParentNav, //创客父级
-                                DirectBuddyNo = merchant.UserId, //商户直属创客
-                                KqMerNo = merchant.KqMerNo, //渠道商户编号
-                                KqSnNo = pos.PosSn, //渠道SN号
-                                SnType = pos.PosSnType, //机具类型
-                                SnApplyUserId = pos.BuyUserId, //机具申请创客
-                                ActType = 0, //激活类型
-                                SnStoreId = pos.StoreId, //SN仓库
-                                RewardTips = "激活奖励", //奖励描述
-                                Remark = "激活奖励", //备注
-                                ActDate = pos.ActivationTime, //激活时间
-                                TopUserId = TopUserId, //顶级创客
-                                SeoTitle = machineUser.RealName,
-                            });
-                            db.SaveChanges();
-                            string IdBrand = GetUserId + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.ActProfit += ActPrize;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += ActPrize;
-                            account.TotalAmount += ActPrize;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 0, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = ActPrize, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                            string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                            string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                            // 激活奖励列表
-                            List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                            if (!dates.Contains(dateString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                            if (!months.Contains(monthString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                            // 激活奖励详情
-                            List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                            if (!actPrizeList.Contains(pos.BindMerchantId))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            //收支明细
-                            RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                            RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                        }
-                    }
-                }
-                // }
-            }
-            db.Dispose();
-        }
-
-        
-
-        //3. 前一天的激活记录,根据创客类型,如果是商户型创客,则开机奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething4(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && m.ActivationTime >= yesterday && m.ActivationTime < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000).ToList();
-            foreach (PosMachinesTwo pos in posList)
-            {
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20))
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                        if (merchant != null)
-                        {
-                            // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                            // if (otherInfo != null)
-                            // {
-                            //     otherInfo.PrizeFlag2 = 1;
-                            //     db.SaveChanges();
-                                // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                if (user != null)
-                                {
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        decimal Prize = 20;
-                                        string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                        {
-                                            int UserId = int.Parse(ParentNavs[i]);
-                                            Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                            if (puser != null && Prize > 0)
-                                            {
-                                                int machineCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                                int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                                // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                                // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount + couponCount >= 3)
-                                                {
-                                                    int pTopUserId = 0;
-                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                    {
-                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                    }
-                                                    Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                                    OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = yesterday, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                        MerchantId = pos.BindMerchantId, //商户
-                                                        DirectUserId = merchant.UserId, //商户直属人
-                                                        SnNo = pos.PosSn, //SN号
-                                                        MerNo = merchant.KqMerNo, //渠道商户号
-                                                        SnType = pos.PosSnType, //机具类型
-                                                        StandardDate = pos.ActivationTime, //商户的激活日期
-                                                        SnStoreId = pos.StoreId, //SN仓库
-                                                        MerBuddyType = puser.MerchantType, //商户创客类型
-                                                        RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                        RewardTips = "开机奖励", //奖励描述
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                        SeoTitle = machineUser.RealName,
-                                                    }).Entity;
-                                                    db.OpenReward.Add(new OpenReward()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = DateTime.Now, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        RewardType = 2, //奖励类型
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                    });
-                                                    string IdBrand = puser.Id + "_" + pos.BrandId;
-                                                    UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                                    if (userData == null)
-                                                    {
-                                                        userData = db.UserMachineData.Add(new UserMachineData()
-                                                        {
-                                                            IdBrand = IdBrand,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    userData.OpenProfit += Prize;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                                    //账户入库
-                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                                    if (account == null)
-                                                    {
-                                                        account = db.UserAccount.Add(new UserAccount()
-                                                        {
-                                                            Id = puser.Id,
-                                                            UserId = puser.Id,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    //收支明细入库
-                                                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                    account.BalanceAmount += Prize;
-                                                    account.TotalAmount += Prize;
-                                                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        UserId = puser.Id, //创客
-                                                        ChangeType = 50, //变动类型
-                                                        ProductType = pos.BrandId, //产品类型
-                                                        ChangeAmount = Prize, //变更金额
-                                                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                    }).Entity;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                                    string dateString = yesterday.ToString("yyyyMMdd");
-                                                    string monthString = yesterday.ToString("yyyyMM");
-                                                    // 开机奖励列表
-                                                    List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!dates.Contains(dateString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                                    List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!months.Contains(monthString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                                    // 开机奖励详情
-                                                    RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                                    //收支明细
-                                                    RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                                    RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                                    Prize -= 10;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            // }
-                        }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void dosomething42(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && m.MerStandardDate >= yesterday && m.MerStandardDate < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0").ToList();
-            foreach (PosMerchantInfo merchant in merList)
-            {
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20) && pos.CreditTrade >= 1000)
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                        // if (otherInfo != null)
-                        // {
-                        //     otherInfo.PrizeFlag2 = 1;
-                        //     db.SaveChanges();
-                        // 从机具所属人上级开始分开机奖励
-                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                        if (user != null)
-                        {
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                decimal Prize = 20;
-                                string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                {
-                                    int UserId = int.Parse(ParentNavs[i]);
-                                    Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                    if (puser != null && Prize > 0)
-                                    {
-                                        int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                        int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                        // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                        // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount + couponCount >= 3)
-                                        {
-                                            int pTopUserId = 0;
-                                            if (!string.IsNullOrEmpty(puser.ParentNav))
-                                            {
-                                                pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                            }
-                                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                            OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = yesterday, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                MerchantId = pos.BindMerchantId, //商户
-                                                DirectUserId = merchant.UserId, //商户直属人
-                                                SnNo = pos.PosSn, //SN号
-                                                MerNo = merchant.KqMerNo, //渠道商户号
-                                                SnType = pos.PosSnType, //机具类型
-                                                StandardDate = pos.ActivationTime, //商户的激活日期
-                                                SnStoreId = pos.StoreId, //SN仓库
-                                                MerBuddyType = puser.MerchantType, //商户创客类型
-                                                RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                RewardTips = "开机奖励", //奖励描述
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                                SeoTitle = machineUser.RealName,
-                                            }).Entity;
-                                            db.OpenReward.Add(new OpenReward()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = DateTime.Now, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                RewardType = 2, //奖励类型
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                            });
-                                            string IdBrand = puser.Id + "_" + pos.BrandId;
-                                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                            if (userData == null)
-                                            {
-                                                userData = db.UserMachineData.Add(new UserMachineData()
-                                                {
-                                                    IdBrand = IdBrand,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            userData.OpenProfit += Prize;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                            //账户入库
-                                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                            if (account == null)
-                                            {
-                                                account = db.UserAccount.Add(new UserAccount()
-                                                {
-                                                    Id = puser.Id,
-                                                    UserId = puser.Id,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            //收支明细入库
-                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                            account.BalanceAmount += Prize;
-                                            account.TotalAmount += Prize;
-                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                UserId = puser.Id, //创客
-                                                ChangeType = 50, //变动类型
-                                                ProductType = pos.BrandId, //产品类型
-                                                ChangeAmount = Prize, //变更金额
-                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                            }).Entity;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                            string dateString = yesterday.ToString("yyyyMMdd");
-                                            string monthString = yesterday.ToString("yyyyMM");
-                                            // 开机奖励列表
-                                            List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                            if (!dates.Contains(dateString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                            List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                            if (!months.Contains(monthString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                            // 开机奖励详情
-                                            RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                            //收支明细
-                                            RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                            RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                            Prize -= 10;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        // }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-
-        // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
-        { 
-            Thread th = new Thread(CheckFluxForTrade);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void doFluxRecord(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
-            foreach (SpModels.TradeFluxRecord trade in trades)
-            {
-                try
-                {
-                    string OrderNo = trade.TradeSerialNo; //单号
-                    DateTime TradeDate = trade.CreateDate.Value;
-                    string TradeMonth = TradeDate.ToString("yyyyMM");
-                    decimal FeeAmount = trade.FeeAmount; //流量费
-                    if (trade.ProductType == "1" || trade.ProductType == "4")
-                    {
-                        FeeAmount = FeeAmount / 100;
-                    }
-                    string TradeSnNo = trade.TradeSnNo; //机具SN
-                    decimal FluxProfit = 0;
-                    if (trade.ProductType == "1" && FeeAmount == 60)
-                    {
-                        FluxProfit = 24;
-                    }
-                    else if (trade.ProductType != "1" && FeeAmount == 48)
-                    {
-                        FluxProfit = 12;
-                    }
-                    if (FluxProfit > 0)
-                    {
-                        MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                        bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
-                        if (!checkExist)
-                        {
-                            Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            int GetUserId = user.Id;
-                            int TopUserId = 0;
-                            string ParentNav = user.ParentNav;
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                if (ParentNavList.Length > 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[1]);
-                                }
-                                else if (ParentNavList.Length == 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[0]);
-                                }
-                            }
-                            FluxProfitSummary fluxProfit = db.FluxProfitSummary.FirstOrDefault(m => m.UserId == GetUserId && m.BrandId == pos.BrandId && m.TradeMonth == TradeMonth);
-                            if (fluxProfit == null)
-                            {
-                                fluxProfit = db.FluxProfitSummary.Add(new FluxProfitSummary()
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UpdateDate = DateTime.Now,
-                                    UserId = GetUserId, //创客
-                                    BrandId = pos.BrandId,
-                                    TopUserId = TopUserId, //顶级创客
-                                    TradeMonth = TradeMonth, //交易月
-                                    MerUserType = user.MerchantType, //商户创客类型
-                                    Remark = "流量卡分佣", //备注
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            fluxProfit.FluxProfitAmt += FluxProfit; //流量分润总金额
-                            db.FluxProfitDetail.Add(new FluxProfitDetail()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                RecordNo = OrderNo, //单号
-                                TradeDate = TradeDate.ToString("yyyyMMdd"), //交易日期
-                                TradeTime = TradeDate.ToString("HHmmss"), //交易时间
-                                TradeMonth = TradeMonth, //交易月
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                MerchantUserId = pos.UserId, //商户直属人
-                                MerNo = merchant.KqMerNo, //渠道商户编号
-                                SnNo = pos.PosSn, //渠道SN号
-                                FluxOrderNo = OrderNo, //流量扣费单号
-                                TradeOrderNo = OrderNo, //交易流水号
-                                TradeAmt = trade.TradeAmount, //商户交易额
-                                FluxFeeAmt = FeeAmount, //流量费
-                                FluxProfitAmt = FluxProfit, //流量分润总金额
-                                PosType = pos.PosSnType.ToString(), //POS类型
-                                Remark = "流量卡分佣", //备注
-                                BrandId = pos.BrandId, //品牌
-                                TopUserId = TopUserId, //顶级创客
-                                MerUserType = user.MerchantType, //商户创客类型
-                            });
-                            string IdBrand = user.Id + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.FluxProfit += FluxProfit;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserMachineData:" + IdBrand);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += FluxProfit;
-                            account.TotalAmount += FluxProfit;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 60, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = FluxProfit, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserAccount:" + GetUserId);
-                        }
-                        SpModels.TradeFluxRecord edit = spdb.TradeFluxRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                            spdb.SaveChanges();
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + trade.Id + "$\n" + ex.ToString(), "流量卡分佣异常");
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
-        }
-        public void CheckFluxForTrade(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
-            foreach (var sub in list.ToList())
-            {
-                try
-                {
-                    SpModels.TradeRecord trade = spdb.TradeRecord.FirstOrDefault(m => m.Id == sub.Id);
-                    if (trade != null)
-                    {
-                        string content = trade.SeoDescription;
-                        if (!string.IsNullOrEmpty(content))
-                        {
-                            content = System.Web.HttpUtility.UrlDecode(content);
-                            JsonData jsonObj = JsonMapper.ToObject(content);
-                            decimal terminalDataFlowFee = decimal.Parse(function.CheckNum(jsonObj["terminalDataFlowFee"].ToString()));
-                            if (terminalDataFlowFee > 0)
-                            {
-                                spdb.TradeFluxRecord.Add(new SpModels.TradeFluxRecord()
-                                {
-                                    SeoDescription = trade.TradeSerialNo,
-                                    FeeAmount = terminalDataFlowFee,
-                                    TradeSerialNo = function.MD5_16(trade.TradeSerialNo),
-                                    CreateDate = trade.CreateDate,
-                                    TradeSnNo = trade.TradeSnNo,
-                                    ProductType = trade.ProductType,
-                                    Status = 1,
-                                });
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + sub.Id + "$\n" + ex.ToString(), "扫描金控交易记录中的流量费异常");
-                }
-            }
-            spdb.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
-
-            doFluxRecord(date);
-        }
-
-
-
-
-
-
-        // 每天统计头一天的交易额
-        public void StartEverDay(string date)
-        { 
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
-            // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
-            // }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void StatTradeAmountEverDay(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                
-                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-        public void StatTradeAmountEverDaySum()
-        {
-            // WebCMSEntities db = new WebCMSEntities();
-            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
-            // string html = "<table>";
-            // foreach (DataRow dr in dt.Rows)
-            // {
-            //     html += "<tr>";
-            //     string TradeDate = dr["TradeDate"].ToString();
-            //     string TradeMonth = dr["TradeMonth"].ToString();
-            //     int UserId = int.Parse(dr["UserId"].ToString());
-            //     int BrandId = int.Parse(dr["BrandId"].ToString());
-            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
-            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
-            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
-            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
-            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
-            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
-
-            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
-            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
-            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
-            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
-            //     decimal TotalPosAmount = 0;
-            //     decimal TotalCloudPayAmount = 0;
-            //     decimal TeamTotalPosAmount = 0;
-            //     decimal TeamTotalCloudPayAmount = 0;
-            //     if (QrPayFlag == 1)
-            //     {
-            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //     }
-            //     else
-            //     {
-            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //     }
-            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            //     html += "<td>应得</td>";
-            //     html += "<td>" + user.MakerCode + "</td>";
-            //     html += "<td>" + user.RealName + "</td>";
-            //     html += "<td>" + user.Mobile + "</td>";
-            //     html += "<td>" + BrandId + "</td>";
-            //     html += "<td>" + QrPayFlag + "</td>";
-            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + DirectTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectTradeAmt + "</td>";
-            //     html += "</tr>";
-
-            //     html += "<tr>";
-            //     html += "<td>当前</td>";
-            //     html += "<td></td>";
-            //     html += "<td></td>";
-            //     html += "<td>当天品牌:" + CurAmount + "</td>";
-            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
-            //     html += "<td>当月:" + CurMonthAmount + "</td>";
-            //     html += "<td>当天:" + CurDayAmount + "</td>";
-            //     html += "<td>" + TotalPosAmount + "</td>";
-            //     html += "<td>" + TotalCloudPayAmount + "</td>";
-            //     html += "<td>" + TeamTotalPosAmount + "</td>";
-            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
-            //     html += "</tr>";
-            // }
-            // html += "</table>";
-            // db.Dispose();
-            // // OtherMySqlConn.connstr = ;
-            // function.WritePage("/html/", "1.html", html);
-        }
-
-
-        //统计商户交易额
-        private void StatMerchantTrade(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
-            // WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
-                // foreach (DataRow selfDr in selfdt.Rows)
-                // {
-                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                //     string TradeDate = selfDr["TradeDate"].ToString();
-                //     TradeDate = TradeDate.Replace("-", "");
-                //     string TradeMonth = TradeDate.Substring(0, 6);
-                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
-                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
-                //     if (merStat == null)
-                //     {
-                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
-                //         {
-                //             MerchantId = MerchantId,
-                //             TradeMonth = TradeMonth,
-                //             TradeDate = TradeDate,
-                //             BrandId = BrandId,
-                //         }).Entity;
-                //         db.SaveChanges();
-                //     }
-                //     merStat.TradeAmount += TradeAmount;
-                //     db.SaveChanges();                    
-                // }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
-            }
-            // db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
-        }
-
-
-        // 5. 创客升级
-        public void StatUserLevel()
-        { 
-            Thread th = new Thread(StatUserLevelDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StatUserLevelDo()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-                DateTime end = start.AddDays(1);
-                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
-                List<UserLevelSet> sets = db.UserLevelSet.ToList();
-                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-                function.WriteLog(users.Count.ToString(), "创客升级日志");
-                foreach (var subuser in users)
-                {
-                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                    if (user != null)
-                    {
-                        int BeforeLevel = user.UserLevel;
-                        int AfterLevel = 0;
-                        decimal TradeAmount = 0;
-                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                        if (check)
-                        {
-                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                        }
-                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                        if (set != null)
-                        {
-                            AfterLevel = set.Id;
-                        }
-                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
-                        {
-                            user.UserLevel = AfterLevel;
-                            db.UserRank.Add(new UserRank()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = user.Id, //创客
-                                WhiteRank = BeforeLevel,
-                                Rank = AfterLevel, //当前等级
-                                StatYear = DateTime.Now.Year, //统计年份
-                                StatMonth = DateTime.Now.Month, //统计月份
-                                TradeAmt = TradeAmount, //团队交易总额
-                                UpgradeFlag = 1, //升级标识
-                                OperateDate = DateTime.Now, //操作时间
-                            });
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
-                        }
-                    }
-                }
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-            }
-            catch (Exception ex)
-            { 
-                function.WriteLog(ex.ToString(), "创客升级异常");
-            }
-            db.Dispose();
-
-            
-            ProfitHelper.Instance.StatProfit("202204");
-        }
-
-
-        // 统计创客激活数
-        public void StartPosActNum()
-        { 
-            Thread th = new Thread(StartPosActNumFor);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartPosActNumFor()
-        { 
-            DateTime end = DateTime.Parse("2022-05-24 00:00:00");
-            DateTime check = DateTime.Parse("2022-03-11");
-            while (check <= end)
-            {
-                StartPosActNumDo(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartPosActNumDo(object sender)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行创客激活数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                List<string> uids = new List<string>();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT BuyUserId from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "')");
-                function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "执行创客激活数日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId=" + UserId + " group by BrandId");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int QrPayFlag = 0;
-                        int ActCount = int.Parse(selfDr[1].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.DirectDebitCapNum += ActCount;
-                        db.SaveChanges();
-                    }
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int QrPayFlag = 0;
-                                    int ActCount = int.Parse(teamDr[1].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    teamStat.NonDirectDebitCapNum += ActCount;
-                                    db.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                }
-                OtherMySqlConn.op("update PosMachinesTwo set QueryCount=1 where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "'");
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行创客激活数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-            Thread.Sleep(60000);
-        }
-
-        // 统计新增创客数
-        public void StartNewUserNum()
-        { 
-            Thread th = new Thread(StartNewUserNumDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartNewUserNumDo()
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行新增创客数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                DataTable dt = OtherMySqlConn.dtable("select ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d'),count(Id) from Users where QueryCount=0 and ParentUserId>0 and AuthFlag=1 GROUP BY ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d')");
-                if (dt.Rows.Count > 0)
-                {
-                    OtherMySqlConn.op("update Users set QueryCount=1 where QueryCount=0 and ParentUserId>0 and AuthFlag=1");
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        int UserId = int.Parse(dr["ParentUserId"].ToString());
-                        string StatDate = dr[1].ToString();
-                        string StatMonth = StatDate.Substring(0, 6);
-                        int NewCount = int.Parse(dr[2].ToString());
-                        PullnewSummary selfStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == UserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.PullnewSummary.Add(new PullnewSummary()
-                            {
-                                UserId = UserId,
-                                StatMonth = StatMonth,
-                                StatDate = StatDate,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.RecUserAuthNum += NewCount;
-                        db.SaveChanges();
-                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                        string ParentNav = user.ParentNav;
-                        ParentNav += "," + UserId + ",";
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                            foreach (string NavUserIdString in ParentNavList)
-                            {
-                                int NavUserId = int.Parse(NavUserIdString);
-                                PullnewSummary teamStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == NavUserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "team");
-                                if (teamStat == null)
-                                {
-                                    teamStat = db.PullnewSummary.Add(new PullnewSummary()
-                                    {
-                                        UserId = NavUserId,
-                                        StatMonth = StatMonth,
-                                        StatDate = StatDate,
-                                        SeoTitle = "team",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                teamStat.RecUserAuthNum += NewCount;
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行新增创客数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
-            Thread.Sleep(60000);
-        }
-    }
-}

+ 0 - 1891
.history/AppStart/Helper/StatService_20220524191613.cs

@@ -1,1891 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Library;
-using LitJson;
-using System.Linq;
-using System.Data;
-using System.Threading;
-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"));
-                    dosomething1(doDate);
-                    dosomething11(doDate);
-                    // dosomething2(doDate);
-                    StartEverDay(doDate);
-                    dosomething4(doDate);
-                    ListenFluxRecord(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 ActiveReward(JobMqMsg jobInfo)
-        {
-            string content = "";
-            try
-            {
-                dosomething3();
-                string Msg = "success";
-                jobInfo.Status = Msg == "success" ? 1 : 0;
-                jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
-                RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
-                function.WritePage("/static/", "act.txt", DateTime.Now.ToString());
-            }
-            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*");
-        }
-
-
-        // 1. 前一天的绑定记录和创客信息匹配,设置商户型创客
-        public void dosomething1(string date)
-        {
-            // TODO: 每天扫描非商户型创客的持有机具数量
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.CreateTime >= yesterday && m.CreateTime < today).ToList();
-            foreach (SpModels.BindRecord bind in binds)
-            {
-                string Mobile = bind.MerNewSnNo;
-                string MerNo = bind.MerNo;
-                string BeforeNum = "";
-                string AfterNum = "";
-                if (Mobile.Contains("****") && Mobile.Length == 11)
-                {
-                    BeforeNum = Mobile.Substring(0, 3);
-                    AfterNum = Mobile.Substring(7);
-                }
-                string Name = bind.MerName;
-                if (bind.ProductType == "2")
-                {
-                    if (Name.Contains("-"))
-                    {
-                        Name = Name.Split('-')[1];
-                    }
-                    else if (Name.Contains("_"))
-                    {
-                        Name = Name.Split('_')[1];
-                    }
-                }
-                else if (bind.ProductType == "4")
-                {
-                    Name = bind.SeoTitle;
-                }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                if (user != null)
-                {
-                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
-                    if (!checkPos)
-                    {
-                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                        if (pos != null)
-                        {
-                            pos.UserId = user.Id;
-                            user.MerchantType = 1;
-                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                            merchant.UserId = user.Id;
-                            merchant.MerUserType = 1;
-                            pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                            RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                            RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-        }
-
-        // 1. 前一天的商户型创客,判断名下是否3台激活机器,是则变为非商户型创客
-        public void dosomething11(string date)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            var users = db.Users.Select(m => new { m.Id, m.MerchantType }).Where(m => m.MerchantType == 1).ToList();
-            foreach (var user in users)
-            {
-                int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
-                if (machineCount + couponCount >= 3)
-                {
-                    Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
-                    if (edit != null)
-                    {
-                        edit.MerchantType = 0;
-                        db.SaveChanges();
-                        RedisDbconn.Instance.Set("Users:" + user.Id, edit);
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        
-        public void testStatTrade(string date)
-        {
-            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,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,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 BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
-            }
-        }
-
-        // 3. 前一天的激活记录,根据创客类型,如果是商户型创客,则激活奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething3(int posid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddDays(-1);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (posid > 0)
-            { 
-                posList = posList.Where(m => m.Id == posid);
-            }
-            else
-            {
-                posList = posList.Where(m => m.ActivationTime >= yesterday && m.ActivationTime < today);
-            }
-            foreach (PosMachinesTwo pos in posList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                if (merchant != null)
-                {
-                    // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                    // if (otherInfo != null)
-                    // {
-                    //     otherInfo.PrizeFlag1 = 1;
-                    //     db.SaveChanges();
-                    string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                    if (user != null)
-                    {
-                        int GetUserId = user.Id;
-                        ParentNav = user.ParentNav;
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                        if (pos.BrandId == 1 || pos.BrandId == 3 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                        {
-                            ActPrize = ActPrize / 100;
-                        }
-                        if (ActPrize > 0)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            else if (ActPrize == 249)
-                            {
-                                ActPrize = 260;
-                            }
-                            if (GetUserId > 0)
-                            {
-                                doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, ActPrize);
-                            }
-                        }
-                    }
-                    // }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
-        {
-            bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
-            if (!check)
-            {
-                Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                db.ActiveReward.Add(new ActiveReward()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    MerchantId = pos.BindMerchantId, //商户
-                    StandardDate = pos.ActivationTime, //达标日期
-                    RewardAmount = ActPrize, //奖励金额
-                    BrandId = pos.BrandId, //品牌
-                    UserNav = ParentNav, //创客父级
-                    DirectBuddyNo = merchant.UserId, //商户直属创客
-                    KqMerNo = merchant.KqMerNo, //渠道商户编号
-                    KqSnNo = pos.PosSn, //渠道SN号
-                    SnType = pos.PosSnType, //机具类型
-                    SnApplyUserId = pos.BuyUserId, //机具申请创客
-                    ActType = 0, //激活类型
-                    SnStoreId = pos.StoreId, //SN仓库
-                    RewardTips = "激活奖励", //奖励描述
-                    Remark = "激活奖励", //备注
-                    ActDate = pos.ActivationTime, //激活时间
-                    TopUserId = TopUserId, //顶级创客
-                    SeoTitle = machineUser.RealName,
-                });
-                db.SaveChanges();
-                string IdBrand = GetUserId + "_" + pos.BrandId;
-                UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                if (userData == null)
-                {
-                    userData = db.UserMachineData.Add(new UserMachineData()
-                    {
-                        IdBrand = IdBrand,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                userData.ActProfit += ActPrize;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                if (account == null)
-                {
-                    account = db.UserAccount.Add(new UserAccount()
-                    {
-                        Id = GetUserId,
-                        UserId = GetUserId,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                account.BalanceAmount += ActPrize;
-                account.TotalAmount += ActPrize;
-                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    ChangeType = ChangeType, //变动类型
-                    ProductType = pos.BrandId, //产品类型
-                    ChangeAmount = ActPrize, //变更金额
-                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                }).Entity;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                // 激活奖励列表
-                List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                if (!dates.Contains(dateString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                if (!months.Contains(monthString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                // 激活奖励详情
-                List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                if (!actPrizeList.Contains(pos.BindMerchantId))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                //收支明细
-                RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                RedisDbconn.Instance.Clear("UserAccount:Income:" + GetUserId + ":" + monthString);
-            }
-        }
-
-
-        //根据商户信息发放激活奖励
-        public void dosomething32(int merid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddHours(-3);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (merid > 0)
-            { 
-                merList = merList.Where(m => m.Id == merid);
-            }
-            else
-            {
-                merList = merList.Where(m => m.MerStandardDate >= yesterday && m.MerStandardDate < today);
-            }
-            foreach (PosMerchantInfo merchant in merList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                // if (otherInfo != null)
-                // {
-                //     otherInfo.PrizeFlag1 = 1;
-                //     db.SaveChanges();
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                string ParentNav = "";
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                if (user != null)
-                {
-                    int GetUserId = user.Id;
-                    ParentNav = user.ParentNav;
-                    int TopUserId = 0;
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                    }
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                    {
-                        ActPrize = ActPrize / 100;
-                    }
-                    if (ActPrize > 0)
-                    {
-                        bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn);
-                        if (!check)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            db.ActiveReward.Add(new ActiveReward()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                StandardDate = pos.ActivationTime, //达标日期
-                                RewardAmount = ActPrize, //奖励金额
-                                BrandId = pos.BrandId, //品牌
-                                UserNav = ParentNav, //创客父级
-                                DirectBuddyNo = merchant.UserId, //商户直属创客
-                                KqMerNo = merchant.KqMerNo, //渠道商户编号
-                                KqSnNo = pos.PosSn, //渠道SN号
-                                SnType = pos.PosSnType, //机具类型
-                                SnApplyUserId = pos.BuyUserId, //机具申请创客
-                                ActType = 0, //激活类型
-                                SnStoreId = pos.StoreId, //SN仓库
-                                RewardTips = "激活奖励", //奖励描述
-                                Remark = "激活奖励", //备注
-                                ActDate = pos.ActivationTime, //激活时间
-                                TopUserId = TopUserId, //顶级创客
-                                SeoTitle = machineUser.RealName,
-                            });
-                            db.SaveChanges();
-                            string IdBrand = GetUserId + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.ActProfit += ActPrize;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += ActPrize;
-                            account.TotalAmount += ActPrize;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 0, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = ActPrize, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                            string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                            string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                            // 激活奖励列表
-                            List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                            if (!dates.Contains(dateString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                            if (!months.Contains(monthString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                            // 激活奖励详情
-                            List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                            if (!actPrizeList.Contains(pos.BindMerchantId))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            //收支明细
-                            RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                            RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                        }
-                    }
-                }
-                // }
-            }
-            db.Dispose();
-        }
-
-        
-
-        //3. 前一天的激活记录,根据创客类型,如果是商户型创客,则开机奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething4(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && m.ActivationTime >= yesterday && m.ActivationTime < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000).ToList();
-            foreach (PosMachinesTwo pos in posList)
-            {
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20))
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                        if (merchant != null)
-                        {
-                            // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                            // if (otherInfo != null)
-                            // {
-                            //     otherInfo.PrizeFlag2 = 1;
-                            //     db.SaveChanges();
-                                // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                if (user != null)
-                                {
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        decimal Prize = 20;
-                                        string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                        {
-                                            int UserId = int.Parse(ParentNavs[i]);
-                                            Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                            if (puser != null && Prize > 0)
-                                            {
-                                                int machineCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                                int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                                // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                                // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount + couponCount >= 3)
-                                                {
-                                                    int pTopUserId = 0;
-                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                    {
-                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                    }
-                                                    Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                                    OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = yesterday, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                        MerchantId = pos.BindMerchantId, //商户
-                                                        DirectUserId = merchant.UserId, //商户直属人
-                                                        SnNo = pos.PosSn, //SN号
-                                                        MerNo = merchant.KqMerNo, //渠道商户号
-                                                        SnType = pos.PosSnType, //机具类型
-                                                        StandardDate = pos.ActivationTime, //商户的激活日期
-                                                        SnStoreId = pos.StoreId, //SN仓库
-                                                        MerBuddyType = puser.MerchantType, //商户创客类型
-                                                        RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                        RewardTips = "开机奖励", //奖励描述
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                        SeoTitle = machineUser.RealName,
-                                                    }).Entity;
-                                                    db.OpenReward.Add(new OpenReward()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = DateTime.Now, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        RewardType = 2, //奖励类型
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                    });
-                                                    string IdBrand = puser.Id + "_" + pos.BrandId;
-                                                    UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                                    if (userData == null)
-                                                    {
-                                                        userData = db.UserMachineData.Add(new UserMachineData()
-                                                        {
-                                                            IdBrand = IdBrand,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    userData.OpenProfit += Prize;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                                    //账户入库
-                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                                    if (account == null)
-                                                    {
-                                                        account = db.UserAccount.Add(new UserAccount()
-                                                        {
-                                                            Id = puser.Id,
-                                                            UserId = puser.Id,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    //收支明细入库
-                                                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                    account.BalanceAmount += Prize;
-                                                    account.TotalAmount += Prize;
-                                                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        UserId = puser.Id, //创客
-                                                        ChangeType = 50, //变动类型
-                                                        ProductType = pos.BrandId, //产品类型
-                                                        ChangeAmount = Prize, //变更金额
-                                                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                    }).Entity;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                                    string dateString = yesterday.ToString("yyyyMMdd");
-                                                    string monthString = yesterday.ToString("yyyyMM");
-                                                    // 开机奖励列表
-                                                    List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!dates.Contains(dateString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                                    List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!months.Contains(monthString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                                    // 开机奖励详情
-                                                    RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                                    //收支明细
-                                                    RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                                    RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                                    Prize -= 10;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            // }
-                        }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void dosomething42(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && m.MerStandardDate >= yesterday && m.MerStandardDate < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0").ToList();
-            foreach (PosMerchantInfo merchant in merList)
-            {
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20) && pos.CreditTrade >= 1000)
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                        // if (otherInfo != null)
-                        // {
-                        //     otherInfo.PrizeFlag2 = 1;
-                        //     db.SaveChanges();
-                        // 从机具所属人上级开始分开机奖励
-                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                        if (user != null)
-                        {
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                decimal Prize = 20;
-                                string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                {
-                                    int UserId = int.Parse(ParentNavs[i]);
-                                    Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                    if (puser != null && Prize > 0)
-                                    {
-                                        int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                        int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                        // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                        // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount + couponCount >= 3)
-                                        {
-                                            int pTopUserId = 0;
-                                            if (!string.IsNullOrEmpty(puser.ParentNav))
-                                            {
-                                                pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                            }
-                                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                            OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = yesterday, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                MerchantId = pos.BindMerchantId, //商户
-                                                DirectUserId = merchant.UserId, //商户直属人
-                                                SnNo = pos.PosSn, //SN号
-                                                MerNo = merchant.KqMerNo, //渠道商户号
-                                                SnType = pos.PosSnType, //机具类型
-                                                StandardDate = pos.ActivationTime, //商户的激活日期
-                                                SnStoreId = pos.StoreId, //SN仓库
-                                                MerBuddyType = puser.MerchantType, //商户创客类型
-                                                RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                RewardTips = "开机奖励", //奖励描述
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                                SeoTitle = machineUser.RealName,
-                                            }).Entity;
-                                            db.OpenReward.Add(new OpenReward()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = DateTime.Now, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                RewardType = 2, //奖励类型
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                            });
-                                            string IdBrand = puser.Id + "_" + pos.BrandId;
-                                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                            if (userData == null)
-                                            {
-                                                userData = db.UserMachineData.Add(new UserMachineData()
-                                                {
-                                                    IdBrand = IdBrand,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            userData.OpenProfit += Prize;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                            //账户入库
-                                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                            if (account == null)
-                                            {
-                                                account = db.UserAccount.Add(new UserAccount()
-                                                {
-                                                    Id = puser.Id,
-                                                    UserId = puser.Id,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            //收支明细入库
-                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                            account.BalanceAmount += Prize;
-                                            account.TotalAmount += Prize;
-                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                UserId = puser.Id, //创客
-                                                ChangeType = 50, //变动类型
-                                                ProductType = pos.BrandId, //产品类型
-                                                ChangeAmount = Prize, //变更金额
-                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                            }).Entity;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                            string dateString = yesterday.ToString("yyyyMMdd");
-                                            string monthString = yesterday.ToString("yyyyMM");
-                                            // 开机奖励列表
-                                            List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                            if (!dates.Contains(dateString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                            List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                            if (!months.Contains(monthString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                            // 开机奖励详情
-                                            RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                            //收支明细
-                                            RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                            RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                            Prize -= 10;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        // }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-
-        // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
-        { 
-            Thread th = new Thread(CheckFluxForTrade);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void doFluxRecord(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
-            foreach (SpModels.TradeFluxRecord trade in trades)
-            {
-                try
-                {
-                    string OrderNo = trade.TradeSerialNo; //单号
-                    DateTime TradeDate = trade.CreateDate.Value;
-                    string TradeMonth = TradeDate.ToString("yyyyMM");
-                    decimal FeeAmount = trade.FeeAmount; //流量费
-                    if (trade.ProductType == "1" || trade.ProductType == "4")
-                    {
-                        FeeAmount = FeeAmount / 100;
-                    }
-                    string TradeSnNo = trade.TradeSnNo; //机具SN
-                    decimal FluxProfit = 0;
-                    if (trade.ProductType == "1" && FeeAmount == 60)
-                    {
-                        FluxProfit = 24;
-                    }
-                    else if (trade.ProductType != "1" && FeeAmount == 48)
-                    {
-                        FluxProfit = 12;
-                    }
-                    if (FluxProfit > 0)
-                    {
-                        MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                        bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
-                        if (!checkExist)
-                        {
-                            Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            int GetUserId = user.Id;
-                            int TopUserId = 0;
-                            string ParentNav = user.ParentNav;
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                if (ParentNavList.Length > 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[1]);
-                                }
-                                else if (ParentNavList.Length == 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[0]);
-                                }
-                            }
-                            FluxProfitSummary fluxProfit = db.FluxProfitSummary.FirstOrDefault(m => m.UserId == GetUserId && m.BrandId == pos.BrandId && m.TradeMonth == TradeMonth);
-                            if (fluxProfit == null)
-                            {
-                                fluxProfit = db.FluxProfitSummary.Add(new FluxProfitSummary()
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UpdateDate = DateTime.Now,
-                                    UserId = GetUserId, //创客
-                                    BrandId = pos.BrandId,
-                                    TopUserId = TopUserId, //顶级创客
-                                    TradeMonth = TradeMonth, //交易月
-                                    MerUserType = user.MerchantType, //商户创客类型
-                                    Remark = "流量卡分佣", //备注
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            fluxProfit.FluxProfitAmt += FluxProfit; //流量分润总金额
-                            db.FluxProfitDetail.Add(new FluxProfitDetail()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                RecordNo = OrderNo, //单号
-                                TradeDate = TradeDate.ToString("yyyyMMdd"), //交易日期
-                                TradeTime = TradeDate.ToString("HHmmss"), //交易时间
-                                TradeMonth = TradeMonth, //交易月
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                MerchantUserId = pos.UserId, //商户直属人
-                                MerNo = merchant.KqMerNo, //渠道商户编号
-                                SnNo = pos.PosSn, //渠道SN号
-                                FluxOrderNo = OrderNo, //流量扣费单号
-                                TradeOrderNo = OrderNo, //交易流水号
-                                TradeAmt = trade.TradeAmount, //商户交易额
-                                FluxFeeAmt = FeeAmount, //流量费
-                                FluxProfitAmt = FluxProfit, //流量分润总金额
-                                PosType = pos.PosSnType.ToString(), //POS类型
-                                Remark = "流量卡分佣", //备注
-                                BrandId = pos.BrandId, //品牌
-                                TopUserId = TopUserId, //顶级创客
-                                MerUserType = user.MerchantType, //商户创客类型
-                            });
-                            string IdBrand = user.Id + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.FluxProfit += FluxProfit;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserMachineData:" + IdBrand);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += FluxProfit;
-                            account.TotalAmount += FluxProfit;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 60, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = FluxProfit, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserAccount:" + GetUserId);
-                        }
-                        SpModels.TradeFluxRecord edit = spdb.TradeFluxRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                            spdb.SaveChanges();
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + trade.Id + "$\n" + ex.ToString(), "流量卡分佣异常");
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
-        }
-        public void CheckFluxForTrade(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
-            foreach (var sub in list.ToList())
-            {
-                try
-                {
-                    SpModels.TradeRecord trade = spdb.TradeRecord.FirstOrDefault(m => m.Id == sub.Id);
-                    if (trade != null)
-                    {
-                        string content = trade.SeoDescription;
-                        if (!string.IsNullOrEmpty(content))
-                        {
-                            content = System.Web.HttpUtility.UrlDecode(content);
-                            JsonData jsonObj = JsonMapper.ToObject(content);
-                            decimal terminalDataFlowFee = decimal.Parse(function.CheckNum(jsonObj["terminalDataFlowFee"].ToString()));
-                            if (terminalDataFlowFee > 0)
-                            {
-                                spdb.TradeFluxRecord.Add(new SpModels.TradeFluxRecord()
-                                {
-                                    SeoDescription = trade.TradeSerialNo,
-                                    FeeAmount = terminalDataFlowFee,
-                                    TradeSerialNo = function.MD5_16(trade.TradeSerialNo),
-                                    CreateDate = trade.CreateDate,
-                                    TradeSnNo = trade.TradeSnNo,
-                                    ProductType = trade.ProductType,
-                                    Status = 1,
-                                });
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + sub.Id + "$\n" + ex.ToString(), "扫描金控交易记录中的流量费异常");
-                }
-            }
-            spdb.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
-
-            doFluxRecord(date);
-        }
-
-
-
-
-
-
-        // 每天统计头一天的交易额
-        public void StartEverDay(string date)
-        { 
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
-            // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
-            // }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void StatTradeAmountEverDay(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                
-                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-        public void StatTradeAmountEverDaySum()
-        {
-            // WebCMSEntities db = new WebCMSEntities();
-            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
-            // string html = "<table>";
-            // foreach (DataRow dr in dt.Rows)
-            // {
-            //     html += "<tr>";
-            //     string TradeDate = dr["TradeDate"].ToString();
-            //     string TradeMonth = dr["TradeMonth"].ToString();
-            //     int UserId = int.Parse(dr["UserId"].ToString());
-            //     int BrandId = int.Parse(dr["BrandId"].ToString());
-            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
-            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
-            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
-            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
-            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
-            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
-
-            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
-            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
-            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
-            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
-            //     decimal TotalPosAmount = 0;
-            //     decimal TotalCloudPayAmount = 0;
-            //     decimal TeamTotalPosAmount = 0;
-            //     decimal TeamTotalCloudPayAmount = 0;
-            //     if (QrPayFlag == 1)
-            //     {
-            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //     }
-            //     else
-            //     {
-            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //     }
-            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            //     html += "<td>应得</td>";
-            //     html += "<td>" + user.MakerCode + "</td>";
-            //     html += "<td>" + user.RealName + "</td>";
-            //     html += "<td>" + user.Mobile + "</td>";
-            //     html += "<td>" + BrandId + "</td>";
-            //     html += "<td>" + QrPayFlag + "</td>";
-            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + DirectTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectTradeAmt + "</td>";
-            //     html += "</tr>";
-
-            //     html += "<tr>";
-            //     html += "<td>当前</td>";
-            //     html += "<td></td>";
-            //     html += "<td></td>";
-            //     html += "<td>当天品牌:" + CurAmount + "</td>";
-            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
-            //     html += "<td>当月:" + CurMonthAmount + "</td>";
-            //     html += "<td>当天:" + CurDayAmount + "</td>";
-            //     html += "<td>" + TotalPosAmount + "</td>";
-            //     html += "<td>" + TotalCloudPayAmount + "</td>";
-            //     html += "<td>" + TeamTotalPosAmount + "</td>";
-            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
-            //     html += "</tr>";
-            // }
-            // html += "</table>";
-            // db.Dispose();
-            // // OtherMySqlConn.connstr = ;
-            // function.WritePage("/html/", "1.html", html);
-        }
-
-
-        //统计商户交易额
-        private void StatMerchantTrade(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
-            // WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
-                // foreach (DataRow selfDr in selfdt.Rows)
-                // {
-                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                //     string TradeDate = selfDr["TradeDate"].ToString();
-                //     TradeDate = TradeDate.Replace("-", "");
-                //     string TradeMonth = TradeDate.Substring(0, 6);
-                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
-                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
-                //     if (merStat == null)
-                //     {
-                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
-                //         {
-                //             MerchantId = MerchantId,
-                //             TradeMonth = TradeMonth,
-                //             TradeDate = TradeDate,
-                //             BrandId = BrandId,
-                //         }).Entity;
-                //         db.SaveChanges();
-                //     }
-                //     merStat.TradeAmount += TradeAmount;
-                //     db.SaveChanges();                    
-                // }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
-            }
-            // db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
-        }
-
-
-        // 5. 创客升级
-        public void StatUserLevel()
-        { 
-            Thread th = new Thread(StatUserLevelDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StatUserLevelDo()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-                DateTime end = start.AddDays(1);
-                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
-                List<UserLevelSet> sets = db.UserLevelSet.ToList();
-                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-                function.WriteLog(users.Count.ToString(), "创客升级日志");
-                foreach (var subuser in users)
-                {
-                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                    if (user != null)
-                    {
-                        int BeforeLevel = user.UserLevel;
-                        int AfterLevel = 0;
-                        decimal TradeAmount = 0;
-                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                        if (check)
-                        {
-                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                        }
-                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                        if (set != null)
-                        {
-                            AfterLevel = set.Id;
-                        }
-                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
-                        {
-                            user.UserLevel = AfterLevel;
-                            db.UserRank.Add(new UserRank()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = user.Id, //创客
-                                WhiteRank = BeforeLevel,
-                                Rank = AfterLevel, //当前等级
-                                StatYear = DateTime.Now.Year, //统计年份
-                                StatMonth = DateTime.Now.Month, //统计月份
-                                TradeAmt = TradeAmount, //团队交易总额
-                                UpgradeFlag = 1, //升级标识
-                                OperateDate = DateTime.Now, //操作时间
-                            });
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
-                        }
-                    }
-                }
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-            }
-            catch (Exception ex)
-            { 
-                function.WriteLog(ex.ToString(), "创客升级异常");
-            }
-            db.Dispose();
-
-            
-            ProfitHelper.Instance.StatProfit("202204");
-        }
-
-
-        // 统计创客激活数
-        public void StartPosActNum()
-        { 
-            Thread th = new Thread(StartPosActNumFor);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartPosActNumFor()
-        { 
-            DateTime end = DateTime.Parse("2022-05-24 00:00:00");
-            DateTime check = DateTime.Parse("2022-03-11");
-            while (check <= end)
-            {
-                StartPosActNumDo(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartPosActNumDo(object sender)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行创客激活数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                List<string> uids = new List<string>();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT BuyUserId from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "')");
-                function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "执行创客激活数日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId=" + UserId + " group by BrandId");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int QrPayFlag = 0;
-                        int ActCount = int.Parse(selfDr[1].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.DirectDebitCapNum += ActCount;
-                        db.SaveChanges();
-                    }
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int QrPayFlag = 0;
-                                    int ActCount = int.Parse(teamDr[1].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    teamStat.NonDirectDebitCapNum += ActCount;
-                                    db.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                }
-                OtherMySqlConn.op("update PosMachinesTwo set QueryCount=1 where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "'");
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行创客激活数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-            Thread.Sleep(60000);
-        }
-
-        // 统计新增创客数
-        public void StartNewUserNum()
-        { 
-            Thread th = new Thread(StartNewUserNumDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartNewUserNumDo()
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行新增创客数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                DataTable dt = OtherMySqlConn.dtable("select ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d'),count(Id) from Users where QueryCount=0 and ParentUserId>0 and AuthFlag=1 GROUP BY ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d')");
-                if (dt.Rows.Count > 0)
-                {
-                    OtherMySqlConn.op("update Users set QueryCount=1 where QueryCount=0 and ParentUserId>0 and AuthFlag=1");
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        int UserId = int.Parse(dr["ParentUserId"].ToString());
-                        string StatDate = dr[1].ToString();
-                        string StatMonth = StatDate.Substring(0, 6);
-                        int NewCount = int.Parse(dr[2].ToString());
-                        PullnewSummary selfStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == UserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.PullnewSummary.Add(new PullnewSummary()
-                            {
-                                UserId = UserId,
-                                StatMonth = StatMonth,
-                                StatDate = StatDate,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.RecUserAuthNum += NewCount;
-                        db.SaveChanges();
-                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                        string ParentNav = user.ParentNav;
-                        ParentNav += "," + UserId + ",";
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                            foreach (string NavUserIdString in ParentNavList)
-                            {
-                                int NavUserId = int.Parse(NavUserIdString);
-                                PullnewSummary teamStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == NavUserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "team");
-                                if (teamStat == null)
-                                {
-                                    teamStat = db.PullnewSummary.Add(new PullnewSummary()
-                                    {
-                                        UserId = NavUserId,
-                                        StatMonth = StatMonth,
-                                        StatDate = StatDate,
-                                        SeoTitle = "team",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                teamStat.RecUserAuthNum += NewCount;
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行新增创客数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
-            Thread.Sleep(60000);
-        }
-    }
-}

+ 0 - 1891
.history/AppStart/Helper/StatService_20220524191614.cs

@@ -1,1891 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Library;
-using LitJson;
-using System.Linq;
-using System.Data;
-using System.Threading;
-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"));
-                    dosomething1(doDate);
-                    dosomething11(doDate);
-                    // dosomething2(doDate);
-                    StartEverDay(doDate);
-                    dosomething4(doDate);
-                    ListenFluxRecord(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 ActiveReward(JobMqMsg jobInfo)
-        {
-            string content = "";
-            try
-            {
-                dosomething3();
-                string Msg = "success";
-                jobInfo.Status = Msg == "success" ? 1 : 0;
-                jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
-                RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
-                function.WritePage("/static/", "act.txt", DateTime.Now.ToString());
-            }
-            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*");
-        }
-
-
-        // 1. 前一天的绑定记录和创客信息匹配,设置商户型创客
-        public void dosomething1(string date)
-        {
-            // TODO: 每天扫描非商户型创客的持有机具数量
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.CreateTime >= yesterday && m.CreateTime < today).ToList();
-            foreach (SpModels.BindRecord bind in binds)
-            {
-                string Mobile = bind.MerNewSnNo;
-                string MerNo = bind.MerNo;
-                string BeforeNum = "";
-                string AfterNum = "";
-                if (Mobile.Contains("****") && Mobile.Length == 11)
-                {
-                    BeforeNum = Mobile.Substring(0, 3);
-                    AfterNum = Mobile.Substring(7);
-                }
-                string Name = bind.MerName;
-                if (bind.ProductType == "2")
-                {
-                    if (Name.Contains("-"))
-                    {
-                        Name = Name.Split('-')[1];
-                    }
-                    else if (Name.Contains("_"))
-                    {
-                        Name = Name.Split('_')[1];
-                    }
-                }
-                else if (bind.ProductType == "4")
-                {
-                    Name = bind.SeoTitle;
-                }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                if (user != null)
-                {
-                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
-                    if (!checkPos)
-                    {
-                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                        if (pos != null)
-                        {
-                            pos.UserId = user.Id;
-                            user.MerchantType = 1;
-                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                            merchant.UserId = user.Id;
-                            merchant.MerUserType = 1;
-                            pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                            RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                            RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-        }
-
-        // 1. 前一天的商户型创客,判断名下是否3台激活机器,是则变为非商户型创客
-        public void dosomething11(string date)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            var users = db.Users.Select(m => new { m.Id, m.MerchantType }).Where(m => m.MerchantType == 1).ToList();
-            foreach (var user in users)
-            {
-                int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
-                if (machineCount + couponCount >= 3)
-                {
-                    Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
-                    if (edit != null)
-                    {
-                        edit.MerchantType = 0;
-                        db.SaveChanges();
-                        RedisDbconn.Instance.Set("Users:" + user.Id, edit);
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        
-        public void testStatTrade(string date)
-        {
-            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,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,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 BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
-            }
-        }
-
-        // 3. 前一天的激活记录,根据创客类型,如果是商户型创客,则激活奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething3(int posid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddDays(-1);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (posid > 0)
-            { 
-                posList = posList.Where(m => m.Id == posid);
-            }
-            else
-            {
-                posList = posList.Where(m => m.ActivationTime >= yesterday && m.ActivationTime < today);
-            }
-            foreach (PosMachinesTwo pos in posList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                if (merchant != null)
-                {
-                    // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                    // if (otherInfo != null)
-                    // {
-                    //     otherInfo.PrizeFlag1 = 1;
-                    //     db.SaveChanges();
-                    string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                    if (user != null)
-                    {
-                        int GetUserId = user.Id;
-                        ParentNav = user.ParentNav;
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                        if (pos.BrandId == 1 || pos.BrandId == 3 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                        {
-                            ActPrize = ActPrize / 100;
-                        }
-                        if (ActPrize > 0)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            else if (ActPrize == 249)
-                            {
-                                ActPrize = 260;
-                            }
-                            if (GetUserId > 0)
-                            {
-                                doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, ActPrize);
-                            }
-                        }
-                    }
-                    // }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
-        {
-            bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
-            if (!check)
-            {
-                Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                db.ActiveReward.Add(new ActiveReward()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    MerchantId = pos.BindMerchantId, //商户
-                    StandardDate = pos.ActivationTime, //达标日期
-                    RewardAmount = ActPrize, //奖励金额
-                    BrandId = pos.BrandId, //品牌
-                    UserNav = ParentNav, //创客父级
-                    DirectBuddyNo = merchant.UserId, //商户直属创客
-                    KqMerNo = merchant.KqMerNo, //渠道商户编号
-                    KqSnNo = pos.PosSn, //渠道SN号
-                    SnType = pos.PosSnType, //机具类型
-                    SnApplyUserId = pos.BuyUserId, //机具申请创客
-                    ActType = 0, //激活类型
-                    SnStoreId = pos.StoreId, //SN仓库
-                    RewardTips = "激活奖励", //奖励描述
-                    Remark = "激活奖励", //备注
-                    ActDate = pos.ActivationTime, //激活时间
-                    TopUserId = TopUserId, //顶级创客
-                    SeoTitle = machineUser.RealName,
-                });
-                db.SaveChanges();
-                string IdBrand = GetUserId + "_" + pos.BrandId;
-                UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                if (userData == null)
-                {
-                    userData = db.UserMachineData.Add(new UserMachineData()
-                    {
-                        IdBrand = IdBrand,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                userData.ActProfit += ActPrize;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                if (account == null)
-                {
-                    account = db.UserAccount.Add(new UserAccount()
-                    {
-                        Id = GetUserId,
-                        UserId = GetUserId,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                account.BalanceAmount += ActPrize;
-                account.TotalAmount += ActPrize;
-                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    ChangeType = ChangeType, //变动类型
-                    ProductType = pos.BrandId, //产品类型
-                    ChangeAmount = ActPrize, //变更金额
-                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                }).Entity;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                // 激活奖励列表
-                List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                if (!dates.Contains(dateString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                if (!months.Contains(monthString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                // 激活奖励详情
-                List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                if (!actPrizeList.Contains(pos.BindMerchantId))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                //收支明细
-                RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                RedisDbconn.Instance.Clear("UserAccount:Income:" + GetUserId + ":" + monthString);
-            }
-        }
-
-
-        //根据商户信息发放激活奖励
-        public void dosomething32(int merid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddHours(-3);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (merid > 0)
-            { 
-                merList = merList.Where(m => m.Id == merid);
-            }
-            else
-            {
-                merList = merList.Where(m => m.MerStandardDate >= yesterday && m.MerStandardDate < today);
-            }
-            foreach (PosMerchantInfo merchant in merList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                // if (otherInfo != null)
-                // {
-                //     otherInfo.PrizeFlag1 = 1;
-                //     db.SaveChanges();
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                string ParentNav = "";
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                if (user != null)
-                {
-                    int GetUserId = user.Id;
-                    ParentNav = user.ParentNav;
-                    int TopUserId = 0;
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                    }
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                    {
-                        ActPrize = ActPrize / 100;
-                    }
-                    if (ActPrize > 0)
-                    {
-                        bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn);
-                        if (!check)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            db.ActiveReward.Add(new ActiveReward()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                StandardDate = pos.ActivationTime, //达标日期
-                                RewardAmount = ActPrize, //奖励金额
-                                BrandId = pos.BrandId, //品牌
-                                UserNav = ParentNav, //创客父级
-                                DirectBuddyNo = merchant.UserId, //商户直属创客
-                                KqMerNo = merchant.KqMerNo, //渠道商户编号
-                                KqSnNo = pos.PosSn, //渠道SN号
-                                SnType = pos.PosSnType, //机具类型
-                                SnApplyUserId = pos.BuyUserId, //机具申请创客
-                                ActType = 0, //激活类型
-                                SnStoreId = pos.StoreId, //SN仓库
-                                RewardTips = "激活奖励", //奖励描述
-                                Remark = "激活奖励", //备注
-                                ActDate = pos.ActivationTime, //激活时间
-                                TopUserId = TopUserId, //顶级创客
-                                SeoTitle = machineUser.RealName,
-                            });
-                            db.SaveChanges();
-                            string IdBrand = GetUserId + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.ActProfit += ActPrize;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += ActPrize;
-                            account.TotalAmount += ActPrize;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 0, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = ActPrize, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                            string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                            string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                            // 激活奖励列表
-                            List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                            if (!dates.Contains(dateString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                            if (!months.Contains(monthString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                            // 激活奖励详情
-                            List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                            if (!actPrizeList.Contains(pos.BindMerchantId))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            //收支明细
-                            RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                            RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                        }
-                    }
-                }
-                // }
-            }
-            db.Dispose();
-        }
-
-        
-
-        //3. 前一天的激活记录,根据创客类型,如果是商户型创客,则开机奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething4(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && m.ActivationTime >= yesterday && m.ActivationTime < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000).ToList();
-            foreach (PosMachinesTwo pos in posList)
-            {
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20))
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                        if (merchant != null)
-                        {
-                            // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                            // if (otherInfo != null)
-                            // {
-                            //     otherInfo.PrizeFlag2 = 1;
-                            //     db.SaveChanges();
-                                // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                if (user != null)
-                                {
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        decimal Prize = 20;
-                                        string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                        {
-                                            int UserId = int.Parse(ParentNavs[i]);
-                                            Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                            if (puser != null && Prize > 0)
-                                            {
-                                                int machineCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                                int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                                // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                                // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount + couponCount >= 3)
-                                                {
-                                                    int pTopUserId = 0;
-                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                    {
-                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                    }
-                                                    Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                                    OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = yesterday, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                        MerchantId = pos.BindMerchantId, //商户
-                                                        DirectUserId = merchant.UserId, //商户直属人
-                                                        SnNo = pos.PosSn, //SN号
-                                                        MerNo = merchant.KqMerNo, //渠道商户号
-                                                        SnType = pos.PosSnType, //机具类型
-                                                        StandardDate = pos.ActivationTime, //商户的激活日期
-                                                        SnStoreId = pos.StoreId, //SN仓库
-                                                        MerBuddyType = puser.MerchantType, //商户创客类型
-                                                        RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                        RewardTips = "开机奖励", //奖励描述
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                        SeoTitle = machineUser.RealName,
-                                                    }).Entity;
-                                                    db.OpenReward.Add(new OpenReward()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = DateTime.Now, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        RewardType = 2, //奖励类型
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                    });
-                                                    string IdBrand = puser.Id + "_" + pos.BrandId;
-                                                    UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                                    if (userData == null)
-                                                    {
-                                                        userData = db.UserMachineData.Add(new UserMachineData()
-                                                        {
-                                                            IdBrand = IdBrand,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    userData.OpenProfit += Prize;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                                    //账户入库
-                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                                    if (account == null)
-                                                    {
-                                                        account = db.UserAccount.Add(new UserAccount()
-                                                        {
-                                                            Id = puser.Id,
-                                                            UserId = puser.Id,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    //收支明细入库
-                                                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                    account.BalanceAmount += Prize;
-                                                    account.TotalAmount += Prize;
-                                                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        UserId = puser.Id, //创客
-                                                        ChangeType = 50, //变动类型
-                                                        ProductType = pos.BrandId, //产品类型
-                                                        ChangeAmount = Prize, //变更金额
-                                                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                    }).Entity;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                                    string dateString = yesterday.ToString("yyyyMMdd");
-                                                    string monthString = yesterday.ToString("yyyyMM");
-                                                    // 开机奖励列表
-                                                    List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!dates.Contains(dateString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                                    List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!months.Contains(monthString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                                    // 开机奖励详情
-                                                    RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                                    //收支明细
-                                                    RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                                    RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                                    Prize -= 10;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            // }
-                        }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void dosomething42(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && m.MerStandardDate >= yesterday && m.MerStandardDate < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0").ToList();
-            foreach (PosMerchantInfo merchant in merList)
-            {
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20) && pos.CreditTrade >= 1000)
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                        // if (otherInfo != null)
-                        // {
-                        //     otherInfo.PrizeFlag2 = 1;
-                        //     db.SaveChanges();
-                        // 从机具所属人上级开始分开机奖励
-                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                        if (user != null)
-                        {
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                decimal Prize = 20;
-                                string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                {
-                                    int UserId = int.Parse(ParentNavs[i]);
-                                    Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                    if (puser != null && Prize > 0)
-                                    {
-                                        int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                        int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                        // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                        // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount + couponCount >= 3)
-                                        {
-                                            int pTopUserId = 0;
-                                            if (!string.IsNullOrEmpty(puser.ParentNav))
-                                            {
-                                                pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                            }
-                                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                            OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = yesterday, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                MerchantId = pos.BindMerchantId, //商户
-                                                DirectUserId = merchant.UserId, //商户直属人
-                                                SnNo = pos.PosSn, //SN号
-                                                MerNo = merchant.KqMerNo, //渠道商户号
-                                                SnType = pos.PosSnType, //机具类型
-                                                StandardDate = pos.ActivationTime, //商户的激活日期
-                                                SnStoreId = pos.StoreId, //SN仓库
-                                                MerBuddyType = puser.MerchantType, //商户创客类型
-                                                RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                RewardTips = "开机奖励", //奖励描述
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                                SeoTitle = machineUser.RealName,
-                                            }).Entity;
-                                            db.OpenReward.Add(new OpenReward()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = DateTime.Now, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                RewardType = 2, //奖励类型
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                            });
-                                            string IdBrand = puser.Id + "_" + pos.BrandId;
-                                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                            if (userData == null)
-                                            {
-                                                userData = db.UserMachineData.Add(new UserMachineData()
-                                                {
-                                                    IdBrand = IdBrand,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            userData.OpenProfit += Prize;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                            //账户入库
-                                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                            if (account == null)
-                                            {
-                                                account = db.UserAccount.Add(new UserAccount()
-                                                {
-                                                    Id = puser.Id,
-                                                    UserId = puser.Id,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            //收支明细入库
-                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                            account.BalanceAmount += Prize;
-                                            account.TotalAmount += Prize;
-                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                UserId = puser.Id, //创客
-                                                ChangeType = 50, //变动类型
-                                                ProductType = pos.BrandId, //产品类型
-                                                ChangeAmount = Prize, //变更金额
-                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                            }).Entity;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                            string dateString = yesterday.ToString("yyyyMMdd");
-                                            string monthString = yesterday.ToString("yyyyMM");
-                                            // 开机奖励列表
-                                            List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                            if (!dates.Contains(dateString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                            List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                            if (!months.Contains(monthString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                            // 开机奖励详情
-                                            RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                            //收支明细
-                                            RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                            RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                            Prize -= 10;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        // }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-
-        // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
-        { 
-            Thread th = new Thread(CheckFluxForTrade);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void doFluxRecord(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
-            foreach (SpModels.TradeFluxRecord trade in trades)
-            {
-                try
-                {
-                    string OrderNo = trade.TradeSerialNo; //单号
-                    DateTime TradeDate = trade.CreateDate.Value;
-                    string TradeMonth = TradeDate.ToString("yyyyMM");
-                    decimal FeeAmount = trade.FeeAmount; //流量费
-                    if (trade.ProductType == "1" || trade.ProductType == "4")
-                    {
-                        FeeAmount = FeeAmount / 100;
-                    }
-                    string TradeSnNo = trade.TradeSnNo; //机具SN
-                    decimal FluxProfit = 0;
-                    if (trade.ProductType == "1" && FeeAmount == 60)
-                    {
-                        FluxProfit = 24;
-                    }
-                    else if (trade.ProductType != "1" && FeeAmount == 48)
-                    {
-                        FluxProfit = 12;
-                    }
-                    if (FluxProfit > 0)
-                    {
-                        MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                        bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
-                        if (!checkExist)
-                        {
-                            Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            int GetUserId = user.Id;
-                            int TopUserId = 0;
-                            string ParentNav = user.ParentNav;
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                if (ParentNavList.Length > 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[1]);
-                                }
-                                else if (ParentNavList.Length == 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[0]);
-                                }
-                            }
-                            FluxProfitSummary fluxProfit = db.FluxProfitSummary.FirstOrDefault(m => m.UserId == GetUserId && m.BrandId == pos.BrandId && m.TradeMonth == TradeMonth);
-                            if (fluxProfit == null)
-                            {
-                                fluxProfit = db.FluxProfitSummary.Add(new FluxProfitSummary()
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UpdateDate = DateTime.Now,
-                                    UserId = GetUserId, //创客
-                                    BrandId = pos.BrandId,
-                                    TopUserId = TopUserId, //顶级创客
-                                    TradeMonth = TradeMonth, //交易月
-                                    MerUserType = user.MerchantType, //商户创客类型
-                                    Remark = "流量卡分佣", //备注
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            fluxProfit.FluxProfitAmt += FluxProfit; //流量分润总金额
-                            db.FluxProfitDetail.Add(new FluxProfitDetail()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                RecordNo = OrderNo, //单号
-                                TradeDate = TradeDate.ToString("yyyyMMdd"), //交易日期
-                                TradeTime = TradeDate.ToString("HHmmss"), //交易时间
-                                TradeMonth = TradeMonth, //交易月
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                MerchantUserId = pos.UserId, //商户直属人
-                                MerNo = merchant.KqMerNo, //渠道商户编号
-                                SnNo = pos.PosSn, //渠道SN号
-                                FluxOrderNo = OrderNo, //流量扣费单号
-                                TradeOrderNo = OrderNo, //交易流水号
-                                TradeAmt = trade.TradeAmount, //商户交易额
-                                FluxFeeAmt = FeeAmount, //流量费
-                                FluxProfitAmt = FluxProfit, //流量分润总金额
-                                PosType = pos.PosSnType.ToString(), //POS类型
-                                Remark = "流量卡分佣", //备注
-                                BrandId = pos.BrandId, //品牌
-                                TopUserId = TopUserId, //顶级创客
-                                MerUserType = user.MerchantType, //商户创客类型
-                            });
-                            string IdBrand = user.Id + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.FluxProfit += FluxProfit;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserMachineData:" + IdBrand);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += FluxProfit;
-                            account.TotalAmount += FluxProfit;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 60, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = FluxProfit, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserAccount:" + GetUserId);
-                        }
-                        SpModels.TradeFluxRecord edit = spdb.TradeFluxRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                            spdb.SaveChanges();
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + trade.Id + "$\n" + ex.ToString(), "流量卡分佣异常");
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
-        }
-        public void CheckFluxForTrade(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
-            foreach (var sub in list.ToList())
-            {
-                try
-                {
-                    SpModels.TradeRecord trade = spdb.TradeRecord.FirstOrDefault(m => m.Id == sub.Id);
-                    if (trade != null)
-                    {
-                        string content = trade.SeoDescription;
-                        if (!string.IsNullOrEmpty(content))
-                        {
-                            content = System.Web.HttpUtility.UrlDecode(content);
-                            JsonData jsonObj = JsonMapper.ToObject(content);
-                            decimal terminalDataFlowFee = decimal.Parse(function.CheckNum(jsonObj["terminalDataFlowFee"].ToString()));
-                            if (terminalDataFlowFee > 0)
-                            {
-                                spdb.TradeFluxRecord.Add(new SpModels.TradeFluxRecord()
-                                {
-                                    SeoDescription = trade.TradeSerialNo,
-                                    FeeAmount = terminalDataFlowFee,
-                                    TradeSerialNo = function.MD5_16(trade.TradeSerialNo),
-                                    CreateDate = trade.CreateDate,
-                                    TradeSnNo = trade.TradeSnNo,
-                                    ProductType = trade.ProductType,
-                                    Status = 1,
-                                });
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + sub.Id + "$\n" + ex.ToString(), "扫描金控交易记录中的流量费异常");
-                }
-            }
-            spdb.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
-
-            doFluxRecord(date);
-        }
-
-
-
-
-
-
-        // 每天统计头一天的交易额
-        public void StartEverDay(string date)
-        { 
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
-            // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
-            // }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void StatTradeAmountEverDay(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                
-                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-        public void StatTradeAmountEverDaySum()
-        {
-            // WebCMSEntities db = new WebCMSEntities();
-            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
-            // string html = "<table>";
-            // foreach (DataRow dr in dt.Rows)
-            // {
-            //     html += "<tr>";
-            //     string TradeDate = dr["TradeDate"].ToString();
-            //     string TradeMonth = dr["TradeMonth"].ToString();
-            //     int UserId = int.Parse(dr["UserId"].ToString());
-            //     int BrandId = int.Parse(dr["BrandId"].ToString());
-            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
-            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
-            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
-            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
-            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
-            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
-
-            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
-            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
-            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
-            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
-            //     decimal TotalPosAmount = 0;
-            //     decimal TotalCloudPayAmount = 0;
-            //     decimal TeamTotalPosAmount = 0;
-            //     decimal TeamTotalCloudPayAmount = 0;
-            //     if (QrPayFlag == 1)
-            //     {
-            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //     }
-            //     else
-            //     {
-            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //     }
-            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            //     html += "<td>应得</td>";
-            //     html += "<td>" + user.MakerCode + "</td>";
-            //     html += "<td>" + user.RealName + "</td>";
-            //     html += "<td>" + user.Mobile + "</td>";
-            //     html += "<td>" + BrandId + "</td>";
-            //     html += "<td>" + QrPayFlag + "</td>";
-            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + DirectTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectTradeAmt + "</td>";
-            //     html += "</tr>";
-
-            //     html += "<tr>";
-            //     html += "<td>当前</td>";
-            //     html += "<td></td>";
-            //     html += "<td></td>";
-            //     html += "<td>当天品牌:" + CurAmount + "</td>";
-            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
-            //     html += "<td>当月:" + CurMonthAmount + "</td>";
-            //     html += "<td>当天:" + CurDayAmount + "</td>";
-            //     html += "<td>" + TotalPosAmount + "</td>";
-            //     html += "<td>" + TotalCloudPayAmount + "</td>";
-            //     html += "<td>" + TeamTotalPosAmount + "</td>";
-            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
-            //     html += "</tr>";
-            // }
-            // html += "</table>";
-            // db.Dispose();
-            // // OtherMySqlConn.connstr = ;
-            // function.WritePage("/html/", "1.html", html);
-        }
-
-
-        //统计商户交易额
-        private void StatMerchantTrade(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
-            // WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
-                // foreach (DataRow selfDr in selfdt.Rows)
-                // {
-                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                //     string TradeDate = selfDr["TradeDate"].ToString();
-                //     TradeDate = TradeDate.Replace("-", "");
-                //     string TradeMonth = TradeDate.Substring(0, 6);
-                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
-                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
-                //     if (merStat == null)
-                //     {
-                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
-                //         {
-                //             MerchantId = MerchantId,
-                //             TradeMonth = TradeMonth,
-                //             TradeDate = TradeDate,
-                //             BrandId = BrandId,
-                //         }).Entity;
-                //         db.SaveChanges();
-                //     }
-                //     merStat.TradeAmount += TradeAmount;
-                //     db.SaveChanges();                    
-                // }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
-            }
-            // db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
-        }
-
-
-        // 5. 创客升级
-        public void StatUserLevel()
-        { 
-            Thread th = new Thread(StatUserLevelDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StatUserLevelDo()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-                DateTime end = start.AddDays(1);
-                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
-                List<UserLevelSet> sets = db.UserLevelSet.ToList();
-                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-                function.WriteLog(users.Count.ToString(), "创客升级日志");
-                foreach (var subuser in users)
-                {
-                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                    if (user != null)
-                    {
-                        int BeforeLevel = user.UserLevel;
-                        int AfterLevel = 0;
-                        decimal TradeAmount = 0;
-                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                        if (check)
-                        {
-                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                        }
-                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                        if (set != null)
-                        {
-                            AfterLevel = set.Id;
-                        }
-                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
-                        {
-                            user.UserLevel = AfterLevel;
-                            db.UserRank.Add(new UserRank()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = user.Id, //创客
-                                WhiteRank = BeforeLevel,
-                                Rank = AfterLevel, //当前等级
-                                StatYear = DateTime.Now.Year, //统计年份
-                                StatMonth = DateTime.Now.Month, //统计月份
-                                TradeAmt = TradeAmount, //团队交易总额
-                                UpgradeFlag = 1, //升级标识
-                                OperateDate = DateTime.Now, //操作时间
-                            });
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
-                        }
-                    }
-                }
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-            }
-            catch (Exception ex)
-            { 
-                function.WriteLog(ex.ToString(), "创客升级异常");
-            }
-            db.Dispose();
-
-            
-            ProfitHelper.Instance.StatProfit("202204");
-        }
-
-
-        // 统计创客激活数
-        public void StartPosActNum()
-        { 
-            Thread th = new Thread(StartPosActNumFor);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartPosActNumFor()
-        { 
-            DateTime end = DateTime.Parse("2022-05-24 00:00:00");
-            DateTime check = DateTime.Parse("2022-03-11");
-            while (check <= end)
-            {
-                StartPosActNumDo(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartPosActNumDo(object sender)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行创客激活数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                List<string> uids = new List<string>();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT BuyUserId from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "')");
-                function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "执行创客激活数日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId=" + UserId + " group by BrandId");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int QrPayFlag = 0;
-                        int ActCount = int.Parse(selfDr[1].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.DirectDebitCapNum += ActCount;
-                        db.SaveChanges();
-                    }
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int QrPayFlag = 0;
-                                    int ActCount = int.Parse(teamDr[1].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    teamStat.NonDirectDebitCapNum += ActCount;
-                                    db.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                }
-                OtherMySqlConn.op("update PosMachinesTwo set QueryCount=1 where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "'");
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行创客激活数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-            Thread.Sleep(60000);
-        }
-
-        // 统计新增创客数
-        public void StartNewUserNum()
-        { 
-            Thread th = new Thread(StartNewUserNumDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartNewUserNumDo()
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行新增创客数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                DataTable dt = OtherMySqlConn.dtable("select ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d'),count(Id) from Users where QueryCount=0 and ParentUserId>0 and AuthFlag=1 GROUP BY ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d')");
-                if (dt.Rows.Count > 0)
-                {
-                    OtherMySqlConn.op("update Users set QueryCount=1 where QueryCount=0 and ParentUserId>0 and AuthFlag=1");
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        int UserId = int.Parse(dr["ParentUserId"].ToString());
-                        string StatDate = dr[1].ToString();
-                        string StatMonth = StatDate.Substring(0, 6);
-                        int NewCount = int.Parse(dr[2].ToString());
-                        PullnewSummary selfStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == UserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.PullnewSummary.Add(new PullnewSummary()
-                            {
-                                UserId = UserId,
-                                StatMonth = StatMonth,
-                                StatDate = StatDate,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.RecUserAuthNum += NewCount;
-                        db.SaveChanges();
-                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                        string ParentNav = user.ParentNav;
-                        ParentNav += "," + UserId + ",";
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                            foreach (string NavUserIdString in ParentNavList)
-                            {
-                                int NavUserId = int.Parse(NavUserIdString);
-                                PullnewSummary teamStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == NavUserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "team");
-                                if (teamStat == null)
-                                {
-                                    teamStat = db.PullnewSummary.Add(new PullnewSummary()
-                                    {
-                                        UserId = NavUserId,
-                                        StatMonth = StatMonth,
-                                        StatDate = StatDate,
-                                        SeoTitle = "team",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                teamStat.RecUserAuthNum += NewCount;
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行新增创客数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
-            Thread.Sleep(60000);
-        }
-    }
-}

+ 0 - 1891
.history/AppStart/Helper/StatService_20220525164444.cs

@@ -1,1891 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Library;
-using LitJson;
-using System.Linq;
-using System.Data;
-using System.Threading;
-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"));
-                    dosomething1(doDate);
-                    dosomething11(doDate);
-                    // dosomething2(doDate);
-                    StartEverDay(doDate);
-                    dosomething4(doDate);
-                    ListenFluxRecord(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 ActiveReward(JobMqMsg jobInfo)
-        {
-            string content = "";
-            try
-            {
-                dosomething3();
-                string Msg = "success";
-                jobInfo.Status = Msg == "success" ? 1 : 0;
-                jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
-                RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
-                function.WritePage("/static/", "act.txt", DateTime.Now.ToString());
-            }
-            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*");
-        }
-
-
-        // 1. 前一天的绑定记录和创客信息匹配,设置商户型创客
-        public void dosomething1(string date)
-        {
-            // TODO: 每天扫描非商户型创客的持有机具数量
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.CreateTime >= yesterday && m.CreateTime < today).ToList();
-            foreach (SpModels.BindRecord bind in binds)
-            {
-                string Mobile = bind.MerNewSnNo;
-                string MerNo = bind.MerNo;
-                string BeforeNum = "";
-                string AfterNum = "";
-                if (Mobile.Contains("****") && Mobile.Length == 11)
-                {
-                    BeforeNum = Mobile.Substring(0, 3);
-                    AfterNum = Mobile.Substring(7);
-                }
-                string Name = bind.MerName;
-                if (bind.ProductType == "2")
-                {
-                    if (Name.Contains("-"))
-                    {
-                        Name = Name.Split('-')[1];
-                    }
-                    else if (Name.Contains("_"))
-                    {
-                        Name = Name.Split('_')[1];
-                    }
-                }
-                else if (bind.ProductType == "4")
-                {
-                    Name = bind.SeoTitle;
-                }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                if (user != null)
-                {
-                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
-                    if (!checkPos)
-                    {
-                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                        if (pos != null)
-                        {
-                            pos.UserId = user.Id;
-                            user.MerchantType = 1;
-                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                            merchant.UserId = user.Id;
-                            merchant.MerUserType = 1;
-                            pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                            RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                            RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-        }
-
-        // 1. 前一天的商户型创客,判断名下是否3台激活机器,是则变为非商户型创客
-        public void dosomething11(string date)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            var users = db.Users.Select(m => new { m.Id, m.MerchantType }).Where(m => m.MerchantType == 1).ToList();
-            foreach (var user in users)
-            {
-                int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
-                if (machineCount + couponCount >= 3)
-                {
-                    Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
-                    if (edit != null)
-                    {
-                        edit.MerchantType = 0;
-                        db.SaveChanges();
-                        RedisDbconn.Instance.Set("Users:" + user.Id, edit);
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        
-        public void testStatTrade(string date)
-        {
-            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,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,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 BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
-            }
-        }
-
-        // 3. 前一天的激活记录,根据创客类型,如果是商户型创客,则激活奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething3(int posid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddDays(-1);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (posid > 0)
-            { 
-                posList = posList.Where(m => m.Id == posid);
-            }
-            else
-            {
-                posList = posList.Where(m => m.ActivationTime >= yesterday && m.ActivationTime < today);
-            }
-            foreach (PosMachinesTwo pos in posList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                if (merchant != null)
-                {
-                    // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                    // if (otherInfo != null)
-                    // {
-                    //     otherInfo.PrizeFlag1 = 1;
-                    //     db.SaveChanges();
-                    string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                    if (user != null)
-                    {
-                        int GetUserId = user.Id;
-                        ParentNav = user.ParentNav;
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                        if (pos.BrandId == 1 || pos.BrandId == 3 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                        {
-                            ActPrize = ActPrize / 100;
-                        }
-                        if (ActPrize > 0)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            else if (ActPrize == 249)
-                            {
-                                ActPrize = 260;
-                            }
-                            if (GetUserId > 0)
-                            {
-                                doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, ActPrize);
-                            }
-                        }
-                    }
-                    // }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
-        {
-            bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
-            if (!check)
-            {
-                Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                db.ActiveReward.Add(new ActiveReward()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    MerchantId = pos.BindMerchantId, //商户
-                    StandardDate = pos.ActivationTime, //达标日期
-                    RewardAmount = ActPrize, //奖励金额
-                    BrandId = pos.BrandId, //品牌
-                    UserNav = ParentNav, //创客父级
-                    DirectBuddyNo = merchant.UserId, //商户直属创客
-                    KqMerNo = merchant.KqMerNo, //渠道商户编号
-                    KqSnNo = pos.PosSn, //渠道SN号
-                    SnType = pos.PosSnType, //机具类型
-                    SnApplyUserId = pos.BuyUserId, //机具申请创客
-                    ActType = 0, //激活类型
-                    SnStoreId = pos.StoreId, //SN仓库
-                    RewardTips = "激活奖励", //奖励描述
-                    Remark = "激活奖励", //备注
-                    ActDate = pos.ActivationTime, //激活时间
-                    TopUserId = TopUserId, //顶级创客
-                    SeoTitle = machineUser.RealName,
-                });
-                db.SaveChanges();
-                string IdBrand = GetUserId + "_" + pos.BrandId;
-                UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                if (userData == null)
-                {
-                    userData = db.UserMachineData.Add(new UserMachineData()
-                    {
-                        IdBrand = IdBrand,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                userData.ActProfit += ActPrize;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                if (account == null)
-                {
-                    account = db.UserAccount.Add(new UserAccount()
-                    {
-                        Id = GetUserId,
-                        UserId = GetUserId,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                account.BalanceAmount += ActPrize;
-                account.TotalAmount += ActPrize;
-                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    ChangeType = ChangeType, //变动类型
-                    ProductType = pos.BrandId, //产品类型
-                    ChangeAmount = ActPrize, //变更金额
-                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                }).Entity;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                // 激活奖励列表
-                List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                if (!dates.Contains(dateString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                if (!months.Contains(monthString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                // 激活奖励详情
-                List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                if (!actPrizeList.Contains(pos.BindMerchantId))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                //收支明细
-                RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                RedisDbconn.Instance.Clear("UserAccount:Income:" + GetUserId + ":" + monthString);
-            }
-        }
-
-
-        //根据商户信息发放激活奖励
-        public void dosomething32(int merid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddHours(-3);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (merid > 0)
-            { 
-                merList = merList.Where(m => m.Id == merid);
-            }
-            else
-            {
-                merList = merList.Where(m => m.MerStandardDate >= yesterday && m.MerStandardDate < today);
-            }
-            foreach (PosMerchantInfo merchant in merList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                // if (otherInfo != null)
-                // {
-                //     otherInfo.PrizeFlag1 = 1;
-                //     db.SaveChanges();
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                string ParentNav = "";
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                if (user != null)
-                {
-                    int GetUserId = user.Id;
-                    ParentNav = user.ParentNav;
-                    int TopUserId = 0;
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                    }
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                    {
-                        ActPrize = ActPrize / 100;
-                    }
-                    if (ActPrize > 0)
-                    {
-                        bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn);
-                        if (!check)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            db.ActiveReward.Add(new ActiveReward()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                StandardDate = pos.ActivationTime, //达标日期
-                                RewardAmount = ActPrize, //奖励金额
-                                BrandId = pos.BrandId, //品牌
-                                UserNav = ParentNav, //创客父级
-                                DirectBuddyNo = merchant.UserId, //商户直属创客
-                                KqMerNo = merchant.KqMerNo, //渠道商户编号
-                                KqSnNo = pos.PosSn, //渠道SN号
-                                SnType = pos.PosSnType, //机具类型
-                                SnApplyUserId = pos.BuyUserId, //机具申请创客
-                                ActType = 0, //激活类型
-                                SnStoreId = pos.StoreId, //SN仓库
-                                RewardTips = "激活奖励", //奖励描述
-                                Remark = "激活奖励", //备注
-                                ActDate = pos.ActivationTime, //激活时间
-                                TopUserId = TopUserId, //顶级创客
-                                SeoTitle = machineUser.RealName,
-                            });
-                            db.SaveChanges();
-                            string IdBrand = GetUserId + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.ActProfit += ActPrize;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += ActPrize;
-                            account.TotalAmount += ActPrize;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 0, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = ActPrize, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                            string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                            string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                            // 激活奖励列表
-                            List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                            if (!dates.Contains(dateString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                            if (!months.Contains(monthString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                            // 激活奖励详情
-                            List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                            if (!actPrizeList.Contains(pos.BindMerchantId))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            //收支明细
-                            RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                            RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                        }
-                    }
-                }
-                // }
-            }
-            db.Dispose();
-        }
-
-        
-
-        //3. 前一天的激活记录,根据创客类型,如果是商户型创客,则开机奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething4(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && m.ActivationTime >= yesterday && m.ActivationTime < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000).ToList();
-            foreach (PosMachinesTwo pos in posList)
-            {
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20))
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                        if (merchant != null)
-                        {
-                            // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                            // if (otherInfo != null)
-                            // {
-                            //     otherInfo.PrizeFlag2 = 1;
-                            //     db.SaveChanges();
-                                // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                if (user != null)
-                                {
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        decimal Prize = 20;
-                                        string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                        {
-                                            int UserId = int.Parse(ParentNavs[i]);
-                                            Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                            if (puser != null && Prize > 0)
-                                            {
-                                                int machineCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                                int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                                // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                                // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount + couponCount >= 3)
-                                                {
-                                                    int pTopUserId = 0;
-                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                    {
-                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                    }
-                                                    Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                                    OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = yesterday, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                        MerchantId = pos.BindMerchantId, //商户
-                                                        DirectUserId = merchant.UserId, //商户直属人
-                                                        SnNo = pos.PosSn, //SN号
-                                                        MerNo = merchant.KqMerNo, //渠道商户号
-                                                        SnType = pos.PosSnType, //机具类型
-                                                        StandardDate = pos.ActivationTime, //商户的激活日期
-                                                        SnStoreId = pos.StoreId, //SN仓库
-                                                        MerBuddyType = puser.MerchantType, //商户创客类型
-                                                        RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                        RewardTips = "开机奖励", //奖励描述
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                        SeoTitle = machineUser.RealName,
-                                                    }).Entity;
-                                                    db.OpenReward.Add(new OpenReward()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = DateTime.Now, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        RewardType = 2, //奖励类型
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                    });
-                                                    string IdBrand = puser.Id + "_" + pos.BrandId;
-                                                    UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                                    if (userData == null)
-                                                    {
-                                                        userData = db.UserMachineData.Add(new UserMachineData()
-                                                        {
-                                                            IdBrand = IdBrand,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    userData.OpenProfit += Prize;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                                    //账户入库
-                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                                    if (account == null)
-                                                    {
-                                                        account = db.UserAccount.Add(new UserAccount()
-                                                        {
-                                                            Id = puser.Id,
-                                                            UserId = puser.Id,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    //收支明细入库
-                                                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                    account.BalanceAmount += Prize;
-                                                    account.TotalAmount += Prize;
-                                                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        UserId = puser.Id, //创客
-                                                        ChangeType = 50, //变动类型
-                                                        ProductType = pos.BrandId, //产品类型
-                                                        ChangeAmount = Prize, //变更金额
-                                                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                    }).Entity;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                                    string dateString = yesterday.ToString("yyyyMMdd");
-                                                    string monthString = yesterday.ToString("yyyyMM");
-                                                    // 开机奖励列表
-                                                    List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!dates.Contains(dateString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                                    List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!months.Contains(monthString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                                    // 开机奖励详情
-                                                    RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                                    //收支明细
-                                                    RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                                    RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                                    Prize -= 10;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            // }
-                        }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void dosomething42(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && m.MerStandardDate >= yesterday && m.MerStandardDate < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0").ToList();
-            foreach (PosMerchantInfo merchant in merList)
-            {
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20) && pos.CreditTrade >= 1000)
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                        // if (otherInfo != null)
-                        // {
-                        //     otherInfo.PrizeFlag2 = 1;
-                        //     db.SaveChanges();
-                        // 从机具所属人上级开始分开机奖励
-                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                        if (user != null)
-                        {
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                decimal Prize = 20;
-                                string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                {
-                                    int UserId = int.Parse(ParentNavs[i]);
-                                    Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                    if (puser != null && Prize > 0)
-                                    {
-                                        int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                        int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                        // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                        // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount + couponCount >= 3)
-                                        {
-                                            int pTopUserId = 0;
-                                            if (!string.IsNullOrEmpty(puser.ParentNav))
-                                            {
-                                                pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                            }
-                                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                            OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = yesterday, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                MerchantId = pos.BindMerchantId, //商户
-                                                DirectUserId = merchant.UserId, //商户直属人
-                                                SnNo = pos.PosSn, //SN号
-                                                MerNo = merchant.KqMerNo, //渠道商户号
-                                                SnType = pos.PosSnType, //机具类型
-                                                StandardDate = pos.ActivationTime, //商户的激活日期
-                                                SnStoreId = pos.StoreId, //SN仓库
-                                                MerBuddyType = puser.MerchantType, //商户创客类型
-                                                RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                RewardTips = "开机奖励", //奖励描述
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                                SeoTitle = machineUser.RealName,
-                                            }).Entity;
-                                            db.OpenReward.Add(new OpenReward()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = DateTime.Now, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                RewardType = 2, //奖励类型
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                            });
-                                            string IdBrand = puser.Id + "_" + pos.BrandId;
-                                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                            if (userData == null)
-                                            {
-                                                userData = db.UserMachineData.Add(new UserMachineData()
-                                                {
-                                                    IdBrand = IdBrand,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            userData.OpenProfit += Prize;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                            //账户入库
-                                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                            if (account == null)
-                                            {
-                                                account = db.UserAccount.Add(new UserAccount()
-                                                {
-                                                    Id = puser.Id,
-                                                    UserId = puser.Id,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            //收支明细入库
-                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                            account.BalanceAmount += Prize;
-                                            account.TotalAmount += Prize;
-                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                UserId = puser.Id, //创客
-                                                ChangeType = 50, //变动类型
-                                                ProductType = pos.BrandId, //产品类型
-                                                ChangeAmount = Prize, //变更金额
-                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                            }).Entity;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                            string dateString = yesterday.ToString("yyyyMMdd");
-                                            string monthString = yesterday.ToString("yyyyMM");
-                                            // 开机奖励列表
-                                            List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                            if (!dates.Contains(dateString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                            List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                            if (!months.Contains(monthString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                            // 开机奖励详情
-                                            RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                            //收支明细
-                                            RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                            RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                            Prize -= 10;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        // }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-
-        // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
-        { 
-            Thread th = new Thread(CheckFluxForTrade);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void doFluxRecord(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
-            foreach (SpModels.TradeFluxRecord trade in trades)
-            {
-                try
-                {
-                    string OrderNo = trade.TradeSerialNo; //单号
-                    DateTime TradeDate = trade.CreateDate.Value;
-                    string TradeMonth = TradeDate.ToString("yyyyMM");
-                    decimal FeeAmount = trade.FeeAmount; //流量费
-                    if (trade.ProductType == "1" || trade.ProductType == "4")
-                    {
-                        FeeAmount = FeeAmount / 100;
-                    }
-                    string TradeSnNo = trade.TradeSnNo; //机具SN
-                    decimal FluxProfit = 0;
-                    if (trade.ProductType == "1" && FeeAmount == 60)
-                    {
-                        FluxProfit = 24;
-                    }
-                    else if (trade.ProductType != "1" && FeeAmount == 48)
-                    {
-                        FluxProfit = 12;
-                    }
-                    if (FluxProfit > 0)
-                    {
-                        MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                        bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
-                        if (!checkExist)
-                        {
-                            Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            int GetUserId = user.Id;
-                            int TopUserId = 0;
-                            string ParentNav = user.ParentNav;
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                if (ParentNavList.Length > 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[1]);
-                                }
-                                else if (ParentNavList.Length == 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[0]);
-                                }
-                            }
-                            FluxProfitSummary fluxProfit = db.FluxProfitSummary.FirstOrDefault(m => m.UserId == GetUserId && m.BrandId == pos.BrandId && m.TradeMonth == TradeMonth);
-                            if (fluxProfit == null)
-                            {
-                                fluxProfit = db.FluxProfitSummary.Add(new FluxProfitSummary()
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UpdateDate = DateTime.Now,
-                                    UserId = GetUserId, //创客
-                                    BrandId = pos.BrandId,
-                                    TopUserId = TopUserId, //顶级创客
-                                    TradeMonth = TradeMonth, //交易月
-                                    MerUserType = user.MerchantType, //商户创客类型
-                                    Remark = "流量卡分佣", //备注
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            fluxProfit.FluxProfitAmt += FluxProfit; //流量分润总金额
-                            db.FluxProfitDetail.Add(new FluxProfitDetail()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                RecordNo = OrderNo, //单号
-                                TradeDate = TradeDate.ToString("yyyyMMdd"), //交易日期
-                                TradeTime = TradeDate.ToString("HHmmss"), //交易时间
-                                TradeMonth = TradeMonth, //交易月
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                MerchantUserId = pos.UserId, //商户直属人
-                                MerNo = merchant.KqMerNo, //渠道商户编号
-                                SnNo = pos.PosSn, //渠道SN号
-                                FluxOrderNo = OrderNo, //流量扣费单号
-                                TradeOrderNo = OrderNo, //交易流水号
-                                TradeAmt = trade.TradeAmount, //商户交易额
-                                FluxFeeAmt = FeeAmount, //流量费
-                                FluxProfitAmt = FluxProfit, //流量分润总金额
-                                PosType = pos.PosSnType.ToString(), //POS类型
-                                Remark = "流量卡分佣", //备注
-                                BrandId = pos.BrandId, //品牌
-                                TopUserId = TopUserId, //顶级创客
-                                MerUserType = user.MerchantType, //商户创客类型
-                            });
-                            string IdBrand = user.Id + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.FluxProfit += FluxProfit;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserMachineData:" + IdBrand);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += FluxProfit;
-                            account.TotalAmount += FluxProfit;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 60, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = FluxProfit, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserAccount:" + GetUserId);
-                        }
-                        SpModels.TradeFluxRecord edit = spdb.TradeFluxRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                            spdb.SaveChanges();
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + trade.Id + "$\n" + ex.ToString(), "流量卡分佣异常");
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
-        }
-        public void CheckFluxForTrade(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
-            foreach (var sub in list.ToList())
-            {
-                try
-                {
-                    SpModels.TradeRecord trade = spdb.TradeRecord.FirstOrDefault(m => m.Id == sub.Id);
-                    if (trade != null)
-                    {
-                        string content = trade.SeoDescription;
-                        if (!string.IsNullOrEmpty(content))
-                        {
-                            content = System.Web.HttpUtility.UrlDecode(content);
-                            JsonData jsonObj = JsonMapper.ToObject(content);
-                            decimal terminalDataFlowFee = decimal.Parse(function.CheckNum(jsonObj["terminalDataFlowFee"].ToString()));
-                            if (terminalDataFlowFee > 0)
-                            {
-                                spdb.TradeFluxRecord.Add(new SpModels.TradeFluxRecord()
-                                {
-                                    SeoDescription = trade.TradeSerialNo,
-                                    FeeAmount = terminalDataFlowFee,
-                                    TradeSerialNo = function.MD5_16(trade.TradeSerialNo),
-                                    CreateDate = trade.CreateDate,
-                                    TradeSnNo = trade.TradeSnNo,
-                                    ProductType = trade.ProductType,
-                                    Status = 1,
-                                });
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + sub.Id + "$\n" + ex.ToString(), "扫描金控交易记录中的流量费异常");
-                }
-            }
-            spdb.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
-
-            doFluxRecord(date);
-        }
-
-
-
-
-
-
-        // 每天统计头一天的交易额
-        public void StartEverDay(string date)
-        { 
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
-            // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
-            // }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void StatTradeAmountEverDay(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                
-                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-        public void StatTradeAmountEverDaySum()
-        {
-            // WebCMSEntities db = new WebCMSEntities();
-            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
-            // string html = "<table>";
-            // foreach (DataRow dr in dt.Rows)
-            // {
-            //     html += "<tr>";
-            //     string TradeDate = dr["TradeDate"].ToString();
-            //     string TradeMonth = dr["TradeMonth"].ToString();
-            //     int UserId = int.Parse(dr["UserId"].ToString());
-            //     int BrandId = int.Parse(dr["BrandId"].ToString());
-            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
-            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
-            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
-            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
-            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
-            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
-
-            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
-            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
-            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
-            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
-            //     decimal TotalPosAmount = 0;
-            //     decimal TotalCloudPayAmount = 0;
-            //     decimal TeamTotalPosAmount = 0;
-            //     decimal TeamTotalCloudPayAmount = 0;
-            //     if (QrPayFlag == 1)
-            //     {
-            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //     }
-            //     else
-            //     {
-            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //     }
-            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            //     html += "<td>应得</td>";
-            //     html += "<td>" + user.MakerCode + "</td>";
-            //     html += "<td>" + user.RealName + "</td>";
-            //     html += "<td>" + user.Mobile + "</td>";
-            //     html += "<td>" + BrandId + "</td>";
-            //     html += "<td>" + QrPayFlag + "</td>";
-            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + DirectTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectTradeAmt + "</td>";
-            //     html += "</tr>";
-
-            //     html += "<tr>";
-            //     html += "<td>当前</td>";
-            //     html += "<td></td>";
-            //     html += "<td></td>";
-            //     html += "<td>当天品牌:" + CurAmount + "</td>";
-            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
-            //     html += "<td>当月:" + CurMonthAmount + "</td>";
-            //     html += "<td>当天:" + CurDayAmount + "</td>";
-            //     html += "<td>" + TotalPosAmount + "</td>";
-            //     html += "<td>" + TotalCloudPayAmount + "</td>";
-            //     html += "<td>" + TeamTotalPosAmount + "</td>";
-            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
-            //     html += "</tr>";
-            // }
-            // html += "</table>";
-            // db.Dispose();
-            // // OtherMySqlConn.connstr = ;
-            // function.WritePage("/html/", "1.html", html);
-        }
-
-
-        //统计商户交易额
-        private void StatMerchantTrade(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
-            // WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
-                // foreach (DataRow selfDr in selfdt.Rows)
-                // {
-                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                //     string TradeDate = selfDr["TradeDate"].ToString();
-                //     TradeDate = TradeDate.Replace("-", "");
-                //     string TradeMonth = TradeDate.Substring(0, 6);
-                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
-                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
-                //     if (merStat == null)
-                //     {
-                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
-                //         {
-                //             MerchantId = MerchantId,
-                //             TradeMonth = TradeMonth,
-                //             TradeDate = TradeDate,
-                //             BrandId = BrandId,
-                //         }).Entity;
-                //         db.SaveChanges();
-                //     }
-                //     merStat.TradeAmount += TradeAmount;
-                //     db.SaveChanges();                    
-                // }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
-            }
-            // db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
-        }
-
-
-        // 5. 创客升级
-        public void StatUserLevel()
-        { 
-            Thread th = new Thread(StatUserLevelDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StatUserLevelDo()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-                DateTime end = start.AddDays(1);
-                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
-                List<UserLevelSet> sets = db.UserLevelSet.ToList();
-                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-                function.WriteLog(users.Count.ToString(), "创客升级日志");
-                foreach (var subuser in users)
-                {
-                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                    if (user != null)
-                    {
-                        int BeforeLevel = user.UserLevel;
-                        int AfterLevel = 0;
-                        decimal TradeAmount = 0;
-                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                        if (check)
-                        {
-                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                        }
-                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                        if (set != null)
-                        {
-                            AfterLevel = set.Id;
-                        }
-                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
-                        {
-                            user.UserLevel = AfterLevel;
-                            db.UserRank.Add(new UserRank()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = user.Id, //创客
-                                WhiteRank = BeforeLevel,
-                                Rank = AfterLevel, //当前等级
-                                StatYear = DateTime.Now.Year, //统计年份
-                                StatMonth = DateTime.Now.Month, //统计月份
-                                TradeAmt = TradeAmount, //团队交易总额
-                                UpgradeFlag = 1, //升级标识
-                                OperateDate = DateTime.Now, //操作时间
-                            });
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
-                        }
-                    }
-                }
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-            }
-            catch (Exception ex)
-            { 
-                function.WriteLog(ex.ToString(), "创客升级异常");
-            }
-            db.Dispose();
-
-            
-            ProfitHelper.Instance.StatProfit("202204");
-        }
-
-
-        // 统计创客激活数
-        public void StartPosActNum()
-        { 
-            Thread th = new Thread(StartPosActNumFor);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartPosActNumFor()
-        { 
-            DateTime end = DateTime.Parse("2022-05-24 00:00:00");
-            DateTime check = DateTime.Parse("2022-03-11");
-            while (check <= end)
-            {
-                StartPosActNumDo(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartPosActNumDo(object sender)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行创客激活数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                List<string> uids = new List<string>();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT BuyUserId from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "')");
-                function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "执行创客激活数日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId=" + UserId + " group by BrandId");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int QrPayFlag = 0;
-                        int ActCount = int.Parse(selfDr[1].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.DirectDebitCapNum += ActCount;
-                        db.SaveChanges();
-                    }
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int QrPayFlag = 0;
-                                    int ActCount = int.Parse(teamDr[1].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    teamStat.NonDirectDebitCapNum += ActCount;
-                                    db.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                }
-                OtherMySqlConn.op("update PosMachinesTwo set QueryCount=1 where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "'");
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行创客激活数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-            Thread.Sleep(60000);
-        }
-
-        // 统计新增创客数
-        public void StartNewUserNum()
-        { 
-            Thread th = new Thread(StartNewUserNumDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartNewUserNumDo()
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行新增创客数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                DataTable dt = OtherMySqlConn.dtable("select ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d'),count(Id) from Users where QueryCount=0 and ParentUserId>0 and AuthFlag=1 GROUP BY ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d')");
-                if (dt.Rows.Count > 0)
-                {
-                    OtherMySqlConn.op("update Users set QueryCount=1 where QueryCount=0 and ParentUserId>0 and AuthFlag=1");
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        int UserId = int.Parse(dr["ParentUserId"].ToString());
-                        string StatDate = dr[1].ToString();
-                        string StatMonth = StatDate.Substring(0, 6);
-                        int NewCount = int.Parse(dr[2].ToString());
-                        PullnewSummary selfStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == UserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.PullnewSummary.Add(new PullnewSummary()
-                            {
-                                UserId = UserId,
-                                StatMonth = StatMonth,
-                                StatDate = StatDate,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.RecUserAuthNum += NewCount;
-                        db.SaveChanges();
-                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                        string ParentNav = user.ParentNav;
-                        ParentNav += "," + UserId + ",";
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                            foreach (string NavUserIdString in ParentNavList)
-                            {
-                                int NavUserId = int.Parse(NavUserIdString);
-                                PullnewSummary teamStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == NavUserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "team");
-                                if (teamStat == null)
-                                {
-                                    teamStat = db.PullnewSummary.Add(new PullnewSummary()
-                                    {
-                                        UserId = NavUserId,
-                                        StatMonth = StatMonth,
-                                        StatDate = StatDate,
-                                        SeoTitle = "team",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                teamStat.RecUserAuthNum += NewCount;
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行新增创客数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
-            Thread.Sleep(60000);
-        }
-    }
-}

+ 0 - 1891
.history/AppStart/Helper/StatService_20220525164445.cs

@@ -1,1891 +0,0 @@
-using System;
-using System.Collections.Generic;
-using Library;
-using LitJson;
-using System.Linq;
-using System.Data;
-using System.Threading;
-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"));
-                    dosomething1(doDate);
-                    dosomething11(doDate);
-                    // dosomething2(doDate);
-                    StartEverDay(doDate);
-                    dosomething4(doDate);
-                    ListenFluxRecord(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 ActiveReward(JobMqMsg jobInfo)
-        {
-            string content = "";
-            try
-            {
-                dosomething3();
-                string Msg = "success";
-                jobInfo.Status = Msg == "success" ? 1 : 0;
-                jobInfo.Msg = Msg == "success" ? "执行完成" : Msg;
-                RabbitMQClient.Instance.SendMsg(Newtonsoft.Json.JsonConvert.SerializeObject(jobInfo), "PublicBack");
-                function.WritePage("/static/", "act.txt", DateTime.Now.ToString());
-            }
-            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*");
-        }
-
-
-        // 1. 前一天的绑定记录和创客信息匹配,设置商户型创客
-        public void dosomething1(string date)
-        {
-            // TODO: 每天扫描非商户型创客的持有机具数量
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.BindRecord> binds = spdb.BindRecord.Where(m => m.CreateTime >= yesterday && m.CreateTime < today).ToList();
-            foreach (SpModels.BindRecord bind in binds)
-            {
-                string Mobile = bind.MerNewSnNo;
-                string MerNo = bind.MerNo;
-                string BeforeNum = "";
-                string AfterNum = "";
-                if (Mobile.Contains("****") && Mobile.Length == 11)
-                {
-                    BeforeNum = Mobile.Substring(0, 3);
-                    AfterNum = Mobile.Substring(7);
-                }
-                string Name = bind.MerName;
-                if (bind.ProductType == "2")
-                {
-                    if (Name.Contains("-"))
-                    {
-                        Name = Name.Split('-')[1];
-                    }
-                    else if (Name.Contains("_"))
-                    {
-                        Name = Name.Split('_')[1];
-                    }
-                }
-                else if (bind.ProductType == "4")
-                {
-                    Name = bind.SeoTitle;
-                }
-                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Mobile.StartsWith(BeforeNum) && m.Mobile.EndsWith(AfterNum) && m.RealName == Name && m.AuthFlag == 1 && m.MerchantType == 0);
-                if (user != null)
-                {
-                    bool checkPos = db.PosMachinesTwo.Any(m => m.UserId == user.Id);
-                    if (!checkPos)
-                    {
-                        PxcModels.MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == bind.MerSnNo) ?? new PxcModels.MachineForSnNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId && m.UserId != user.Id);
-                        if (pos != null)
-                        {
-                            pos.UserId = user.Id;
-                            user.MerchantType = 1;
-                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.KqMerNo == MerNo) ?? new PxcModels.PosMerchantInfo();
-                            merchant.UserId = user.Id;
-                            merchant.MerUserType = 1;
-                            pos.SeoTitle = user.Id.ToString(); // 记录商户型创客的Id
-                            RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("Users:" + user.Id, user);
-                            RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                        }
-                    }
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-        }
-
-        // 1. 前一天的商户型创客,判断名下是否3台激活机器,是则变为非商户型创客
-        public void dosomething11(string date)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            var users = db.Users.Select(m => new { m.Id, m.MerchantType }).Where(m => m.MerchantType == 1).ToList();
-            foreach (var user in users)
-            {
-                int machineCount = db.PosMachinesTwo.Count(m => m.UserId == user.Id && m.PosSnType == 0);
-                int couponCount = db.PosCoupons.Count(m => m.UserId == user.Id && m.IsUse == 0); //判断是否拥有3张券
-                if (machineCount + couponCount >= 3)
-                {
-                    Users edit = db.Users.FirstOrDefault(m => m.Id == user.Id);
-                    if (edit != null)
-                    {
-                        edit.MerchantType = 0;
-                        db.SaveChanges();
-                        RedisDbconn.Instance.Set("Users:" + user.Id, edit);
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        
-        public void testStatTrade(string date)
-        {
-            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,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where CreateDate>='" + yesterday + "' and CreateDate<'" + today + "' group by UserId,BrandId,MerchantId,BankCardType,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 BankCardType = int.Parse(dr["BankCardType"].ToString()); //卡类型
-                int QrPayFlag = int.Parse(dr["QrPayFlag"].ToString()); //云闪付
-                decimal TradeAmount = decimal.Parse(dr[5].ToString()); //当日交易额
-                string content = "{";
-                content += "\"DateString\":\"" + date + "\",";
-                content += "\"UserId\":\"" + UserId + "\",";
-                content += "\"BrandId\":\"" + BrandId + "\",";
-                content += "\"MerchantId\":\"" + MerchantId + "\",";
-                content += "\"BankCardType\":\"" + BankCardType + "\",";
-                content += "\"QrPayFlag\":\"" + QrPayFlag + "\",";
-                content += "\"TradeAmount\":\"" + TradeAmount + "\"";
-                content += "}";
-                RedisDbconn.Instance.AddList("TradeStatQueueTest", content);
-            }
-        }
-
-        // 3. 前一天的激活记录,根据创客类型,如果是商户型创客,则激活奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething3(int posid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddDays(-1);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (posid > 0)
-            { 
-                posList = posList.Where(m => m.Id == posid);
-            }
-            else
-            {
-                posList = posList.Where(m => m.ActivationTime >= yesterday && m.ActivationTime < today);
-            }
-            foreach (PosMachinesTwo pos in posList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                if (merchant != null)
-                {
-                    // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                    // if (otherInfo != null)
-                    // {
-                    //     otherInfo.PrizeFlag1 = 1;
-                    //     db.SaveChanges();
-                    string ParentNav = "";
-                    Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                    if (user != null)
-                    {
-                        int GetUserId = user.Id;
-                        ParentNav = user.ParentNav;
-                        int TopUserId = 0;
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                        }
-                        decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                        if (pos.BrandId == 1 || pos.BrandId == 3 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                        {
-                            ActPrize = ActPrize / 100;
-                        }
-                        if (ActPrize > 0)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            else if (ActPrize == 249)
-                            {
-                                ActPrize = 260;
-                            }
-                            if (GetUserId > 0)
-                            {
-                                doActiveReward(db, merchant, pos, GetUserId, ParentNav, TopUserId, ActPrize);
-                            }
-                        }
-                    }
-                    // }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void doActiveReward(WebCMSEntities db, PosMerchantInfo merchant, PosMachinesTwo pos, int GetUserId, string ParentNav, int TopUserId, decimal ActPrize, int ChangeType = 0)
-        {
-            bool check = db.ActiveReward.Any(m => m.KqMerNo == merchant.KqMerNo && m.RewardAmount == ActPrize);
-            if (!check)
-            {
-                Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                db.ActiveReward.Add(new ActiveReward()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    MerchantId = pos.BindMerchantId, //商户
-                    StandardDate = pos.ActivationTime, //达标日期
-                    RewardAmount = ActPrize, //奖励金额
-                    BrandId = pos.BrandId, //品牌
-                    UserNav = ParentNav, //创客父级
-                    DirectBuddyNo = merchant.UserId, //商户直属创客
-                    KqMerNo = merchant.KqMerNo, //渠道商户编号
-                    KqSnNo = pos.PosSn, //渠道SN号
-                    SnType = pos.PosSnType, //机具类型
-                    SnApplyUserId = pos.BuyUserId, //机具申请创客
-                    ActType = 0, //激活类型
-                    SnStoreId = pos.StoreId, //SN仓库
-                    RewardTips = "激活奖励", //奖励描述
-                    Remark = "激活奖励", //备注
-                    ActDate = pos.ActivationTime, //激活时间
-                    TopUserId = TopUserId, //顶级创客
-                    SeoTitle = machineUser.RealName,
-                });
-                db.SaveChanges();
-                string IdBrand = GetUserId + "_" + pos.BrandId;
-                UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                if (userData == null)
-                {
-                    userData = db.UserMachineData.Add(new UserMachineData()
-                    {
-                        IdBrand = IdBrand,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                userData.ActProfit += ActPrize;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                if (account == null)
-                {
-                    account = db.UserAccount.Add(new UserAccount()
-                    {
-                        Id = GetUserId,
-                        UserId = GetUserId,
-                    }).Entity;
-                    db.SaveChanges();
-                }
-                decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                account.BalanceAmount += ActPrize;
-                account.TotalAmount += ActPrize;
-                decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                {
-                    CreateDate = DateTime.Now,
-                    UpdateDate = DateTime.Now,
-                    UserId = GetUserId, //创客
-                    ChangeType = ChangeType, //变动类型
-                    ProductType = pos.BrandId, //产品类型
-                    ChangeAmount = ActPrize, //变更金额
-                    BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                    AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                    BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                    AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                    BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                    AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                }).Entity;
-                db.SaveChanges();
-                RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                // 激活奖励列表
-                List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                if (!dates.Contains(dateString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                if (!months.Contains(monthString))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                // 激活奖励详情
-                List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                if (!actPrizeList.Contains(pos.BindMerchantId))
-                {
-                    RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                }
-                RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                //收支明细
-                RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                RedisDbconn.Instance.Clear("UserAccount:Income:" + GetUserId + ":" + monthString);
-            }
-        }
-
-
-        //根据商户信息发放激活奖励
-        public void dosomething32(int merid = 0)
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Now.AddHours(-3);
-            DateTime today = DateTime.Now;
-            IQueryable<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && !string.IsNullOrEmpty(m.SeoKeyword));
-            if (merid > 0)
-            { 
-                merList = merList.Where(m => m.Id == merid);
-            }
-            else
-            {
-                merList = merList.Where(m => m.MerStandardDate >= yesterday && m.MerStandardDate < today);
-            }
-            foreach (PosMerchantInfo merchant in merList.ToList())
-            {
-                // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag1 == 0);
-                // if (otherInfo != null)
-                // {
-                //     otherInfo.PrizeFlag1 = 1;
-                //     db.SaveChanges();
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                string ParentNav = "";
-                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                if (user != null)
-                {
-                    int GetUserId = user.Id;
-                    ParentNav = user.ParentNav;
-                    int TopUserId = 0;
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        TopUserId = int.Parse(ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                    }
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                    {
-                        ActPrize = ActPrize / 100;
-                    }
-                    if (ActPrize > 0)
-                    {
-                        bool check = db.ActiveReward.Any(m => m.KqSnNo == pos.PosSn);
-                        if (!check)
-                        {
-                            if (ActPrize == 99)
-                            {
-                                ActPrize = 100;
-                            }
-                            else if (ActPrize == 199)
-                            {
-                                ActPrize = 200;
-                            }
-                            else if (ActPrize == 299)
-                            {
-                                ActPrize = 300;
-                            }
-                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            db.ActiveReward.Add(new ActiveReward()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                StandardDate = pos.ActivationTime, //达标日期
-                                RewardAmount = ActPrize, //奖励金额
-                                BrandId = pos.BrandId, //品牌
-                                UserNav = ParentNav, //创客父级
-                                DirectBuddyNo = merchant.UserId, //商户直属创客
-                                KqMerNo = merchant.KqMerNo, //渠道商户编号
-                                KqSnNo = pos.PosSn, //渠道SN号
-                                SnType = pos.PosSnType, //机具类型
-                                SnApplyUserId = pos.BuyUserId, //机具申请创客
-                                ActType = 0, //激活类型
-                                SnStoreId = pos.StoreId, //SN仓库
-                                RewardTips = "激活奖励", //奖励描述
-                                Remark = "激活奖励", //备注
-                                ActDate = pos.ActivationTime, //激活时间
-                                TopUserId = TopUserId, //顶级创客
-                                SeoTitle = machineUser.RealName,
-                            });
-                            db.SaveChanges();
-                            string IdBrand = GetUserId + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.ActProfit += ActPrize;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += ActPrize;
-                            account.TotalAmount += ActPrize;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 0, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = ActPrize, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserAccount:" + GetUserId, account);
-
-                            string dateString = pos.ActivationTime.Value.ToString("yyyyMMdd");
-                            string monthString = pos.ActivationTime.Value.ToString("yyyyMM");
-                            // 激活奖励列表
-                            List<string> dates = RedisDbconn.Instance.GetList<string>("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId);
-                            if (!dates.Contains(dateString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDay:" + GetUserId + ":" + pos.BrandId, dateString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            List<string> months = RedisDbconn.Instance.GetList<string>("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId);
-                            if (!months.Contains(monthString))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardMonth:" + GetUserId + ":" + pos.BrandId, monthString);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:" + GetUserId + ":" + pos.BrandId + ":" + monthString, ActPrize);
-
-                            // 激活奖励详情
-                            List<int> actPrizeList = RedisDbconn.Instance.GetList<int>("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString);
-                            if (!actPrizeList.Contains(pos.BindMerchantId))
-                            {
-                                RedisDbconn.Instance.AddList("ActiveRewardDetail:" + GetUserId + ":" + pos.BrandId + ":" + dateString, pos.BindMerchantId);
-                            }
-                            RedisDbconn.Instance.AddNumber("ActiveRewardAmt:mer:" + pos.BindMerchantId + ":" + pos.BrandId + ":" + dateString, ActPrize);
-
-                            //收支明细
-                            RedisDbconn.Instance.AddList("UserAccountRecord:" + GetUserId + ":1:" + monthString, userAccountRecord);
-                            RedisDbconn.Instance.AddNumber("UserAccount:" + GetUserId + ":1:" + monthString, ActPrize);
-                        }
-                    }
-                }
-                // }
-            }
-            db.Dispose();
-        }
-
-        
-
-        //3. 前一天的激活记录,根据创客类型,如果是商户型创客,则开机奖励的起始人从此人上级计算。如果不是,则从此人开始计算
-        public void dosomething4(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMachinesTwo> posList = db.PosMachinesTwo.Where(m => m.ActivationState == 1 && m.ActivationTime >= yesterday && m.ActivationTime < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0" && m.CreditTrade >= 1000).ToList();
-            foreach (PosMachinesTwo pos in posList)
-            {
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20))
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                        if (merchant != null)
-                        {
-                            // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                            // if (otherInfo != null)
-                            // {
-                            //     otherInfo.PrizeFlag2 = 1;
-                            //     db.SaveChanges();
-                                // 从机具所属人上级开始分开机奖励
-                                Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                                if (user != null)
-                                {
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        decimal Prize = 20;
-                                        string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                        for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                        {
-                                            int UserId = int.Parse(ParentNavs[i]);
-                                            Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                            if (puser != null && Prize > 0)
-                                            {
-                                                int machineCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                                int ActiveCount = db.PosMachinesTwo.Count(m => m.BuyUserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                                int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                                // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                                // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                                if (machineCount + ActiveCount + couponCount >= 3)
-                                                {
-                                                    int pTopUserId = 0;
-                                                    if (!string.IsNullOrEmpty(puser.ParentNav))
-                                                    {
-                                                        pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                                    }
-                                                    Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                                    OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = yesterday, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                        MerchantId = pos.BindMerchantId, //商户
-                                                        DirectUserId = merchant.UserId, //商户直属人
-                                                        SnNo = pos.PosSn, //SN号
-                                                        MerNo = merchant.KqMerNo, //渠道商户号
-                                                        SnType = pos.PosSnType, //机具类型
-                                                        StandardDate = pos.ActivationTime, //商户的激活日期
-                                                        SnStoreId = pos.StoreId, //SN仓库
-                                                        MerBuddyType = puser.MerchantType, //商户创客类型
-                                                        RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                        RewardTips = "开机奖励", //奖励描述
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                        SeoTitle = machineUser.RealName,
-                                                    }).Entity;
-                                                    db.OpenReward.Add(new OpenReward()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                        TradeDate = DateTime.Now, //达标日期
-                                                        UserId = puser.Id, //创客
-                                                        BrandId = pos.BrandId, //品牌
-                                                        RewardType = 2, //奖励类型
-                                                        CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                        DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                        CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                        RewardDesc = "开机奖励", //奖励描述
-                                                        TopUserId = pTopUserId, //顶级创客
-                                                    });
-                                                    string IdBrand = puser.Id + "_" + pos.BrandId;
-                                                    UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                                    if (userData == null)
-                                                    {
-                                                        userData = db.UserMachineData.Add(new UserMachineData()
-                                                        {
-                                                            IdBrand = IdBrand,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    userData.OpenProfit += Prize;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                                    //账户入库
-                                                    UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                                    if (account == null)
-                                                    {
-                                                        account = db.UserAccount.Add(new UserAccount()
-                                                        {
-                                                            Id = puser.Id,
-                                                            UserId = puser.Id,
-                                                        }).Entity;
-                                                        db.SaveChanges();
-                                                    }
-                                                    //收支明细入库
-                                                    decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                                    decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                                    decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                                    account.BalanceAmount += Prize;
-                                                    account.TotalAmount += Prize;
-                                                    decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                                    decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                                    decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                                    UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                                    {
-                                                        CreateDate = DateTime.Now,
-                                                        UpdateDate = DateTime.Now,
-                                                        UserId = puser.Id, //创客
-                                                        ChangeType = 50, //变动类型
-                                                        ProductType = pos.BrandId, //产品类型
-                                                        ChangeAmount = Prize, //变更金额
-                                                        BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                        AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                        BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                        AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                        BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                        AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                                    }).Entity;
-                                                    db.SaveChanges();
-                                                    RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                                    string dateString = yesterday.ToString("yyyyMMdd");
-                                                    string monthString = yesterday.ToString("yyyyMM");
-                                                    // 开机奖励列表
-                                                    List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!dates.Contains(dateString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                                    List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                                    if (!months.Contains(monthString))
-                                                    {
-                                                        RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                                    }
-                                                    RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                                    // 开机奖励详情
-                                                    RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                                    //收支明细
-                                                    RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                                    RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                                    Prize -= 10;
-                                                }
-                                            }
-                                        }
-                                    }
-                                }
-                            // }
-                        }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-        public void dosomething42(string date)
-        { 
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<PosMerchantInfo> merList = db.PosMerchantInfo.Where(m => m.ActiveStatus == 1 && m.MerStandardDate >= yesterday && m.MerStandardDate < today && !string.IsNullOrEmpty(m.SeoKeyword) && m.SeoKeyword != "0").ToList();
-            foreach (PosMerchantInfo merchant in merList)
-            {
-                MachineForMerNo forMerNo = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == merchant.MerchantNo) ?? new MachineForMerNo();
-                PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forMerNo.SnId) ?? new PosMachinesTwo();
-                if (pos.ActivationTime > DateTime.Now.AddDays(-20) && pos.CreditTrade >= 1000)
-                {
-                    decimal ActPrize = decimal.Parse(function.CheckNum(merchant.SeoKeyword));
-                    if (ActPrize > 0)
-                    {
-                        // PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId && !string.IsNullOrEmpty(m.MerIdcardNo));
-                        // PosMerchantOtherInfo otherInfo = db.PosMerchantOtherInfo.FirstOrDefault(m => m.CertId == merchant.MerIdcardNo && m.PrizeFlag2 == 0);
-                        // if (otherInfo != null)
-                        // {
-                        //     otherInfo.PrizeFlag2 = 1;
-                        //     db.SaveChanges();
-                        // 从机具所属人上级开始分开机奖励
-                        Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId);
-                        if (user != null)
-                        {
-                            if (!string.IsNullOrEmpty(user.ParentNav))
-                            {
-                                decimal Prize = 20;
-                                string[] ParentNavs = user.ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                for (int i = ParentNavs.Length - 1; i >= 0; i--)
-                                {
-                                    int UserId = int.Parse(ParentNavs[i]);
-                                    Users puser = db.Users.FirstOrDefault(m => m.Id == UserId && m.AuthFlag == 1);
-                                    if (puser != null && Prize > 0)
-                                    {
-                                        int machineCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.PosSnType == 0); //判断是否拥有3台购买机
-                                        int ActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1); //判断是否拥有3台激活机(不限购买或赠送)
-                                        int couponCount = db.PosCoupons.Count(m => m.UserId == puser.Id && m.IsUse == 0); //判断是否拥有3张券
-                                        // int BigCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.BrandId == 3); //判断是否拥有2台大机
-                                        // int BigActiveCount = db.PosMachinesTwo.Count(m => m.UserId == puser.Id && m.ActivationState == 1 && m.BrandId == 3); //判断是否拥有2台激活大机(不限购买或赠送)
-                                        if (machineCount + ActiveCount + couponCount >= 3)
-                                        {
-                                            int pTopUserId = 0;
-                                            if (!string.IsNullOrEmpty(puser.ParentNav))
-                                            {
-                                                pTopUserId = int.Parse(puser.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                            }
-                                            Users machineUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                                            OpenRewardDetail detail = db.OpenRewardDetail.Add(new OpenRewardDetail()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = yesterday, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                ProductName = RelationClass.GetKqProductsInfo(pos.BrandId), //产品名称
-                                                MerchantId = pos.BindMerchantId, //商户
-                                                DirectUserId = merchant.UserId, //商户直属人
-                                                SnNo = pos.PosSn, //SN号
-                                                MerNo = merchant.KqMerNo, //渠道商户号
-                                                SnType = pos.PosSnType, //机具类型
-                                                StandardDate = pos.ActivationTime, //商户的激活日期
-                                                SnStoreId = pos.StoreId, //SN仓库
-                                                MerBuddyType = puser.MerchantType, //商户创客类型
-                                                RewardType = 1, //奖励类型 1-开机直接奖励,2-开机间接奖励
-                                                RewardTips = "开机奖励", //奖励描述
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                                SeoTitle = machineUser.RealName,
-                                            }).Entity;
-                                            db.OpenReward.Add(new OpenReward()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                TradeMonth = yesterday.ToString("yyyyMM"), //交易月
-                                                TradeDate = DateTime.Now, //达标日期
-                                                UserId = puser.Id, //创客
-                                                BrandId = pos.BrandId, //品牌
-                                                RewardType = 2, //奖励类型
-                                                CreditTradeAmt = pos.CreditTrade, //贷记卡交易总金额
-                                                DebitTradeAmt = pos.DebitCardTrade, //借记卡交易总金额
-                                                CreditRewardAmount = Prize, //贷记卡交易奖励金额
-                                                RewardDesc = "开机奖励", //奖励描述
-                                                TopUserId = pTopUserId, //顶级创客
-                                            });
-                                            string IdBrand = puser.Id + "_" + pos.BrandId;
-                                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                                            if (userData == null)
-                                            {
-                                                userData = db.UserMachineData.Add(new UserMachineData()
-                                                {
-                                                    IdBrand = IdBrand,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            userData.OpenProfit += Prize;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserMachineData:" + IdBrand, userData);
-                                            //账户入库
-                                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == puser.Id);
-                                            if (account == null)
-                                            {
-                                                account = db.UserAccount.Add(new UserAccount()
-                                                {
-                                                    Id = puser.Id,
-                                                    UserId = puser.Id,
-                                                }).Entity;
-                                                db.SaveChanges();
-                                            }
-                                            //收支明细入库
-                                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                                            account.BalanceAmount += Prize;
-                                            account.TotalAmount += Prize;
-                                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                                            {
-                                                CreateDate = DateTime.Now,
-                                                UpdateDate = DateTime.Now,
-                                                UserId = puser.Id, //创客
-                                                ChangeType = 50, //变动类型
-                                                ProductType = pos.BrandId, //产品类型
-                                                ChangeAmount = Prize, //变更金额
-                                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                                            }).Entity;
-                                            db.SaveChanges();
-                                            RedisDbconn.Instance.Set("UserAccount:" + puser.Id, account);
-
-                                            string dateString = yesterday.ToString("yyyyMMdd");
-                                            string monthString = yesterday.ToString("yyyyMM");
-                                            // 开机奖励列表
-                                            List<string> dates = RedisDbconn.Instance.GetList<string>("OpenRewardDay:" + puser.Id + ":" + pos.BrandId);
-                                            if (!dates.Contains(dateString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardDay:" + puser.Id + ":" + pos.BrandId, dateString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + dateString, Prize);
-
-                                            List<string> months = RedisDbconn.Instance.GetList<string>("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId);
-                                            if (!months.Contains(monthString))
-                                            {
-                                                RedisDbconn.Instance.AddList("OpenRewardMonth:" + puser.Id + ":" + pos.BrandId, monthString);
-                                            }
-                                            RedisDbconn.Instance.AddNumber("OpenRewardAmt:" + puser.Id + ":" + pos.BrandId + ":" + monthString, Prize);
-
-                                            // 开机奖励详情
-                                            RedisDbconn.Instance.AddList("OpenRewardDetail:" + puser.Id + ":" + pos.BrandId + ":" + dateString, detail);
-
-                                            //收支明细
-                                            RedisDbconn.Instance.AddList("UserAccountRecord:" + puser.Id + ":1:" + monthString, userAccountRecord);
-                                            RedisDbconn.Instance.AddNumber("UserAccount:" + puser.Id + ":1:" + monthString, Prize);
-
-                                            Prize -= 10;
-                                        }
-                                    }
-                                }
-                            }
-                        }
-                        // }
-                    }
-                }
-            }
-            db.Dispose();
-        }
-
-
-        // 4. 前一天的流量卡记录和匹配
-        public void ListenFluxRecord(string date)
-        { 
-            Thread th = new Thread(CheckFluxForTrade);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void doFluxRecord(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString(), "执行流量费返佣");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            WebCMSEntities db = new WebCMSEntities();
-            DateTime yesterday = DateTime.Parse(date + " 00:00:00");
-            DateTime today = DateTime.Parse(DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00");
-            List<SpModels.TradeFluxRecord> trades = spdb.TradeFluxRecord.Where(m => m.CreateDate >= yesterday && m.CreateDate < today && m.Status == 1).ToList();
-            foreach (SpModels.TradeFluxRecord trade in trades)
-            {
-                try
-                {
-                    string OrderNo = trade.TradeSerialNo; //单号
-                    DateTime TradeDate = trade.CreateDate.Value;
-                    string TradeMonth = TradeDate.ToString("yyyyMM");
-                    decimal FeeAmount = trade.FeeAmount; //流量费
-                    if (trade.ProductType == "1" || trade.ProductType == "4")
-                    {
-                        FeeAmount = FeeAmount / 100;
-                    }
-                    string TradeSnNo = trade.TradeSnNo; //机具SN
-                    decimal FluxProfit = 0;
-                    if (trade.ProductType == "1" && FeeAmount == 60)
-                    {
-                        FluxProfit = 24;
-                    }
-                    else if (trade.ProductType != "1" && FeeAmount == 48)
-                    {
-                        FluxProfit = 12;
-                    }
-                    if (FluxProfit > 0)
-                    {
-                        MachineForSnNo forSnNo = db.MachineForSnNo.FirstOrDefault(m => m.SnNo == TradeSnNo) ?? new MachineForSnNo();
-                        PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == forSnNo.SnId) ?? new PosMachinesTwo();
-                        PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PosMerchantInfo();
-                        bool checkExist = db.FluxProfitDetail.Any(m => m.MerNo == merchant.KqMerNo);
-                        if (!checkExist)
-                        {
-                            Users user = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new Users();
-                            int GetUserId = user.Id;
-                            int TopUserId = 0;
-                            string ParentNav = user.ParentNav;
-                            if (!string.IsNullOrEmpty(ParentNav))
-                            {
-                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                if (ParentNavList.Length > 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[1]);
-                                }
-                                else if (ParentNavList.Length == 1)
-                                {
-                                    TopUserId = int.Parse(ParentNavList[0]);
-                                }
-                            }
-                            FluxProfitSummary fluxProfit = db.FluxProfitSummary.FirstOrDefault(m => m.UserId == GetUserId && m.BrandId == pos.BrandId && m.TradeMonth == TradeMonth);
-                            if (fluxProfit == null)
-                            {
-                                fluxProfit = db.FluxProfitSummary.Add(new FluxProfitSummary()
-                                {
-                                    CreateDate = DateTime.Now,
-                                    UpdateDate = DateTime.Now,
-                                    UserId = GetUserId, //创客
-                                    BrandId = pos.BrandId,
-                                    TopUserId = TopUserId, //顶级创客
-                                    TradeMonth = TradeMonth, //交易月
-                                    MerUserType = user.MerchantType, //商户创客类型
-                                    Remark = "流量卡分佣", //备注
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            fluxProfit.FluxProfitAmt += FluxProfit; //流量分润总金额
-                            db.FluxProfitDetail.Add(new FluxProfitDetail()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                RecordNo = OrderNo, //单号
-                                TradeDate = TradeDate.ToString("yyyyMMdd"), //交易日期
-                                TradeTime = TradeDate.ToString("HHmmss"), //交易时间
-                                TradeMonth = TradeMonth, //交易月
-                                UserId = GetUserId, //创客
-                                MerchantId = pos.BindMerchantId, //商户
-                                MerchantUserId = pos.UserId, //商户直属人
-                                MerNo = merchant.KqMerNo, //渠道商户编号
-                                SnNo = pos.PosSn, //渠道SN号
-                                FluxOrderNo = OrderNo, //流量扣费单号
-                                TradeOrderNo = OrderNo, //交易流水号
-                                TradeAmt = trade.TradeAmount, //商户交易额
-                                FluxFeeAmt = FeeAmount, //流量费
-                                FluxProfitAmt = FluxProfit, //流量分润总金额
-                                PosType = pos.PosSnType.ToString(), //POS类型
-                                Remark = "流量卡分佣", //备注
-                                BrandId = pos.BrandId, //品牌
-                                TopUserId = TopUserId, //顶级创客
-                                MerUserType = user.MerchantType, //商户创客类型
-                            });
-                            string IdBrand = user.Id + "_" + pos.BrandId;
-                            UserMachineData userData = db.UserMachineData.FirstOrDefault(m => m.IdBrand == IdBrand);
-                            if (userData == null)
-                            {
-                                userData = db.UserMachineData.Add(new UserMachineData()
-                                {
-                                    IdBrand = IdBrand,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            userData.FluxProfit += FluxProfit;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserMachineData:" + IdBrand);
-                            UserAccount account = db.UserAccount.FirstOrDefault(m => m.Id == GetUserId);
-                            if (account == null)
-                            {
-                                account = db.UserAccount.Add(new UserAccount()
-                                {
-                                    Id = GetUserId,
-                                    UserId = GetUserId,
-                                }).Entity;
-                                db.SaveChanges();
-                            }
-                            decimal BeforeTotalAmount = account.TotalAmount; //变更前总金额
-                            decimal BeforeFreezeAmount = account.FreezeAmount; //变更前冻结金额
-                            decimal BeforeBalanceAmount = account.BalanceAmount; //变更前余额
-                            account.BalanceAmount += FluxProfit;
-                            account.TotalAmount += FluxProfit;
-                            decimal AfterTotalAmount = account.TotalAmount; //变更后总金额
-                            decimal AfterFreezeAmount = account.FreezeAmount; //变更后冻结金额
-                            decimal AfterBalanceAmount = account.BalanceAmount; //变更后余额
-                            UserAccountRecord userAccountRecord = db.UserAccountRecord.Add(new UserAccountRecord()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = GetUserId, //创客
-                                ChangeType = 60, //变动类型
-                                ProductType = pos.BrandId, //产品类型
-                                ChangeAmount = FluxProfit, //变更金额
-                                BeforeTotalAmount = BeforeTotalAmount, //变更前总金额
-                                AfterTotalAmount = AfterTotalAmount, //变更后总金额
-                                BeforeFreezeAmount = BeforeFreezeAmount, //变更前冻结金额
-                                AfterFreezeAmount = AfterFreezeAmount, //变更后冻结金额
-                                BeforeBalanceAmount = BeforeBalanceAmount, //变更前余额
-                                AfterBalanceAmount = AfterBalanceAmount, //变更后余额
-                            }).Entity;
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Clear("UserAccount:" + GetUserId);
-                        }
-                        SpModels.TradeFluxRecord edit = spdb.TradeFluxRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                            spdb.SaveChanges();
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + trade.Id + "$\n" + ex.ToString(), "流量卡分佣异常");
-                }
-            }
-            spdb.Dispose();
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "执行流量费返佣");
-        }
-        public void CheckFluxForTrade(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString(), "扫描金控交易记录中的流量费");
-            SpModels.WebCMSEntities spdb = new SpModels.WebCMSEntities();
-            DateTime start = DateTime.Parse(date + " 00:00:00");
-            DateTime end = start.AddDays(1);
-            var list = spdb.TradeRecord.Select(m => new { m.Id, m.CreateDate, m.ProductType }).Where(m => m.CreateDate > start && m.CreateDate < end && m.ProductType == "1").OrderBy(m => m.CreateDate);
-            foreach (var sub in list.ToList())
-            {
-                try
-                {
-                    SpModels.TradeRecord trade = spdb.TradeRecord.FirstOrDefault(m => m.Id == sub.Id);
-                    if (trade != null)
-                    {
-                        string content = trade.SeoDescription;
-                        if (!string.IsNullOrEmpty(content))
-                        {
-                            content = System.Web.HttpUtility.UrlDecode(content);
-                            JsonData jsonObj = JsonMapper.ToObject(content);
-                            decimal terminalDataFlowFee = decimal.Parse(function.CheckNum(jsonObj["terminalDataFlowFee"].ToString()));
-                            if (terminalDataFlowFee > 0)
-                            {
-                                spdb.TradeFluxRecord.Add(new SpModels.TradeFluxRecord()
-                                {
-                                    SeoDescription = trade.TradeSerialNo,
-                                    FeeAmount = terminalDataFlowFee,
-                                    TradeSerialNo = function.MD5_16(trade.TradeSerialNo),
-                                    CreateDate = trade.CreateDate,
-                                    TradeSnNo = trade.TradeSnNo,
-                                    ProductType = trade.ProductType,
-                                    Status = 1,
-                                });
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n$" + sub.Id + "$\n" + ex.ToString(), "扫描金控交易记录中的流量费异常");
-                }
-            }
-            spdb.Dispose();
-            function.WriteLog(DateTime.Now.ToString() + "\n", "扫描金控交易记录中的流量费");
-
-            doFluxRecord(date);
-        }
-
-
-
-
-
-
-        // 每天统计头一天的交易额
-        public void StartEverDay(string date)
-        { 
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DateTime end = DateTime.Parse("2022-04-19 00:00:00");
-            // DateTime check = DateTime.Parse("2022-03-11");
-            // while (check <= end)
-            // {
-            //     Thread th = new Thread(StatTradeAmountEverDay);
-            //     th.IsBackground = true;
-            //     th.Start(check.ToString("yyyy-MM-dd"));
-            //     check = check.AddDays(1);
-            // }
-            Thread th = new Thread(StatTradeAmountEverDay);
-            th.IsBackground = true;
-            th.Start(date);
-        }
-        public void StatTradeAmountEverDay(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-
-        public void StatTradeAmountEverDay2(object sender)
-        {
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                string startId = "0", endId = "9999999999";
-                List<string> uids = new List<string>();
-                DataTable startDt = OtherMySqlConn.dtable("select min(Id) from TradeRecord where CreateDate>='" + start + "'");
-                if (startDt.Rows.Count > 0)
-                {
-                    startId = startDt.Rows[0][0].ToString();
-                }
-                function.WriteLog(startId + "\n\n", "执行昨天交易额日志");
-                // DataTable endDt = OtherMySqlConn.dtable("select max(Id) from TradeRecord where CreateDate<'" + end + "'");
-                // if (endDt.Rows.Count > 0)
-                // {
-                //     endId = endDt.Rows[0][0].ToString();
-                // }
-                
-                function.WriteLog("ap到main开始:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-                Models.WebCMSEntities maindb = new Models.WebCMSEntities();
-                DateTime StartDate = DateTime.Parse(start);
-                DateTime EndDate = DateTime.Parse(end);
-                int StartTradeId = int.Parse(function.CheckInt(startId));
-                bool op = true;
-                while (op)
-                {
-                    List<TradeRecord> list = db.TradeRecord.Where(m => m.Id > StartTradeId && m.CreateDate >= StartDate && m.CreateDate < EndDate).OrderBy(m => m.Id).Take(500).ToList();
-                    if (list.Count > 0)
-                    {
-                        foreach (TradeRecord sub in list)
-                        {
-                            maindb.TradeRecord.Add(new Models.TradeRecord()
-                            {
-                                CreateDate = sub.CreateDate,
-                                UpdateDate = sub.UpdateDate,
-                                RecordNo = sub.RecordNo, //单号
-                                UserId = sub.UserId, //创客
-                                MerchantId = sub.MerchantId, //商户
-                                MerNo = sub.MerNo, //渠道商户编号
-                                MerHelpFlag = sub.MerHelpFlag, //是否属于扶持周期内商户
-                                HelpMonthCount = sub.HelpMonthCount, //扶持第几个月
-                                MerBuddyType = sub.MerBuddyType, //商户创客类型
-                                SnNo = sub.SnNo, //渠道SN号
-                                TradeDate = sub.TradeDate, //交易日期
-                                ClearDate = sub.ClearDate, //清算日期
-                                TradeSerialNo = sub.TradeSerialNo, //交易流水号
-                                TradeAmount = sub.TradeAmount, //交易金额
-                                BankCardType = sub.BankCardType, //银行卡类型
-                                QrPayFlag = sub.QrPayFlag, //云闪付标识
-                                CapFlag = sub.CapFlag, //借记卡封顶交易标志
-                                DirectFlag = sub.DirectFlag, //是否直营
-                                BrandId = sub.BrandId, //品牌
-                                Remark = sub.Remark, //备注
-                                TopUserId = sub.TopUserId, //顶级创客
-                                MerUserId = sub.MerUserId, //商户直属创客
-                            });
-                            StartTradeId = sub.Id;
-                        }
-                        maindb.SaveChanges();
-                    }
-                    else
-                    {
-                        op = false;
-                    }
-                }
-                maindb.Dispose();
-                function.WriteLog("ap到main结束:"+DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行昨天交易额日志");
-
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT UserId from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "')");
-                function.WriteLog("交易人数:" + userDt.Rows.Count + "\n\n", "执行昨天交易额日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId=" + UserId + " group by BrandId,BankCardType,QrPayFlag");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int BankCardType = int.Parse(selfDr["BankCardType"].ToString());
-                        int QrPayFlag = int.Parse(selfDr["QrPayFlag"].ToString());
-                        decimal TradeAmount = decimal.Parse(selfDr[3].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        if (BankCardType == 0)
-                        {
-                            selfStat.DirectDebitTradeAmt += TradeAmount;
-                        }
-                        else if (BankCardType != 0)
-                        {
-                            selfStat.DirectTradeAmt += TradeAmount;
-                        }
-                        db.SaveChanges();
-                    }
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeMonth);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalCloudPayAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalPosAmount:" + UserId + ":" + TradeDate);
-                    // RedisDbconn.Instance.Clear("TotalAmount:" + UserId + ":*:" + TradeDate);
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,BankCardType,QrPayFlag,sum(TradeAmount) from TradeRecord where Id>=" + startId + " and Id<=" + endId + " and CreateDate>='" + start + "' and CreateDate<'" + end + "' and UserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId,BankCardType,QrPayFlag");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int BankCardType = int.Parse(teamDr["BankCardType"].ToString());
-                                    int QrPayFlag = int.Parse(teamDr["QrPayFlag"].ToString());
-                                    decimal TradeAmount = decimal.Parse(teamDr[3].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    if (BankCardType == 0)
-                                    {
-                                        teamStat.NonDirectDebitTradeAmt += TradeAmount;
-                                    }
-                                    else if (BankCardType != 0)
-                                    {
-                                        teamStat.NonDirectTradeAmt += TradeAmount;
-                                    }
-                                    db.SaveChanges();
-                                }
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeMonth);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalCloudPayAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalPosAmount:" + NavUserId + ":" + TradeDate);
-                                // RedisDbconn.Instance.Clear("TeamTotalAmount:" + NavUserId + ":*:" + TradeDate);
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计昨天的交易额异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行昨天交易额日志");
-
-            StatMerchantTrade(date);
-        }
-
-        public void StatTradeAmountEverDaySum()
-        {
-            // WebCMSEntities db = new WebCMSEntities();
-            // OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            // DataTable dt = OtherMySqlConn.dtable("select UserId,BrandId,QueryCount,TradeDate,TradeMonth,sum(DirectDebitTradeAmt) as DirectDebitTradeAmt,sum(DirectTradeAmt) as DirectTradeAmt,sum(NonDirectDebitTradeAmt) as NonDirectDebitTradeAmt,sum(NonDirectTradeAmt) as NonDirectTradeAmt from UserTradeDaySummary group by UserId,BrandId,QueryCount,TradeDate,TradeMonth order by UserId,BrandId,QueryCount");
-            // string html = "<table>";
-            // foreach (DataRow dr in dt.Rows)
-            // {
-            //     html += "<tr>";
-            //     string TradeDate = dr["TradeDate"].ToString();
-            //     string TradeMonth = dr["TradeMonth"].ToString();
-            //     int UserId = int.Parse(dr["UserId"].ToString());
-            //     int BrandId = int.Parse(dr["BrandId"].ToString());
-            //     int QrPayFlag = int.Parse(dr["QueryCount"].ToString());
-            //     decimal DirectDebitTradeAmt = decimal.Parse(dr["DirectDebitTradeAmt"].ToString());
-            //     decimal DirectTradeAmt = decimal.Parse(dr["DirectTradeAmt"].ToString());
-            //     decimal NonDirectDebitTradeAmt = decimal.Parse(dr["NonDirectDebitTradeAmt"].ToString());
-            //     decimal NonDirectTradeAmt = decimal.Parse(dr["NonDirectTradeAmt"].ToString());
-            //     decimal CurAmount = 0, CurTotalAmount = 0, CurMonthAmount = 0, CurDayAmount = 0;
-
-            //     CurTotalAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId); //总交易
-            //     CurMonthAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeDate); //总交易
-            //     CurDayAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + TradeMonth); //总交易
-            //     CurAmount = RedisDbconn.Instance.Get<decimal>("TotalAmount:" + UserId + ":" + BrandId + ":" + TradeDate); //总交易
-            //     decimal TotalPosAmount = 0;
-            //     decimal TotalCloudPayAmount = 0;
-            //     decimal TeamTotalPosAmount = 0;
-            //     decimal TeamTotalCloudPayAmount = 0;
-            //     if (QrPayFlag == 1)
-            //     {
-            //         TotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TotalCloudPayAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //         TeamTotalCloudPayAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalCloudPayAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //     }
-            //     else
-            //     {
-            //         TotalPosAmount = RedisDbconn.Instance.Get<decimal>("TotalPosAmount:" + UserId + ":" + TradeDate); //POS机刷卡交易额
-            //         TeamTotalPosAmount = RedisDbconn.Instance.Get<decimal>("TeamTotalPosAmount:" + UserId + ":" + TradeDate); //云闪付小额交易额
-            //     }
-            //     Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-            //     html += "<td>应得</td>";
-            //     html += "<td>" + user.MakerCode + "</td>";
-            //     html += "<td>" + user.RealName + "</td>";
-            //     html += "<td>" + user.Mobile + "</td>";
-            //     html += "<td>" + BrandId + "</td>";
-            //     html += "<td>" + QrPayFlag + "</td>";
-            //     html += "<td>" + DirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + DirectTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectDebitTradeAmt + "</td>";
-            //     html += "<td>" + NonDirectTradeAmt + "</td>";
-            //     html += "</tr>";
-
-            //     html += "<tr>";
-            //     html += "<td>当前</td>";
-            //     html += "<td></td>";
-            //     html += "<td></td>";
-            //     html += "<td>当天品牌:" + CurAmount + "</td>";
-            //     html += "<td>总交易:" + CurTotalAmount + "</td>";
-            //     html += "<td>当月:" + CurMonthAmount + "</td>";
-            //     html += "<td>当天:" + CurDayAmount + "</td>";
-            //     html += "<td>" + TotalPosAmount + "</td>";
-            //     html += "<td>" + TotalCloudPayAmount + "</td>";
-            //     html += "<td>" + TeamTotalPosAmount + "</td>";
-            //     html += "<td>" + TeamTotalCloudPayAmount + "</td>";
-            //     html += "</tr>";
-            // }
-            // html += "</table>";
-            // db.Dispose();
-            // // OtherMySqlConn.connstr = ;
-            // function.WritePage("/html/", "1.html", html);
-        }
-
-
-        //统计商户交易额
-        private void StatMerchantTrade(string date)
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行商户交易额日志");
-            // WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                OtherMySqlConn.op("insert into PosMerchantTradeSummay (MerchantId,BrandId,TradeDate,TradeMonth,TradeAmount,CreateDate)  select *,now() from (select MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d') as TradeDate,DATE_FORMAT(CreateDate,'%Y%m') as TradeMonth,sum(TradeAmount) as TradeAmount from TradeRecord where CreateDate>='" + start + "' and CreateDate<'" + end + "' group by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d'),TradeDate,DATE_FORMAT(CreateDate,'%Y%m') order by MerchantId,BrandId,DATE_FORMAT(CreateDate,'%Y%m%d')) tb");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*");
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "").Substring(0, 6)); //商户当月交易
-                RedisDbconn.Instance.Clear("PosMerchantAmount:*:" + date.Replace("-", "")); //商户当日交易
-                // foreach (DataRow selfDr in selfdt.Rows)
-                // {
-                //     int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                //     int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
-                //     string TradeDate = selfDr["TradeDate"].ToString();
-                //     TradeDate = TradeDate.Replace("-", "");
-                //     string TradeMonth = TradeDate.Substring(0, 6);
-                //     decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
-                //     PosMerchantTradeSummay merStat = db.PosMerchantTradeSummay.FirstOrDefault(m => m.MerchantId == MerchantId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId);
-                //     if (merStat == null)
-                //     {
-                //         merStat = db.PosMerchantTradeSummay.Add(new PosMerchantTradeSummay()
-                //         {
-                //             MerchantId = MerchantId,
-                //             TradeMonth = TradeMonth,
-                //             TradeDate = TradeDate,
-                //             BrandId = BrandId,
-                //         }).Entity;
-                //         db.SaveChanges();
-                //     }
-                //     merStat.TradeAmount += TradeAmount;
-                //     db.SaveChanges();                    
-                // }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "统计商户的交易额");
-            }
-            // db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行商户交易额日志");
-        }
-
-
-        // 5. 创客升级
-        public void StatUserLevel()
-        { 
-            Thread th = new Thread(StatUserLevelDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StatUserLevelDo()
-        {
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-                DateTime start = DateTime.Parse(DateTime.Now.AddMonths(-1).ToString("yyyy-MM") + "-01 00:00:00");
-                DateTime end = start.AddDays(1);
-                string TradeMonth = DateTime.Now.AddMonths(-1).ToString("yyyyMM");
-                List<UserLevelSet> sets = db.UserLevelSet.ToList();
-                var users = db.Users.Select(m => new { m.Id, m.AuthFlag }).Where(m => m.AuthFlag == 1).ToList();
-                function.WriteLog(users.Count.ToString(), "创客升级日志");
-                foreach (var subuser in users)
-                {
-                    Users user = db.Users.FirstOrDefault(m => m.Id == subuser.Id);
-                    if (user != null)
-                    {
-                        int BeforeLevel = user.UserLevel;
-                        int AfterLevel = 0;
-                        decimal TradeAmount = 0;
-                        bool check = db.UserTradeDaySummary.Any(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team");
-                        if (check)
-                        {
-                            TradeAmount = db.UserTradeDaySummary.Where(m => m.UserId == user.Id && m.TradeMonth == TradeMonth && m.SeoTitle == "team").Sum(m => m.NonDirectTradeAmt);
-                        }
-                        UserLevelSet set = sets.FirstOrDefault(m => m.UpLevelGrowth <= TradeAmount && m.UpLevelIntegral > TradeAmount);
-                        if (set != null)
-                        {
-                            AfterLevel = set.Id;
-                        }
-                        if (AfterLevel > BeforeLevel && AfterLevel > 1)
-                        {
-                            user.UserLevel = AfterLevel;
-                            db.UserRank.Add(new UserRank()
-                            {
-                                CreateDate = DateTime.Now,
-                                UpdateDate = DateTime.Now,
-                                UserId = user.Id, //创客
-                                WhiteRank = BeforeLevel,
-                                Rank = AfterLevel, //当前等级
-                                StatYear = DateTime.Now.Year, //统计年份
-                                StatMonth = DateTime.Now.Month, //统计月份
-                                TradeAmt = TradeAmount, //团队交易总额
-                                UpgradeFlag = 1, //升级标识
-                                OperateDate = DateTime.Now, //操作时间
-                            });
-                            db.SaveChanges();
-                            RedisDbconn.Instance.Set("UserLevelData:" + user.Id, BeforeLevel + "#" + AfterLevel);
-                        }
-                    }
-                }
-                function.WriteLog(DateTime.Now.ToString(), "创客升级日志");
-            }
-            catch (Exception ex)
-            { 
-                function.WriteLog(ex.ToString(), "创客升级异常");
-            }
-            db.Dispose();
-
-            
-            ProfitHelper.Instance.StatProfit("202204");
-        }
-
-
-        // 统计创客激活数
-        public void StartPosActNum()
-        { 
-            Thread th = new Thread(StartPosActNumFor);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartPosActNumFor()
-        { 
-            DateTime end = DateTime.Parse("2022-05-24 00:00:00");
-            DateTime check = DateTime.Parse("2022-03-11");
-            while (check <= end)
-            {
-                StartPosActNumDo(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartPosActNumDo(object sender)
-        {
-            OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-            string date = sender.ToString();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行创客激活数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                string TradeDate = date.Replace("-", "");
-                string TradeMonth = TradeDate.Substring(0, 6);
-                string start = date + " 00:00:00";
-                string end = DateTime.Parse(date).AddDays(1).ToString("yyyy-MM-dd") + " 00:00:00";
-                List<string> uids = new List<string>();
-                DataTable userDt = OtherMySqlConn.dtable("select Id,ParentNav from Users where Id in (select DISTINCT BuyUserId from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "')");
-                function.WriteLog("人数:" + userDt.Rows.Count + "\n\n", "执行创客激活数日志");
-                foreach (DataRow userDr in userDt.Rows)
-                {
-                    int UserId = int.Parse(userDr["Id"].ToString());
-                    string ParentNav = userDr["ParentNav"].ToString();
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    DataTable selfdt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId=" + UserId + " group by BrandId");
-                    function.WriteLog(UserId + ":" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                    foreach (DataRow selfDr in selfdt.Rows)
-                    {
-                        int BrandId = int.Parse(selfDr["BrandId"].ToString());
-                        int QrPayFlag = 0;
-                        int ActCount = int.Parse(selfDr[1].ToString());
-                        UserTradeDaySummary selfStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                            {
-                                UserId = UserId,
-                                TradeMonth = TradeMonth,
-                                TradeDate = TradeDate,
-                                BrandId = BrandId,
-                                QueryCount = QrPayFlag,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.DirectDebitCapNum += ActCount;
-                        db.SaveChanges();
-                    }
-                    if (!string.IsNullOrEmpty(ParentNav))
-                    {
-                        ParentNav += "," + UserId + ",";
-                        string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                        foreach (string NavUserIdString in ParentNavList)
-                        {
-                            if (!uids.Contains(NavUserIdString + start))
-                            {
-                                uids.Add(NavUserIdString + start);
-                                int NavUserId = int.Parse(NavUserIdString);
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                DataTable teamDt = OtherMySqlConn.dtable("select BrandId,count(Id) from PosMachinesTwo where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "' and BuyUserId in (select Id from Users where ParentNav like '%," + NavUserId + ",%' or Id=" + NavUserId + ") group by BrandId");
-                                function.WriteLog(NavUserId + ":team:" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-                                foreach (DataRow teamDr in teamDt.Rows)
-                                {
-                                    int BrandId = int.Parse(teamDr["BrandId"].ToString());
-                                    int QrPayFlag = 0;
-                                    int ActCount = int.Parse(teamDr[1].ToString());
-                                    UserTradeDaySummary teamStat = db.UserTradeDaySummary.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.BrandId == BrandId && m.QueryCount == QrPayFlag && m.SeoTitle == "team");
-                                    if (teamStat == null)
-                                    {
-                                        teamStat = db.UserTradeDaySummary.Add(new UserTradeDaySummary()
-                                        {
-                                            UserId = NavUserId,
-                                            TradeMonth = TradeMonth,
-                                            TradeDate = TradeDate,
-                                            BrandId = BrandId,
-                                            QueryCount = QrPayFlag,
-                                            SeoTitle = "team",
-                                        }).Entity;
-                                        db.SaveChanges();
-                                    }
-                                    teamStat.NonDirectDebitCapNum += ActCount;
-                                    db.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                }
-                OtherMySqlConn.op("update PosMachinesTwo set QueryCount=1 where QueryCount=0 and ActivationState=1 and ActivationTime>='" + start + "' and ActivationTime<'" + end + "'");
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行创客激活数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行创客激活数日志");
-            Thread.Sleep(60000);
-        }
-
-        // 统计新增创客数
-        public void StartNewUserNum()
-        { 
-            Thread th = new Thread(StartNewUserNumDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-        public void StartNewUserNumDo()
-        {
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "执行新增创客数日志");
-            WebCMSEntities db = new WebCMSEntities();
-            try
-            {
-                OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["Pxc1SqlConnStr"].ToString();
-                DataTable dt = OtherMySqlConn.dtable("select ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d'),count(Id) from Users where QueryCount=0 and ParentUserId>0 and AuthFlag=1 GROUP BY ParentUserId,DATE_FORMAT(AuthDate,'%Y%m%d')");
-                if (dt.Rows.Count > 0)
-                {
-                    OtherMySqlConn.op("update Users set QueryCount=1 where QueryCount=0 and ParentUserId>0 and AuthFlag=1");
-                    foreach (DataRow dr in dt.Rows)
-                    {
-                        int UserId = int.Parse(dr["ParentUserId"].ToString());
-                        string StatDate = dr[1].ToString();
-                        string StatMonth = StatDate.Substring(0, 6);
-                        int NewCount = int.Parse(dr[2].ToString());
-                        PullnewSummary selfStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == UserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "self");
-                        if (selfStat == null)
-                        {
-                            selfStat = db.PullnewSummary.Add(new PullnewSummary()
-                            {
-                                UserId = UserId,
-                                StatMonth = StatMonth,
-                                StatDate = StatDate,
-                                SeoTitle = "self",
-                            }).Entity;
-                            db.SaveChanges();
-                        }
-                        selfStat.RecUserAuthNum += NewCount;
-                        db.SaveChanges();
-                        Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
-                        string ParentNav = user.ParentNav;
-                        ParentNav += "," + UserId + ",";
-                        if (!string.IsNullOrEmpty(ParentNav))
-                        {
-                            string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                            foreach (string NavUserIdString in ParentNavList)
-                            {
-                                int NavUserId = int.Parse(NavUserIdString);
-                                PullnewSummary teamStat = db.PullnewSummary.FirstOrDefault(m => m.UserId == NavUserId && m.StatMonth == StatMonth && m.StatDate == StatDate && m.SeoTitle == "team");
-                                if (teamStat == null)
-                                {
-                                    teamStat = db.PullnewSummary.Add(new PullnewSummary()
-                                    {
-                                        UserId = NavUserId,
-                                        StatMonth = StatMonth,
-                                        StatDate = StatDate,
-                                        SeoTitle = "team",
-                                    }).Entity;
-                                    db.SaveChanges();
-                                }
-                                teamStat.RecUserAuthNum += NewCount;
-                                db.SaveChanges();
-                            }
-                        }
-                    }
-                }
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "执行新增创客数异常");
-            }
-            db.Dispose();
-            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
-            Thread.Sleep(60000);
-        }
-    }
-}

+ 0 - 108
.history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220502130035.cs

@@ -1,108 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpActiveService
-    {
-        public readonly static SycnSpActiveService Instance = new SycnSpActiveService();
-        private SycnSpActiveService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    string Month = DateTime.Now.ToString("yyyyMM");
-                    string Date = DateTime.Now.ToString("yyyyMMdd");
-                    DateTime start = DateTime.Now.AddDays(-5);
-                    IQueryable<ActivateRecord> acts = spdb.ActivateRecord;
-                    acts = acts.Where(m => m.ActivateDate >= start && m.Status == 1);
-                    acts = acts.OrderByDescending(m => m.Id);
-                    foreach (ActivateRecord act in acts.ToList())
-                    {
-                        bool op = false;
-                        if (act.ActivateStatus == "00" && act.ProductType == "1")
-                        {
-                            op = true;
-                        }
-                        else if (act.ProductType == "2" || act.ProductType == "4" || act.ProductType == "6")
-                        {
-                            op = true;
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == act.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                // pos.ActivationState = 1;
-                                // pos.ActivationTime = DateTime.Now;
-                                if (pos.BrandId == 2 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6)
-                                {
-                                    pos.SeoKeyword = act.SeoTitle;
-                                    pos.IsPurchase = 0;
-                                    db.SaveChanges();
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.PosSn, pos);
-                                }
-
-                                // PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                // if (merchant != null)
-                                // {
-                                //     merchant.ActiveStatus = 1;
-                                //     merchant.MerStandardDate = DateTime.Now;
-                                //     db.SaveChanges();
-                                //     RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                // }
-
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-
-                                // 激活奖励
-                                // ProfitHelper.Instance.StartListenActiveDo(pos);
-                            }
-                            pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId && m.ActivationState == 1);
-                            if (pos != null)
-                            {
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                            }
-                        }
-                    }
-                    spdb.SaveChanges();
-                    spdb.Dispose();
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP激活数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 108
.history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190450.cs

@@ -1,108 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpActiveService
-    {
-        public readonly static SycnSpActiveService Instance = new SycnSpActiveService();
-        private SycnSpActiveService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    string Month = DateTime.Now.ToString("yyyyMM");
-                    string Date = DateTime.Now.ToString("yyyyMMdd");
-                    DateTime start = DateTime.Now.AddDays(-5);
-                    IQueryable<ActivateRecord> acts = spdb.ActivateRecord;
-                    acts = acts.Where(m => m.ActivateDate >= start && m.Status == 1);
-                    acts = acts.OrderByDescending(m => m.Id);
-                    foreach (ActivateRecord act in acts.ToList())
-                    {
-                        bool op = false;
-                        if (act.ActivateStatus == "00" && act.ProductType == "1")
-                        {
-                            op = true;
-                        }
-                        else if (act.ProductType == "2" || act.ProductType == "4" || act.ProductType == "6")
-                        {
-                            op = true;
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == act.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                // pos.ActivationState = 1;
-                                // pos.ActivationTime = DateTime.Now;
-                                if (pos.BrandId == 2 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6 || pos.BrandId == 7)
-                                {
-                                    pos.SeoKeyword = act.SeoTitle;
-                                    pos.IsPurchase = 0;
-                                    db.SaveChanges();
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.PosSn, pos);
-                                }
-
-                                // PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                // if (merchant != null)
-                                // {
-                                //     merchant.ActiveStatus = 1;
-                                //     merchant.MerStandardDate = DateTime.Now;
-                                //     db.SaveChanges();
-                                //     RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                // }
-
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-
-                                // 激活奖励
-                                // ProfitHelper.Instance.StartListenActiveDo(pos);
-                            }
-                            pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId && m.ActivationState == 1);
-                            if (pos != null)
-                            {
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                            }
-                        }
-                    }
-                    spdb.SaveChanges();
-                    spdb.Dispose();
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP激活数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 108
.history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190518.cs

@@ -1,108 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpActiveService
-    {
-        public readonly static SycnSpActiveService Instance = new SycnSpActiveService();
-        private SycnSpActiveService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    string Month = DateTime.Now.ToString("yyyyMM");
-                    string Date = DateTime.Now.ToString("yyyyMMdd");
-                    DateTime start = DateTime.Now.AddDays(-5);
-                    IQueryable<ActivateRecord> acts = spdb.ActivateRecord;
-                    acts = acts.Where(m => m.ActivateDate >= start && m.Status == 1);
-                    acts = acts.OrderByDescending(m => m.Id);
-                    foreach (ActivateRecord act in acts.ToList())
-                    {
-                        bool op = false;
-                        if (act.ActivateStatus == "00" && act.ProductType == "1")
-                        {
-                            op = true;
-                        }
-                        else if (act.ProductType == "2" || act.ProductType == "4" || act.ProductType == "6" || act.ProductType == "7")
-                        {
-                            op = true;
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == act.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                // pos.ActivationState = 1;
-                                // pos.ActivationTime = DateTime.Now;
-                                if (pos.BrandId == 2 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6 || pos.BrandId == 7)
-                                {
-                                    pos.SeoKeyword = act.SeoTitle;
-                                    pos.IsPurchase = 0;
-                                    db.SaveChanges();
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.PosSn, pos);
-                                }
-
-                                // PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                // if (merchant != null)
-                                // {
-                                //     merchant.ActiveStatus = 1;
-                                //     merchant.MerStandardDate = DateTime.Now;
-                                //     db.SaveChanges();
-                                //     RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                // }
-
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-
-                                // 激活奖励
-                                // ProfitHelper.Instance.StartListenActiveDo(pos);
-                            }
-                            pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId && m.ActivationState == 1);
-                            if (pos != null)
-                            {
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                            }
-                        }
-                    }
-                    spdb.SaveChanges();
-                    spdb.Dispose();
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP激活数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 108
.history/AppStart/Helper/SycnSpServer/SycnSpActiveService_20220524190519.cs

@@ -1,108 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpActiveService
-    {
-        public readonly static SycnSpActiveService Instance = new SycnSpActiveService();
-        private SycnSpActiveService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    string Month = DateTime.Now.ToString("yyyyMM");
-                    string Date = DateTime.Now.ToString("yyyyMMdd");
-                    DateTime start = DateTime.Now.AddDays(-5);
-                    IQueryable<ActivateRecord> acts = spdb.ActivateRecord;
-                    acts = acts.Where(m => m.ActivateDate >= start && m.Status == 1);
-                    acts = acts.OrderByDescending(m => m.Id);
-                    foreach (ActivateRecord act in acts.ToList())
-                    {
-                        bool op = false;
-                        if (act.ActivateStatus == "00" && act.ProductType == "1")
-                        {
-                            op = true;
-                        }
-                        else if (act.ProductType == "2" || act.ProductType == "4" || act.ProductType == "6" || act.ProductType == "7")
-                        {
-                            op = true;
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == act.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                // pos.ActivationState = 1;
-                                // pos.ActivationTime = DateTime.Now;
-                                if (pos.BrandId == 2 || pos.BrandId == 4 || pos.BrandId == 5 || pos.BrandId == 6 || pos.BrandId == 7)
-                                {
-                                    pos.SeoKeyword = act.SeoTitle;
-                                    pos.IsPurchase = 0;
-                                    db.SaveChanges();
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.Id, pos);
-                                    RedisDbconn.Instance.Set("PosMachinesTwo:" + pos.PosSn, pos);
-                                }
-
-                                // PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                // if (merchant != null)
-                                // {
-                                //     merchant.ActiveStatus = 1;
-                                //     merchant.MerStandardDate = DateTime.Now;
-                                //     db.SaveChanges();
-                                //     RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                // }
-
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-
-                                // 激活奖励
-                                // ProfitHelper.Instance.StartListenActiveDo(pos);
-                            }
-                            pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId && m.ActivationState == 1);
-                            if (pos != null)
-                            {
-                                ActivateRecord edit = spdb.ActivateRecord.FirstOrDefault(m => m.Id == act.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                            }
-                        }
-                    }
-                    spdb.SaveChanges();
-                    spdb.Dispose();
-                    db.SaveChanges();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP激活数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-    }
-}

+ 0 - 409
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220522141932.cs

@@ -1,409 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 421
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524190809.cs

@@ -1,421 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        else if (pos.BrandId == 7)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 421
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191030.cs

@@ -1,421 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        else if (pos.BrandId == 7)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "CC" || trade.BankCardType == "SCC")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 421
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191031.cs

@@ -1,421 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        else if (pos.BrandId == 7)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "CC" || trade.BankCardType == "SCC")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 421
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524191112.cs

@@ -1,421 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        else if (pos.BrandId == 7)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "CC" || trade.BankCardType == "SCC")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 421
.history/AppStart/Helper/SycnSpServer/SycnSpTradeService_20220524213842.cs

@@ -1,421 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.Linq;
-using MySystem.SpModels;
-using Library;
-using LitJson;
-using System.Threading;
-
-namespace MySystem
-{
-    public class SycnSpTradeService
-    {
-        public readonly static SycnSpTradeService Instance = new SycnSpTradeService();
-        private SycnSpTradeService()
-        { }
-
-        public void Start()
-        {
-            Thread th = new Thread(StartDo);
-            th.IsBackground = true;
-            th.Start();
-        }
-
-        public void StartDo()
-        {
-            while (true)
-            {
-                try
-                {
-                    WebCMSEntities spdb = new WebCMSEntities();
-                    PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                    DateTime start = DateTime.Now.AddDays(-30);
-                    IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                    trades = trades.Where(m => m.CreateDate >= start && m.Status == 1);
-                    trades = trades.OrderBy(m => m.CreateDate);
-                    foreach (TradeRecord trade in trades.ToList())
-                    {
-                        bool op = true;
-                        if (trade.SerEntryMode == "N")
-                        {
-                            if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                            {
-                                op = false;
-                                PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                                PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                                if (pos != null)
-                                {
-                                    if (trade.SerEntryMode == "N" && trade.ProductType == "1")
-                                    {
-                                        pos.SeoKeyword = trade.TradeAmount.ToString("f2");
-                                        pos.IsPurchase = 0;
-                                        db.SaveChanges();
-                                    }
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                        if (trade.DiscountRateFlag == "True")
-                        { 
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                        if (op)
-                        {
-                            PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                            PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                            if (pos != null)
-                            {
-                                if (pos.BindMerchantId > 0)
-                                {
-                                    PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                    int TopUserId = 0;
-                                    if (!string.IsNullOrEmpty(user.ParentNav))
-                                    {
-                                        TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                    }
-                                    bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                    if (!check)
-                                    {
-                                        decimal TradeAmount = trade.TradeAmount;
-                                        int BankCardType = -1;
-                                        int QrPayFlag = 0;
-                                        if (pos.BrandId == 1 || pos.BrandId == 3)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            BankCardType = int.Parse(trade.BankCardType);
-                                            if (trade.TradeType == "02") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 2)
-                                        {
-                                            if (trade.TradeType == "CREDIT_BY_CARD")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.TradeType == "DEBIT_BY_CARD")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "100")
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                            else if (trade.BankCardType == "200")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            if (trade.TradeType == "200") QrPayFlag = 1;
-                                        }
-                                        else if (pos.BrandId == 6)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "01" || trade.BankCardType == "11")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        else if (pos.BrandId == 7)
-                                        {
-                                            TradeAmount = TradeAmount / 100;
-                                            if (trade.BankCardType == "CC" || trade.BankCardType == "SCC")
-                                            {
-                                                BankCardType = 0;
-                                            }
-                                            else
-                                            {
-                                                BankCardType = 1;
-                                            }
-                                        }
-                                        int BrandId = int.Parse(trade.ProductType);
-                                        if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
-                                        {
-                                            BrandId = 3;
-                                        }
-                                        if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
-                                            BrandId = 5;
-                                        }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                        {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
-                                        decimal CheckMoney = 1000;
-                                        int CheckDays = 20;
-                                        if (pos.BrandId == 6)
-                                        { 
-                                            CheckMoney = 5000;
-                                            CheckDays = 30;
-                                        }
-                                        if (BankCardType == 1 || (BankCardType == 2 && pos.BrandId == 1) || (BankCardType == 2 && pos.BrandId == 3))
-                                        {
-                                            pos.CreditTrade += TradeAmount;
-                                        }
-                                        else if (BankCardType == 0)
-                                        {
-                                            pos.DebitCardTrade += TradeAmount;
-                                        }
-                                        if (pos.CreditTrade < CheckMoney)
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit > 0)
-                                            { 
-                                                pos.IsPurchase = 0;
-                                            }
-                                            else
-                                            {
-                                                pos.IsPurchase = 99;
-                                            }
-                                        }
-                                        else if (pos.CreditTrade >= CheckMoney && pos.ActivationState == 0 && pos.BindingTime > DateTime.Now.AddDays(-CheckDays))
-                                        {
-                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
-                                            if (deposit == 0)
-                                            {
-                                                pos.IsPurchase = 0;
-                                            }
-                                            pos.ActivationState = 1;
-                                            pos.ActivationTime = DateTime.Now;
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId);
-                                            if (merchant != null)
-                                            {
-                                                merchant.ActiveStatus = 1;
-                                                merchant.MerStandardDate = DateTime.Now;
-                                                db.SaveChanges();
-                                                RedisDbconn.Instance.Set("PosMerchantInfo:" + merchant.Id, merchant);
-                                            }
-                                        }
-                                        // 立刷60天内刷满10000,再返40
-                                        if (pos.BrandId == 6 && pos.CreditTrade >= 10000 && pos.BindingTime > DateTime.Now.AddDays(-60))
-                                        {
-                                            PxcModels.PosMerchantInfo merchant = db.PosMerchantInfo.FirstOrDefault(m => m.Id == pos.BindMerchantId) ?? new PxcModels.PosMerchantInfo();
-                                            PxcModels.Users getUser = db.Users.FirstOrDefault(m => m.Id == pos.BuyUserId) ?? new PxcModels.Users();
-                                            int BuyTopUserId = 0;
-                                            string ParentNav = getUser.ParentNav;
-                                            if (!string.IsNullOrEmpty(ParentNav))
-                                            {
-                                                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
-                                                if (ParentNavList.Length > 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[1]);
-                                                }
-                                                else if (ParentNavList.Length == 1)
-                                                {
-                                                    BuyTopUserId = int.Parse(ParentNavList[0]);
-                                                }
-                                            }
-                                            StatService.Instance.doActiveReward(db, merchant, pos, getUser.Id, getUser.ParentNav, BuyTopUserId, 40, 12);
-                                        }
-                                        db.SaveChanges();
-                                    }
-                                    TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                    if (edit != null)
-                                    {
-                                        edit.Status = 2;
-                                    }
-                                    spdb.SaveChanges();
-                                }
-                            }
-                        }
-                    }
-                    spdb.Dispose();
-                    db.Dispose();
-                }
-                catch (Exception ex)
-                {
-                    function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-                }
-                Thread.Sleep(1000);
-            }
-        }
-
-
-
-
-        public void StartTest()
-        { 
-            DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
-            DateTime check = DateTime.Parse("2022-04-19");
-            while (check <= today)
-            {
-                Thread th = new Thread(StartTestDo);
-                th.IsBackground = true;
-                th.Start(check.ToString("yyyy-MM-dd"));
-                check = check.AddDays(1);
-            }
-        }
-        public void StartTestDo(object sender)
-        {
-            string date = sender.ToString();
-            DateTime start = DateTime.Parse(date);
-            DateTime end = start.AddDays(1);
-            try
-            {
-                WebCMSEntities spdb = new WebCMSEntities();
-                PxcModels.WebCMSEntities db = new PxcModels.WebCMSEntities();
-                IQueryable<TradeRecord> trades = spdb.TradeRecord;
-                trades = trades.Where(m => m.CreateDate >= start && m.CreateDate < end);
-                trades = trades.OrderBy(m => m.Id);
-                foreach (TradeRecord trade in trades.ToList())
-                {
-                    bool op = true;
-                    if (trade.SerEntryMode == "N")
-                    {
-                        if (trade.TradeAmount == 9900 || trade.TradeAmount == 19900 || trade.TradeAmount == 29900)
-                        {
-                            op = false;
-                            TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                            if (edit != null)
-                            {
-                                edit.Status = 2;
-                            }
-                            spdb.SaveChanges();
-                        }
-                    }
-                    if (trade.DiscountRateFlag == "True")
-                    { 
-                        op = false;
-                        TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                        if (edit != null)
-                        {
-                            edit.Status = 2;
-                        }
-                        spdb.SaveChanges();
-                    }
-                    if (op)
-                    {
-                        PxcModels.MachineForMerNo posFor = db.MachineForMerNo.FirstOrDefault(m => m.MerNo == trade.MerNo) ?? new PxcModels.MachineForMerNo();
-                        PxcModels.PosMachinesTwo pos = db.PosMachinesTwo.FirstOrDefault(m => m.Id == posFor.SnId);
-                        if (pos != null)
-                        {
-                            if (pos.BindMerchantId > 0)
-                            {
-                                PxcModels.Users user = db.Users.FirstOrDefault(m => m.Id == pos.UserId) ?? new PxcModels.Users();
-                                int TopUserId = 0;
-                                if (!string.IsNullOrEmpty(user.ParentNav))
-                                {
-                                    TopUserId = int.Parse(user.ParentNav.Trim(',').Replace(",,", ",").Split(',')[0]);
-                                }
-                                bool check = db.TradeRecord.Any(m => m.RecordNo == trade.TradeSerialNo);
-                                if (!check)
-                                {
-                                    decimal TradeAmount = trade.TradeAmount;
-                                    int BankCardType = -1;
-                                    int QrPayFlag = 0;
-                                    if (pos.BrandId == 1 || pos.BrandId == 3)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        BankCardType = int.Parse(trade.BankCardType);
-                                        if (trade.TradeType == "02") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 2)
-                                    {
-                                        if (trade.TradeType == "CREDIT_BY_CARD")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.TradeType == "DEBIT_BY_CARD")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "CLOUD_PAY") QrPayFlag = 1;
-                                    }
-                                    else if (pos.BrandId == 4 || pos.BrandId == 5)
-                                    {
-                                        TradeAmount = TradeAmount / 100;
-                                        if (trade.BankCardType == "100")
-                                        {
-                                            BankCardType = 1;
-                                        }
-                                        else if (trade.BankCardType == "200")
-                                        {
-                                            BankCardType = 0;
-                                        }
-                                        if (trade.TradeType == "200") QrPayFlag = 1;
-                                    }
-                                    int BrandId = int.Parse(trade.ProductType);
-                                    if (trade.MerNo.StartsWith("M900"))
-                                    {
-                                        BrandId = 3;
-                                    }
-                                    db.TradeRecord.Add(new PxcModels.TradeRecord()
-                                    {
-                                        CreateDate = trade.CreateDate,
-                                        UpdateDate = trade.UpdateDate,
-                                        RecordNo = trade.TradeSerialNo, //单号
-                                        UserId = pos.UserId, //创客
-                                        MerchantId = pos.BindMerchantId, //商户
-                                        MerNo = trade.MerNo, //渠道商户编号
-                                        MerHelpFlag = 0, //是否属于扶持周期内商户
-                                        HelpMonthCount = 0, //扶持第几个月
-                                        MerBuddyType = user.MerchantType, //商户创客类型
-                                        SnNo = trade.TradeSnNo, //渠道SN号
-                                                                // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                        TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                        TradeAmount = TradeAmount, //交易金额
-                                        BankCardType = BankCardType, //银行卡类型
-                                        QrPayFlag = QrPayFlag, //云闪付标识
-                                        BrandId = BrandId, //品牌
-                                        Remark = trade.Remark, //备注
-                                        TopUserId = TopUserId, //顶级创客
-                                        MerUserId = pos.UserId, //商户直属创客
-                                    });
-                                    db.SaveChanges();
-                                }
-                                TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
-                                if (edit != null)
-                                {
-                                    edit.Status = 2;
-                                }
-                                spdb.SaveChanges();
-                            }
-                        }
-                    }
-                }
-                spdb.Dispose();
-                db.Dispose();
-            }
-            catch (Exception ex)
-            {
-                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "同步SP交易数据到MAIN异常");
-            }
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220523234811.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // TradeStatTimer.Instance.Start(); //交易统计
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            // SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220525102702.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            TradeStatTimer.Instance.Start(); //交易统计
-            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220525102707.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            TradeStatTimer.Instance.Start(); //交易统计
-            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220525102708.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            TradeStatTimer.Instance.Start(); //交易统计
-            ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220525155548.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // TradeStatTimer.Instance.Start(); //交易统计
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 266
.history/Startup_20220525155550.cs

@@ -1,266 +0,0 @@
-using System;
-using System.Collections.Generic;
-using System.ServiceModel;
-using Microsoft.AspNetCore.Builder;
-using Microsoft.AspNetCore.Hosting;
-using Microsoft.AspNetCore.Http;
-using Microsoft.AspNetCore.Http.Features;
-using Microsoft.AspNetCore.Rewrite;
-using Microsoft.AspNetCore.StaticFiles;
-using Microsoft.Extensions.Configuration;
-using Microsoft.Extensions.DependencyInjection;
-using Microsoft.Extensions.FileProviders;
-using Microsoft.Extensions.Hosting;
-using MySystem.PublicClass.GraphQL;
-using System.Text;
-using Microsoft.IdentityModel.Tokens;
-using System.Linq;
-
-namespace MySystem
-{
-    public class Startup
-    {
-        public Startup(IConfiguration configuration)
-        {
-            Configuration = configuration;
-
-        }
-
-        public IConfiguration Configuration { get; }
-
-        // This method gets called by the runtime. Use this method to add services to the container.
-        public void ConfigureServices(IServiceCollection services)
-        {
-            services.AddControllersWithViews();
-            services.AddRouting(options =>
-            {
-                options.LowercaseUrls = true;
-            });
-            services.AddSingleton<IHttpContextAccessor, HttpContextAccessor>();
-            services.Configure<Setting>(Configuration.GetSection("Setting"));
-            services.AddCors(option => option.AddPolicy("cors", policy => policy.AllowAnyHeader().AllowAnyMethod().AllowCredentials().SetIsOriginAllowed(_ => true)));
-            services.AddMvc(options =>
-            {
-                options.EnableEndpointRouting = false;
-                options.Filters.Add(typeof(GlobalExceptions));
-            });
-            services.AddSession(options =>
-            {
-                // 设置 Session 过期时间
-                options.IdleTimeout = TimeSpan.FromHours(1);
-                options.Cookie.HttpOnly = true;
-            });
-            services.AddSingleton<IRepository, Repository>();
-            services.Configure<FormOptions>(x =>
-            {
-                x.MultipartBodyLengthLimit = 50 * 1024 * 1024;//不到300M
-            });
-            //生成密钥
-            var symmetricKeyAsBase64 = Configuration["Setting:JwtSecret"];
-            var keyByteArray = Encoding.ASCII.GetBytes(symmetricKeyAsBase64);
-            var signingKey = new SymmetricSecurityKey(keyByteArray);
-            //认证参数
-            services.AddAuthentication("Bearer").AddJwtBearer(o =>
-            {
-                o.TokenValidationParameters = new TokenValidationParameters
-                {
-                    ValidateIssuerSigningKey = true,//是否验证签名,不验证的画可以篡改数据,不安全
-                    IssuerSigningKey = signingKey,//解密的密钥
-                    ValidateIssuer = true,//是否验证发行人,就是验证载荷中的Iss是否对应ValidIssuer参数
-                    // ValidIssuer = Configuration["Setting:JwtIss"],//发行人
-                    IssuerValidator = (m, n, z) =>
-                    {
-                        return n.Issuer;
-                    },
-                    ValidateAudience = true,//是否验证订阅人,就是验证载荷中的Aud是否对应ValidAudience参数
-                    // ValidAudience = Configuration["Setting:JwtAud"],//订阅人
-                    AudienceValidator = (m, n, z) =>
-                    {
-                        string check = RedisDbconn.Instance.Get<string>("utoken:" + n.Issuer);
-                        return m != null && m.FirstOrDefault().Equals(check);
-                    },
-                    ValidateLifetime = true,//是否验证过期时间,过期了就拒绝访问
-                    ClockSkew = TimeSpan.Zero,//这个是缓冲过期时间,也就是说,即使我们配置了过期时间,这里也要考虑进去,过期时间+缓冲,默认好像是7分钟,你可以直接设置为0
-                    RequireExpirationTime = true,
-                };
-            });
-
-            // services.AddHostedService<TradeService>();
-            // services.AddHostedService<TeamTopService>();
-            // services.AddHostedService<PopService>();
-            // services.AddHostedService<SycnSpTimer>(); //同步SP数据
-            
-            // services.AddHostedService<TimerStatTimer>(); //实时统计创客、激活商户数
-            // services.AddHostedService<PosTradeStatTimer>(); // 统计头天的交易额、商户型创客、激活奖励、开机奖励
-            // services.AddHostedService<AlipayPayBack2Timer>(); //支付宝回调处理
-
-            //services.AddHttpContextAccessor();
-
-            string appkey = Configuration["Setting:AppKey"];
-            string appid = Configuration["Setting:AppId"];
-            string checkurl = Configuration["Setting:CheckUrl"];
-            string serviceurl = Configuration["Setting:WebServiceUrl"];
-            string schemeurl = Configuration["Setting:DbSchemeUrl"];
-            MySystemLib.SystemPublicFuction.appkey = appkey;
-            MySystemLib.SystemPublicFuction.appid = appid;
-            MySystemLib.SystemPublicFuction.checkurl = checkurl;
-            MySystemLib.SystemPublicFuction.appcheck = "success";
-            // var binding = new BasicHttpBinding();
-            // binding.MaxReceivedMessageSize = 2147483647;
-            // var endpoint = new EndpointAddress(Configuration["Setting:WebServiceUrl"]);
-            // var factory = new ChannelFactory<GetDataBaseSoap>(binding, endpoint);
-            // var callClient = factory.CreateChannel();
-            // DataBaseRequestBody body = new DataBaseRequestBody();
-            // body.appid = appid;
-            // body.appkey = appkey;
-            // var request = new DataBaseRequest(body);
-            // var wait = callClient.DataBaseAsync(request);
-            // wait.Wait();
-            // tempuri.org.CustomerTables[] servicetable = wait.Result.Body.DataBaseResult;
-            // Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            // foreach (tempuri.org.CustomerTables subtable in servicetable)
-            // {
-            //     Dictionary<string, string> Columns = new Dictionary<string, string>();
-            //     foreach (tempuri.org.CustomerColumns subcolumn in subtable.Columns)
-            //     {
-            //         Columns.Add(subcolumn.FieldName, subcolumn.FieldType);
-            //     }
-            //     tables.Add(subtable.TableName, Columns);
-            // }
-            // servicetable = null;
-            // string database = Library.function.GetWebRequest(serviceurl + "?appid=" + appid + "&appkey=" + appkey);
-            // Dictionary<string, Dictionary<string, string>> tables = Newtonsoft.Json.JsonConvert.DeserializeObject<Dictionary<string, Dictionary<string, string>>>(database);
-            // MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            // string schemeString = Library.function.GetWebRequest(schemeurl + "?appid=" + appid + "&appkey=" + appkey);
-            // RedisDbconn.Instance.Set("dbscheme", Newtonsoft.Json.JsonConvert.DeserializeObject<List<MySystem.DbScheme>>(schemeString));
-            Dictionary<string, Dictionary<string, string>> tables = new Dictionary<string, Dictionary<string, string>>();
-            System.Data.DataTable tablecollection = Library.dbconn.dtable("select DISTINCT TABLE_NAME from information_schema.columns where table_schema = 'KxsMainServer'");
-            foreach (System.Data.DataRow subtable in tablecollection.Rows)
-            {
-                Dictionary<string, string> Columns = new Dictionary<string, string>();
-                System.Data.DataTable columncollection = Library.dbconn.dtable("select COLUMN_NAME,DATA_TYPE from information_schema.columns where table_schema = 'KxsMainServer' and TABLE_NAME='" + subtable["TABLE_NAME"].ToString() + "'");
-                foreach (System.Data.DataRow column in columncollection.Rows)
-                {
-                    string datatype = column["DATA_TYPE"].ToString();
-                    if (datatype == "decimal")
-                    {
-                        datatype = "numeric";
-                    }
-                    Columns.Add(column["COLUMN_NAME"].ToString(), datatype);
-                }
-                tables.Add(subtable["TABLE_NAME"].ToString(), Columns);
-            }
-            MySystemLib.SystemPublicFuction.dbtables = tables;
-
-            RedisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:RedisConnStr"]);
-            TendisDbconn.csredis = new CSRedis.CSRedisClient(Configuration["Setting:TendisConnStr"]);
-        }
-
-        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
-        public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
-        {
-            if (env.IsDevelopment())
-            {
-                app.UseDeveloperExceptionPage();
-                // app.UseExceptionHandler("/Home/Error");
-            }
-            else
-            {
-                app.UseExceptionHandler("/Home/Error");
-                app.UseHsts();
-            }
-            Library.function.WritePage("/", "WebRootPath.txt", env.WebRootPath);
-            // app.UseStatusCodePagesWithReExecute("/public/errpage/pc/{0}.html");
-
-            // RequestDelegate handler = async context =>
-            // {
-            //     var response = context.Response;
-            //     if (response.StatusCode < 500)
-            //     {
-            //         response.("/public/errpage/pc/{0}.html");
-            //     }
-            // };
-            // app.UseStatusCodePages(builder => builder.Run(handler));
-            app.UseStaticFiles();
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/static"),
-            //     RequestPath = "/static"
-            // });
-            // app.UseStaticFiles(new StaticFileOptions
-            // {
-            //     FileProvider = new PhysicalFileProvider(AppContext.BaseDirectory + "/" + Configuration["Setting:Database"]),
-            //     RequestPath = "/" + Configuration["Setting:Database"]
-            // });
-            app.UseStaticFiles(new StaticFileOptions
-            {
-                ContentTypeProvider = new FileExtensionContentTypeProvider(new Dictionary<string, string>
-                {
-                      { ".apk", "application/vnd.android.package-archive" }
-                })
-            });
-
-            app.UseCors("cors");
-            app.UseAuthentication();
-            app.UseRouting();
-            app.UseAuthorization();
-            app.UseSession();
-
-            app.UseEndpoints(endpoints =>
-            {
-                endpoints.MapControllerRoute(
-                    name: "default",
-                    pattern: "{controller=Home}/{action=Index}/{Id?}");
-            });
-
-            // app.UseMiddleware<GraphQLMiddleware>();
-
-
-            // TradeStatTimer2.Instance.Start(); //交易统计
-
-            //必须打开的
-            // ActiveRewardTimer.Instance.Start(); //实时处理激活记录
-            // TradeStatTimer.Instance.Start(); //交易统计
-            // ChangePosTimer.Instance.Start(); //售后换新执行机具数据转移
-            // MakeReferenceQrCodeService.Instance.StartListen(); //生成创客邀请二维码
-            // SycnSpBindService.Instance.Start(); //同步SP绑定数据
-            // SycnSpMerchantService.Instance.Start(); //同步SP商户数据
-            // SycnSpActiveService.Instance.Start(); //同步SP激活数据
-            SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            // StatService.Instance.StartPosActNum(); //实时统计激活数
-            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
-            //必须打开的
-
-
-            // StatService.Instance.StatUserLevel();
-            // StatService.Instance.StartEverDay("2022-05-11");
-            // ProfitHelper.Instance.StatProfit("202204"); //统计分润
-            // StatService.Instance.ListenFluxRecord();
-            // StatService.Instance.StartEverDay2();
-            // TestHelper.Instance.Start();
-            // StatService.Instance.StartEverDay();
-            // RabbitMQClient.Instance.StartReceive("MerchantConfirmList");
-            // RabbitMQClient.Instance.StartReceive("CheckWeChatSign");
-            // RabbitMQClient.Instance.StartReceive("CheckAlipaySign");
-            // RabbitMQClient.Instance.StartReceive("DeleteMySqlData");
-            // RabbitMQClient.Instance.StartReceive("WeChatPayBack");
-            // RabbitMQClient.Instance.StartReceive("AlipayPayBack");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnDo");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersReturnStat");
-            // RabbitMQClient.Instance.StartReceive("ConsumerOrdersStat");
-            // RabbitMQClient.Instance.StartReceive("PublicMainServer");
-
-
-            // 备用,暂时不放开的
-            // StatStoreDataService.Instance.Start();
-            // RabbitMQClient.Instance.StartReceive("SycnTableData");
-            // PayHelper.Instance.Start();
-            // OrderHelper.Instance.Start();
-            // OrderRefundHelper.Instance.Start();
-            // ProductCommentHelper.Instance.Start();
-            // TimedTaskHelper.Instance.Start();
-            // TaskFlowHelper.Instance.Start();
-        }
-    }
-}

+ 0 - 39
.history/appsettings_20220520215259.json

@@ -1,39 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Setting": {
-    "AppKey": "8a3789362ef25d9f46a9d1c626e9e9f0",
-    "AppId": "1000000166",
-    "CheckUrl": "http://auth.yunmuit.com/Api/ProjectCheck/CheckRight",
-    "ConnectionStrings": "",
-    "WebServiceUrl": "http://auth.yunmuit.com/Api/ProjectCheck/DataBase",
-    "DbSchemeUrl": "http://auth.yunmuit.com/Api/ProjectCheck/GetDbScheme",
-    "Host": "http://localhost:5047/",
-    "SourceHost": "http://bs.kexiaoshuang.com/",
-    "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.108.231.170;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=localhost;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "localhost:6379,password=,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
-    "TendisConnStr": "localhost:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
-    "IOSAppVersion": "1.0.0",
-    "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
-    "AppSource": "/skin/app/default/",
-    "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
-    "JwtIss": "KxsMainServer",
-    "JwtAud": "api",
-    "MqUserName": "skb@rabbitmq",
-    "MqPassword": "skb@rabbitmq",
-    "MqHostName": "47.108.231.170:5672,47.108.225.92:5672"
-  }
-}

+ 0 - 39
.history/appsettings_20220525155728.json

@@ -1,39 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Setting": {
-    "AppKey": "8a3789362ef25d9f46a9d1c626e9e9f0",
-    "AppId": "1000000166",
-    "CheckUrl": "http://auth.yunmuit.com/Api/ProjectCheck/CheckRight",
-    "ConnectionStrings": "",
-    "WebServiceUrl": "http://auth.yunmuit.com/Api/ProjectCheck/DataBase",
-    "DbSchemeUrl": "http://auth.yunmuit.com/Api/ProjectCheck/GetDbScheme",
-    "Host": "http://localhost:5047/",
-    "SourceHost": "http://bs.kexiaoshuang.com/",
-    "Database": "KxsMainServer",
-    "SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "server=47.109.31.237:6379,password=,DefaultDatabase=0,poolsize=500,preheat=50,asyncPipeline=true",
-    "TendisConnStr": "server=47.109.31.237:6379,password=,DefaultDatabase=15,poolsize=500,preheat=50,asyncPipeline=true",
-    "IOSAppVersion": "1.0.0",
-    "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
-    "AppSource": "/skin/app/default/",
-    "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
-    "JwtIss": "KxsMainServer",
-    "JwtAud": "api",
-    "MqUserName": "skb@rabbitmq",
-    "MqPassword": "skb@rabbitmq",
-    "MqHostName": "47.108.231.170:5672,47.108.225.92:5672"
-  }
-}

+ 0 - 39
.history/appsettings_20220525155741.json

@@ -1,39 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Setting": {
-    "AppKey": "8a3789362ef25d9f46a9d1c626e9e9f0",
-    "AppId": "1000000166",
-    "CheckUrl": "http://auth.yunmuit.com/Api/ProjectCheck/CheckRight",
-    "ConnectionStrings": "",
-    "WebServiceUrl": "http://auth.yunmuit.com/Api/ProjectCheck/DataBase",
-    "DbSchemeUrl": "http://auth.yunmuit.com/Api/ProjectCheck/GetDbScheme",
-    "Host": "http://localhost:5047/",
-    "SourceHost": "http://bs.kexiaoshuang.com/",
-    "Database": "KxsMainServer",
-    "SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "TendisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "IOSAppVersion": "1.0.0",
-    "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
-    "AppSource": "/skin/app/default/",
-    "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
-    "JwtIss": "KxsMainServer",
-    "JwtAud": "api",
-    "MqUserName": "skb@rabbitmq",
-    "MqPassword": "skb@rabbitmq",
-    "MqHostName": "47.108.231.170:5672,47.108.225.92:5672"
-  }
-}

+ 0 - 39
.history/appsettings_20220525155742.json

@@ -1,39 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Setting": {
-    "AppKey": "8a3789362ef25d9f46a9d1c626e9e9f0",
-    "AppId": "1000000166",
-    "CheckUrl": "http://auth.yunmuit.com/Api/ProjectCheck/CheckRight",
-    "ConnectionStrings": "",
-    "WebServiceUrl": "http://auth.yunmuit.com/Api/ProjectCheck/DataBase",
-    "DbSchemeUrl": "http://auth.yunmuit.com/Api/ProjectCheck/GetDbScheme",
-    "Host": "http://localhost:5047/",
-    "SourceHost": "http://bs.kexiaoshuang.com/",
-    "Database": "KxsMainServer",
-    "SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "TendisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "IOSAppVersion": "1.0.0",
-    "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
-    "AppSource": "/skin/app/default/",
-    "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
-    "JwtIss": "KxsMainServer",
-    "JwtAud": "api",
-    "MqUserName": "skb@rabbitmq",
-    "MqPassword": "skb@rabbitmq",
-    "MqHostName": "47.108.231.170:5672,47.108.225.92:5672"
-  }
-}

+ 0 - 39
.history/appsettings_20220525160001.json

@@ -1,39 +0,0 @@
-{
-  "Logging": {
-    "LogLevel": {
-      "Default": "Information",
-      "Microsoft": "Warning",
-      "Microsoft.Hosting.Lifetime": "Information"
-    }
-  },
-  "AllowedHosts": "*",
-  "Setting": {
-    "AppKey": "8a3789362ef25d9f46a9d1c626e9e9f0",
-    "AppId": "1000000166",
-    "CheckUrl": "http://auth.yunmuit.com/Api/ProjectCheck/CheckRight",
-    "ConnectionStrings": "",
-    "WebServiceUrl": "http://auth.yunmuit.com/Api/ProjectCheck/DataBase",
-    "DbSchemeUrl": "http://auth.yunmuit.com/Api/ProjectCheck/GetDbScheme",
-    "Host": "http://localhost:5047/",
-    "SourceHost": "http://bs.kexiaoshuang.com/",
-    "Database": "KxsMainServer",
-    "SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "Pxc1SqlConnStr": "server=47.109.31.237;port=3306;user=KxsMainServer;password=Rw2imhXQQt5ODWIF;database=KxsMainServer;charset=utf8;",
-    "SpSqlConnStr": "server=47.109.31.237;port=3306;user=KxsSpServer;password=jJ9qKsvwWgQA9xWG;database=KxsSpServer;charset=utf8;",
-    "RedisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "TendisConnStr": "47.109.31.237:6379,password=klm@redis,DefaultDatabase=1,poolsize=500,preheat=50,asyncPipeline=true",
-    "IOSAppVersion": "1.0.0",
-    "AndroidAppVersion": "1.0.0",
-    "OSSKey": "iL9dWgBunZRwGbHQ",
-    "OSSSecret": "Q6P2vSNEY2LBNdygO8gUCkBZQpiswZ",
-    "OSSEndpoint": "oss-cn-hangzhou.aliyuncs.com",
-    "OSSBucketName": "yunmuit",
-    "AppSource": "/skin/app/default/",
-    "JwtSecret": "JvDHuowbOnWiyxMIFc9gG5rw1LSSc0xx68L31oRfxS0",
-    "JwtIss": "KxsMainServer",
-    "JwtAud": "api",
-    "MqUserName": "skb@rabbitmq",
-    "MqPassword": "skb@rabbitmq",
-    "MqHostName": "47.108.231.170:5672,47.108.225.92:5672"
-  }
-}

+ 19 - 0
AppStart/Helper/StatService.cs

@@ -1915,5 +1915,24 @@ namespace MySystem
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "执行新增创客数日志");
             Thread.Sleep(60000);
         }
+
+
+
+
+
+
+
+
+        #region 判断品牌互斥条件,根据身份证号
+
+        public bool CheckRepeatByBrand(WebCMSEntities db, int MerchantId)
+        {
+            int check = db.PosMachinesTwo.Count(m => m.Status > -1 && m.BindMerchantId == MerchantId);
+
+            return false;
+        }
+
+        #endregion
+
     }
 }

+ 42 - 30
AppStart/Helper/SycnSpServer/SycnSpTradeService.cs

@@ -61,7 +61,7 @@ namespace MySystem
                             }
                         }
                         if (trade.DiscountRateFlag == "True")
-                        { 
+                        {
                             op = false;
                             TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
                             if (edit != null)
@@ -138,12 +138,13 @@ namespace MySystem
                                             TradeAmount = TradeAmount / 100;
                                             if (trade.BankCardType == "CC" || trade.BankCardType == "SCC")
                                             {
-                                                BankCardType = 0;
+                                                BankCardType = 1;
                                             }
                                             else
                                             {
-                                                BankCardType = 1;
+                                                BankCardType = 0;
                                             }
+
                                         }
                                         int BrandId = int.Parse(trade.ProductType);
                                         if (BrandId == 1 && trade.MerNo.StartsWith("M900"))
@@ -151,36 +152,47 @@ namespace MySystem
                                             BrandId = 3;
                                         }
                                         if (BrandId == 4 && trade.DeviceType == "200")
-                                        { 
+                                        {
                                             BrandId = 5;
                                         }
-                                        db.TradeRecord.Add(new PxcModels.TradeRecord()
+                                        if (pos.Sort == 0 && pos.BrandId == 7)
                                         {
-                                            CreateDate = trade.CreateDate,
-                                            UpdateDate = trade.UpdateDate,
-                                            RecordNo = trade.TradeSerialNo, //单号
-                                            UserId = pos.UserId, //创客
-                                            MerchantId = pos.BindMerchantId, //商户
-                                            MerNo = trade.MerNo, //渠道商户编号
-                                            MerHelpFlag = 0, //是否属于扶持周期内商户
-                                            HelpMonthCount = 0, //扶持第几个月
-                                            MerBuddyType = user.MerchantType, //商户创客类型
-                                            SnNo = trade.TradeSnNo, //渠道SN号
-                                            // TradeDate = DateTime.Parse(trade.TradeTime), //交易日期
-                                            TradeSerialNo = trade.ChannelSerial, //交易流水号
-                                            TradeAmount = TradeAmount, //交易金额
-                                            BankCardType = BankCardType, //银行卡类型
-                                            QrPayFlag = QrPayFlag, //云闪付标识
-                                            BrandId = BrandId, //品牌
-                                            Remark = trade.Remark, //备注
-                                            TopUserId = TopUserId, //顶级创客
-                                            MerUserId = pos.UserId, //商户直属创客
-                                            ParentNav = user.ParentNav,
-                                        });
+                                            decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
+                                            if (deposit > 0)
+                                            {
+                                                TradeAmount -= deposit;
+                                                pos.Sort = 1;
+                                            }
+                                        }
+                                        if (TradeAmount > 0)
+                                        {
+                                            db.TradeRecord.Add(new PxcModels.TradeRecord()
+                                            {
+                                                CreateDate = trade.CreateDate,
+                                                UpdateDate = trade.UpdateDate,
+                                                RecordNo = trade.TradeSerialNo, //单号
+                                                UserId = pos.UserId, //创客
+                                                MerchantId = pos.BindMerchantId, //商户
+                                                MerNo = trade.MerNo, //渠道商户编号
+                                                MerHelpFlag = 0, //是否属于扶持周期内商户
+                                                HelpMonthCount = 0, //扶持第几个月
+                                                MerBuddyType = user.MerchantType, //商户创客类型
+                                                SnNo = trade.TradeSnNo, //渠道SN号
+                                                TradeSerialNo = trade.ChannelSerial, //交易流水号
+                                                TradeAmount = TradeAmount, //交易金额
+                                                BankCardType = BankCardType, //银行卡类型
+                                                QrPayFlag = QrPayFlag, //云闪付标识
+                                                BrandId = BrandId, //品牌
+                                                Remark = trade.Remark, //备注
+                                                TopUserId = TopUserId, //顶级创客
+                                                MerUserId = pos.UserId, //商户直属创客
+                                                ParentNav = user.ParentNav,
+                                            });
+                                        }
                                         decimal CheckMoney = 1000;
                                         int CheckDays = 20;
                                         if (pos.BrandId == 6)
-                                        { 
+                                        {
                                             CheckMoney = 5000;
                                             CheckDays = 30;
                                         }
@@ -196,7 +208,7 @@ namespace MySystem
                                         {
                                             decimal deposit = decimal.Parse(function.CheckNum(pos.SeoKeyword));
                                             if (deposit > 0)
-                                            { 
+                                            {
                                                 pos.IsPurchase = 0;
                                             }
                                             else
@@ -270,7 +282,7 @@ namespace MySystem
 
 
         public void StartTest()
-        { 
+        {
             DateTime today = DateTime.Parse(DateTime.Now.ToString("yyyy-MM-dd") + " 00:00:00");
             DateTime check = DateTime.Parse("2022-04-19");
             while (check <= today)
@@ -310,7 +322,7 @@ namespace MySystem
                         }
                     }
                     if (trade.DiscountRateFlag == "True")
-                    { 
+                    {
                         op = false;
                         TradeRecord edit = spdb.TradeRecord.FirstOrDefault(m => m.Id == trade.Id);
                         if (edit != null)

+ 2 - 2
Startup.cs

@@ -228,8 +228,8 @@ namespace MySystem
             SycnSpMerchantService.Instance.Start(); //同步SP商户数据
             SycnSpActiveService.Instance.Start(); //同步SP激活数据
             SycnSpTradeService.Instance.Start(); //同步SP交易数据
-            StatService.Instance.StartPosActNum(); //实时统计激活数
-            StatService.Instance.StartNewUserNum(); //实时统计新增创客数
+            // StatService.Instance.StartPosActNum(); //实时统计激活数
+            // StatService.Instance.StartNewUserNum(); //实时统计新增创客数
             //必须打开的