Pārlūkot izejas kodu

[BI]IOT增量API優化:預設關閉TMID 各服務Login資料取得

jeff 1 gadu atpakaļ
vecāks
revīzija
46c3e1bb4b
1 mainītis faili ar 17 papildinājumiem un 14 dzēšanām
  1. 17 14
      TEAMModelBI/Controllers/BITmid/TmidController.cs

+ 17 - 14
TEAMModelBI/Controllers/BITmid/TmidController.cs

@@ -654,7 +654,7 @@ namespace TEAMModelBI.Controllers.BITmid
             List<string> targets = (jsonElement.TryGetProperty("targets", out JsonElement targetsJobj)) ? targetsJobj.ToObject<List<string>>() : new List<string>() {"tmid", "sch", "geo" }; //查詢日期:起始(string)[例]2023-03-05
             List<string> targets = (jsonElement.TryGetProperty("targets", out JsonElement targetsJobj)) ? targetsJobj.ToObject<List<string>>() : new List<string>() {"tmid", "sch", "geo" }; //查詢日期:起始(string)[例]2023-03-05
             if(dateFromToValid)
             if(dateFromToValid)
             {
             {
-                object result = await GetTmidUseprodCore(dateFromStr, dateToStr, targets);
+                object result = await GetTmidUseprodCore(dateFromStr, dateToStr, targets, false);
                 return Ok(result);
                 return Ok(result);
             }
             }
             else if(dateListValid)
             else if(dateListValid)
@@ -664,7 +664,7 @@ namespace TEAMModelBI.Controllers.BITmid
                 {
                 {
                     string dateFrom = dateFromTo.dateFrom;
                     string dateFrom = dateFromTo.dateFrom;
                     string dateTo = dateFromTo.dateTo;
                     string dateTo = dateFromTo.dateTo;
-                    object tmidUseprod = await GetTmidUseprodCore(dateFrom, dateTo, targets);
+                    object tmidUseprod = await GetTmidUseprodCore(dateFrom, dateTo, targets, false);
                     result.Add(tmidUseprod);
                     result.Add(tmidUseprod);
                 }
                 }
                 return Ok(result);
                 return Ok(result);
@@ -674,7 +674,7 @@ namespace TEAMModelBI.Controllers.BITmid
                 return Ok(new { });
                 return Ok(new { });
             }
             }
         }
         }
-        private async Task<object> GetTmidUseprodCore(string dateFromStr, string dateToStr, List<string> targets)
+        private async Task<object> GetTmidUseprodCore(string dateFromStr, string dateToStr, List<string> targets, bool getLoginTime)
         {
         {
             Dictionary<string, TmidStics> tmidDic = new();
             Dictionary<string, TmidStics> tmidDic = new();
             HashSet<string> schIds = new HashSet<string>();
             HashSet<string> schIds = new HashSet<string>();
@@ -701,7 +701,7 @@ namespace TEAMModelBI.Controllers.BITmid
 
 
             //取得TMID資料
             //取得TMID資料
             HashSet<string> tmids = new HashSet<string>();
             HashSet<string> tmids = new HashSet<string>();
-            int pageSize = 100;
+            int pageSize = (getLoginTime) ? 100 : 5000;
             string? continuationToken = null;
             string? continuationToken = null;
             string query = $"SELECT * FROM c WHERE {unixTimeFrom} <= StringToNumber(c.id) AND StringToNumber(c.id) <= {unixTimeTo}";
             string query = $"SELECT * FROM c WHERE {unixTimeFrom} <= StringToNumber(c.id) AND StringToNumber(c.id) <= {unixTimeTo}";
             do
             do
@@ -721,17 +721,20 @@ namespace TEAMModelBI.Controllers.BITmid
                             TmidStics tmidStics = tmidDic[id];
                             TmidStics tmidStics = tmidDic[id];
                             //基本資料
                             //基本資料
                             tmidStics.name = doc.GetProperty("name").GetString();
                             tmidStics.name = doc.GetProperty("name").GetString();
-                            //取得登入各服務的時間
-                            var loginTime = await redisClient.HashGetAllAsync(id);
-                            foreach (var t in loginTime)
+                            //取得登入各服務的時間 ※getLoginTime == true 才取
+                            if (getLoginTime)
                             {
                             {
-                                if (!t.Name.StartsWith("HiTeach") && !_dicClientIds.ContainsKey(t.Name)) continue;
-                                tmidStics.login.Add(
-                                    new TmidLoginTime()
-                                    {
-                                        product = t.Name.StartsWith("HiTeach") ? t.Name.ToString().Split("-")[0] : _dicClientIds[t.Name],
-                                        time = (long)t.Value
-                                    });
+                                var loginTime = await redisClient.HashGetAllAsync(id);
+                                foreach (var t in loginTime)
+                                {
+                                    if (!t.Name.StartsWith("HiTeach") && !_dicClientIds.ContainsKey(t.Name)) continue;
+                                    tmidStics.login.Add(
+                                        new TmidLoginTime()
+                                        {
+                                            product = t.Name.StartsWith("HiTeach") ? t.Name.ToString().Split("-")[0] : _dicClientIds[t.Name],
+                                            time = (long)t.Value
+                                        });
+                                }
                             }
                             }
                         }
                         }
                     }
                     }