public async Task <dynamic> OnSubmitHomeworkAsync([FromForm] UserHomework homework, [FromForm] List <int> files, [FromForm] string token)
        {
            try
            {
                var t = await tokenService.GetTokenAsync(token);

                if (t == null)
                {
                    throw new Exception("请先登录");
                }
                var role = t.Role;
                if (role == UserRole.Admin)
                {
                    throw new Exception("无效操作");
                }
                role = await homeworkService.GetHWRoleAsync(homework.HwId, t.UserID);

                if (role != UserRole.Student)
                {
                    throw new Exception("无效操作");
                }
                homework.UserId  = t.UserID;
                homework.Mark    = null;
                homework.Comment = null;

                var hw = await homeworkService.GetHomeworkAsync(homework.HwId);

                if (hw.Type == HWType.Group)
                {
                    if (await homeworkService.GetGroupIdentityAsync(t.UserID, hw.CourseId) != GroupIdentity.Leader)
                    {
                        throw new Exception("小组作业只能组长提交!");
                    }
                }
                if (hw.Status != HWStatus.Active && hw.Status != HWStatus.NearDDL)
                {
                    throw new Exception("作业尚未开始提交或已经结束!");
                }

                if (await homeworkService.HasSubmittedAsync(homework.HwId, homework.UserId))
                {
                    await homeworkService.RemoveStuHomeworkFilesAsync(homework.HwId, homework.UserId);

                    await homeworkService.UpdateStuHomeworkAsync(homework);

                    foreach (var file in files)
                    {
                        await homeworkService.AddFileToStuHomeworkAsync(file, homework.UserId, homework.HwId);
                    }
                }
                else
                {
                    await homeworkService.AddStuHomeworkAsync(homework);

                    foreach (var file in files)
                    {
                        await homeworkService.AddFileToStuHomeworkAsync(file, t.UserID, homework.HwId);
                    }
                }
                return(new { Res = true });
            }
            catch (Exception e)
            {
                return(new { Res = false, Error = e.Message });
            }
        }