对外接口修改
This commit is contained in:
parent
81f68f3a1a
commit
339592fd9c
100
langguanApi.xml
100
langguanApi.xml
|
|
@ -34,6 +34,14 @@
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
<exception cref="T:System.Exception"></exception>
|
<exception cref="T:System.Exception"></exception>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:langguanApi.Common.Proxy.HttpProxy.PostData``1(System.Object,System.String)">
|
||||||
|
<summary>
|
||||||
|
post数据
|
||||||
|
</summary>
|
||||||
|
<param name="requestUri"></param>
|
||||||
|
<param name="data"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="F:langguanApi.Common.Redis.RedisHelper._subscriber">
|
<member name="F:langguanApi.Common.Redis.RedisHelper._subscriber">
|
||||||
<summary>
|
<summary>
|
||||||
sub
|
sub
|
||||||
|
|
@ -201,6 +209,34 @@
|
||||||
<param name="deviceType"></param>
|
<param name="deviceType"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:langguanApi.Controllers.EnvGovController">
|
||||||
|
<summary>
|
||||||
|
环境治理页面接口
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:langguanApi.Controllers.EnvGovController._envGovService">
|
||||||
|
<summary>
|
||||||
|
环境治理服务
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Controllers.EnvGovController.#ctor(langguanApi.Service.EnvGovService)">
|
||||||
|
<summary>
|
||||||
|
构造函数
|
||||||
|
</summary>
|
||||||
|
<param name="envGovService"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Controllers.EnvGovController.GetEnvGovData(System.String)">
|
||||||
|
<summary>
|
||||||
|
获取设备状态数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Controllers.EnvGovController.IndexView">
|
||||||
|
<summary>
|
||||||
|
环境治理首页
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:langguanApi.Controllers.HJ212Controller.Get(System.String)">
|
<member name="M:langguanApi.Controllers.HJ212Controller.Get(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
获取指定设备的历史数据
|
获取指定设备的历史数据
|
||||||
|
|
@ -794,6 +830,46 @@
|
||||||
<param name="Text">原始数据</param>
|
<param name="Text">原始数据</param>
|
||||||
<returns>是否通过</returns>
|
<returns>是否通过</returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.RespModel`1">
|
||||||
|
<summary>
|
||||||
|
RespModel
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:langguanApi.Model.Dto.RespModel`1.code">
|
||||||
|
<summary>
|
||||||
|
状态码
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.Rate">
|
||||||
|
<summary>
|
||||||
|
在线
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.alarm">
|
||||||
|
<summary>
|
||||||
|
报警信息
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.Devce">
|
||||||
|
<summary>
|
||||||
|
设备列表
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:langguanApi.Model.Dto.Devce.DeviceType">
|
||||||
|
<summary>
|
||||||
|
设备类型 1雾炮 2雾桩 3干雾
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.Devlogs">
|
||||||
|
<summary>
|
||||||
|
日志
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="T:langguanApi.Model.Dto.DeviceStatu">
|
||||||
|
<summary>
|
||||||
|
设备状态
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="T:langguanApi.Model.Dto.SystemConfigurationDto.UserDto">
|
<member name="T:langguanApi.Model.Dto.SystemConfigurationDto.UserDto">
|
||||||
<summary>
|
<summary>
|
||||||
用于用户管理的Dto
|
用于用户管理的Dto
|
||||||
|
|
@ -1886,6 +1962,24 @@
|
||||||
<param name="input"></param>
|
<param name="input"></param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:langguanApi.Service.EnvGovService">
|
||||||
|
<summary>
|
||||||
|
环境治理页面Service
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.EnvGovService.IndexView">
|
||||||
|
<summary>
|
||||||
|
首页数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.EnvGovService.DeviceStatu(System.String)">
|
||||||
|
<summary>
|
||||||
|
获取设备状态
|
||||||
|
</summary>
|
||||||
|
<param name="deviceId"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:langguanApi.Service.Hj212Service.GetIndexData(System.Int32)">
|
<member name="M:langguanApi.Service.Hj212Service.GetIndexData(System.Int32)">
|
||||||
<summary>
|
<summary>
|
||||||
首页数据
|
首页数据
|
||||||
|
|
@ -2079,6 +2173,12 @@
|
||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="M:langguanApi.Service.MenuService.GetMenuTreeList">
|
||||||
|
<summary>
|
||||||
|
获取菜单树
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="M:langguanApi.Service.MenuService.GetChildList(System.String)">
|
<member name="M:langguanApi.Service.MenuService.GetChildList(System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
递归获取子菜单列表
|
递归获取子菜单列表
|
||||||
|
|
|
||||||
|
|
@ -44,5 +44,33 @@ namespace langguanApi.Common.Proxy
|
||||||
return default(T);
|
return default(T);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// post数据
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="requestUri"></param>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<T> PostData<T>(object data, string requestUri)
|
||||||
|
{
|
||||||
|
StringContent content = null;
|
||||||
|
var client = _httpClientFactory.CreateClient();
|
||||||
|
client.BaseAddress = new Uri(requestUri);
|
||||||
|
if (data != null)
|
||||||
|
{
|
||||||
|
string json = Newtonsoft.Json.JsonConvert.SerializeObject(data);
|
||||||
|
content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");
|
||||||
|
}
|
||||||
|
var response = await client.PostAsync(requestUri, content);
|
||||||
|
if (response.IsSuccessStatusCode)
|
||||||
|
{
|
||||||
|
var result = await response.Content.ReadAsStringAsync();
|
||||||
|
return Newtonsoft.Json.JsonConvert.DeserializeObject<T>(result);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Console.WriteLine($"请求失败,状态码:{response.StatusCode},请求地址 {requestUri}");
|
||||||
|
return default(T);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
using langguanApi.Model;
|
using langguanApi.Common.Proxy;
|
||||||
|
using langguanApi.Model;
|
||||||
|
using langguanApi.Model.Dto;
|
||||||
using langguanApi.Service;
|
using langguanApi.Service;
|
||||||
using Microsoft.AspNetCore.Http;
|
using Microsoft.AspNetCore.Http;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
@ -10,7 +12,8 @@ namespace langguanApi.Controllers
|
||||||
public class AlertController : ControllerBase
|
public class AlertController : ControllerBase
|
||||||
{
|
{
|
||||||
private readonly AlertService _alertService;
|
private readonly AlertService _alertService;
|
||||||
public AlertController(AlertService alertService)
|
|
||||||
|
public AlertController(AlertService alertService, HttpProxy httpProxy, IConfiguration configuration)
|
||||||
{
|
{
|
||||||
_alertService = alertService;
|
_alertService = alertService;
|
||||||
}
|
}
|
||||||
|
|
@ -25,6 +28,7 @@ namespace langguanApi.Controllers
|
||||||
{
|
{
|
||||||
start = start.HasValue ? start.Value.Date : DateTime.Now.AddDays(-7);
|
start = start.HasValue ? start.Value.Date : DateTime.Now.AddDays(-7);
|
||||||
end = end.HasValue ? end.Value.Date.AddDays(1) : DateTime.Now.Date.AddDays(1);
|
end = end.HasValue ? end.Value.Date.AddDays(1) : DateTime.Now.Date.AddDays(1);
|
||||||
|
|
||||||
var alerts = await _alertService.ExportData(start, end);
|
var alerts = await _alertService.ExportData(start, end);
|
||||||
return File(alerts, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
return File(alerts, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||||
$"{start.Value.ToString("yyyy-MM-dd")}-{end.Value.ToString("yyyy-MM-dd")}_设备报警.xlsx");
|
$"{start.Value.ToString("yyyy-MM-dd")}-{end.Value.ToString("yyyy-MM-dd")}_设备报警.xlsx");
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,47 @@
|
||||||
|
using langguanApi.Service;
|
||||||
|
using Microsoft.AspNetCore.Http;
|
||||||
|
using Microsoft.AspNetCore.Mvc;
|
||||||
|
|
||||||
|
namespace langguanApi.Controllers
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 环境治理页面接口
|
||||||
|
/// </summary>
|
||||||
|
[Route("api/[controller]")]
|
||||||
|
[ApiController]
|
||||||
|
public class EnvGovController : ControllerBase
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 环境治理服务
|
||||||
|
/// </summary>
|
||||||
|
private readonly EnvGovService _envGovService;
|
||||||
|
/// <summary>
|
||||||
|
/// 构造函数
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="envGovService"></param>
|
||||||
|
public EnvGovController(EnvGovService envGovService)
|
||||||
|
{
|
||||||
|
_envGovService = envGovService;
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取设备状态数据
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("DeviceStatu")]
|
||||||
|
public async Task<IActionResult> GetEnvGovData(string deviceId)
|
||||||
|
{
|
||||||
|
var data = await _envGovService.DeviceStatu(deviceId);
|
||||||
|
return Ok(data);
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 环境治理首页
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
[HttpGet("Index")]
|
||||||
|
public async Task<IActionResult> IndexView()
|
||||||
|
{
|
||||||
|
var result = await _envGovService.IndexView();
|
||||||
|
return Ok(result);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -24,14 +24,14 @@ namespace langguanApi.Controllers
|
||||||
[HttpPost("login")]
|
[HttpPost("login")]
|
||||||
public async Task<IActionResult> Login([FromBody] UserLogin user)
|
public async Task<IActionResult> Login([FromBody] UserLogin user)
|
||||||
{
|
{
|
||||||
var result = _userService.login(user.Username, user.Password);
|
var result = await _userService.login(user.Username, user.Password);
|
||||||
if (result != null)
|
if (result != null)
|
||||||
{
|
{
|
||||||
return Ok(result);
|
return Ok(new ApiResult() { data = result });
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return BadRequest(result);
|
return Ok(new ApiResult() { code = -1, msg = "用户名或密码错误" });
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,78 @@
|
||||||
|
namespace langguanApi.Model.Dto
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// RespModel
|
||||||
|
/// </summary>
|
||||||
|
public class RespModel<T>
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 状态码
|
||||||
|
/// </summary>
|
||||||
|
public int code { get; set; }
|
||||||
|
public T data { get; set; }
|
||||||
|
public string msg { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 在线
|
||||||
|
/// </summary>
|
||||||
|
public class Rate
|
||||||
|
{
|
||||||
|
public string key { get; set; }
|
||||||
|
public string val { get; set; }
|
||||||
|
}
|
||||||
|
public class alarmList
|
||||||
|
{
|
||||||
|
public List<alarm> List { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 报警信息
|
||||||
|
/// </summary>
|
||||||
|
public class alarm
|
||||||
|
{
|
||||||
|
public string DeviceName { get; set; }
|
||||||
|
public string AlarmName { get; set; }
|
||||||
|
public string Time { get; set; }
|
||||||
|
}
|
||||||
|
public class devceList
|
||||||
|
{
|
||||||
|
public List<Devce> List { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 设备列表
|
||||||
|
/// </summary>
|
||||||
|
public class Devce
|
||||||
|
{
|
||||||
|
public string DeviceName { get; set; }
|
||||||
|
public string DeviceID { get; set; }
|
||||||
|
public string GroupID { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// 设备类型 1雾炮 2雾桩 3干雾
|
||||||
|
/// </summary>
|
||||||
|
public int DeviceType { get; set; }
|
||||||
|
public double Lon { get; set; }
|
||||||
|
public double Lat { get; set; }
|
||||||
|
public List<Devlogs> RunLog { get; set; }
|
||||||
|
public double CurrentAngel { get; set; }
|
||||||
|
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 日志
|
||||||
|
/// </summary>
|
||||||
|
public class Devlogs
|
||||||
|
{
|
||||||
|
public string Time { get; set; }
|
||||||
|
public string Text { get; set; }
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 设备状态
|
||||||
|
/// </summary>
|
||||||
|
public class DeviceStatu
|
||||||
|
{
|
||||||
|
public string DeviceID { get; set; }
|
||||||
|
public string DeviceName { get; set; }
|
||||||
|
public double ElecInfo { get; set; }
|
||||||
|
public double WaterFlow { get; set; }
|
||||||
|
public double Pressure { get; set; }
|
||||||
|
public long RunTime { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -70,5 +70,11 @@ namespace langguanApi.Model.Entity
|
||||||
{
|
{
|
||||||
public string RoleName { get; set; }
|
public string RoleName { get; set; }
|
||||||
}
|
}
|
||||||
|
public class UserAnMenusViewModel
|
||||||
|
{
|
||||||
|
public UserEntity UserInfo { get; set; }
|
||||||
|
public string RoleName { get; set; }
|
||||||
|
public List<MenuTreeDto> Menus { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -416,6 +416,7 @@
|
||||||
a34040,
|
a34040,
|
||||||
a99010,
|
a99010,
|
||||||
a99049,
|
a99049,
|
||||||
|
a99054
|
||||||
//a99051,
|
//a99051,
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,5 @@
|
||||||
using langguanApi.Extensions.AutoDI;
|
using langguanApi.Common.Proxy;
|
||||||
|
using langguanApi.Extensions.AutoDI;
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using langguanApi.Model.Dto;
|
using langguanApi.Model.Dto;
|
||||||
using langguanApi.Model.Entity;
|
using langguanApi.Model.Entity;
|
||||||
|
|
@ -11,8 +12,12 @@ namespace langguanApi.Service
|
||||||
[ServiceInjection(InjectionType.Transient)]
|
[ServiceInjection(InjectionType.Transient)]
|
||||||
public class AlertService : BaseService<Alert>
|
public class AlertService : BaseService<Alert>
|
||||||
{
|
{
|
||||||
public AlertService(IConfiguration config) : base(config, nameof(Alert))
|
private readonly HttpProxy _httpProxy;
|
||||||
|
private readonly IConfiguration _configuration;
|
||||||
|
public AlertService(IConfiguration config, HttpProxy httpProxy) : base(config, nameof(Alert))
|
||||||
{
|
{
|
||||||
|
_httpProxy = httpProxy;
|
||||||
|
_configuration = config;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 新加
|
/// 新加
|
||||||
|
|
@ -54,13 +59,35 @@ namespace langguanApi.Service
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<byte[]> ExportData(DateTime? start, DateTime? end)
|
public async Task<byte[]> ExportData(DateTime? start, DateTime? end)
|
||||||
{
|
{
|
||||||
|
|
||||||
Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= start
|
Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= start
|
||||||
&& filter.CreateDateTime <= end
|
&& filter.CreateDateTime <= end && filter.IsDelete == false;
|
||||||
&& filter.IsDelete == false;
|
List<Alert> result = new List<Alert>();
|
||||||
|
//获取接口报警数据
|
||||||
|
Dictionary<string, string> dic = new Dictionary<string, string>() { };
|
||||||
|
dic.Add("BeginTime", start.Value.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
dic.Add("EndTime", end.Value.ToString("yyyy-MM-dd HH:mm:ss"));
|
||||||
|
var AlermResp = await _httpProxy.Get<RespModel<alarmList>>(dic,_configuration.GetValue<string>("Apis:AlertUrl"));
|
||||||
|
if (AlermResp.code == 0)
|
||||||
|
{
|
||||||
|
var romte = AlermResp.data.List.Select(s => new Alert
|
||||||
|
{
|
||||||
|
AlertContent = s.AlarmName,
|
||||||
|
deviceName = s.DeviceName,
|
||||||
|
CreateDateTime = DateTime.Parse(s.Time)
|
||||||
|
}).ToList();
|
||||||
|
if (romte.Any())
|
||||||
|
{
|
||||||
|
result.AddRange(romte);
|
||||||
|
}
|
||||||
|
}
|
||||||
var list = (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime).ToList();
|
var list = (await base.GetListWithExp(exp)).OrderByDescending(s => s.CreateDateTime).ToList();
|
||||||
if (list.Any())
|
if (list.Any())
|
||||||
{
|
{
|
||||||
|
result.AddRange(list);
|
||||||
|
}
|
||||||
|
if (result.Any())
|
||||||
|
{
|
||||||
|
result = result.OrderByDescending(s => s.CreateDateTime).ToList();
|
||||||
var mapper = new Mapper();
|
var mapper = new Mapper();
|
||||||
mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime)
|
mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime)
|
||||||
.Map<Alert>("设备名称", s => s.deviceName)
|
.Map<Alert>("设备名称", s => s.deviceName)
|
||||||
|
|
@ -68,7 +95,7 @@ namespace langguanApi.Service
|
||||||
.Map<Alert>("内容", s => s.AlertContent)
|
.Map<Alert>("内容", s => s.AlertContent)
|
||||||
.Format<Alert>("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
|
.Format<Alert>("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
|
||||||
MemoryStream stream = new MemoryStream();
|
MemoryStream stream = new MemoryStream();
|
||||||
mapper.Save(stream, list, sheetName: "sheet1", leaveOpen: true);
|
mapper.Save(stream, result, sheetName: "sheet1", leaveOpen: true);
|
||||||
return stream.ToArray();
|
return stream.ToArray();
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,97 @@
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
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
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -96,13 +96,14 @@ namespace langguanApi.Service
|
||||||
if (hj.DecodeData(rawText))
|
if (hj.DecodeData(rawText))
|
||||||
{
|
{
|
||||||
var body = JsonConvert.SerializeObject(hj.CP);
|
var body = JsonConvert.SerializeObject(hj.CP);
|
||||||
|
Console.WriteLine("解析成功: " + body);
|
||||||
var entity = JsonConvert.DeserializeObject<Model.HJ212>(body);
|
var entity = JsonConvert.DeserializeObject<Model.HJ212>(body);
|
||||||
entity.deviceMN = hj.DATA_HEAD["MN"];
|
entity.deviceMN = hj.DATA_HEAD["MN"];
|
||||||
await _deviceService.Add(new DeviceAddDto
|
await _deviceService.Add(new DeviceAddDto
|
||||||
{
|
{
|
||||||
deviceMN = hj.DATA_HEAD["MN"],
|
deviceMN = hj.DATA_HEAD["MN"],
|
||||||
DeviceType = SetDeviceType(hj.DATA_HEAD["ST"]),
|
DeviceType = SetDeviceType(hj.DATA_HEAD["ST"]),
|
||||||
Ip= session.RemoteIPEndPoint.ToString(),
|
Ip = session.RemoteIPEndPoint.ToString(),
|
||||||
});
|
});
|
||||||
//校验通过,开始入库
|
//校验通过,开始入库
|
||||||
await _hj212Service.Add(entity, session.RemoteIPEndPoint.ToString());
|
await _hj212Service.Add(entity, session.RemoteIPEndPoint.ToString());
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,7 @@ using langguanApi.Extensions.AutoDI;
|
||||||
using langguanApi.Model;
|
using langguanApi.Model;
|
||||||
using System.Linq.Expressions;
|
using System.Linq.Expressions;
|
||||||
using langguanApi.Common.Proxy;
|
using langguanApi.Common.Proxy;
|
||||||
|
using langguanApi.Model.Dto;
|
||||||
|
|
||||||
namespace langguanApi.Service
|
namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
|
|
@ -66,8 +67,12 @@ namespace langguanApi.Service
|
||||||
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
var ariQuality = await _cacheManager.GetConvertVale(RedisKeylist.AriQuality, getAriQualityFunc, 60 * 120);
|
||||||
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
Func<Task<object>> getTrendFunc = async () => await _hj212Service.GetIndexData();
|
||||||
var trend = await _cacheManager.GetConvertVale(RedisKeylist.Trend, getTrendFunc, 60 * new Random().Next(70));
|
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 rateResp = await _httpProxy.Get<RespModel<List<Rate>>>(null, _configuration.GetValue<string>("Apis:RateUrl"));
|
||||||
|
var rate = rateResp.data.ToList();
|
||||||
|
var AlermResp = await _httpProxy.Get<RespModel<alarmList>>(null, _configuration.GetValue<string>("Apis:AlertUrl"));
|
||||||
|
// 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
|
var cleaData = new
|
||||||
|
|
@ -97,10 +102,7 @@ namespace langguanApi.Service
|
||||||
hotmap,
|
hotmap,
|
||||||
weather,
|
weather,
|
||||||
ariQuality,
|
ariQuality,
|
||||||
rate = new[] {
|
rate,
|
||||||
new { key = "cems", val = 0.7 } ,
|
|
||||||
new { key = "VOC", val = 0.6 }
|
|
||||||
},
|
|
||||||
trend,
|
trend,
|
||||||
alerts,
|
alerts,
|
||||||
cleanData,
|
cleanData,
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,15 @@ namespace langguanApi.Service
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<ApiResult> GetMenuTree()
|
public async Task<ApiResult> GetMenuTree()
|
||||||
|
{
|
||||||
|
var result = await GetMenuTreeList();
|
||||||
|
return new ApiResult() { data = result };
|
||||||
|
}
|
||||||
|
/// <summary>
|
||||||
|
/// 获取菜单树
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<List<MenuTreeDto>> GetMenuTreeList()
|
||||||
{
|
{
|
||||||
List<MenuTreeDto> dto = new List<MenuTreeDto>();
|
List<MenuTreeDto> dto = new List<MenuTreeDto>();
|
||||||
var MenuList = await GetChildList("0");
|
var MenuList = await GetChildList("0");
|
||||||
|
|
@ -63,7 +72,7 @@ namespace langguanApi.Service
|
||||||
Children = await GetChildList(item.Id)
|
Children = await GetChildList(item.Id)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
return new ApiResult() { data = dto };
|
return dto;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 递归获取子菜单列表
|
/// 递归获取子菜单列表
|
||||||
|
|
|
||||||
|
|
@ -19,10 +19,15 @@ namespace langguanApi.Service
|
||||||
{
|
{
|
||||||
private ILogger<UserService> _logger;
|
private ILogger<UserService> _logger;
|
||||||
private RoleService _roleService;
|
private RoleService _roleService;
|
||||||
public UserService(IConfiguration config, ILogger<UserService> logger, RoleService roleService) : base(config, nameof(UserEntity).Replace("Entity", ""))
|
private RoleMenuServie _roleMenuServie;
|
||||||
|
private MenuService _menuService;
|
||||||
|
public UserService(IConfiguration config, ILogger<UserService> logger,
|
||||||
|
RoleService roleService, RoleMenuServie roleMenuServie, MenuService menuService) : base(config, nameof(UserEntity).Replace("Entity", ""))
|
||||||
{
|
{
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_roleService = roleService;
|
_roleService = roleService;
|
||||||
|
_roleMenuServie = roleMenuServie;
|
||||||
|
_menuService = menuService;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 登录
|
/// 登录
|
||||||
|
|
@ -30,12 +35,23 @@ namespace langguanApi.Service
|
||||||
/// <param name="username"></param>
|
/// <param name="username"></param>
|
||||||
/// <param name="password"></param>
|
/// <param name="password"></param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public async Task<UserEntity> login(string username, string password)
|
public async Task<UserAnMenusViewModel> login(string username, string password)
|
||||||
{
|
{
|
||||||
Expression<Func<UserEntity, bool>> exp = filter =>
|
Expression<Func<UserEntity, bool>> exp = filter =>
|
||||||
filter.Username == username && filter.Password == StringHelper.MD5Encrypt32(password);
|
filter.Username == username && filter.Password == StringHelper.MD5Encrypt32(password);
|
||||||
var list = await base.GetListWithExp(exp);
|
var userEntity = (await base.GetListWithExp(exp)).FirstOrDefault();
|
||||||
return list.FirstOrDefault();
|
if (userEntity != null)
|
||||||
|
{
|
||||||
|
var menuIds = await _roleMenuServie.GetByRoleId(userEntity.RoleId);
|
||||||
|
var menus = await _menuService.GetMenuTreeList();
|
||||||
|
return new UserAnMenusViewModel()
|
||||||
|
{
|
||||||
|
UserInfo = userEntity,
|
||||||
|
RoleName = (await _roleService.GetAsync(userEntity.RoleId))?.RoleName,
|
||||||
|
Menus = menus
|
||||||
|
};
|
||||||
|
}
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 根据用户名获取用户信息
|
/// 根据用户名获取用户信息
|
||||||
|
|
|
||||||
|
|
@ -18,10 +18,10 @@
|
||||||
"Weather": "https://weather.cma.cn/api/now/54511", //天气预报地址,中国气象
|
"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": {
|
"Apis": {
|
||||||
"RateUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设备在线API地址
|
"RateUrl": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/DeviceOnlineRate", //首页设备在线率API地址
|
||||||
"AlertUrl": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //首页设报警API地址
|
"AlertUrl": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/DeviceHistoryAlarm", //首页设报警API地址
|
||||||
"DeviceList": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000", //环境治理 API地址
|
"DeviceList": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/GetDeviceList", //环境治理 API地址
|
||||||
"DeviceInfo": "https://air.cnemc.cn:18007/CityData/GetAQIDataPublishLiveInfo?cityCode=110000" //设备明细 API地址
|
"DeviceStatu": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/GetDeviceStatu" //设备明细 API地址
|
||||||
|
|
||||||
},
|
},
|
||||||
"Home": {
|
"Home": {
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue