Browse Source

优化查询日志排序问题

Li 3 years ago
parent
commit
eb6d3ea90c
1 changed files with 17 additions and 2 deletions
  1. 17 2
      TEAMModelBI/Controllers/OperateRecord/OperateLogController.cs

+ 17 - 2
TEAMModelBI/Controllers/OperateRecord/OperateLogController.cs

@@ -47,6 +47,7 @@ namespace TEAMModelBI.Controllers.OperateRecord
                 jsonElement.TryGetProperty("startDate", out JsonElement startDate);
                 jsonElement.TryGetProperty("endDate", out JsonElement endDate);
                 jsonElement.TryGetProperty("platform", out JsonElement platform);
+                jsonElement.TryGetProperty("reorder", out JsonElement orderby);
 
                 List<BIOptLog> operateLogs = new();
                 StringBuilder tableSql = new StringBuilder();
@@ -59,10 +60,24 @@ namespace TEAMModelBI.Controllers.OperateRecord
                     tableSql.Append(!string.IsNullOrEmpty(tableSql.ToString()) ? $" and time le {endDate}L " : $" time le {endDate}L ");
                 if (!string.IsNullOrEmpty($"{platform}"))
                     tableSql.Append(!string.IsNullOrEmpty(tableSql.ToString()) ? $" and platform eq '{platform}' " : $" platform eq '{platform}' ");
-
+                
                 var table = _azureStorage.GetCloudTableClient().GetTableReference("BIOptLog");
+
+                //lambda 表达式排序
                 operateLogs = await table.QueryWhereString<BIOptLog>(tableSql.ToString());
-                return Ok(new { state = 200, operateLogs });
+                switch (orderby.GetString())
+                {
+                    case "asc":
+                        //lambda  排序 升序
+                        operateLogs.Sort((x, y) => x.time.CompareTo(y.time));
+                        return Ok(new { state = 200, operateLogs });
+                    case "desc":
+                        //lambda 排序 降序
+                        operateLogs.Sort((x, y) => y.time.CompareTo(x.time));
+                        return Ok(new { state = 200, operateLogs });
+                    default:
+                        return Ok(new { state = 200, operateLogs });
+                }
             }
             catch (Exception ex)
             {