master
xiaochanghai 11 months ago
parent d21fa5e5d7
commit 2a6b046fce
  1. 12
      Tiobon.Core.Common/Helper/ExamHelper.cs
  2. 54
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs

@ -1,5 +1,6 @@
using SqlSugar; using SqlSugar;
using Tiobon.Core.Model.Models; using Tiobon.Core.Model.Models;
using static Tiobon.Core.Model.Consts;
namespace Tiobon.Core.Common.Helper; namespace Tiobon.Core.Common.Helper;
@ -9,7 +10,14 @@ public class ExamHelper
{ {
var questionIds = details.Where(x => x.QuestionId != null).Select(m => m.QuestionId).Distinct().ToList(); var questionIds = details.Where(x => x.QuestionId != null).Select(m => m.QuestionId).Distinct().ToList();
var exampaperQuestions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == record.ExamPaperId).ToListAsync(); //var exampaperQuestions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == record.ExamPaperId).ToListAsync();
var exampaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == record.ExamPaperId);
var exampaperQuestions = await Db.Queryable<Ghre_ExamPaperQuestion>()
.Where(x => (x.ExamPaperId == exampaper.Id && exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.MANUAL) || (x.ExamPaperId == record.Id && exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.RANDOM))
.ToListAsync();
var questions = await Db.Queryable<Ghre_Question>().Where(x => questionIds.Contains(x.Id)).ToListAsync(); var questions = await Db.Queryable<Ghre_Question>().Where(x => questionIds.Contains(x.Id)).ToListAsync();
var answers = await Db.Queryable<Ghre_QuestionAnswer>() var answers = await Db.Queryable<Ghre_QuestionAnswer>()
.Where(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value) && x.IsCorrect == true) .Where(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value) && x.IsCorrect == true)
@ -75,7 +83,7 @@ public class ExamHelper
break; break;
} }
}); });
record.Score = score; record.Score = score ?? 0;
} }
} }

@ -201,7 +201,11 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
extend.styleInfo.paperStyle = exampaper.Style; extend.styleInfo.paperStyle = exampaper.Style;
extend.styleInfo.coverBackGround = exampaper.CoverBackGround; extend.styleInfo.coverBackGround = exampaper.CoverBackGround;
var questions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == exampaper.Id).ToListAsync(); var questions = await Db.Queryable<Ghre_ExamPaperQuestion>()
//.Where(x => x.ExamPaperId == exampaper.Id)
.Where(x => (x.ExamPaperId == exampaper.Id && exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.MANUAL) || (x.ExamPaperId == examRecordId && exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.RANDOM))
.ToListAsync();
var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview() var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview()
{ {
Id = x.Id, Id = x.Id,
@ -461,7 +465,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
extend.styleInfo.paperStyle = exampaper.Style; extend.styleInfo.paperStyle = exampaper.Style;
extend.styleInfo.coverBackGround = exampaper.CoverBackGround; extend.styleInfo.coverBackGround = exampaper.CoverBackGround;
if (exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.RANDOM) if (exampaper.SetMethod == DIC_EXAM_PAPER_SET_METHOD.RANDOM && record.Status != DIC_EXAM_RECORD_STATUS.EXAM_END)
{ {
await Db.Deleteable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == examRecordId).ExecuteCommandAsync(); await Db.Deleteable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == examRecordId).ExecuteCommandAsync();
var configs = await Db.Queryable<Ghre_ExamPaperConfig>().OrderBy(x => x.TaxisNo).Where(x => x.ExamPaperId == exampaper.Id).ToListAsync(); var configs = await Db.Queryable<Ghre_ExamPaperConfig>().OrderBy(x => x.TaxisNo).Where(x => x.ExamPaperId == exampaper.Id).ToListAsync();
@ -488,6 +492,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
ExamPaperId = examRecordId, ExamPaperId = examRecordId,
QuestionId = x.Id, QuestionId = x.Id,
ConfigId = x.Id, ConfigId = x.Id,
Score = config.Score
}).ToList(); }).ToList();
Db.Insertable(insertExamPaperQuestions).ExecuteCommand(); Db.Insertable(insertExamPaperQuestions).ExecuteCommand();
@ -697,40 +702,63 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
ExamRecordDetailId = id, ExamRecordDetailId = id,
ExamRecordId = record.Id, ExamRecordId = record.Id,
QuestionAnswerId = questionAnswers1.First(x => x.QuestionNo == answer.value)?.Id, QuestionAnswerId = answer.value.IsNull() ? null : questionAnswers1.First(x => x.QuestionNo == answer.value)?.Id,
}); });
break; break;
case "Multiple": case "Multiple":
var TaxisNo = 100; var TaxisNo = 100;
foreach (var value in answer.value1) if (answer.value1.IsNull() || (!answer.value1.IsNull() && !answer.value1.Any()))
{
recordDetailAnswers.Add(new Ghre_ExamRecordAnswer() recordDetailAnswers.Add(new Ghre_ExamRecordAnswer()
{ {
Id = SnowFlakeSingle.instance.getID(), Id = SnowFlakeSingle.instance.getID(),
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
ExamRecordDetailId = id, ExamRecordDetailId = id,
ExamRecordId = record.Id, ExamRecordId = record.Id,
QuestionAnswerId = questionAnswers1.First(x => x.QuestionNo == value)?.Id, AnswerContent = null,
TaxisNo = TaxisNo TaxisNo = TaxisNo
}); });
TaxisNo += 100; else
} foreach (var value in answer.value1)
{
recordDetailAnswers.Add(new Ghre_ExamRecordAnswer()
{
Id = SnowFlakeSingle.instance.getID(),
CreateTime = DateTime.Now,
ExamRecordDetailId = id,
ExamRecordId = record.Id,
QuestionAnswerId = value.IsNull() ? null : questionAnswers1.First(x => x.QuestionNo == value)?.Id,
TaxisNo = TaxisNo
});
TaxisNo += 100;
}
break; break;
case "Completion": case "Completion":
var TaxisNo1 = 100; var TaxisNo1 = 100;
foreach (var value in answer.value1) if (answer.value1.IsNull() || (!answer.value1.IsNull() && !answer.value1.Any()))
{
recordDetailAnswers.Add(new Ghre_ExamRecordAnswer() recordDetailAnswers.Add(new Ghre_ExamRecordAnswer()
{ {
Id = SnowFlakeSingle.instance.getID(), Id = SnowFlakeSingle.instance.getID(),
CreateTime = DateTime.Now, CreateTime = DateTime.Now,
ExamRecordDetailId = id, ExamRecordDetailId = id,
ExamRecordId = record.Id, ExamRecordId = record.Id,
AnswerContent = value, AnswerContent = null,
TaxisNo = TaxisNo1 TaxisNo = TaxisNo1
}); });
TaxisNo1 += 100; else
} foreach (var value in answer.value1)
{
recordDetailAnswers.Add(new Ghre_ExamRecordAnswer()
{
Id = SnowFlakeSingle.instance.getID(),
CreateTime = DateTime.Now,
ExamRecordDetailId = id,
ExamRecordId = record.Id,
AnswerContent = value,
TaxisNo = TaxisNo1
});
TaxisNo1 += 100;
}
break; break;
case "ShortAnswer": case "ShortAnswer":
recordDetailAnswers.Add(new Ghre_ExamRecordAnswer() recordDetailAnswers.Add(new Ghre_ExamRecordAnswer()

Loading…
Cancel
Save