namespace Yw.Application
{
///
/// DmaSiteMapping
///
[Route("Dma/Site/Mapping")]
[ApiDescriptionSettings("DMA", Name = "Dma点位映射", Order = 7000)]
public class DmaSiteMapping_Controller : IDynamicApiController
{
private readonly Service.DmaSiteMapping _service = new Service.DmaSiteMapping();
#region Query
///
/// 获取所有
///
[Route("GetAll@V1.0")]
[HttpGet]
public List GetAll()
{
var list = _service.GetAll();
var vmList = list?.Select(x => new DmaSiteMappingDto(x)).ToList();
return vmList;
}
///
/// 通过 ID 获取
///
[Route("GetByID@V1.0")]
[HttpGet]
public DmaSiteMappingDto GetByID([FromQuery][Required] IDInput input)
{
var model = _service.GetByID(input.ID);
return model == null ? null : new DmaSiteMappingDto(model);
}
///
/// 通过 Ids 获取
///
[Route("GetByIds@V1.0")]
[HttpGet]
public List GetByIds([FromQuery][Required] IdsInput input)
{
var ids = LongListHelper.ToList(input.Ids);
var list = _service.GetByIds(ids);
var vmList = list?.Select(x => new DmaSiteMappingDto(x)).ToList();
return vmList;
}
///
/// 通过 SiteID 获取
///
[Route("GetBySiteID@V1.0")]
[HttpGet]
public List GetBySiteID([FromQuery][Required] SiteIDInput input)
{
var list = _service.GetBySiteID(input.SiteID);
var vmList = list?.Select(x => new DmaSiteMappingDto(x)).ToList();
return vmList;
}
///
/// 通过 AreaID 获取
///
[Route("GetByAreaID@V1.0")]
[HttpGet]
public List GetByAreaID([FromQuery][Required] AreaIDInput input)
{
var list = _service.GetByAreaID(input.AreaID);
var vmList = list?.Select(x => new DmaSiteMappingDto(x)).ToList();
return vmList;
}
#endregion
#region Insert
///
/// 插入一条
///
[Route("Insert@V1.0")]
[HttpPost]
public long Insert([Required] AddDmaSiteMappingInput input)
{
var area = new Yw.Service.DmaArea().GetByID(input.AreaID);
if (area == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"AreaID:{input.AreaID} 数据不存在");
}
var site = new Yw.Service.DmaSite().GetByID(input.SiteID);
if (site == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"SiteID:{input.SiteID} 数据不存在");
}
var model = input.Adapt();
var id = _service.Insert(model);
return id;
}
///
/// 插入多条
///
[Route("Inserts@V1.0")]
[HttpPost]
public bool Inserts([Required] List inputList)
{
var serviceArea = new Yw.Service.DmaArea();
var serviceSite = new Yw.Service.DmaSite();
foreach (var item in inputList)
{
var area = serviceArea.GetByID(item.AreaID);
if (area == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"AreaID:{item.AreaID} 数据不存在");
}
var site = serviceSite.GetByID(item.SiteID);
if (site == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"SiteID:{item.SiteID} 数据不存在");
}
}
var list = inputList.Select(x => x.Adapt()).ToList();
var bol = _service.Inserts(list);
return bol;
}
#endregion
#region Update
///
/// 更新一条
///
[Route("Update@V1.0")]
[HttpPut]
public bool Update([Required] UpdateDmaSiteMappingInput input)
{
var model = _service.GetByID(input.ID);
if (model == null)
{
throw YOops.Oh(eResultCode.Alert, ErrorCodes.D001, $"ID:{input.ID} 数据不存在");
}
var rhs = new Model.DmaSiteMapping(model);
input.Adapt(rhs);
var bol = _service.Update(rhs);
return bol;
}
///
/// 更新多条
///
[Route("Updates@V1.0")]
[HttpPut]
public bool Updates(List inputList)
{
var modelList = _service.GetByIds(inputList.Select(x => x.ID).ToList());
if (modelList == null || modelList.Count < 1)
{
return false;
}
var rhsList = new List();
modelList.ForEach(x =>
{
var input = inputList.Find(t => t.ID == x.ID);
if (input != null)
{
var rhs = new Model.DmaSiteMapping(x);
input.Adapt(rhs);
rhsList.Add(rhs);
}
});
if (rhsList.Count < 1)
{
return false;
}
var bol = _service.Updates(rhsList);
return bol;
}
///
/// 更新 Direction
///
[Route("UpdateDirection@V1.0")]
[HttpPut]
public bool UpdateDirection([Required] UpdateDirectionInput input)
{
var bol = _service.UpdateDirection(input.ID, (eDirection)input.Direction);
return bol;
}
#endregion
#region Exist
///
/// 通过 AreaID 判断是否存在
///
[Route("IsExistByAreaID@V1.0")]
[HttpGet]
public bool IsExistByAreaID([FromQuery][Required] AreaIDInput input)
{
var bol = _service.IsExistByAreaID(input.AreaID);
return bol;
}
///
/// 通过 SiteID 判断是否存在
///
[Route("IsExistBySiteID@V1.0")]
[HttpGet]
public bool IsExistBySiteID([FromQuery][Required] SiteIDInput input)
{
var bol = _service.IsExistBySiteID(input.SiteID);
return bol;
}
#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, ErrorCodes.D001, Msg);
}
return bol;
}
#endregion
}
}