namespace Yw.Application { /// /// DmaSiteBinding /// [Route("DMA/Site/Binding")] [ApiDescriptionSettings("DMA", Name = "Dma点位绑定", Order = 8000)] public class DmaSiteBinding_Controller : IDynamicApiController { private readonly Service.DmaSiteBinding _service = new Service.DmaSiteBinding(); #region Query /// /// 通过 SiteID 获取有效绑定 /// [Route("GetValidBySiteID@V1.0")] [HttpGet] public DmaSiteBindingDto GetValidBySiteID([FromQuery][Required] SiteIDInput input) { var model = _service.GetValidBySiteID(input.SiteID); return model == null ? null : new DmaSiteBindingDto(model); } /// /// 通过 SiteIds 获取有效绑定 /// [Route("GetValidBySiteIds@V1.0")] [HttpGet] public List GetValidBySiteIds([FromQuery][Required] SiteIdsInput input) { var ids = LongListHelper.ToList(input.SiteIds); var list = _service.GetValidBySiteIds(ids); var vmList = list?.Select(x => new DmaSiteBindingDto(x)).ToList(); return vmList; } #endregion #region Exist /// /// 通过 SiteID 判断是否存在有效绑定 /// [Route("IsExistValidBySiteID@V1.0")] [HttpGet] public bool IsExistValidBySiteID([FromQuery][Required] SiteIDInput input) { var bol = _service.IsExistValidBySiteID(input.SiteID); return bol; } #endregion #region Binding /// /// 绑定 /// [Route("Binding@V1.0")] [HttpPost] public bool Binding([Required] BindingDmaSiteInput input) { var model = new Service.DmaSite().GetByID(input.SiteID); if (model == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, $"SiteID:{input.SiteID} 数据不存在"); } if (_service.IsExistValidBySiteID(input.SiteID)) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"SiteID:{input.SiteID} 已绑定,请解除绑定后重试!"); } var binding = new Model.DmaSiteBinding() { SiteID = input.SiteID, MeterID = input.MeterID, BindingTime = DateTime.Now }; return _service.Insert(binding) > 0; } /// /// 解绑 /// [Route("UnBinding@V1.0")] [HttpPost] public bool UnBinding([Required] UnBindingDmaSiteInput input) { var binding = _service.GetValidBySiteID(input.SiteID); if (binding == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, $"SiteID:{input.SiteID} 未绑定,无法解绑!"); } var rhs = new Model.DmaSiteBinding(binding) { UnBindingTime = DateTime.Now }; return _service.Update(rhs); } #endregion #region Delete /// /// 删除 /// [Route("DeleteByID@V1.0")] [HttpDelete] public bool DeleteByID([FromQuery][Required] IDInput input) { var bol = _service.DeleteByID(input.ID, out string Msg); if (!bol) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, Msg); } return bol; } #endregion } }