lixiaojun
2023-03-21 c6c912c9a0b1235805dea4fbb471e26a7f13a47d
Application/IStation.Application.LinuxTest/test/MonitorRecord_Controller.cs
@@ -12,6 +12,7 @@
using Microsoft.AspNetCore.Authorization;
using Furion.DataEncryption;
using Furion.FriendlyException;
using MySqlX.XDevAPI.Common;
namespace IStation.Application
{
@@ -21,70 +22,34 @@
    [AllowAnonymous]
    [Route("LinuxTest/MonitorRecord")]
    [ApiDescriptionSettings("LinuxTest", Name = "监测记录", Order = 999)]
    public class MonitorRecord_Controller : IDynamicApiController, ITransient
    public class MonitorRecord_Controller : IDynamicApiController, ITransient
    {
        private readonly IHttpContextAccessor _httpContextAccessor;
        /// <summary>
        /// 
        /// </summary>
        public MonitorRecord_Controller(IHttpContextAccessor httpContextAccessor)
        public MonitorRecord_Controller(IHttpContextAccessor httpContextAccessor)
        {
            _httpContextAccessor = httpContextAccessor;
            _httpContextAccessor = httpContextAccessor;
        }
        //服务
        private readonly Service.MonitorRecord _service = new Service.MonitorRecord();
        #region Insert
        /// <summary>
        /// 插入一条
        /// </summary>
        [Route("Insert@V1.0")]
        [HttpPost]
        public bool Insert([Required] AddMonitorRecordInput input)
        public string Insert([Required] AddMonitorRecordInput input)
        {
            if (input == null)
                return default;
            var model = input.Adapt<AddMonitorRecordInput, Model.MonitorRecord>();
            var bol = _service.InsertLastRecord(model);
            return bol;
            var redisHelper = new RedisClientHelper();
            var bol = redisHelper.HashSet("lxjxxx", "hashdddd", "dddddddd");
            return bol.ToString();
        }
        /// <summary>
        /// 插入多条
        /// </summary>
        [Route("Inserts@V1.0")]
        [HttpPost]
        public bool Inserts([Required] List<AddMonitorRecordInput> inputList)
        {
            if (inputList == null || inputList.Count < 1)
                return false;
            var list = inputList.Select(x => x.Adapt<AddMonitorRecordInput, Model.MonitorRecord>()).ToList();
            var bol = _service.InsertsLastRecord(list);
            return bol;
        }
        #endregion
        #region 获取所有
        /// <summary>
        /// 获取所有
        /// </summary>
        [Route("GetAll")]
        [HttpGet]
        public List<MonitorRecordDto> GetAll()
        {
            var list = _service.GetAll();
            var vmList = list?.Select(x => new MonitorRecordDto(x)).ToList();
            return vmList;
        }
        #endregion
        #region 获取最近记录
        /// <summary>
        /// 通过 MonitorPointID 获取最近一条数据
@@ -93,106 +58,11 @@
        [HttpGet]
        public MonitorRecordDto GetLastRecordByMonitorPointID([FromQuery][Required] MonitorPointIDInput input)
        {
            var model = _service.GetLastRecord( input.MonitorPointID);
            var model = _service.GetLastRecord(input.MonitorPointID);
            if (model == null)
                return default;
            return new MonitorRecordDto(model);
        }
        /// <summary>
        /// 通过 MonitorPointIds  获取最近一条数据
        /// </summary>
        [Route("GetLastRecordByMonitorPointIds")]
        [HttpGet]
        public List<MonitorRecordDto> GetLastRecordByMonitorPointIds([FromQuery][Required] MonitorPointIdsInput input)
        {
            var ids = LongListHelper.ToList(input.MonitorPointIds);
            var list = _service.GetLastRecord(ids);
            var vmList = list?.Select(x => new MonitorRecordDto(x)).ToList();
            return vmList;
        }
        #endregion
        #region 通过测点标识获取
        /// <summary>
        /// 通过 MonitorPointID 获取某天的数据
        /// </summary>
        [Route("GetByMonitorPointIDOfDay")]
        [HttpGet]
        public List<MonitorRecordDto> GetByMonitorPointIDOfDay
            (
                [Required, Range(1, long.MaxValue, ErrorMessage = "MonitorPointID 必须大于0")]
                long MonitorPointID,
                [Required]
                DateTime Day
            )
        {
            var list = _service.GetByMonitorPointIDOfDay( MonitorPointID, Day);
            var vmList = list?.Select(x => new MonitorRecordDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// 通过 MonitorPointID 获取日期区间内的数据
        /// </summary>
        [Route("GetByMonitorPointIDOfDayRange")]
        [HttpGet]
        public List<MonitorRecordDto> GetByMonitorPointIDOfDayRange
            (
                [Required, Range(1, long.MaxValue, ErrorMessage = "MonitorPointID 必须大于0")]
                long MonitorPointID,
                [Required]
                DateTime StartDay,
                [Required]
                DateTime EndDay
            )
        {
            if (StartDay.Date > EndDay.Date)
            {
                return default;
            }
            var list = _service.GetByMonitorPointIDOfDayRange( MonitorPointID, StartDay, EndDay);
            var vmList = list?.Select(x => new MonitorRecordDto(x)).ToList();
            return vmList;
        }
        /// <summary>
        /// 通过 MonitorPointID 获取时间区间内的数据
        /// </summary>
        [Route("GetByMonitorPointIDOfTimeRange")]
        [HttpGet]
        public List<MonitorRecordDto> GetByMonitorPointIDOfTimeRange
            (
                [Required, Range(1, long.MaxValue, ErrorMessage = "MonitorPointID 必须大于0")]
                long MonitorPointID,
                [Required]
                DateTime StartTime,
                [Required]
                DateTime EndTime
            )
        {
            if (StartTime > EndTime)
            {
                return default;
            }
            var list = _service.GetByMonitorPointIDOfTimeRange( MonitorPointID, StartTime, EndTime);
            var vmList = list?.Select(x => new MonitorRecordDto(x)).ToList();
            return vmList;
        }
        #endregion
    }
}