Ver código fonte

每日統計TMID IOT並生成年月日CosmosDB統計資料

jeff 1 ano atrás
pai
commit
9c5879d056

+ 3 - 0
TEAMModelBI/appsettings.Development.json

@@ -120,5 +120,8 @@
 	"Storage": {
       "ConnectionString": "DefaultEndpointsProtocol=https;AccountName=teammodeltest;AccountKey=O2W2vadCqexDxWO+px+QK7y1sHwsYj8f/WwKLdOdG5RwHgW/Dupz9dDUb4c1gi6ojzQaRpFUeAAmOu4N9E+37A==;EndpointSuffix=core.chinacloudapi.cn" //CSV2大陸測試站
     },
+	"CosmosCnRead": {
+      "ConnectionString": "AccountEndpoint=https://corecosmosdb.documents.azure.cn:443/;AccountKey=12C5n8IvXFqsPARUb2YBOUWiU9PksohESlLHgH6cAVajxWBBJIJ6chJusgfrYhxCKgQgSHHxVgHsFPRakhvlPw==;" //CSV2大陸正式站(唯讀)
+    }
   }
 }

+ 1 - 1
TEAMModelOS.FunctionV4/TimeTrigger/IESTimerTrigger.cs

@@ -423,7 +423,7 @@ namespace TEAMModelOS.FunctionV4.TimeTrigger
         //0 1 0 * * * 一天中00的第 1 分钟
         //0 1 * * * * 一天中每小时的第 1 分钟
         //0 */10 * * * *  每五分钟一次
-        public async Task BICreatDailyAnalData([TimerTrigger("0 31 9 * * *")] TimerInfo myTimer, ILogger log)
+        public async Task BICreatDailyAnalData([TimerTrigger("0 1 1 * * *")] TimerInfo myTimer, ILogger log)
         {
             var _azureCosmosClient = _azureCosmos.GetCosmosClient();
             var _azureCosmosClientCsv2CnRead = _azureCosmos.GetCosmosClient(name: "CoreServiceV2CnRead");

+ 152 - 0
TEAMModelOS.SDK/Models/Cosmos/Common/IotTeachingData.cs

@@ -0,0 +1,152 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace TEAMModelOS.SDK.Models.Cosmos.Common
+{
+    /// <summary>
+    /// CS IOT TeachingData (Redis)
+    /// </summary>
+    public class IotTeachingData
+    {
+        public long timestamp { get; set; }
+        public string deviceId { get; set; }
+        public string channel { get; set; }
+        public string tmid { get; set; }
+        public string schoolId { get; set; }
+        /// <summary>
+        /// 開課使用IES課程 0:false 1:true
+        /// </summary>
+        public string useIES { get; set; }
+        /// <summary>
+        /// 課堂中取用IES5資源數
+        /// </summary>
+        public int useIES5Resource { get; set; }
+        /// <summary>
+        /// 課堂中有使用webirs 0:false 1:true
+        /// </summary>
+        public string useWebIrs { get; set; }
+        /// <summary>
+        /// 課堂中有使用硬體IRS 0:false 1:true
+        /// </summary>
+        public string useDeviceIrs { get; set; }
+        /// <summary>
+        /// 課堂中有使用Haboard 0:false 1:true
+        /// </summary>
+        public string useHaboard { get; set; }
+        /// <summary>
+        /// 課堂中有使用HiTA 0:false 1:true
+        /// </summary>
+        public string useHita { get; set; }
+        /// <summary>
+        /// 課堂時間(分鐘整數)
+        /// </summary>
+        public int lessonLengMin { get; set; }
+        /// <summary>
+        /// 學生出席數(整數)
+        /// </summary>
+        public int stuShow { get; set; }
+        /// <summary>
+        /// T指數(整數)
+        /// </summary>
+        public int tPoint { get; set; }
+        /// <summary>
+        /// 學習型態: 合作 0:false 1:true
+        /// </summary>
+        public string lTypeCoop { get; set; }
+        /// <summary>
+        /// 學習型態: 互動 0:false 1:true
+        /// </summary>
+        public string lTypeIact { get; set; }
+        /// <summary>
+        /// 學習型態: 任務 0:false 1:true
+        /// </summary>
+        public string lTypeMis { get; set; }
+        /// <summary>
+        /// 學習型態: 測驗 0:false 1:true
+        /// </summary>
+        public string lTypeTst { get; set; }
+        /// <summary>
+        /// 學習型態: 差異化 0:false 1:true
+        /// </summary>
+        public string lTypeDif { get; set; }
+        /// <summary>
+        /// 授權方式 0:無授權   1:id授權  2:機器授權  3:ID和機器授權
+        /// </summary>
+        public string authType { get; set; }
+        /// <summary>
+        /// 任務數
+        /// </summary>
+        public int mission { get; set; }
+        /// <summary>
+        /// 作品任務完成總數
+        /// </summary>
+        public int missionFin { get; set; }
+        /// <summary>
+        /// 題數
+        /// </summary>
+        public int item { get; set; }
+        /// <summary>
+        /// 互動總次數
+        /// </summary>
+        public int interact { get; set; }
+        /// <summary>
+        /// IP
+        /// </summary>
+        public string ip { get; set; }
+        /// <summary>
+        /// 版本
+        /// </summary>
+        /// [例]ex. 5.0.21.0000 -> 500210000
+        public string version { get; set; }
+        /// <summary>
+        /// 是否送出小數據或SOK服務 0:false 1:true
+        /// </summary>
+        public string sendSok { get; set; }
+    }
+
+    /// <summary>
+    /// 產品分析統計共通項目
+    /// </summary>
+    public class ProdAnalysisCalItem
+    {
+        public List<string> deviceList { get; set; } = new(); //機器ID列表
+        public List<string> deviceNoAuthList { get; set; } = new(); //無機器授權ID列表
+        public List<string> deviceAuthList { get; set; } = new(); //有安裝機器授權ID列表
+        public List<string> tmidList { get; set; } = new(); //TMID列表
+        public string toolType { get; set; } //HiTeach、HiTeachCC、HiTA
+        public int deviceCnt { get; set; } //機器數(不重複)
+        public int deviceNoAuth { get; set; } //無機器授權數
+        public int deviceAuth { get; set; } //有安裝機器授權數
+        public int tmidCnt { get; set; } //TMID數(不重複)
+        public int lessonRecord { get; set; } //課堂記錄數
+        public int useIES { get; set; } //使用IES課程
+        public int useIES5Resource { get; set; } //課堂中取用IES5資源數
+        public int useWebIrs { get; set; } //課堂中有使用webirs
+        public int useDeviceIrs { get; set; } //課堂中有使用硬體IRS
+        public int useHaboard { get; set; } //課堂中有使用Haboard
+        public int useHita { get; set; } //課堂中有使用HiTA
+        public int lessonLengMin { get; set; } //課堂時間(分鐘整數)
+        public int lessonLeng0 { get; set; } //課堂時間為0的課堂數
+        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; } //學習型態: 互動
+        public int lTypeMis { get; set; } //學習型態: 任務
+        public int lTypeTst { get; set; } //學習型態: 測驗
+        public int lTypeDif { get; set; } //學習型態: 差異化
+        public int lTypeNone { get; set; } //學習型態: 無
+        public int lessonCnt928 { get; set; } //使用928授權課堂數
+        public int lessonCntId { get; set; } //僅使用ID授權課堂數
+        public int lessonCntDevice { get; set; } //僅使用機器授權課堂數
+        public int lessonCntIdDevice { get; set; } //使用ID+機器授權課堂數
+        public int mission { get; set; } //任務數
+        public int missionFin { get; set; } //作品任務完成總數
+        public int item { get; set; } //題數
+        public int interact { get; set; } //互動總次數
+        public int sendSok { get; set; } //送出小數據或SOK服務
+    }
+}

+ 33 - 0
TEAMModelOS.SDK/Models/Cosmos/Teacher/TmidAnalysis.cs

@@ -0,0 +1,33 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading.Tasks;
+using TEAMModelOS.SDK.Models.Cosmos.Common;
+
+namespace TEAMModelOS.SDK.Models
+{
+    public class TmidAnalysis : ProdAnalysisCalItem
+    {
+        public string tmid { get; set; } //TMID
+        public List<string> verList { get; set; } = new List<string>(); //版本列表
+    }
+    public class TmidAnalysisCosmos : TmidAnalysis
+    {
+        public TmidAnalysisCosmos()
+        {
+            pk = "TmidAnalysis";
+            code = "TmidAnalysis";
+        }
+        public string pk { get; set; }
+        public string code { get; set; }
+        public string id { get; set; }
+        public string dateUnit { get; set; } //統計日期單位 "year":年統計 "month":月統計 "day":日統計
+        public string date { get; set; } //统计日期 ※依据dateUnit变化 [例]"year":2023 "month":202302 "day":20230210
+        public long dateTime { get; set; } //timestamp UTC milisecond 比較時間用
+        public int year { get; set; } //统计日期:年
+        public int month { get; set; } //统计日期:月
+        public int day { get; set; } //统计日期:日
+        public long createDate { get; set; } //統計時間
+        public int? ttl { get; set; } = -1;
+    }
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 668 - 570
TEAMModelOS.SDK/Models/Service/BI/BIProdAnalysis.cs