namespace HStation.Application
|
{
|
/// <summary>
|
/// TransferRevitFile
|
/// </summary>
|
[Route("Transfer/Revit/File")]
|
[ApiDescriptionSettings("TransferFile", Name = "Revit文件", Order = 9000)]
|
public class TransferRevitFile_Controller : IDynamicApiController
|
{
|
|
/// <summary>
|
///
|
/// </summary>
|
public TransferRevitFile_Controller(IHttpContextAccessor httpContextAccessor)
|
{
|
_httpContextAccessor = httpContextAccessor;
|
}
|
|
private readonly IHttpContextAccessor _httpContextAccessor;
|
private readonly Service.TransferRevitFile _service = new();
|
|
|
#region Query
|
|
/// <summary>
|
/// 获取所有
|
/// </summary>
|
[Route("GetAll@V1.0")]
|
[HttpGet]
|
public List<TransferRevitFileDto> GetAll()
|
{
|
var list = _service.GetAll();
|
var vmList = list?.Select(x => new TransferRevitFileDto(x)).ToList();
|
return vmList;
|
}
|
|
/// <summary>
|
/// 通过 ID 获取
|
/// </summary>
|
[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);
|
}
|
|
/// <summary>
|
/// 通过 Ids 获取
|
/// </summary>
|
[Route("GetByIds@V1.0")]
|
[HttpGet]
|
public List<TransferRevitFileDto> 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;
|
}
|
|
/// <summary>
|
/// 获取模糊列表
|
/// </summary>
|
[Route("GetFluzzyList@V1.0")]
|
[HttpGet]
|
public List<TransferRevitFileDto> 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;
|
}
|
|
/// <summary>
|
/// 获取模糊分页列表
|
/// </summary>
|
[Route("GetFluzzyPageList@V1.0")]
|
[HttpGet]
|
public PageListOutput<TransferRevitFileDto> 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<TransferRevitFileDto>() { Total = total, List = vmList };
|
}
|
|
#endregion
|
|
#region Insert
|
|
/// <summary>
|
/// 插入一条 (同时上传文件)
|
/// </summary>
|
[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
|
|
/// <summary>
|
/// 判断 FileCode 是否存在
|
/// </summary>
|
[Route("IsExistFileCode@V1.0")]
|
[HttpGet]
|
public bool IsExistFileCode([FromQuery][Required] FileCodeInput input)
|
{
|
var bol = _service.IsExistFileCode(input.FileCode);
|
return bol;
|
}
|
|
/// <summary>
|
/// 判断 FileCode 是否存在 ExceptID
|
/// </summary>
|
[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
|
|
/// <summary>
|
/// 通过 ID 删除
|
/// </summary>
|
[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
|
|
}
|
}
|