namespace HStation.Application { /// /// TransferRevitFile /// [Route("Transfer/Revit/File")] [ApiDescriptionSettings("TransferFile", Name = "Revit文件", Order = 9000)] public class TransferRevitFile_Controller : IDynamicApiController { /// /// /// public TransferRevitFile_Controller(IHttpContextAccessor httpContextAccessor) { _httpContextAccessor = httpContextAccessor; } private readonly IHttpContextAccessor _httpContextAccessor; private readonly Service.TransferRevitFile _service = new(); #region Query /// /// 获取所有 /// [Route("GetAll@V1.0")] [HttpGet] public List GetAll() { var list = _service.GetAll(); var vmList = list?.Select(x => new TransferRevitFileDto(x)).ToList(); return vmList; } /// /// 通过 ID 获取 /// [Route("GetByID@V1.0")] [HttpGet] public TransferRevitFileDto GetByID([FromQuery][Required] IDInput input) { var model = _service.GetByID(input.ID); return model == null ? null : new TransferRevitFileDto(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 TransferRevitFileDto(x)).ToList(); return vmList; } /// /// 获取模糊列表 /// [Route("GetFluzzyList@V1.0")] [HttpGet] public List GetFluzzyList([FromQuery][Required] QueryTransferRevitFileFluzzyListInput input) { var list = _service.GetFluzzyList(input.FileName, input.FileCode, input.FileSuffix, input.UploadUserName, input.StartTime, input.EndTime); var vmList = list?.Select(x => new TransferRevitFileDto(x)).ToList(); return vmList; } /// /// 获取模糊分页列表 /// [Route("GetFluzzyPageList@V1.0")] [HttpGet] public PageListOutput GetFluzzyPageList([FromQuery][Required] QueryTransferRevitFileFluzzyPageListInput input) { int total = 0; var list = _service.GetFluzzyPageList(input.FileName, input.FileCode, input.FileSuffix, input.UploadUserName, input.StartTime, input.EndTime, input.PageIndex, input.PageSize, ref total); var vmList = list?.Select(x => new TransferRevitFileDto(x)).ToList(); return new PageListOutput() { Total = total, List = vmList }; } #endregion #region Insert /// /// 插入一条 (同时上传文件) /// [Route("Insert@V1.0")] [HttpPost] public long Insert([Required][FromForm] AddTransferRevitFileInput input) { var request = _httpContextAccessor.HttpContext.Request; if (request.Form.Files == null || request.Form.Files.Count != 1) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, "文件验证错误"); } var fileCode = input.FileCode; if (string.IsNullOrEmpty(fileCode)) { fileCode = Yw.YitIdHelper.NextId().ToString(); } if (_service.IsExistFileCode(fileCode)) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, "文件编码已存在"); } var user = new HStation.Service.TransferFileUser().GetByName(input.UploadUserName); if (user == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.V001, "用户名称不存在"); } var uploadFile = request.Form.Files[0]; var model = new Model.TransferRevitFile(); model.FileName = uploadFile.FileName; model.FileCode = fileCode; model.FileSuffix = Path.GetExtension(uploadFile.FileName); model.StorageHouse = ConfigHelper.DataFolder; model.StorageCode = Yw.Service.FileHelper.UploadSubFile(ConfigHelper.DataFolder, uploadFile.OpenReadStream(), Path.GetExtension(uploadFile.FileName)); var filePath = Yw.Service.FileHelper.GetFilePath(model.StorageHouse, model.StorageCode); var fileInfo = new FileInfo(filePath); model.FileSize = fileInfo.Length; model.UploadTime = DateTime.Now; model.UploadUserID = user.ID; model.UploadUserName = input.UploadUserName; model.Description = input.Description; var id = _service.Insert(model); if (id < 1) { Yw.Service.FileHelper.Delete(model.StorageHouse, model.StorageCode); } return id; } #endregion #region Exist /// /// 判断 FileCode 是否存在 /// [Route("IsExistFileCode@V1.0")] [HttpGet] public bool IsExistFileCode([FromQuery][Required] FileCodeInput input) { var bol = _service.IsExistFileCode(input.FileCode); return bol; } /// /// 判断 FileCode 是否存在 ExceptID /// [Route("IsExistFileCodeExceptID@V1.0")] [HttpGet] public bool IsExistFileCodeExceptID([FromQuery][Required] FileCodeExceptIDInput input) { var bol = _service.IsExistFileCodeExceptID(input.FileCode, input.ExceptID); return bol; } #endregion #region Delete /// /// 通过 ID 删除 /// [Route("DeleteByID@V1.0")] [HttpDelete] public bool DeleteByID([FromQuery][Required] IDInput input) { var model = _service.GetByID(input.ID); if (model == null) { throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D001, "数据不存在"); } var bol = _service.DeleteByID(input.ID, out string msg); if (bol) { Yw.Service.FileHelper.Delete(model.StorageHouse, model.StorageCode); return bol; } throw YOops.Oh(eResultCode.Alert, InternalErrorCodes.D999, msg); } #endregion } }