namespace Yw.Application { /// /// HealthQuotaEvaluationModelBinding /// [Route("Health/Quota/Evaluation/Model/Binding")] [ApiDescriptionSettings("Health", Name = "指标评价模型绑定", Order = 8900)] public class HealthQuotaEvaluationModelBinding_Controller : IDynamicApiController { private readonly Service.HealthQuotaEvaluationModelBinding _service = new(); #region Query /// /// 通过 ModelID 获取有效绑定 /// [Route("GetValidByModelID@V1.0")] [HttpGet] public List GetValidByModelID([FromQuery][Required] ModelIDInput input) { var list = _service.GetValidByModelID(input.ModelID); var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList(); return vm_list; } /// /// 通过 ModelIds 获取有效绑定 /// [Route("GetValidByModelIds@V1.0")] [HttpGet] public List GetValidByModelIds([FromQuery][Required] ModelIdsInput input) { var ids = LongListHelper.ToList(input.ModelIds); var list = _service.GetValidByModelIds(ids); var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList(); return vm_list; } /// /// 通过 SignalID 获取有效绑定 /// [Route("GetValidBySignalID@V1.0")] [HttpGet] public HealthQuotaEvaluationModelBindingDto GetValidBySignalID([FromQuery][Required] SignalIDInput input) { var model = _service.GetValidBySignalID(input.SignalID); if (model == null) return default; return new HealthQuotaEvaluationModelBindingDto(model); } /// /// 通过 SignalIds 获取有效绑定 /// [Route("GetValidBySignalIds@V1.0")] [HttpGet] public List GetValidBySignalIds([FromQuery][Required] SignalIdsInput input) { var ids = LongListHelper.ToList(input.SignalIds); var list = _service.GetValidBySignalIds(ids); var vm_list = list?.Select(x => new HealthQuotaEvaluationModelBindingDto(x)).ToList(); return vm_list; } #endregion #region Binding /// /// 绑定 /// [Route("Binding@V1.0")] [HttpPost] public bool Binding([Required] BindingHealthQuotaEvaluationModelInput input) { var model = new Service.HealthQuotaEvaluationModel().GetByID(input.ModelID); if (model == null) { throw Oops.Oh(ErrorCodes.D001, $"ModelID:{input.ModelID}"); } if (_service.IsExistValidBindingBySignalID(input.SignalID)) { throw Oops.Oh(ErrorCodes.V001, $"信号:{input.SignalID}", "已绑定,请解除绑定后重试!"); } var binding = new Model.HealthQuotaEvaluationModelBinding() { ModelID = input.ModelID, SignalID = input.SignalID, BindingTime = DateTime.Now }; return _service.Insert(binding) > 0; } /// /// 解绑 /// [Route("UnBinding@V1.0")] [HttpPost] public bool UnBinding([Required] UnBindingHealthQuotaEvaluationModelInput input) { var binding = _service.GetValidBySignalID(input.SignalID); if (binding == null) { throw Oops.Oh(ErrorCodes.V001, $"信号:{input.SignalID}", "未绑定,无法解绑!"); } var rhs = new Model.HealthQuotaEvaluationModelBinding(binding) { UnBindingTime = DateTime.Now }; return _service.Update(rhs); } #endregion } }