重构项目结构,移除Assignment相关功能,优化Submission模块
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s
Some checks failed
TechAct / explore-gitea-actions (push) Failing after 12s
This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user