using Microsoft.AspNetCore.Mvc; using System; using System.Threading.Tasks; using Znyc.Admin.AspNetCore.Controllers; using Znyc.Admin.AspNetCore.Entitys; using Znyc.Admin.AspNetCore.Mvc; using Znyc.Admin.Commons.Entitys; using Znyc.Admin.Commons.Mapping; using Znyc.Admin.Commons.Pages; using Znyc.Admin.Security.Dtos; using Znyc.Admin.Security.Entitys; using Znyc.Admin.Security.IServices; namespace Znyc.Admin.WebApi.Controllers { /// <summary> /// 车辆 /// </summary> [ApiController] [Route("api/Security/[controller]")] public class VehicleController : AreaApiController<Vehicle, VehicleOutputDto, VehicleInPutDto, IVehicleService, long> { private readonly IVehicleService _vehicleServices; /// <summary> /// 构造函数 /// </summary> public VehicleController( IVehicleService vehicleServices ) : base(vehicleServices) { _vehicleServices = vehicleServices; } /// <summary> /// 新增前处理数据 /// </summary> /// <param name="info"></param> protected override void OnBeforeInsert(Vehicle info) { info.Id = 0; info.CreatedTime = DateTime.Now; info.CreatedUserId = CurrentUser.UserId; info.IsDeleted = false; } /// <summary> /// 在更新数据前对数据的修改操作 /// </summary> /// <param name="info"></param> /// <returns></returns> protected override void OnBeforeUpdate(Vehicle info) { info.CreatedUserId = CurrentUser.UserId; info.ModifiedUserId = CurrentUser.UserId; info.ModifiedTime = DateTime.Now; } /// <summary> /// 在软删除数据前对数据的修改操作 /// </summary> /// <param name="info"></param> /// <returns></returns> protected override void OnBeforeSoftDelete(Vehicle info) { info.IsDeleted = true; } /// <summary> /// 异步分页查询 /// </summary> /// <param name="search"></param> /// <returns></returns> [HttpPost("FindWithPagerSearchAsync")] [FunctionAuthorize("List")] public async Task<IActionResult> FindWithPagerSearchAsync(SearchVehicleModel search) { CommonResult<PageResult<VehicleOutputDto>> result = new CommonResult<PageResult<VehicleOutputDto>> { ResData = await _vehicleServices.FindWithPagerSearchAsync(search), ErrCode = ErrCode.successCode }; return ToJsonContent(result); } /// <summary> /// 异步新增数据 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost("InsertAsync")] [FunctionAuthorize("Add")] public new async Task<IActionResult> InsertAsync(VehicleInPutDto input) { CommonResult result = new CommonResult(); Vehicle vehicle = input.MapTo<Vehicle>(); OnBeforeInsert(vehicle); result = await _vehicleServices.InsertAsync(vehicle); if (result.Success) { result.ErrCode = ErrCode.successCode; result.ErrMsg = ErrCode.err0; } else { result.ErrMsg = result.ErrMsg; result.ErrCode = "43002"; } return ToJsonContent(result); } /// <summary> /// 异步更新数据 /// </summary> /// <param name="input"></param> /// <returns></returns> [HttpPost("UpdateAsync")] [FunctionAuthorize("Edit")] public async Task<IActionResult> UpdateAsync(VehicleUpdateInPutDto input) { CommonResult result = new CommonResult(); Vehicle vehicle = input.MapTo<Vehicle>(); OnBeforeUpdate(vehicle); vehicle.Id = input.Id; result = await _vehicleServices.UpdateAsync(vehicle); if (result.Success) { result.ErrCode = ErrCode.successCode; result.ErrMsg = ErrCode.err0; } else { result.ErrMsg = result.ErrMsg; result.ErrCode = "43002"; } return ToJsonContent(result); } /// <summary> /// 修改车辆状态 /// </summary> /// <param name="id"></param> /// <param name="status"></param> /// <returns></returns> [HttpPut("UpdateStatusAsync")] [FunctionAuthorize("")] public async Task<IActionResult> UpdateStatusAsync(long id, int status) { CommonResult result = new CommonResult(); result = await _vehicleServices.UpdateStatusAsync(id, status); if (result.Success) { result.ErrCode = ErrCode.successCode; result.ErrMsg = ErrCode.err0; } else { result.ErrMsg = ErrCode.err43002; result.ErrCode = "43002"; } return ToJsonContent(result); } /// <summary> /// 修改车辆是否激活 /// </summary> /// <param name="id"></param> /// <param name="isActivate"></param> /// <returns></returns> [HttpPut("UpdateIsActivateAsync")] [FunctionAuthorize("")] public async Task<IActionResult> UpdateIsActivateAsync(long id, bool isActivate) { CommonResult result = new CommonResult(); result = await _vehicleServices.UpdateIsActivateAsync(id, isActivate); if (result.Success) { result.ErrCode = ErrCode.successCode; result.ErrMsg = ErrCode.err0; } else { result.ErrMsg = ErrCode.err43002; result.ErrCode = "43002"; } return ToJsonContent(result); } /// <summary> /// 修改车辆是否开启GPS /// </summary> /// <param name="id"></param> /// <param name="isGps"></param> /// <returns></returns> [HttpPut("UpdateIsGpsAsync")] [FunctionAuthorize("")] public async Task<IActionResult> UpdateIsGpsAsync(long id, bool isGps) { CommonResult result = new CommonResult(); result = await _vehicleServices.UpdateIsGpsAsync(id, isGps); if (result.Success) { result.ErrCode = ErrCode.successCode; result.ErrMsg = ErrCode.err0; } else { result.ErrMsg = ErrCode.err43002; result.ErrCode = "43002"; } return ToJsonContent(result); } } }