|
@@ -34,9 +34,9 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
/// <param name="m">月(2位數)</param>
|
|
|
/// <param name="d">日(2位數)</param>
|
|
|
/// <returns></returns>
|
|
|
- public static async Task BICreatDailyAnalData(AzureRedisFactory _azureRedis, CosmosClient _azureCosmosClient, CosmosClient _azureCosmosClientCsv2, CosmosClient _azureCosmosClientCsv2CnRead, DingDing _dingDing, City _city, string _location, string y, string m, string d)
|
|
|
+ public static async Task BICreatDailyAnalData(AzureRedisFactory _azureRedis, CosmosClient _azureCosmosClient, CosmosClient _azureCosmosClientCsv2, CosmosClient _azureCosmosClientCsv2CnRead, DingDing _dingDing, City _city, string _location, string y, string m, string d, List<regionrow> _region_gl, List<regionrow> _region_cn)
|
|
|
{
|
|
|
- List<IotTeachingData> IotTeachingDataList = await BIGetDailyRedisProdAnalData(_azureRedis, _azureCosmosClientCsv2, _dingDing, _city, _location, y, m, d); //取得Redis IOT 每日資訊
|
|
|
+ List<IotTeachingData> IotTeachingDataList = await BIGetDailyRedisProdAnalData(_azureRedis, _azureCosmosClientCsv2, _dingDing, _city, _location, y, m, d, _region_gl, _region_cn); //取得Redis IOT 每日資訊
|
|
|
await CreatIes5ProdAnalData(_azureRedis, _azureCosmosClient, _azureCosmosClientCsv2CnRead, _dingDing, y, m, d, IotTeachingDataList); //生成學校CosmosDB年月日統計資料
|
|
|
await CreatTmidProdAnalData(_azureRedis, _azureCosmosClient, _dingDing, y, m, d, IotTeachingDataList); //生成TMID CosmosDB年月日統計資料
|
|
|
await CreatGeoProdAnalData(_azureRedis, _azureCosmosClient, _dingDing, y, m, d, IotTeachingDataList); //生成地理位置 CosmosDB年月日統計資料
|
|
@@ -51,7 +51,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
/// <param name="m">月(2位數)</param>
|
|
|
/// <param name="d">日(2位數)</param>
|
|
|
/// <returns></returns>
|
|
|
- public static async Task<List<IotTeachingData>> BIGetDailyRedisProdAnalData(AzureRedisFactory _azureRedis, CosmosClient _azureCosmosClientCsv2, DingDing _dingDing, City _city, string _location, string y, string m, string d)
|
|
|
+ public static async Task<List<IotTeachingData>> BIGetDailyRedisProdAnalData(AzureRedisFactory _azureRedis, CosmosClient _azureCosmosClientCsv2, DingDing _dingDing, City _city, string _location, string y, string m, string d, List<regionrow> _region_gl, List<regionrow> _region_cn)
|
|
|
{
|
|
|
List<IotTeachingData> IotTeachingDataList = new List<IotTeachingData>();
|
|
|
try
|
|
@@ -118,7 +118,7 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
IotTeachingData.useTransMode = (tdata.Length > 42 && !string.IsNullOrWhiteSpace(tdata[42])) ? tdata[42] : "0"; //有使用透明模式
|
|
|
IotTeachingData.useMiniMode = (tdata.Length > 43 && !string.IsNullOrWhiteSpace(tdata[43])) ? tdata[43] : "0"; //有使用最小化模式
|
|
|
if (!string.IsNullOrWhiteSpace(IotTeachingData.ip)) ///IP分析地理位置
|
|
|
- (IotTeachingData.geo, IotTeachingData.geoFromIp) = BIProdAnalysis.getGeoFromIp(_city, IotTeachingData.ip);
|
|
|
+ (IotTeachingData.geo, IotTeachingData.geoFromIp) = BIProdAnalysis.getGeoFromIp(_city, IotTeachingData.ip, _region_gl, _region_cn);
|
|
|
IotTeachingDataList.Add(IotTeachingData);
|
|
|
if(!string.IsNullOrWhiteSpace(IotTeachingData.tmid))
|
|
|
{
|
|
@@ -1518,15 +1518,16 @@ namespace TEAMModelOS.SDK.Models.Service.BI
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- public static (Geo, List<string>) getGeoFromIp(City _city, string ip)
|
|
|
+ public static (Geo, List<string>) getGeoFromIp(City _city, string ip, List<regionrow> _region_gl, List<regionrow> _region_cn)
|
|
|
{
|
|
|
var ipInfo = _city.find(ip, "CN");
|
|
|
//輸出定義
|
|
|
List<string> ipToGeoList = (ipInfo != null) ? ipInfo.ToList() : new List<string>(); ///直接由IP取得的地理資訊
|
|
|
- IotTeachingData.Geo geo = new IotTeachingData.Geo(); ///地理資訊
|
|
|
+ IotTeachingData.Geo geo = null; ///地理資訊
|
|
|
if(ipInfo == null) return (geo, ipToGeoList);
|
|
|
+ else geo = new IotTeachingData.Geo();
|
|
|
//國省市字典製作
|
|
|
- regiondata regionData = GetRegionData(); //取得國省市區地理資訊架構
|
|
|
+ regiondata regionData = GetRegionData(_region_gl, _region_cn); //取得國省市區地理資訊架構
|
|
|
List<string> comeRemoveStr = GeoRegion.comeRemoveStr;
|
|
|
///國字典製作
|
|
|
var geoCountryIdNameDic = new Dictionary<string, string>();
|