Explorar el Código

修复分表添加记录

lichunlei hace 2 años
padre
commit
97517c2023
Se han modificado 2 ficheros con 45 adiciones y 5 borrados
  1. 20 0
      .vscode/launch.json
  2. 25 5
      AppStart/Helper/SplitTableData/AddRecordService.cs

+ 20 - 0
.vscode/launch.json

@@ -23,6 +23,26 @@
                 "/Views": "${workspaceFolder}/Views"
             }
         },
+        {
+            "name": ".NET Core Launch (pro)",
+            "type": "coreclr",
+            "request": "launch",
+            "preLaunchTask": "build",
+            "program": "${workspaceFolder}/bin/Debug/netcoreapp3.0/MySystem.dll",
+            "args": [],
+            "cwd": "${workspaceFolder}",
+            "stopAtEntry": false,
+            "serverReadyAction": {
+                "action": "openExternally",
+                "pattern": "^\\s*Now listening on:\\s+(https?://\\S+)"
+            },
+            "env": {
+                "ASPNETCORE_ENVIRONMENT": "Production"
+            },
+            "sourceFileMap": {
+                "/Views": "${workspaceFolder}/Views"
+            }
+        },
         {
             "name": ".NET Core Attach",
             "type": "coreclr",

+ 25 - 5
AppStart/Helper/SplitTableData/AddRecordService.cs

@@ -178,7 +178,16 @@ namespace MySystem
             {
                 if(string.IsNullOrEmpty(RedisDbconn.Instance.Get<string>(table + date)))
                 {
-                    CustomerSqlConn.op(AppConfig.Base.CreatePosMerchantTradeSummay.Replace("#DateTime#", date), AppConfig.Base.StatSqlConn);
+                    string createSql = "";
+                    if(table == "TradeRecord")
+                    {
+                        createSql = AppConfig.Base.CreateTradeRecord;
+                    }
+                    if(table == "UserAccountRecord")
+                    {
+                        createSql = AppConfig.Base.CreateUserAccountRecord;
+                    }
+                    CustomerSqlConn.op(createSql.Replace("#DateTime#", date), AppConfig.Base.StatSqlConn);
                     RedisDbconn.Instance.Set(table + date, "1");
                     int sec = 3600 * 25;
                     if(date.Length == 6)
@@ -194,14 +203,25 @@ namespace MySystem
                 string val = "";
                 foreach(string field in fields.Split(','))
                 {
-                    Type t = selfDr[field].GetType();
-                    if(t == typeof(int) || t == typeof(decimal))
+                    if(selfDr[field] == null)
                     {
-                        val += selfDr[field].ToString() + ",";
+                        val += "null,";
                     }
                     else
                     {
-                        val += "'" + selfDr[field].ToString() + "',";
+                        JsonType t = selfDr[field].GetJsonType();
+                        if(t == JsonType.Int || t == JsonType.Double || t == JsonType.Long)
+                        {
+                            val += selfDr[field].ToString() + ",";
+                        }
+                        else if(t == JsonType.None)
+                        {
+                            val += "null,";
+                        }
+                        else
+                        {
+                            val += "'" + selfDr[field].ToString() + "',";
+                        }
                     }
                 }
                 string sql = "INSERT INTO " + table + date + " (" + fields + ") VALUES (" + val.TrimEnd(',') + ")";