重构项目结构,移除Assignment相关功能,优化Submission模块
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s

This commit is contained in:
SpecialX
2025-10-09 18:57:28 +08:00
parent 403b34a098
commit ac900159ba
289 changed files with 11948 additions and 20150 deletions

View File

@@ -4,8 +4,8 @@ using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using TechHelper.Server.Services;
using TechHelper.Services;
using TechHelper.Services.Beta;
namespace TechHelper.Server.Controllers
{
@@ -16,15 +16,16 @@ namespace TechHelper.Server.Controllers
public class SubmissionController : ControllerBase
{
private readonly UserManager<User> _userManager;
private readonly ISubmissionServices _submissionServices;
private readonly ISubmissionService _submissionServices;
public SubmissionController(UserManager<User> userManager, ISubmissionServices submissionServices)
public SubmissionController(UserManager<User> userManager, ISubmissionService submissionServices)
{
_userManager = userManager;
_submissionServices = submissionServices;
}
/// <summary>
/// 获取当前用户的所有错题。
/// </summary>
@@ -35,7 +36,7 @@ namespace TechHelper.Server.Controllers
var user = await _userManager.FindByEmailAsync(User.Identity.Name);
if (user == null)
{
return NotFound("未找到当前用户信息。");
return NotFound("未找到当前用户信息。");
}
var result = await _submissionServices.GetAllErrorQuestionsAsync(user.Id);
@@ -55,7 +56,7 @@ namespace TechHelper.Server.Controllers
/// </summary>
/// <param name="assignmentId">作业ID。</param>
/// <returns>错题列表或错误信息。</returns>
[HttpGet("getAssignmentErrorQuestions/{assignmentId:guid}")]
[HttpGet("getAssignmentErrorQuestions/{assignmentId:guid}")]
public async Task<IActionResult> GetAssignmentErrorQuestionsAsync(Guid assignmentId)
{
var user = await _userManager.FindByEmailAsync(User.Identity.Name);
@@ -138,7 +139,7 @@ namespace TechHelper.Server.Controllers
/// <param name="assignmentId">作业ID。</param>
/// <returns>按题目分组的学生错题列表。</returns>
[HttpGet("getQuestionErrorStudents/{assignmentId:guid}")]
[Authorize(Roles = "Teacher")]
[Authorize(Roles = "Teacher")]
public async Task<IActionResult> GetQuestionErrorStudents(Guid assignmentId)
{
var result = await _submissionServices.GetQuestionErrorStudents(assignmentId);
@@ -158,8 +159,8 @@ namespace TechHelper.Server.Controllers
/// </summary>
/// <param name="model">提交的数据模型。</param>
/// <returns>新创建的提交记录或错误信息。</returns>
[HttpPost("add")]
public async Task<IActionResult> AddAsync([FromBody] Submission model)
[HttpPost()]
public async Task<IActionResult> AddAsync([FromBody] SubmissionDto model)
{
// 可以在这里获取当前用户ID并赋值给 model.StudentId确保提交人信息正确
// var user = await _userManager.FindByEmailAsync(User.Identity.Name);
@@ -209,7 +210,7 @@ namespace TechHelper.Server.Controllers
/// </summary>
/// <param name="query">查询参数,包含分页信息。</param>
/// <returns>分页的提交记录列表。</returns>
[HttpGet("getAll")]
[HttpGet()]
[Authorize(Roles = "Admin,Teacher")]
public async Task<IActionResult> GetAllAsync([FromQuery] QueryParameter query)
{
@@ -252,7 +253,7 @@ namespace TechHelper.Server.Controllers
/// <param name="model">要更新的提交数据。</param>
/// <returns>更新后的提交记录或错误信息。</returns>
[HttpPut("update/{id:guid}")]
public async Task<IActionResult> UpdateAsync(Guid id, [FromBody] Submission model)
public async Task<IActionResult> UpdateAsync(Guid id, [FromBody] SubmissionDto model)
{
if (id != model.Id) // 确保路径中的ID和模型中的ID一致
{
@@ -275,5 +276,90 @@ namespace TechHelper.Server.Controllers
return BadRequest(result.Message);
}
}
[HttpPost("GradeExam")]
[Authorize(Roles = "Teacher")]
public async Task<IActionResult> GradeExam([FromBody] SubmissionTeacherUpdateDto model)
{
var result = await _submissionServices.GradeExam(model);
if (result.Status)
{
return Ok(result);
}
else
{
return BadRequest(result.Message);
}
}
/// <summary>
/// 获取学生提交摘要。
/// </summary>
/// <param name="userId">用户ID。</param>
/// <returns>学生提交摘要列表或错误信息。</returns>
[HttpGet("getStudentSubmissionSummaries")]
[Authorize(Roles = "Student")]
public async Task<IActionResult> GetStudentSubmissionSummariesAsync()
{
var user = await _userManager.FindByEmailAsync(User.Identity.Name);
if (user == null)
{
return NotFound("未找到当前用户信息。");
}
var userId = user.Id; // 假设当前用户是学生获取其ID
var result = await _submissionServices.GetStudentSubmissionSummariesAsync(userId);
if (result.Status)
{
return Ok(result);
}
else
{
return BadRequest(result.Message);
}
}
/// <summary>
/// 获取学生提交摘要。
/// </summary>
/// <param name="userId">用户ID。</param>
/// <returns>学生提交摘要列表或错误信息。</returns>
[HttpGet("getStudentSubmissionSummaries/{userId:guid}")]
[Authorize(Roles = "Teacher")]
public async Task<IActionResult> GetStudentSubmissionSummariesAsync(Guid userId)
{
var result = await _submissionServices.GetStudentSubmissionSummariesAsync(userId);
if (result.Status)
{
return Ok(result);
}
else
{
return BadRequest(result.Message);
}
}
/// <summary>
/// 获取学生提交详情。
/// </summary>
/// <param name="submissionId">提交ID。</param>
/// <returns>学生提交详情或错误信息。</returns>
[HttpGet("getStudentSubmissionDetail/{submissionId:guid}")]
public async Task<IActionResult> GetStudentSubmissionDetailAsync(Guid submissionId)
{
var result = await _submissionServices.GetStudentSubmissionDetailAsync(submissionId);
if (result.Status)
{
return Ok(result);
}
else
{
return BadRequest(result.Message);
}
}
}
}