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

添加助利宝创客交易额统计

lcl 2 жил өмнө
parent
commit
b058ff44ed

+ 103 - 0
AppStart/Helper/StatHelpProfitService.cs

@@ -117,6 +117,8 @@ namespace MySystem
                                         db.SaveChanges();
                                     }
                                     amountStat.TradeAmount += TradeAmount + MoreAmount;
+                                    
+                                    StatTradeAmountEverDayForUser(db, merIds.UserId, TradeAmount + MoreAmount, TradeDate);
                                 }
                             }
                             OtherMySqlConn.op("update TradeRecord set QueryCount=3 where Id in (" + ids.TrimEnd(',') + ")");
@@ -136,6 +138,107 @@ namespace MySystem
             function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "实时执行助利宝交易额日志");
         }
 
+
+
+        public void AddUserHelpProfit()
+        {
+            Thread th = new Thread(AddUserHelpProfitDo);
+            th.IsBackground = true;
+            th.Start();
+        }
+        public void AddUserHelpProfitDo()
+        {
+            while (true)
+            {
+                if (RedisDbconn.Instance.Get<string>("StatServerStatus") == "1" && DateTime.Now.Hour >= 3)
+                {
+                    AddUserHelpProfitGo();
+                }
+                Thread.Sleep(5000);
+            }
+        }
+        public void AddUserHelpProfitGo()
+        {
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff"), "补助利宝创客交易额日志");
+            WebCMSEntities db = new WebCMSEntities();
+            try
+            {
+                string startId = function.ReadInstance("/TradeRecord/HelpProfitMerTradeSummayId.txt");
+                if (string.IsNullOrEmpty(startId))
+                {
+                    startId = "0";
+                }
+                DataTable selfDt = CustomerSqlConn.dtable("select * from HelpProfitMerTradeSummay where Id>" + startId + " and Id<465766 order by Id limit 100", AppConfig.Base.SqlConn);
+                if (selfDt.Rows.Count > 0)
+                {
+                    function.WriteLog("统计人数:" + selfDt.Rows.Count + "\n\n", "补助利宝创客交易额日志");
+                    foreach (DataRow selfDr in selfDt.Rows)
+                    {
+                        startId = selfDr["Id"].ToString();
+                        int MerchantId = int.Parse(selfDr["MerchantId"].ToString());
+                        string TradeDate = selfDr["TradeDate"].ToString();
+                        string TradeMonth = selfDr["TradeMonth"].ToString();
+                        decimal TradeAmount = decimal.Parse(selfDr["TradeAmount"].ToString());
+                        HelpProfitMerIds merIds = db.HelpProfitMerIds.FirstOrDefault(m => m.MerchantId == MerchantId) ?? new HelpProfitMerIds();
+                        StatTradeAmountEverDayForUser(db, merIds.UserId, TradeAmount, TradeDate);
+                        CustomerSqlConn.op("update HelpProfitMerTradeSummay set Status=1 where Id=" + startId, AppConfig.Base.SqlConn);
+                    }
+                    function.WritePage("/TradeRecord/", "HelpProfitMerTradeSummayId.txt", startId);
+                }
+                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", "补助利宝创客交易额日志");
+        }
+
+
+        private void StatTradeAmountEverDayForUser(WebCMSEntities db, int UserId, decimal TradeAmount, string TradeDate)
+        {
+            Users user = db.Users.FirstOrDefault(m => m.Id == UserId) ?? new Users();
+            string ParentNav = user.ParentNav;
+            string TradeMonth = TradeDate.Substring(0, 6);
+
+            HelpProfitUserTradeSummay selfStat = db.HelpProfitUserTradeSummay.FirstOrDefault(m => m.UserId == UserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.SeoTitle == "self");
+            if (selfStat == null)
+            {
+                selfStat = db.HelpProfitUserTradeSummay.Add(new HelpProfitUserTradeSummay()
+                {
+                    UserId = UserId,
+                    TradeMonth = TradeMonth,
+                    TradeDate = TradeDate,
+                    SeoTitle = "self",
+                }).Entity;
+                db.SaveChanges();
+            }
+            selfStat.TradeAmount += TradeAmount;
+            ParentNav += "," + UserId + ",";
+            if (!string.IsNullOrEmpty(ParentNav))
+            {
+                string[] ParentNavList = ParentNav.Trim(',').Replace(",,", ",").Split(',');
+                foreach (string NavUserIdString in ParentNavList)
+                {
+                    int NavUserId = int.Parse(NavUserIdString);
+                    HelpProfitUserTradeSummay teamStat = db.HelpProfitUserTradeSummay.FirstOrDefault(m => m.UserId == NavUserId && m.TradeMonth == TradeMonth && m.TradeDate == TradeDate && m.SeoTitle == "team");
+                    if (teamStat == null)
+                    {
+                        teamStat = db.HelpProfitUserTradeSummay.Add(new HelpProfitUserTradeSummay()
+                        {
+                            UserId = NavUserId,
+                            TradeMonth = TradeMonth,
+                            TradeDate = TradeDate,
+                            SeoTitle = "team",
+                        }).Entity;
+                        db.SaveChanges();
+                    }
+                    teamStat.TradeAmount += TradeAmount;
+                }
+            }
+            db.SaveChanges();
+        }
         public void StatTradeAmountTmp()
         {
             OtherMySqlConn.connstr = Library.ConfigurationManager.AppSettings["SqlConnStr"].ToString();

+ 26 - 0
PxcModels/HelpProfitUserTradeSummay.cs

@@ -0,0 +1,26 @@
+using System;
+using System.Collections.Generic;
+
+namespace MySystem.PxcModels
+{
+    public partial class HelpProfitUserTradeSummay
+    {
+        public int Id { get; set; }
+        public int Sort { get; set; }
+        public int QueryCount { get; set; }
+        public int Status { get; set; }
+        public int Version { get; set; }
+        public DateTime? CreateDate { get; set; }
+        public DateTime? UpdateDate { get; set; }
+        public string CreateMan { get; set; }
+        public string UpdateMan { get; set; }
+        public string SeoTitle { get; set; }
+        public string SeoKeyword { get; set; }
+        public string SeoDescription { get; set; }
+        public int BrandId { get; set; }
+        public decimal TradeAmount { get; set; }
+        public string TradeDate { get; set; }
+        public string TradeMonth { get; set; }
+        public int UserId { get; set; }
+    }
+}

+ 83 - 0
PxcModels/WebCMSEntities.cs

@@ -65,6 +65,7 @@ namespace MySystem.PxcModels
         public virtual DbSet<HelpProfitRebateDetail> HelpProfitRebateDetail { get; set; }
         public virtual DbSet<HelpProfitReward> HelpProfitReward { get; set; }
         public virtual DbSet<HelpProfitRewardDetail> HelpProfitRewardDetail { get; set; }
+        public virtual DbSet<HelpProfitUserTradeSummay> HelpProfitUserTradeSummay { get; set; }
         public virtual DbSet<IndexIconList> IndexIconList { get; set; }
         public virtual DbSet<KqProductBrand> KqProductBrand { get; set; }
         public virtual DbSet<KqProductOrgs> KqProductOrgs { get; set; }
@@ -3792,6 +3793,88 @@ namespace MySystem.PxcModels
                 entity.Property(e => e.Version).HasColumnType("int(11)");
             });
 
+            modelBuilder.Entity<HelpProfitUserTradeSummay>(entity =>
+            {
+                entity.HasComment("助利宝创客交易额统计");
+
+                entity.Property(e => e.Id).HasColumnType("int(11)");
+
+                entity.Property(e => e.BrandId)
+                    .HasColumnType("int(11)")
+                    .HasComment("品牌");
+
+                entity.Property(e => e.CreateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("创建时间");
+
+                entity.Property(e => e.CreateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("创建人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.QueryCount)
+                    .HasColumnType("int(11)")
+                    .HasComment("点击量");
+
+                entity.Property(e => e.SeoDescription)
+                    .HasColumnType("varchar(500)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoKeyword)
+                    .HasColumnType("varchar(200)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.SeoTitle)
+                    .HasColumnType("varchar(100)")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.Sort)
+                    .HasColumnType("int(11)")
+                    .HasComment("排序序号");
+
+                entity.Property(e => e.Status)
+                    .HasColumnType("int(11)")
+                    .HasComment("状态");
+
+                entity.Property(e => e.TradeAmount)
+                    .HasColumnType("decimal(18,2)")
+                    .HasComment("交易额");
+
+                entity.Property(e => e.TradeDate)
+                    .HasColumnType("varchar(8)")
+                    .HasComment("日期")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.TradeMonth)
+                    .HasColumnType("varchar(6)")
+                    .HasComment("月份")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UpdateDate)
+                    .HasColumnType("datetime")
+                    .HasComment("更新时间");
+
+                entity.Property(e => e.UpdateMan)
+                    .HasColumnType("varchar(50)")
+                    .HasComment("更新人")
+                    .HasCharSet("utf8")
+                    .HasCollation("utf8_general_ci");
+
+                entity.Property(e => e.UserId)
+                    .HasColumnType("int(11)")
+                    .HasComment("创客");
+
+                entity.Property(e => e.Version)
+                    .HasColumnType("int(11)")
+                    .HasComment("版本号");
+            });
+
             modelBuilder.Entity<IndexIconList>(entity =>
             {
                 entity.HasComment("首页快捷入口");

+ 1 - 0
Startup.cs

@@ -136,6 +136,7 @@ namespace MySystem
 
             StatNewService.Instance.CreateTable(); //创建RDS分表
             
+            StatHelpProfitService.Instance.AddUserHelpProfit(); //补创客助利宝交易额
             // ProfitService.Instance.AddRds(); //补RDS数据
             //必须打开的