LMS.service/LMS.service/Controllers/FileUploadController.cs

88 lines
3.2 KiB
C#
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

using LMS.Common.Extensions;
using LMS.Repository.DTO;
using LMS.service.Service.FileUploadService;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc;
using System.Security.Claims;
using static LMS.Repository.DTO.FileUploadDto;
using static LMS.Repository.FileUpload.FileRequestReturn;
namespace LMS.service.Controllers
{
[ApiController]
[Route("lms/[controller]/[action]")]
public class FileUploadController(IQiniuUploadService qiniuUploadService) : ControllerBase
{
private readonly IQiniuUploadService _qiniuUploadService = qiniuUploadService;
/// <summary>
/// 通过字节数组上传文件
/// </summary>
/// <param name="request">字节上传请求</param>
/// <returns></returns>
[HttpPost("{machineId}")]
public async Task<ActionResult<APIResponseModel<UploadResult>>> FileUpload(string machineId, [FromBody] ByteUploadRequest request)
{
return await _qiniuUploadService.UploadBase64Async(request, machineId);
}
/// <summary>
/// 获取用户文件列表通过MachineId
/// </summary>
/// <param name="page">页码</param>
/// <param name="pageSize">每页数量</param>
/// <returns></returns>
[HttpGet("{machineId}")]
public async Task<ActionResult<APIResponseModel<CollectionResponse<FileMachineRequestReturn>>>> GetFilesByMachineId(string machineId, int page = 1, int pageSize = 10)
{
return await _qiniuUploadService.GetFilesByMachineId(machineId, page, pageSize);
}
/// <summary>
/// 获取指定ID的用户的文件列表
/// </summary>
/// <param name="userId"></param>
/// <param name="page"></param>
/// <param name="pageSize"></param>
/// <returns></returns>
[HttpGet("{userId}")]
[Authorize]
public async Task<ActionResult<APIResponseModel<CollectionResponse<FileUserRequestReturn>>>> GetFilesByUser(long userId, [FromQuery] int page = 1, [FromQuery] int pageSize = 10)
{
long requestUserId = ConvertExtension.ObjectToLong(HttpContext.Items["UserId"] ?? 0);
return await _qiniuUploadService.GetFilesByUser(requestUserId, userId, page, pageSize);
}
///// <summary>
///// 删除文件
///// </summary>
///// <param name="fileId">文件ID</param>
///// <returns></returns>
//[HttpDelete("files/{fileId}")]
//public async Task<IActionResult> DeleteFile(long fileId)
//{
// try
// {
// var userId = GetCurrentUserId();
// var success = await _qiniuUploadService.DeleteFileAsync(fileId, userId);
// if (success)
// {
// return Ok(new { message = "删除成功" });
// }
// else
// {
// return NotFound(new { message = "文件不存在或无权限删除" });
// }
// }
// catch (Exception ex)
// {
// return BadRequest(new { message = $"删除失败: {ex.Message}" });
// }
//}
}
}