using System.Web.Http; using CncModels.Dto; using CncModels.Dto.CollectAddress; using CncService.Interface; using CncWebApi.Infrastructure; namespace CncWebApi.Controllers { /// /// 采集地址控制器 /// [RoutePrefix("api/admin/collect-address")] [JwtAuthFilter] public class CollectAddressController : ApiController { private readonly ICollectAddressService _collectAddressService; /// /// 构造函数 /// public CollectAddressController(ICollectAddressService collectAddressService) { _collectAddressService = collectAddressService; } /// /// 地址列表(分页) /// GET /api/admin/collect-address /// [HttpGet] [Route("")] public IHttpActionResult GetList([FromUri] CollectAddressQuery query) { if (query == null) query = new CollectAddressQuery(); var result = _collectAddressService.GetList(query); return Ok(ApiResponse>.Success(result)); } /// /// 地址详情 /// GET /api/admin/collect-address/{id} /// [HttpGet] [Route("{id:int}")] public IHttpActionResult GetById(int id) { var result = _collectAddressService.GetById(id); return Ok(ApiResponse.Success(result)); } /// /// 新增地址 /// POST /api/admin/collect-address /// [HttpPost] [Route("")] public IHttpActionResult Create([FromBody] CreateCollectAddressRequest request) { var id = _collectAddressService.Create(request); return Ok(ApiResponse.Success(new { id })); } /// /// 编辑地址 /// PUT /api/admin/collect-address/{id} /// [HttpPut] [Route("{id:int}")] public IHttpActionResult Update(int id, [FromBody] UpdateCollectAddressRequest request) { var result = _collectAddressService.Update(id, request); return Ok(ApiResponse.Success(null)); } /// /// 删除地址 /// DELETE /api/admin/collect-address/{id} /// [HttpDelete] [Route("{id:int}")] public IHttpActionResult Delete(int id) { var result = _collectAddressService.Delete(id); return Ok(ApiResponse.Success(null)); } /// /// 启停地址 /// PUT /api/admin/collect-address/{id}/toggle /// [HttpPut] [Route("{id:int}/toggle")] public IHttpActionResult ToggleEnabled(int id) { var result = _collectAddressService.ToggleEnabled(id); return Ok(ApiResponse.Success(null)); } /// /// 地址下关联机床列表 /// GET /api/admin/collect-address/{id}/machines /// [HttpGet] [Route("{id:int}/machines")] public IHttpActionResult GetMachines(int id) { var result = _collectAddressService.GetMachines(id); return Ok(ApiResponse.Success(new { items = result })); } /// /// 地址近期采集记录 /// GET /api/admin/collect-address/{id}/collect-records /// [HttpGet] [Route("{id:int}/collect-records")] public IHttpActionResult GetCollectRecords(int id) { var result = _collectAddressService.GetCollectRecords(id); return Ok(ApiResponse.Success(new { items = result })); } /// /// 地址最新原始JSON /// GET /api/admin/collect-address/{id}/raw-json /// [HttpGet] [Route("{id:int}/raw-json")] public IHttpActionResult GetRawJson(int id, string recordId = null) { var result = _collectAddressService.GetRawJson(id, recordId); return Ok(ApiResponse.Success(result)); } } }