public async Task <IActionResult> SaveIndicatorWarningLimit([FromBody] CreateIndicatorWarningLimitRequestDto request) { if (request.Limits.Count <= 0) { return(Failed(ErrorCode.Empty, "指标项参数未提供,请检查")); } if (request.Limits.Any(d => string.IsNullOrEmpty(d.OptionGuid))) { return(Failed(ErrorCode.Empty, "存在指标项为空的参数,请检查")); } var duplicateOptionExists = request.Limits .GroupBy(d => d.OptionGuid.Trim()) .Any(g => g.Count() > 1); if (duplicateOptionExists) { return(Failed(ErrorCode.Empty, "存在重复指标项的参数,请检查")); } if (request.Limits.Any(d => !d.MinValue.HasValue || !d.MaxValue.HasValue)) { return(Failed(ErrorCode.Empty, "存在预警范围为空的参数,请检查")); } else { if (request.Limits.Any(d => d.MaxValue.Value < d.MinValue.Value)) { return(Failed(ErrorCode.Empty, "存在预警低值大于预警高值的参数,请检查")); } } var consumerBiz = new ConsumerBiz(); var consumer = await consumerBiz.GetModelAsync(request.ConsumerGuid); if (consumer is null || !consumer.Enable) { return(Failed(ErrorCode.Empty, "指定会员不存在")); } var warningLimiBiz = new IndicatorWarningLimitBiz(); var dbLimits = await warningLimiBiz.GetLimits(request.ConsumerGuid); var createModels = new List <IndicatorWarningLimitModel>(); var updateModels = new List <IndicatorWarningLimitModel>(); if (dbLimits is null || dbLimits.Count <= 0) { createModels = request.Limits.Select(d => new IndicatorWarningLimitModel() { LimitGuid = Guid.NewGuid().ToString(), UserGuid = request.ConsumerGuid, TurnOnWarning = request.TurnOnWarning, IndicatorOptionGuid = d.OptionGuid, MinValue = d.MinValue, MaxValue = d.MaxValue, CreatedBy = UserID, LastUpdatedBy = UserID, OrgGuid = "" }).ToList(); }
public async Task <IActionResult> GetIndicatorWarningLimit([FromQuery] GetIndicatorWarningLimitRequestDto request) { var warningLimitBiz = new IndicatorWarningLimitBiz(); var limits = await warningLimitBiz.GetIndicatorWarningLimits(request); if (limits.Count <= 0) { return(Failed(ErrorCode.Empty, "指标不存在")); } var response = new GetIndicatorWarningLimitResponseDto() { TurnOnWarning = limits.FirstOrDefault().TurnOnWarning, Limits = limits }; return(Success(response)); }