88 lines
3.2 KiB
C#
88 lines
3.2 KiB
C#
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}" });
|
||
// }
|
||
//}
|
||
}
|
||
}
|