浏览代码

1.BI產品分析統計追加欄位"學生參與總時數" 2.評測追加cloudas欄位,HiTeach上傳評測資料有cloudas=true則更新評測cloudas欄位

jeff 2 年之前
父节点
当前提交
da2fb4dbe2

+ 1 - 1
TEAMModelBI/Controllers/BIProductAnalysis/ProductAnalysisController.cs

@@ -67,7 +67,7 @@ namespace TEAMModelBI.Controllers.ProductAnalysis
                 if(string.IsNullOrWhiteSpace(prod)) return BadRequest();
                 if (!jsonElement.TryGetProperty("schoolIds", out JsonElement schoolIdsJobj)) return BadRequest();//學校ID(array)
                 List<string> schoolIds = schoolIdsJobj.ToObject<List<string>>();
-                string dateUnit = (jsonElement.TryGetProperty("dateUnit", out JsonElement dateUnitJobj)) ? (!string.IsNullOrWhiteSpace(Convert.ToString(dateUnitJobj))) ? Convert.ToString(dateUnitJobj) : "Day" : "Day";//時間統計單位 ※以每年(Year)、每月(Month)、每日(Year) 為統計單位 預設值:每日
+                string dateUnit = (jsonElement.TryGetProperty("dateUnit", out JsonElement dateUnitJobj)) ? (!string.IsNullOrWhiteSpace(Convert.ToString(dateUnitJobj))) ? Convert.ToString(dateUnitJobj) : "Day" : "Day";//時間統計單位 ※以每年(Year)、每月(Month)、每日(Day) 為統計單位 預設值:每日
                 var dateDicDay = CalYmdObjFromToDateDay(dateFromJobj.ToString(), dateToJobj.ToString());
                 var dateDicMonth = CalYmdObjFromToDateMonth(dateFromJobj.ToString(), dateToJobj.ToString());
                 var dateDicYear = CalYmdObjFromToDateYear(dateFromJobj.ToString(), dateToJobj.ToString());

+ 2 - 0
TEAMModelOS.SDK/Models/Cosmos/School/ExamInfo.cs

@@ -127,6 +127,8 @@ namespace TEAMModelOS.SDK.Models
 
         //结束后账户统计
         public List<FMember> staffIds { get; set; } = new List<FMember>();
+        //是否啟動cloudas計算 true:啟動
+        public bool cloudas { get; set;}
     }
     public class Custom {
         public string id { get; set; }

+ 1 - 0
TEAMModelOS.SDK/Models/Cosmos/School/ProductAnalysis.cs

@@ -119,6 +119,7 @@ namespace TEAMModelOS.SDK.Models
         public int useHita { get; set; } //課堂中有使用HiTA
         public int lessonLengMin { get; set; } //課堂時間(分鐘整數)
         public int stuShow { get; set; } //學生出席人次
+        public long stuLessonLengMin { get; set; } //學生參與總時數 ※課堂時間x學生出席人次
         public int tGreen { get; set; } //T綠燈數(T>=70)
         public int lTypeCoop { get; set; } //學習型態: 合作
         public int lTypeIact { get; set; } //學習型態: 互動

+ 6 - 3
TEAMModelOS.SDK/Models/Service/BI/BIProdAnalysis.cs

@@ -149,6 +149,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                             if (IotTeachingDatRow.useHita.Equals("1")) prodAnalysisRow.useHita++;
                             prodAnalysisRow.lessonLengMin += IotTeachingDatRow.lessonLengMin;
                             prodAnalysisRow.stuShow += IotTeachingDatRow.stuShow;
+                            prodAnalysisRow.stuLessonLengMin = prodAnalysisRow.lessonLengMin * prodAnalysisRow.stuShow;
                             if (IotTeachingDatRow.tPoint >= 70) prodAnalysisRow.tGreen++;
                             if (IotTeachingDatRow.lTypeCoop.Equals("1")) prodAnalysisRow.lTypeCoop++;
                             if (IotTeachingDatRow.lTypeIact.Equals("1")) prodAnalysisRow.lTypeIact++;
@@ -166,7 +167,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                         }
                     }
                 }
-                //[改]記入IES5 ProdAnalysis:Day
+                //記入IES5 ProdAnalysis:Day
                 if (ProdAnalysisList.Count > 0)
                 {
                     //資料整形
@@ -197,7 +198,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                         }
                     }
                 }
-                //[改]取該月所有 ProdAnalysis:Day 生成 ProdAnalysis:Month
+                //取該月所有 ProdAnalysis:Day 生成 ProdAnalysis:Month
                 Dictionary<string, Dictionary<string, ProdAnalysis>> ProdAnalysisListMonth = new Dictionary<string, Dictionary<string, ProdAnalysis>>();
                 string patternD = $"ProdAnalysis:Day:HiT*:{y}{m}*";
                 List<string> keysDayList = ScanRedisKeysByPattern(_azureRedis, patternD);
@@ -245,6 +246,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                                         SchDataNow.useHita += SchDataTodo.useHita;
                                         SchDataNow.lessonLengMin += SchDataTodo.lessonLengMin;
                                         SchDataNow.stuShow += SchDataTodo.stuShow;
+                                        SchDataNow.stuLessonLengMin += SchDataTodo.stuLessonLengMin;
                                         SchDataNow.tGreen += SchDataTodo.tGreen;
                                         SchDataNow.lTypeCoop += SchDataTodo.lTypeCoop;
                                         SchDataNow.lTypeIact += SchDataTodo.lTypeIact;
@@ -292,7 +294,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                         await redisClinet8.HashSetAsync($"{monthRedisKey}", hvalList.ToArray());
                     }
                 }
-                //[改]取該年所有 ProdAnalysis:Month 生成 ProdAnalysis:Year
+                //取該年所有 ProdAnalysis:Month 生成 ProdAnalysis:Year
                 Dictionary<string, Dictionary<string, ProdAnalysis>> ProdAnalysisListYear = new Dictionary<string, Dictionary<string, ProdAnalysis>>();
                 string patternM = $"ProdAnalysis:Month:HiT*:{y}*";
                 List<string> keysMonthList = ScanRedisKeysByPattern(_azureRedis, patternM);
@@ -339,6 +341,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
                                         SchDataNow.useHita += SchDataTodo.useHita;
                                         SchDataNow.lessonLengMin += SchDataTodo.lessonLengMin;
                                         SchDataNow.stuShow += SchDataTodo.stuShow;
+                                        SchDataNow.stuLessonLengMin += SchDataTodo.stuLessonLengMin;
                                         SchDataNow.tGreen += SchDataTodo.tGreen;
                                         SchDataNow.lTypeCoop += SchDataTodo.lTypeCoop;
                                         SchDataNow.lTypeIact += SchDataTodo.lTypeIact;

+ 2 - 0
TEAMModelOS/Controllers/Client/HiTeachController.cs

@@ -1592,6 +1592,7 @@ namespace TEAMModelOS.Controllers.Client
                 if (!request.TryGetProperty("examClassResult", out JsonElement examClassResult)) return BadRequest();
                 bool blobUploaded = (request.TryGetProperty("blobUploaded", out JsonElement blobUploadedJson)) ? blobUploadedJson.GetBoolean() : false;
                 bool recordSwitch = (request.TryGetProperty("recordSwitch", out JsonElement recordSwitchJson)) ? recordSwitchJson.GetBoolean() : false;
+                bool cloudas = (request.TryGetProperty("cloudas", out JsonElement cloudasJson)) ? cloudasJson.GetBoolean() : false; //是否啟動cloudas運算
 
                 //ExamInfo ExamInfoFromReq = exam.ToObject<ExamInfo>();
                 string strExam = JsonSerializer.Serialize(exam);
@@ -1628,6 +1629,7 @@ namespace TEAMModelOS.Controllers.Client
                 {
                     dbExamInfo = ExamInfoFromReq;
                 }
+                if (cloudas) dbExamInfo.cloudas = cloudas;
 
                 //Boolean isTestFlg = (_option.Location.Contains("Test") || _option.Location.Contains("Dep")) ? true : false;
                 //ExamInfo內容取得、調整  [2021-7-13 廢除,給予HiTeach學校Blob寫入權限,API不再對Blob做搬運]