public DtoSumStudent GetSumByStuDate(int studentId) { int studySeconds = StudentDailyRepository.GetSumByStuDate(studentId, DateTime.Now.Date); StudentInfoBll studentInfoBll = new StudentInfoBll(); DtoSumStudentTip sumStudent = studentInfoBll.GetSumStudentTip(studentId); DtoSumStudent student = new DtoSumStudent() { School = sumStudent.School, Avatar = sumStudent.Avatar, StudyMinutes = Convert.ToInt32(Math.Ceiling(studySeconds * 1.0 / 60)), StudyDayCount = sumStudent.StudyDayCount, Coins = sumStudent.Coins, Salutation = SalutationEnum.书童.ToString() }; return(student); }
/// <summary> /// 保存课后任务或者练习题答案 /// </summary> public void SaveResult(int studentId, int taskId, int useTime, List <StudentAnswerBase> answers, StudyTaskTypeEnum taskType = 0, int partId = 0) { Yw_StudentTask stk = StudentTaskRepository.GetByStudentTask(studentId, taskId); if (stk.Yuk_Status == (int)StudentTaskStatusEnum.已完成) { throw new AbhsException(ErrorCodeEnum.StudentTaskStatusInvalid, AbhsErrorMsg.ConstStudentTaskStatusInvalid); } int totalStars = answers.Sum(x => x.ResultStars); int totalCoins = CalcCoins(answers); int fiveStarsAnswers = answers.Count(x => x.ResultStars == 5); var finishTime = DateTime.Now; //更新学生任务记录表 stk.Yuk_StartTime = finishTime.AddSeconds(0 - useTime);//反算时间 stk.Yuk_FinishTime = finishTime; stk.Yuk_StudentScore = totalStars; stk.Yuk_GainCoins = totalCoins; stk.Yuk_RightSubjectCount = fiveStarsAnswers; if (answers.Count > 0) { stk.Yuk_Percent = (int)(Math.Round(fiveStarsAnswers * 1.0 / answers.Count, 2) * 100); } stk.Yuk_Status = (int)StudentTaskStatusEnum.已完成; StudentTaskRepository.Update(stk); StudentAnswerCard card = new StudentAnswerCard(); card.UseTime = useTime; card.SubmitTime = finishTime.ToString("yyyy-MM-dd HH:mm:ss"); card.Part = partId; card.AnswerCollection = answers; card.TotalStars = totalStars; card.TotalCoins = totalCoins; //学生任务答题结果 Yw_StudentStudyTaskAnswerExt answer = new Yw_StudentStudyTaskAnswerExt(); answer.Yta_StudentId = studentId; answer.Yta_StudentStudyTaskId = stk.Yuk_Id; answer.Yta_TaskId = taskId; answer.Yta_Answer_Obj = card; answer.Yta_CreateTime = DateTime.Now; StuStudyTaskAnsRepo.Add(answer); //学生最近答题记录 Yw_StudyTask task = StudyTaskRepository.Get(taskId); StudentBll studentBll = new StudentBll(); List <int> ids = task.Ysk_SubjectIds.Split(',').Select(x => Convert.ToInt32(x)).ToList(); studentBll.RefreshStudentRecentSubject(studentId, ids); StudentInfoBll bll = new StudentInfoBll(); bll.AddCoins(studentId, totalCoins); if (taskType == StudyTaskTypeEnum.系统课后任务) { new StudentPracticeBll().PublishStudyTaskMessage( task.Ysk_CourseId, task.Ysk_LessonId, studentId, useTime, answers.Count, totalCoins); } else if (taskType == StudyTaskTypeEnum.课后练习) { new StudentPracticeBll().PublishStudyPractiseMessage( task.Ysk_CourseId, task.Ysk_LessonId, studentId, useTime, answers.Count, totalCoins); } //课程学习 = 1, 课后任务 = 2, 课后练习 = 3 StudyWrongSourceEnum?source = null; switch (taskType) { case StudyTaskTypeEnum.系统课后任务: case StudyTaskTypeEnum.老师课后任务: source = StudyWrongSourceEnum.课后任务; break; case StudyTaskTypeEnum.课后练习: source = StudyWrongSourceEnum.课后练习; break; default: source = StudyWrongSourceEnum.课后任务; break; } new StudentWrongBookBll().SaveWrongBook( new List <StudentAnswerCard> { card }, new DtoStudentWrongBook { CourseId = task.Ysk_CourseId, LessonId = task.Ysk_LessonId, LessonProgressId = task.Ysk_LessonProgressId, Source = source.Value, StudentId = studentId, StudyTaskId = taskId }); }