lg_backend/langguanApi/Service/EnvGovService.cs

102 lines
3.3 KiB
C#

using IceCoffee.Common.Templates;
using langguanApi.Common.Proxy;
using langguanApi.Extensions.AutoDI;
using langguanApi.Model;
using langguanApi.Model.Dto;
using Microsoft.AspNetCore.Mvc.ApiExplorer;
using Microsoft.OpenApi.Writers;
namespace langguanApi.Service
{
/// <summary>
/// 环境治理页面Service
/// </summary>
[ServiceInjection(InjectionType.Transient)]
public class EnvGovService
{
private HttpProxy _httpProxy;
private readonly IConfiguration _configuration;
public EnvGovService(HttpProxy httpProxy, IConfiguration configuration)
{
_httpProxy = httpProxy;
_configuration = configuration;
}
/// <summary>
/// 首页数据
/// </summary>
/// <returns></returns>
public async Task<ApiResult> IndexView()
{
var url = _configuration.GetValue<string>("Apis:DeviceList");
var deviceResp = await _httpProxy.Get<RespModel<devceList>>(null, url);
var deviceList = deviceResp.data.List.GroupBy(g => g.GroupID)
.Select(s => new
{
group = s.Key,
items = new
{
devices = s.ToList().GroupBy(m => m.DeviceType)
.Select(o => new
{
devicetype = ConvertDeviceType(o.Key),
items = o.ToList()
.Select(d => new
{
d.DeviceID,
d.DeviceName,
d.Lon,
d.Lat,
d.CurrentAngel,
d.RunLog
})
})
}
});
return new ApiResult
{
code = deviceResp.code,
msg = deviceResp.msg,
data = deviceList
};
}
/// <summary>
/// 转换设备类型
/// </summary>
/// <param name="deviceType"></param>
/// <returns></returns>
private string ConvertDeviceType(int deviceType)
{
switch (deviceType)
{
case 1:
return "雾炮";
case 2:
return "雾桩";
case 3:
return "干雾";
}
return null;
}
/// <summary>
/// 获取设备状态
/// </summary>
/// <param name="deviceId"></param>
/// <returns></returns>
public async Task<ApiResult> DeviceStatu(string deviceId)
{
var url = _configuration.GetValue<string>("Apis:DeviceStatu");
var deviceStatuResp = await _httpProxy.Get<RespModel<List<DeviceStatu>>>(null, url);
var result = deviceStatuResp.data.Where(s => s.DeviceID == deviceId).FirstOrDefault();
return new ApiResult
{
//接口返回错误,暂时注释
// code = deviceStatuResp.code,
code = 0,
msg = deviceStatuResp.msg,
data = result
};
}
}
}