http 请求封装
This commit is contained in:
parent
c0036c4b98
commit
81f68f3a1a
|
|
@ -19,6 +19,21 @@
|
|||
<param name="seconds">缓存时间秒,0=int.max ,</param>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="T:langguanApi.Common.Proxy.HttpProxy">
|
||||
<summary>
|
||||
http
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:langguanApi.Common.Proxy.HttpProxy.Get``1(System.Collections.Generic.Dictionary{System.String,System.String},System.String)">
|
||||
<summary>
|
||||
获取数据
|
||||
</summary>
|
||||
<typeparam name="T"></typeparam>
|
||||
<param name="parameters"></param>
|
||||
<param name="requestUri"></param>
|
||||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</member>
|
||||
<member name="F:langguanApi.Common.Redis.RedisHelper._subscriber">
|
||||
<summary>
|
||||
sub
|
||||
|
|
@ -2009,7 +2024,7 @@
|
|||
HomeService
|
||||
</summary>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.HomeService.#ctor(langguanApi.Service.DeviceService,langguanApi.Service.Hj212Service,Microsoft.Extensions.Configuration.IConfiguration,langguanApi.Common.CacheManager,langguanApi.Service.WeatherService,langguanApi.Service.AlertService,langguanApi.Service.DetectionService)">
|
||||
<member name="M:langguanApi.Service.HomeService.#ctor(langguanApi.Service.DeviceService,langguanApi.Service.Hj212Service,Microsoft.Extensions.Configuration.IConfiguration,langguanApi.Common.CacheManager,langguanApi.Service.WeatherService,langguanApi.Service.AlertService,langguanApi.Service.DetectionService,langguanApi.Common.Proxy.HttpProxy)">
|
||||
<summary>
|
||||
HomeService
|
||||
</summary>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,48 @@
|
|||
using Amazon.Runtime;
|
||||
using langguanApi.Extensions.AutoDI;
|
||||
|
||||
namespace langguanApi.Common.Proxy
|
||||
{
|
||||
/// <summary>
|
||||
/// http
|
||||
/// </summary>
|
||||
[ServiceInjection(InjectionType.Singleton)]
|
||||
public class HttpProxy
|
||||
{
|
||||
private readonly IHttpClientFactory _httpClientFactory;
|
||||
public HttpProxy(IHttpClientFactory httpClientFactory)
|
||||
{
|
||||
_httpClientFactory = httpClientFactory;
|
||||
}
|
||||
/// <summary>
|
||||
/// 获取数据
|
||||
/// </summary>
|
||||
/// <typeparam name="T"></typeparam>
|
||||
/// <param name="parameters"></param>
|
||||
/// <param name="requestUri"></param>
|
||||
/// <returns></returns>
|
||||
/// <exception cref="Exception"></exception>
|
||||
public async Task<T> Get<T>(Dictionary<string, string> parameters, string requestUri)
|
||||
{
|
||||
//从工厂获取请求对象
|
||||
var client = _httpClientFactory.CreateClient();
|
||||
if (parameters != null)
|
||||
{
|
||||
var strParam = string.Join("&", parameters.Select(o => o.Key + "=" + o.Value));
|
||||
requestUri = string.Concat(requestUri, '?', strParam);
|
||||
}
|
||||
client.BaseAddress = new Uri(requestUri);
|
||||
var resp = await client.GetAsync(requestUri);
|
||||
if (resp.IsSuccessStatusCode)
|
||||
{
|
||||
var content = await resp.Content.ReadAsStringAsync();
|
||||
return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(content);
|
||||
}
|
||||
else
|
||||
{
|
||||
Console.WriteLine($"请求失败,状态码:{resp.StatusCode},请求地址 {requestUri}");
|
||||
return default(T);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -3,6 +3,7 @@ using langguanApi.Common;
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model;
|
||||
using System.Linq.Expressions;
|
||||
using langguanApi.Common.Proxy;
|
||||
|
||||
namespace langguanApi.Service
|
||||
{
|
||||
|
|
@ -19,6 +20,7 @@ namespace langguanApi.Service
|
|||
private readonly WeatherService _weatherService;
|
||||
private readonly AlertService _alertService;
|
||||
private readonly DetectionService _detectionService;
|
||||
private HttpProxy _httpProxy;
|
||||
/// <summary>
|
||||
/// HomeService
|
||||
/// </summary>
|
||||
|
|
@ -27,7 +29,7 @@ namespace langguanApi.Service
|
|||
public HomeService(DeviceService device, Hj212Service hj212Service,
|
||||
IConfiguration configuration, CacheManager cacheManager,
|
||||
WeatherService weatherService, AlertService alertService,
|
||||
DetectionService detectionService)
|
||||
DetectionService detectionService, HttpProxy httpProxy)
|
||||
{
|
||||
_deviceService = device;
|
||||
_hj212Service = hj212Service;
|
||||
|
|
@ -36,6 +38,7 @@ namespace langguanApi.Service
|
|||
_weatherService = weatherService;
|
||||
_alertService = alertService;
|
||||
_detectionService = detectionService;
|
||||
_httpProxy = httpProxy;
|
||||
}
|
||||
/// <summary>
|
||||
/// view
|
||||
|
|
@ -49,7 +52,8 @@ namespace langguanApi.Service
|
|||
Yesterday = 0.8,
|
||||
LastWeek = 0.6,
|
||||
};
|
||||
Expression<Func<Model.HJ212, bool>> filter = exp => true;
|
||||
// 首页热力图
|
||||
var hotmap = new { };
|
||||
// 首页设备报警数据
|
||||
var alerts = await _alertService.IndexData();
|
||||
// 首页设备检测数据
|
||||
|
|
@ -62,6 +66,9 @@ namespace langguanApi.Service
|
|||
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
||||
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
||||
var trend = await _cacheManager.GetConvertVale(RedisKeylist.Trend, getTrendFunc, 60 * new Random().Next(70));
|
||||
// alerts += await _httpProxy.Get<string>(null, _configuration.GetValue<string>("Apis:AlertUrl"));
|
||||
// alerts += await _httpProxy.Get<string>(null, _configuration.GetValue<string>("Apis:RateUrl"));
|
||||
|
||||
//首页清洁运输比例
|
||||
var cleaData = new
|
||||
{
|
||||
|
|
@ -87,6 +94,7 @@ namespace langguanApi.Service
|
|||
},
|
||||
|
||||
devices,
|
||||
hotmap,
|
||||
weather,
|
||||
ariQuality,
|
||||
rate = new[] {
|
||||
|
|
|
|||
|
|
@ -82,7 +82,7 @@ namespace langguanApi.Service
|
|||
}
|
||||
if (!string.IsNullOrEmpty(OrgId))
|
||||
{
|
||||
deviceExp= deviceExp.And(filter => filter.OrgId == OrgId);
|
||||
deviceExp = deviceExp.And(filter => filter.OrgId == OrgId);
|
||||
}
|
||||
var devices = (await _deviceService.GetListWithExp(deviceExp)).ToList();
|
||||
foreach (var item in result)
|
||||
|
|
@ -106,8 +106,8 @@ namespace langguanApi.Service
|
|||
public async Task<ApiResult> List(int OrganizedType = 1)
|
||||
{
|
||||
List<OrganizedByDeviceDto> dto = new List<OrganizedByDeviceDto>();
|
||||
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType && filter.IsDelete == false;
|
||||
|
||||
Expression<Func<Organized, bool>> exp = filter => filter.OrganizedType == OrganizedType
|
||||
&& filter.IsDelete == false;
|
||||
var result = (await base.GetListWithExp(exp)).OrderByDescending(x => x.Order).ToList();
|
||||
return new ApiResult() { code = 0, data = result };
|
||||
}
|
||||
|
|
|
|||
|
|
@ -16,7 +16,14 @@
|
|||
"Index": 5
|
||||
},
|
||||
"Weather": "https://weather.cma.cn/api/now/54511", //天气预报地址,中国气象
|
||||
"AirQuality": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000",//空气质量API地址
|
||||
"AirQuality": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //空气质量API地址
|
||||
"Apis": {
|
||||
"RateUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设备在线API地址
|
||||
"AlertUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设报警API地址
|
||||
"DeviceList": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //环境治理 API地址
|
||||
"DeviceInfo": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000" //设备明细 API地址
|
||||
|
||||
},
|
||||
"Home": {
|
||||
"Title": "鄂托克旗新航焦化有限公司",
|
||||
"Center": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue