using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using System; using System.Collections.Generic; using System.Linq; using System.Threading.Tasks; using BarCode.Web.Core.Dto; using BarCode.Web.Core.Internal.Results; using BarCode.Web.Domain.Infrastructure; using BarCode.Web.Domain.IService; using BarCode.Web.Domain.IService.Public; using BarCode.Web.Domain.Values; namespace BarCode.Web.Api.Controllers { /// /// 箱唛-接口 /// [Route("api/[controller]")] [ApiController] public class BoxMarkController : ControllerBase { private readonly ILoginService _loginService; private readonly IBoxMarkService _boxMarkService; private readonly IBoxMarkRepositories _boxMarkRepositories; private readonly IExportExcelService _exportExcelService; private readonly IErpBasicDataExtendService _erpBasicDataExtendService; public BoxMarkController( ILoginService loginService, IBoxMarkRepositories boxMarkRepositories, IBoxMarkService boxMarkService, IExportExcelService exportExcelService, IErpBasicDataExtendService erpBasicDataExtendService) { this._loginService = loginService; this._boxMarkService = boxMarkService; this._exportExcelService = exportExcelService; this._boxMarkRepositories = boxMarkRepositories; this._erpBasicDataExtendService = erpBasicDataExtendService; } /// /// 箱唛--列表 /// /// /// [HttpPost] [Route("GetList")] public async Task> GetPagedList([FromBody] BoxMarkQueryRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); var (list, count) = await _boxMarkService.GetPagedList(dto, loginInfo); return ResultPagedList.ReSuccess(list, count); } /// /// 生成 /// /// /// [HttpPost] [Route("generate")] public async Task> GenerateAsync([FromBody] GenerateBoxMarkDto dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); return await _boxMarkService.Generate(dto, loginInfo); } /// /// 批量删除 /// /// /// [HttpPost] [Route("delete")] public async Task Delete([FromBody] OperateRequest dto) { var loginInfo = _loginService.GetLoginInfo(this.HttpContext.Request.Headers["Authorization"]); if (loginInfo == null || loginInfo.UserInfo == null) return ResultPagedList.ReFailure(ResultCodes.Token_Invalid_Error); var isSuccess= await _boxMarkRepositories.DeleteRange(dto.Ids); if(!isSuccess) return Result.ReFailure(ResultCodes.DateWriteError); return Result.ReSuccess(); } } }