lcl 2 жил өмнө
parent
commit
64476748fd

+ 91 - 0
AppStart/Helper/ProfitService.cs

@@ -208,6 +208,97 @@ namespace MySystem
 
 
 
+
+        public void AddRds()
+        {
+            // AddTradeDaySummary(); //补TradeDaySummary数据
+            // AddUserAccountRecord(); //补UserAccountRecord数据
+            // AddProfitRecord(); //补ProfitRecord数据
+            // AddSubsidyRecord(); //补SubsidyRecord数据
+            AddRdsData("UserAccountRecord");
+            AddRdsData("ProfitRecord");
+            AddRdsData("SubsidyRecord");
+        }
+
+        public void AddRdsData(string TableName)
+        {
+            Thread th = new Thread(AddRdsDataDo);
+            th.IsBackground = true;
+            th.Start(TableName);
+        }
+        public void AddRdsDataDo(object sender)
+        {
+            string TableName = sender.ToString();
+            while (true)
+            {
+                if(RedisDbconn.Instance.Get<string>(TableName + "ThreadStatus") == "1")
+                {
+                    RdsDataDo(TableName);
+                }
+                else
+                {
+                    Thread.Sleep(5000);
+                }
+            }
+        }
+        public void RdsDataDo(string TableName)
+        {
+            WebCMSEntities db = new WebCMSEntities();
+            PxcModels.WebCMSEntities maindb = new PxcModels.WebCMSEntities();
+            try
+            {
+                string sql = "";
+                int startId = int.Parse(function.CheckInt(function.ReadInstance("/TradeRecord/" + TableName + "Id.txt")));
+                DataTable dt = CustomerSqlConn.dtable("select * from " + TableName + " where Id>" + startId + " order by Id limit 100", AppConfig.Base.ProfitSqlConn);
+                if(dt.Rows.Count > 0)
+                {
+                    foreach(DataRow dr in dt.Rows)
+                    {
+                        string fields = "";
+                        string vals = "";
+                        foreach(DataColumn dc in dt.Columns)
+                        {
+                            fields += dc.ColumnName + ",";
+                            if(dc.DataType == typeof(DateTime))
+                            {
+                                string val = dr[dc.ColumnName].ToString();
+                                if(string.IsNullOrEmpty(val))
+                                {
+                                    val = "NULL";
+                                }
+                                else
+                                {
+                                    val = "'" + DateTime.Parse(val).ToString("yyyy-MM-dd HH:mm:ss") + "'";
+                                }
+                                vals = dr[dc.ColumnName].ToString() + ",";
+                            }
+                            if(dc.DataType == typeof(int) || dc.DataType == typeof(decimal))
+                            {
+                                vals = dr[dc.ColumnName].ToString() + ",";
+                            }
+                            else
+                            {
+                                vals = dr[dc.ColumnName].ToString() + ",";
+                            }
+                        }
+                        sql += "insert into (" + fields.TrimEnd(',') + ") values (" + vals.TrimEnd(',') + ");\n";
+                        startId = int.Parse(function.CheckInt(dr["Id"].ToString()));
+                    }
+                    CustomerSqlConn.op(sql, AppConfig.Base.ProfitSqlConn);
+                    function.WritePage("/TradeRecord/", TableName + "Id.txt", startId.ToString());   
+                }             
+            }
+            catch (Exception ex)
+            {
+                function.WriteLog(DateTime.Now.ToString() + "\n" + ex.ToString(), "补" + TableName + "数据异常");
+            }
+            maindb.Dispose();
+            db.Dispose();
+            function.WriteLog(DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") + "\n\n", "补" + TableName + "数据");
+        }
+
+
+
         // 补TradeDaySummary数据
         public void AddTradeDaySummary()
         {

+ 1 - 5
Startup.cs

@@ -140,11 +140,7 @@ namespace MySystem
 
             StatNewService.Instance.CreateTable(); //创建RDS分表
             
-            ProfitService.Instance.StartStat();
-            ProfitService.Instance.AddTradeDaySummary(); //补TradeDaySummary数据
-            ProfitService.Instance.AddUserAccountRecord(); //补UserAccountRecord数据
-            ProfitService.Instance.AddProfitRecord(); //补ProfitRecord数据
-            ProfitService.Instance.AddSubsidyRecord(); //补SubsidyRecord数据
+            ProfitService.Instance.AddRds(); //补RDS数据
             //必须打开的
 
         }