| | |
| | | } |
| | | |
| | | /// <summary> |
| | | /// 根据巷道确定目标地址 |
| | | /// 根据巷道确定目标地址(支持多出库口轮询) |
| | | /// </summary> |
| | | private string DetermineTargetAddress(string roadway, Dictionary<string, string> addressMap) |
| | | private string DetermineTargetAddress(string roadway, Dictionary<string, List<string>> addressMap) |
| | | { |
| | | if (string.IsNullOrWhiteSpace(roadway)) |
| | | return "10080"; // 默认地址 |
| | | return "10080"; |
| | | |
| | | // 查找匹配的巷道前缀 |
| | | string matchedPrefix = null; |
| | | foreach (var kvp in addressMap) |
| | | { |
| | | if (roadway.Contains(kvp.Key)) |
| | | return kvp.Value; |
| | | { |
| | | matchedPrefix = kvp.Key; |
| | | break; |
| | | } |
| | | } |
| | | |
| | | return "10080"; // 默认地址 |
| | | if (matchedPrefix == null) |
| | | return "10080"; |
| | | |
| | | var addresses = addressMap[matchedPrefix]; |
| | | if (addresses == null || addresses.Count == 0) |
| | | return "10080"; |
| | | |
| | | // 单个地址,直接返回 |
| | | if (addresses.Count == 1) |
| | | return addresses[0]; |
| | | |
| | | // 多个地址,使用轮询服务 |
| | | return _roundRobinService.GetNextAddress(matchedPrefix, addresses); |
| | | } |
| | | |
| | | /// <summary> |