|
@@ -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
|
|
|
if(dateFromToValid)
|
|
|
{
|
|
|
- object result = await GetTmidUseprodCore(dateFromStr, dateToStr, targets);
|
|
|
+ object result = await GetTmidUseprodCore(dateFromStr, dateToStr, targets, false);
|
|
|
return Ok(result);
|
|
|
}
|
|
|
else if(dateListValid)
|
|
@@ -664,7 +664,7 @@ namespace TEAMModelBI.Controllers.BITmid
|
|
|
{
|
|
|
string dateFrom = dateFromTo.dateFrom;
|
|
|
string dateTo = dateFromTo.dateTo;
|
|
|
- object tmidUseprod = await GetTmidUseprodCore(dateFrom, dateTo, targets);
|
|
|
+ object tmidUseprod = await GetTmidUseprodCore(dateFrom, dateTo, targets, false);
|
|
|
result.Add(tmidUseprod);
|
|
|
}
|
|
|
return Ok(result);
|
|
@@ -674,7 +674,7 @@ namespace TEAMModelBI.Controllers.BITmid
|
|
|
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();
|
|
|
HashSet<string> schIds = new HashSet<string>();
|
|
@@ -701,7 +701,7 @@ namespace TEAMModelBI.Controllers.BITmid
|
|
|
|
|
|
//取得TMID資料
|
|
|
HashSet<string> tmids = new HashSet<string>();
|
|
|
- int pageSize = 100;
|
|
|
+ int pageSize = (getLoginTime) ? 100 : 5000;
|
|
|
string? continuationToken = null;
|
|
|
string query = $"SELECT * FROM c WHERE {unixTimeFrom} <= StringToNumber(c.id) AND StringToNumber(c.id) <= {unixTimeTo}";
|
|
|
do
|
|
@@ -721,17 +721,20 @@ namespace TEAMModelBI.Controllers.BITmid
|
|
|
TmidStics tmidStics = tmidDic[id];
|
|
|
//基本資料
|
|
|
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
|
|
|
+ });
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|