|
|
@ -1,6 +1,7 @@ |
|
|
|
|
|
|
|
|
|
|
|
using System.Data; |
|
|
|
using System.Data; |
|
|
|
using AgileObjects.AgileMapper; |
|
|
|
using AgileObjects.AgileMapper; |
|
|
|
|
|
|
|
using Mysqlx.Crud; |
|
|
|
using Tiobon.Core.Common; |
|
|
|
using Tiobon.Core.Common; |
|
|
|
using Tiobon.Core.Common.DB.Dapper; |
|
|
|
using Tiobon.Core.Common.DB.Dapper; |
|
|
|
using Tiobon.Core.IRepository.Base; |
|
|
|
using Tiobon.Core.IRepository.Base; |
|
|
@ -189,7 +190,6 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
questionType.detail.difficulty = question.DifficultyLevel; |
|
|
|
questionType.detail.difficulty = question.DifficultyLevel; |
|
|
|
questionType.detail.answer = answers.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo; |
|
|
|
questionType.detail.answer = answers.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo; |
|
|
|
questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); |
|
|
|
questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); |
|
|
|
questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); |
|
|
|
|
|
|
|
questionType.detail.content = question.QuestionContent; |
|
|
|
questionType.detail.content = question.QuestionContent; |
|
|
|
questionType.detail.RemarkSz = question.QuestionAnalysis; |
|
|
|
questionType.detail.RemarkSz = question.QuestionAnalysis; |
|
|
|
questionType.detail.answerList = answers.Select(x => new FromGhre_QuestionQuestionAnswerList() |
|
|
|
questionType.detail.answerList = answers.Select(x => new FromGhre_QuestionQuestionAnswerList() |
|
|
@ -208,6 +208,12 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult> InsertFrom(FromGhre_QuestionPageData insertModel) |
|
|
|
public async Task<ServiceResult> InsertFrom(FromGhre_QuestionPageData insertModel) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ValidForm(insertModel); |
|
|
|
|
|
|
|
await Db.Ado.BeginTranAsync(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
var questionType = insertModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); |
|
|
|
var questionType = insertModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); |
|
|
|
string questionTypeName = ConvertQuestionType(questionType.type); |
|
|
|
string questionTypeName = ConvertQuestionType(questionType.type); |
|
|
@ -254,17 +260,31 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
{ |
|
|
|
{ |
|
|
|
x.TaxisNo = i; |
|
|
|
x.TaxisNo = i; |
|
|
|
x.QuestionId = id; |
|
|
|
x.QuestionId = id; |
|
|
|
if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") |
|
|
|
if (questionType.detail.answer != null && questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") |
|
|
|
|
|
|
|
x.IsCorrect = true; |
|
|
|
|
|
|
|
if (questionType.detail.answer1 != null && questionType.detail.answer1.Contains(x.QuestionNo) && insert.QuestionType == "Multiple") |
|
|
|
x.IsCorrect = true; |
|
|
|
x.IsCorrect = true; |
|
|
|
i = i + 100; |
|
|
|
i = i + 100; |
|
|
|
}); |
|
|
|
}); |
|
|
|
await _ghre_QuestionAnswerServices.Add(insertAnswers); |
|
|
|
await _ghre_QuestionAnswerServices.Add(insertAnswers); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
await Db.Ado.CommitTranAsync(); |
|
|
|
return ServiceResult.OprateSuccess("新增成功!"); |
|
|
|
return ServiceResult.OprateSuccess("新增成功!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
await Db.Ado.RollbackTranAsync(); |
|
|
|
|
|
|
|
throw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult> UpdareFrom(long Id, FromGhre_QuestionPageData editModel) |
|
|
|
public async Task<ServiceResult> UpdareFrom(long Id, FromGhre_QuestionPageData editModel) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
ValidForm(editModel); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await Db.Ado.BeginTranAsync(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
try |
|
|
|
{ |
|
|
|
{ |
|
|
|
var questionType = editModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); |
|
|
|
var questionType = editModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); |
|
|
|
string questionTypeName = ConvertQuestionType(questionType.type); |
|
|
|
string questionTypeName = ConvertQuestionType(questionType.type); |
|
|
@ -308,7 +328,9 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
{ |
|
|
|
{ |
|
|
|
x.TaxisNo = i; |
|
|
|
x.TaxisNo = i; |
|
|
|
x.QuestionId = Id; |
|
|
|
x.QuestionId = Id; |
|
|
|
if (questionType.detail.answer == x.QuestionNo && edit.QuestionType == "Single") |
|
|
|
if (questionType.detail.answer != null && questionType.detail.answer == x.QuestionNo && edit.QuestionType == "Single") |
|
|
|
|
|
|
|
x.IsCorrect = true; |
|
|
|
|
|
|
|
if (questionType.detail.answer1 != null && questionType.detail.answer1.Contains(x.QuestionNo) && edit.QuestionType == "Multiple") |
|
|
|
x.IsCorrect = true; |
|
|
|
x.IsCorrect = true; |
|
|
|
i = i + 100; |
|
|
|
i = i + 100; |
|
|
|
}); |
|
|
|
}); |
|
|
@ -344,15 +366,24 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
{ |
|
|
|
{ |
|
|
|
x.TaxisNo = i; |
|
|
|
x.TaxisNo = i; |
|
|
|
x.QuestionId = id; |
|
|
|
x.QuestionId = id; |
|
|
|
if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") |
|
|
|
if (questionType.detail.answer != null && questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") |
|
|
|
|
|
|
|
x.IsCorrect = true; |
|
|
|
|
|
|
|
if (questionType.detail.answer1 != null && questionType.detail.answer1.Contains(x.QuestionNo) && insert.QuestionType == "Multiple") |
|
|
|
x.IsCorrect = true; |
|
|
|
x.IsCorrect = true; |
|
|
|
i = i + 100; |
|
|
|
i = i + 100; |
|
|
|
}); |
|
|
|
}); |
|
|
|
await _ghre_QuestionAnswerServices.Add(insertAnswers); |
|
|
|
await _ghre_QuestionAnswerServices.Add(insertAnswers); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
await Db.Ado.CommitTranAsync(); |
|
|
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess("更新成功!"); |
|
|
|
return ServiceResult.OprateSuccess("更新成功!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
catch (Exception) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
await Db.Ado.RollbackTranAsync(); |
|
|
|
|
|
|
|
throw; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
public static string GenerateContinuousSequence(string prefixTemp) |
|
|
|
public static string GenerateContinuousSequence(string prefixTemp) |
|
|
|
{ |
|
|
|
{ |
|
|
@ -431,4 +462,38 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt |
|
|
|
questionTypeName = "简答题"; |
|
|
|
questionTypeName = "简答题"; |
|
|
|
return questionTypeName; |
|
|
|
return questionTypeName; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
public static string ConvertDifficultyLevel(string type) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
string questionTypeName = string.Empty; |
|
|
|
|
|
|
|
if (type == "Easy") |
|
|
|
|
|
|
|
questionTypeName = "简单"; |
|
|
|
|
|
|
|
else if (type == "Normal") |
|
|
|
|
|
|
|
questionTypeName = "普通"; |
|
|
|
|
|
|
|
else if (type == "Hard") |
|
|
|
|
|
|
|
questionTypeName = "困难"; |
|
|
|
|
|
|
|
return questionTypeName; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
public static void ValidForm(FromGhre_QuestionPageData model) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if (model.baseData.courseID is null || (model.baseData.courseID != null && !model.baseData.courseID.Any())) |
|
|
|
|
|
|
|
throw new Exception("课程编号必填!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var questionType = model.questionType.Where(x => x.isActive == 1).FirstOrDefault(); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (questionType is null) |
|
|
|
|
|
|
|
throw new Exception("提交参数异常!"); |
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(questionType.detail.difficulty)) |
|
|
|
|
|
|
|
throw new Exception("难易程度不能为空!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(ConvertDifficultyLevel(questionType.detail.difficulty))) |
|
|
|
|
|
|
|
throw new Exception("无效的难易程度类型!"); |
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace(questionType.detail.content)) |
|
|
|
|
|
|
|
throw new Exception("题目内容必填!"); |
|
|
|
|
|
|
|
if (questionType.detail.answerList is null || (questionType.detail.answerList != null && !questionType.detail.answerList.Any())) |
|
|
|
|
|
|
|
throw new Exception("答案选项必填!"); |
|
|
|
|
|
|
|
if (questionType.detail.answerList.Count < 2) |
|
|
|
|
|
|
|
throw new Exception("答案选项不能少于两个!"); |
|
|
|
|
|
|
|
if (string.IsNullOrWhiteSpace( questionType.detail.answer ) && (questionType.detail.answer is null || (questionType.detail.answer != null && !questionType.detail.answerList.Any()))) |
|
|
|
|
|
|
|
throw new Exception("正确答案未标记!"); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |