对外接口修改
This commit is contained in:
parent
81f68f3a1a
commit
339592fd9c
100
langguanApi.xml
100
langguanApi.xml
|
|
@ -34,6 +34,14 @@
|
|||
<returns></returns>
|
||||
<exception cref="T:System.Exception"></exception>
|
||||
</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">
|
||||
<summary>
|
||||
sub
|
||||
|
|
@ -201,6 +209,34 @@
|
|||
<param name="deviceType"></param>
|
||||
<returns></returns>
|
||||
</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)">
|
||||
<summary>
|
||||
获取指定设备的历史数据
|
||||
|
|
@ -794,6 +830,46 @@
|
|||
<param name="Text">原始数据</param>
|
||||
<returns>是否通过</returns>
|
||||
</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">
|
||||
<summary>
|
||||
用于用户管理的Dto
|
||||
|
|
@ -1886,6 +1962,24 @@
|
|||
<param name="input"></param>
|
||||
<returns></returns>
|
||||
</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)">
|
||||
<summary>
|
||||
首页数据
|
||||
|
|
@ -2079,6 +2173,12 @@
|
|||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.MenuService.GetMenuTreeList">
|
||||
<summary>
|
||||
获取菜单树
|
||||
</summary>
|
||||
<returns></returns>
|
||||
</member>
|
||||
<member name="M:langguanApi.Service.MenuService.GetChildList(System.String)">
|
||||
<summary>
|
||||
递归获取子菜单列表
|
||||
|
|
|
|||
|
|
@ -44,5 +44,33 @@ namespace langguanApi.Common.Proxy
|
|||
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 Microsoft.AspNetCore.Http;
|
||||
using Microsoft.AspNetCore.Mvc;
|
||||
|
|
@ -10,7 +12,8 @@ namespace langguanApi.Controllers
|
|||
public class AlertController : ControllerBase
|
||||
{
|
||||
private readonly AlertService _alertService;
|
||||
public AlertController(AlertService alertService)
|
||||
|
||||
public AlertController(AlertService alertService, HttpProxy httpProxy, IConfiguration configuration)
|
||||
{
|
||||
_alertService = alertService;
|
||||
}
|
||||
|
|
@ -25,6 +28,7 @@ namespace langguanApi.Controllers
|
|||
{
|
||||
start = start.HasValue ? start.Value.Date : DateTime.Now.AddDays(-7);
|
||||
end = end.HasValue ? end.Value.Date.AddDays(1) : DateTime.Now.Date.AddDays(1);
|
||||
|
||||
var alerts = await _alertService.ExportData(start, end);
|
||||
return File(alerts, "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
|
||||
$"{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")]
|
||||
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)
|
||||
{
|
||||
return Ok(result);
|
||||
return Ok(new ApiResult() { data = result });
|
||||
}
|
||||
else
|
||||
{
|
||||
return BadRequest(result);
|
||||
return Ok(new ApiResult() { code = -1, msg = "用户名或密码错误" });
|
||||
}
|
||||
}
|
||||
/// <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 class UserAnMenusViewModel
|
||||
{
|
||||
public UserEntity UserInfo { get; set; }
|
||||
public string RoleName { get; set; }
|
||||
public List<MenuTreeDto> Menus { get; set; }
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -416,6 +416,7 @@
|
|||
a34040,
|
||||
a99010,
|
||||
a99049,
|
||||
a99054
|
||||
//a99051,
|
||||
#endregion
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,5 @@
|
|||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Common.Proxy;
|
||||
using langguanApi.Extensions.AutoDI;
|
||||
using langguanApi.Model;
|
||||
using langguanApi.Model.Dto;
|
||||
using langguanApi.Model.Entity;
|
||||
|
|
@ -11,8 +12,12 @@ namespace langguanApi.Service
|
|||
[ServiceInjection(InjectionType.Transient)]
|
||||
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>
|
||||
/// 新加
|
||||
|
|
@ -54,13 +59,35 @@ namespace langguanApi.Service
|
|||
/// <returns></returns>
|
||||
public async Task<byte[]> ExportData(DateTime? start, DateTime? end)
|
||||
{
|
||||
|
||||
Expression<Func<Alert, bool>> exp = filter => filter.CreateDateTime >= start
|
||||
&& filter.CreateDateTime <= end
|
||||
&& filter.IsDelete == false;
|
||||
&& filter.CreateDateTime <= end && 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();
|
||||
if (list.Any())
|
||||
{
|
||||
result.AddRange(list);
|
||||
}
|
||||
if (result.Any())
|
||||
{
|
||||
result = result.OrderByDescending(s => s.CreateDateTime).ToList();
|
||||
var mapper = new Mapper();
|
||||
mapper.Map<Alert>("报警开始时间", s => s.CreateDateTime)
|
||||
.Map<Alert>("设备名称", s => s.deviceName)
|
||||
|
|
@ -68,7 +95,7 @@ namespace langguanApi.Service
|
|||
.Map<Alert>("内容", s => s.AlertContent)
|
||||
.Format<Alert>("yyyy-MM-dd HH:mm:ss", s => s.CreateDateTime);
|
||||
MemoryStream stream = new MemoryStream();
|
||||
mapper.Save(stream, list, sheetName: "sheet1", leaveOpen: true);
|
||||
mapper.Save(stream, result, sheetName: "sheet1", leaveOpen: true);
|
||||
return stream.ToArray();
|
||||
}
|
||||
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))
|
||||
{
|
||||
var body = JsonConvert.SerializeObject(hj.CP);
|
||||
Console.WriteLine("解析成功: " + body);
|
||||
var entity = JsonConvert.DeserializeObject<Model.HJ212>(body);
|
||||
entity.deviceMN = hj.DATA_HEAD["MN"];
|
||||
await _deviceService.Add(new DeviceAddDto
|
||||
{
|
||||
deviceMN = hj.DATA_HEAD["MN"],
|
||||
DeviceType = SetDeviceType(hj.DATA_HEAD["ST"]),
|
||||
Ip= session.RemoteIPEndPoint.ToString(),
|
||||
Ip = session.RemoteIPEndPoint.ToString(),
|
||||
});
|
||||
//校验通过,开始入库
|
||||
await _hj212Service.Add(entity, session.RemoteIPEndPoint.ToString());
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ using langguanApi.Extensions.AutoDI;
|
|||
using langguanApi.Model;
|
||||
using System.Linq.Expressions;
|
||||
using langguanApi.Common.Proxy;
|
||||
using langguanApi.Model.Dto;
|
||||
|
||||
namespace langguanApi.Service
|
||||
{
|
||||
|
|
@ -66,8 +67,12 @@ 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 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
|
||||
|
|
@ -97,10 +102,7 @@ namespace langguanApi.Service
|
|||
hotmap,
|
||||
weather,
|
||||
ariQuality,
|
||||
rate = new[] {
|
||||
new { key = "cems", val = 0.7 } ,
|
||||
new { key = "VOC", val = 0.6 }
|
||||
},
|
||||
rate,
|
||||
trend,
|
||||
alerts,
|
||||
cleanData,
|
||||
|
|
|
|||
|
|
@ -48,6 +48,15 @@ namespace langguanApi.Service
|
|||
/// </summary>
|
||||
/// <returns></returns>
|
||||
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>();
|
||||
var MenuList = await GetChildList("0");
|
||||
|
|
@ -63,7 +72,7 @@ namespace langguanApi.Service
|
|||
Children = await GetChildList(item.Id)
|
||||
});
|
||||
}
|
||||
return new ApiResult() { data = dto };
|
||||
return dto;
|
||||
}
|
||||
/// <summary>
|
||||
/// 递归获取子菜单列表
|
||||
|
|
|
|||
|
|
@ -19,10 +19,15 @@ namespace langguanApi.Service
|
|||
{
|
||||
private ILogger<UserService> _logger;
|
||||
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;
|
||||
_roleService = roleService;
|
||||
_roleMenuServie = roleMenuServie;
|
||||
_menuService = menuService;
|
||||
}
|
||||
/// <summary>
|
||||
/// 登录
|
||||
|
|
@ -30,12 +35,23 @@ namespace langguanApi.Service
|
|||
/// <param name="username"></param>
|
||||
/// <param name="password"></param>
|
||||
/// <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 =>
|
||||
filter.Username == username && filter.Password == StringHelper.MD5Encrypt32(password);
|
||||
var list = await base.GetListWithExp(exp);
|
||||
return list.FirstOrDefault();
|
||||
var userEntity = (await base.GetListWithExp(exp)).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>
|
||||
/// 根据用户名获取用户信息
|
||||
|
|
|
|||
|
|
@ -18,10 +18,10 @@
|
|||
"Weather": "https://weather.cma.cn/api/now/54511", //天气预报地址,中国气象
|
||||
"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地址
|
||||
"RateUrl": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/DeviceOnlineRate", //首页设备在线率API地址
|
||||
"AlertUrl": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/DeviceHistoryAlarm", //首页设报警API地址
|
||||
"DeviceList": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/GetDeviceList", //环境治理 API地址
|
||||
"DeviceStatu": "https://mock.apipark.cn/m1/4687001-0-default/DustApi/GetDeviceStatu" //设备明细 API地址
|
||||
|
||||
},
|
||||
"Home": {
|
||||
|
|
|
|||
Loading…
Reference in New Issue