Browse Source

[BI]
消息推送 地理資訊API 修正選取國為TW以外的輸出修正

jeff 4 months ago
parent
commit
cd7b677bcb
1 changed files with 14 additions and 11 deletions
  1. 14 11
      TEAMModelBI/Controllers/BICommon/BINoticeController.cs

+ 14 - 11
TEAMModelBI/Controllers/BICommon/BINoticeController.cs

@@ -747,7 +747,7 @@ namespace TEAMModelBI.Controllers.BICommon
                     ///國
                     if (!string.IsNullOrWhiteSpace(countryId))
                     {
-                        groupKey = (!isChina) ? "city" : "province";
+                        groupKey = (isChina) ? "province" : (!countryId.Equals("TW")) ? "name" : "city";
                         sqlWhere += $" AND c.countryId = '{countryId}' ";
                     }
                     ///省
@@ -783,17 +783,20 @@ namespace TEAMModelBI.Controllers.BICommon
                                 break;
                             case "city":
                                 geoId = Convert.ToString(item.GetProperty("cityId"));
-                                if (regionData.city[countryId].ContainsKey("tw"))
+                                if(regionData.city.ContainsKey(countryId))
                                 {
-                                    var cityDic = regionData.city[countryId]["tw"];
-                                    var cityInfo = cityDic.FirstOrDefault(c => c.Key.Equals(geoId));
-                                    if (!string.IsNullOrWhiteSpace(geoName)) geoName = (!cityInfo.Equals(default(KeyValuePair<string, regionbase>))) ? cityInfo.Value.name : string.Empty;
-                                }
-                                else if (!string.IsNullOrWhiteSpace(provinceId) && regionData.city[countryId].ContainsKey(provinceId))
-                                {
-                                    var cityDic = regionData.city[countryId][provinceId];
-                                    var cityInfo = cityDic.FirstOrDefault(c => c.Key.Equals(geoId));
-                                    if (!string.IsNullOrWhiteSpace(geoName)) geoName = (!cityInfo.Equals(default(KeyValuePair<string, regionbase>))) ? cityInfo.Value.name : string.Empty;
+                                    if (regionData.city[countryId].ContainsKey("tw"))
+                                    {
+                                        var cityDic = regionData.city[countryId]["tw"];
+                                        var cityInfo = cityDic.FirstOrDefault(c => c.Key.Equals(geoId));
+                                        if (!string.IsNullOrWhiteSpace(geoName)) geoName = (!cityInfo.Equals(default(KeyValuePair<string, regionbase>))) ? cityInfo.Value.name : string.Empty;
+                                    }
+                                    else if (!string.IsNullOrWhiteSpace(provinceId) && regionData.city[countryId].ContainsKey(provinceId))
+                                    {
+                                        var cityDic = regionData.city[countryId][provinceId];
+                                        var cityInfo = cityDic.FirstOrDefault(c => c.Key.Equals(geoId));
+                                        if (!string.IsNullOrWhiteSpace(geoName)) geoName = (!cityInfo.Equals(default(KeyValuePair<string, regionbase>))) ? cityInfo.Value.name : string.Empty;
+                                    }
                                 }
                                 comeRemoveStr.ForEach(c => { geoName = ReplaceLastMatch(geoName, c, string.Empty); }); //字串替換
                                 break;