对外接口修改
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,6 +67,10 @@ 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));
 | 
			
		||||
            // 获取远程接口污染物排放率
 | 
			
		||||
            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"));
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -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