Commit 0f68ce9c authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents 9daa34b8 26aebfb7
...@@ -291,6 +291,37 @@ namespace Edu.Common ...@@ -291,6 +291,37 @@ namespace Edu.Common
return minutes; return minutes;
} }
/// <summary>
/// 计算时分秒
/// </summary>
/// <param name="start"></param>
/// <param name="end"></param>
/// <returns></returns>
public static string CalcMinutesAndSeconds(DateTime start, DateTime end)
{
string dateDiff = null;
TimeSpan ts1 = new TimeSpan(start.Ticks);
TimeSpan ts2 = new TimeSpan(end.Ticks);
TimeSpan ts = ts1.Subtract(ts2).Duration();
if (ts.Days > 0)
{
dateDiff += ts.Days.ToString() + "天";
}
if (ts.Hours > 0)
{
dateDiff += ts.Hours.ToString() + "小时";
}
if (ts.Minutes > 0)
{
dateDiff += ts.Minutes.ToString() + "分";
}
if (ts.Seconds > 0)
{
dateDiff += ts.Seconds.ToString() + "秒";
}
return dateDiff;
}
/// <summary> /// <summary>
/// 是否为时间型字符串 /// 是否为时间型字符串
/// </summary> /// </summary>
......
...@@ -78,5 +78,10 @@ namespace Edu.Model.Entity.Exam ...@@ -78,5 +78,10 @@ namespace Edu.Model.Entity.Exam
/// 是否作答错误(1-是) /// 是否作答错误(1-是)
/// </summary> /// </summary>
public int IsWrong { get; set; } public int IsWrong { get; set; }
/// <summary>
/// 学生答案
/// </summary>
public string StudentAnswer { get; set; }
} }
} }
...@@ -33,5 +33,10 @@ namespace Edu.Model.ViewModel.Question ...@@ -33,5 +33,10 @@ namespace Edu.Model.ViewModel.Question
/// </summary> /// </summary>
public int QuestionCount { get; set; } public int QuestionCount { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int StudentId { get; set; }
} }
} }
...@@ -129,5 +129,15 @@ namespace Edu.Model.ViewModel.Question ...@@ -129,5 +129,15 @@ namespace Edu.Model.ViewModel.Question
/// 题库类型(见枚举) /// 题库类型(见枚举)
/// </summary> /// </summary>
public LevelTypeEnum BankType { get; set; } public LevelTypeEnum BankType { get; set; }
/// <summary>
/// 开始问题编号
/// </summary>
public int StartId { get; set; }
/// <summary>
/// 排序类型(1-问题编号)
/// </summary>
public int OrderByType { get; set; }
} }
} }
\ No newline at end of file
...@@ -678,17 +678,21 @@ namespace Edu.Module.Exam ...@@ -678,17 +678,21 @@ namespace Edu.Module.Exam
/// 题型数量统计 /// 题型数量统计
/// </summary> /// </summary>
/// <param name="query"></param> /// <param name="query"></param>
public object GetAppQuestionStaticModule(RB_Question_ViewModel query,int StudentId) public object GetAppQuestionStaticModule(RB_Question_ViewModel query, int StudentId)
{ {
object obj = new object(); object obj = new object();
int readingTotalCount = 0; int readingTotalCount = 0;
int readingFinishCount = 0; int readingFinishCount = 0;
int readingStartId = 0;
int listeningTotalCount = 0; int listeningTotalCount = 0;
int listeningFinishCount = 0; int listeningFinishCount = 0;
int listeningStartId = 0;
int grammarTotalCount = 0; int grammarTotalCount = 0;
int grammarFinishCount = 0; int grammarFinishCount = 0;
int grammarStartId = 0;
int wordsTotalCount = 0; int wordsTotalCount = 0;
int wordsFinishCount = 0; int wordsFinishCount = 0;
int wordsStartId = 0;
var sQuery = new RB_Student_Practice_Extend() var sQuery = new RB_Student_Practice_Extend()
{ {
StudentId = StudentId, StudentId = StudentId,
...@@ -697,14 +701,25 @@ namespace Edu.Module.Exam ...@@ -697,14 +701,25 @@ namespace Edu.Module.Exam
var finishList = student_PracticeRepository.GetStudentPracticeListRepository(sQuery); var finishList = student_PracticeRepository.GetStudentPracticeListRepository(sQuery);
if (finishList != null && finishList.Count > 0) if (finishList != null && finishList.Count > 0)
{ {
readingFinishCount = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ReadingChoose)?.Count() ?? 0; var tempReadingList = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ReadingChoose)?.ToList();
listeningFinishCount = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.Listening)?.Count() ?? 0; readingFinishCount = tempReadingList?.Count() ?? 0;
grammarFinishCount = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseGrammarUse)?.Count() ?? 0; readingStartId = tempReadingList != null && tempReadingList.Count > 0 ? (tempReadingList?.Max(qitem => qitem.QuestionId) ?? 0) : 0;
wordsTotalCount = finishList?.Where(qitem =>
qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWord var tempListeningList = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.Listening)?.ToList();
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseMean listeningFinishCount = tempListeningList?.Count() ?? 0;
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWordUse listeningStartId = tempListeningList != null && tempListeningList.Count > 0 ? (tempListeningList?.Max(qitem => qitem.QuestionId) ?? 0) : 0;
)?.Count() ?? 0;
var tempGrammarList = finishList?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseGrammarUse)?.ToList();
grammarFinishCount = tempGrammarList?.Count() ?? 0;
grammarStartId = tempGrammarList != null && tempGrammarList.Count > 0 ? (tempGrammarList?.Max(qitem => qitem.QuestionId) ?? 0) : 0;
var tempWordsList = finishList?.Where(qitem =>
qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWord
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseMean
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWordUse
)?.ToList();
wordsFinishCount = tempWordsList?.Count() ?? 0;
wordsStartId = tempWordsList != null && tempWordsList.Count > 0 ? (tempWordsList?.Max(qitem => qitem.QuestionId) ?? 0) : 0;
} }
var list = questionRepository.GetQuestionCategoryListRepository(query); var list = questionRepository.GetQuestionCategoryListRepository(query);
if (list != null && list.Count > 0) if (list != null && list.Count > 0)
...@@ -713,7 +728,7 @@ namespace Edu.Module.Exam ...@@ -713,7 +728,7 @@ namespace Edu.Module.Exam
listeningTotalCount = list?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.Listening)?.Sum(qitem => qitem.QuestionCount) ?? 0; listeningTotalCount = list?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.Listening)?.Sum(qitem => qitem.QuestionCount) ?? 0;
grammarTotalCount = list?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseGrammarUse)?.Sum(qitem => qitem.QuestionCount) ?? 0; grammarTotalCount = list?.Where(qitem => qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseGrammarUse)?.Sum(qitem => qitem.QuestionCount) ?? 0;
wordsTotalCount = list?.Where(qitem => wordsTotalCount = list?.Where(qitem =>
qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWord qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWord
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseMean || qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseMean
|| qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWordUse || qitem.Category == Common.Enum.Course.QuestionCategoryEnum.ChooseWordUse
)?.Sum(qitem => qitem.QuestionCount) ?? 0; )?.Sum(qitem => qitem.QuestionCount) ?? 0;
...@@ -722,12 +737,16 @@ namespace Edu.Module.Exam ...@@ -722,12 +737,16 @@ namespace Edu.Module.Exam
{ {
readingFinishCount, readingFinishCount,
readingTotalCount, readingTotalCount,
readingStartId,
listeningFinishCount, listeningFinishCount,
listeningTotalCount, listeningTotalCount,
listeningStartId,
grammarTotalCount, grammarTotalCount,
grammarFinishCount, grammarFinishCount,
grammarStartId,
wordsTotalCount, wordsTotalCount,
wordsFinishCount wordsFinishCount,
wordsStartId,
}; };
return obj; return obj;
} }
...@@ -743,75 +762,67 @@ namespace Edu.Module.Exam ...@@ -743,75 +762,67 @@ namespace Edu.Module.Exam
public List<object> GetAppQuestionCategoryListModule(int pageIndex, int pageSize, out long rowsCount, RB_Question_ViewModel query) public List<object> GetAppQuestionCategoryListModule(int pageIndex, int pageSize, out long rowsCount, RB_Question_ViewModel query)
{ {
List<object> list = new List<object>(); List<object> list = new List<object>();
query.OrderByType = 1;
var dataList = questionRepository.GetQuestionPageListRepository(pageIndex, pageSize, out rowsCount, query); var dataList = questionRepository.GetQuestionPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (dataList != null && dataList.Count > 0) if (dataList != null && dataList.Count > 0)
{ {
foreach (var item in dataList) foreach (var item in dataList)
{ {
var QuestionContentObj = analysisQuestion.ParsingQuestion(item.QuestionTypeKey, item.QuestionContent); var QuestionContentObj = analysisQuestion.ParsingQuestion(item.QuestionTypeKey, item.QuestionContent);
List<object> answerList = new List<object>();
List<object> quesAnswerList = new List<object>(); List<object> quesAnswerList = new List<object>();
//填空题、分录题、资料题
if (item.QuestionTypeKey == "fill-in" || item.QuestionTypeKey == "entry-problem" || item.QuestionTypeKey == "data-question") if (item.QuestionTypeKey == "listening" || item.QuestionTypeKey == "reading-comprehensio")
{ {
var tempList = item.Answer.Split('★'); try
if (tempList != null && tempList.Count() > 0)
{ {
foreach (var tItem in tempList) var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer);
if (listenList != null && listenList.Count > 0)
{ {
answerList.Add(tItem); foreach (var subItem in listenList)
{
quesAnswerList.Add(subItem.SubAnswer);
}
} }
} }
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_listening:" + Common.Plugin.JsonHelper.Serialize(item));
}
} }
//完型填空 if (item.QuestionTypeKey != "listening" && item.QuestionTypeKey != "reading-comprehensio" && !string.IsNullOrEmpty(item.Answer.ToString()))
else if (item.QuestionTypeKey == "cloze")
{ {
if (!string.IsNullOrEmpty(item.Answer.ToString())) try
{ {
var qAnsList = Common.Plugin.JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer.ToString()); var tempList = Common.ConvertHelper.StringToFileList(item.Answer);
if (qAnsList != null && qAnsList.Count() > 0) if (tempList != null && tempList.Count > 0)
{ {
foreach (var tItem in qAnsList) foreach (var tItem in tempList)
{ {
quesAnswerList.Add(tItem); quesAnswerList.Add(tItem);
} }
} }
} }
catch (Exception ex)
}
else if (item.QuestionTypeKey == "reading-comprehensio" || item.QuestionTypeKey == "listening")
{
if (!string.IsNullOrEmpty(item.Answer.ToString()))
{ {
try Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_Answer:" + Common.Plugin.JsonHelper.Serialize(item));
{
var tempList = Common.ConvertHelper.StringToFileList(item.Answer);
if (tempList != null && tempList.Count > 0)
{
foreach (var tItem in tempList)
{
quesAnswerList.Add(tItem);
}
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_:" + Common.Plugin.JsonHelper.Serialize(item));
}
} }
} }
var obj = new var obj = new
{ {
item.QuestionId, item.QuestionId,
item.QuestionTypeId, item.QuestionTypeId,
item.QuestionTypeKey, item.QuestionTypeKey,
item.Category,
LevelType = item.BankType,
item.Title, item.Title,
item.DifficultyType, item.DifficultyType,
item.DifficultyTypeStr, item.DifficultyTypeStr,
item.AnswerParse, item.AnswerParse,
item.Answer,
QuestionContentObj, QuestionContentObj,
QuestionAnswerList = quesAnswerList, QuestionAnswerList = quesAnswerList,
AnswerList = answerList, StundetAnswer = new List<string>(),
}; };
list.Add(obj); list.Add(obj);
} }
...@@ -837,7 +848,7 @@ namespace Edu.Module.Exam ...@@ -837,7 +848,7 @@ namespace Edu.Module.Exam
List<RB_Student_Exam_Extend> stuExamList = new List<RB_Student_Exam_Extend>(); List<RB_Student_Exam_Extend> stuExamList = new List<RB_Student_Exam_Extend>();
if (!string.IsNullOrEmpty(bankIds)) if (!string.IsNullOrEmpty(bankIds))
{ {
stuExamList= student_ExamRepository.GetStudentExamListRepository(new RB_Student_Exam_Extend() stuExamList = student_ExamRepository.GetStudentExamListRepository(new RB_Student_Exam_Extend()
{ {
GroupId = query.Group_Id, GroupId = query.Group_Id,
QBankIds = bankIds QBankIds = bankIds
...@@ -845,12 +856,24 @@ namespace Edu.Module.Exam ...@@ -845,12 +856,24 @@ namespace Edu.Module.Exam
} }
foreach (var item in bankList) foreach (var item in bankList)
{ {
var tempList = stuExamList?.Where(qitem => qitem.BankId == item.BankId)?.ToList(); var tempList = stuExamList?.Where(qitem => qitem.BankId == item.BankId)?.OrderByDescending(qitem => qitem.Score)?.ToList();
string LeastTime = ""; string LeastTime = "";//最短时间
if (tempList != null) decimal HighestScore = 0;//最高分
string MyUseTime = "";//用时
decimal MyScore = 0;//得分
int MyRank = 0;//排名
if (tempList != null && tempList.Count > 0)
{ {
var least = tempList?.OrderBy(qitem => qitem.ExamMinutes)?.FirstOrDefault(); var least = tempList?.OrderBy(qitem => qitem.ExamMinutes)?.FirstOrDefault();
LeastTime = Common.ConvertHelper.CalcMinutesAndSeconds(least.StartTime, least.EndTime);
HighestScore = tempList?.Max(qitem => qitem.Score) ?? 0;
var myLast = tempList?.Where(qitem => qitem.StudentId == query.StudentId).OrderByDescending(qitem => qitem.Id)?.FirstOrDefault();
if (myLast != null)
{
MyUseTime = Common.ConvertHelper.CalcMinutesAndSeconds(myLast.StartTime, myLast.EndTime);
MyScore = myLast.Score;
MyRank = tempList?.FindIndex(qitem => qitem.StudentId == query.StudentId) ?? 0;
}
} }
var obj = new var obj = new
{ {
...@@ -858,10 +881,10 @@ namespace Edu.Module.Exam ...@@ -858,10 +881,10 @@ namespace Edu.Module.Exam
item.BankName, item.BankName,
JoinNum = tempList?.Count(), JoinNum = tempList?.Count(),
LeastTime, LeastTime,
HighestScore = new Random().Next(1, 100), HighestScore,
MyUseTime = "55:55", MyUseTime,
MyScore = new Random().Next(1, 100), MyScore,
MyRank = new Random().Next(1, 10), MyRank,
}; };
result.Add(obj); result.Add(obj);
} }
...@@ -885,56 +908,42 @@ namespace Edu.Module.Exam ...@@ -885,56 +908,42 @@ namespace Edu.Module.Exam
{ {
foreach (var item in questionList) foreach (var item in questionList)
{ {
var QuestionContentObj = analysisQuestion.ParsingQuestion(item.QuestionTypeKey, item.QuestionContent); var QuestionContentObj = analysisQuestion.ParsingQuestion(item.QuestionTypeKey, item.QuestionContent, isNoAnswer: true);
List<object> answerList = new List<object>();
List<object> quesAnswerList = new List<object>(); List<object> quesAnswerList = new List<object>();
//填空题、分录题、资料题 if (item.QuestionTypeKey == "listening" || item.QuestionTypeKey == "reading-comprehensio")
if (item.QuestionTypeKey == "fill-in" || item.QuestionTypeKey == "entry-problem" || item.QuestionTypeKey == "data-question")
{ {
var tempList = item.Answer.Split('★'); try
if (tempList != null && tempList.Count() > 0)
{ {
foreach (var tItem in tempList) var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer);
if (listenList != null && listenList.Count > 0)
{ {
answerList.Add(tItem); foreach (var subItem in listenList)
{
quesAnswerList.Add(subItem.SubAnswer);
}
} }
} }
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_listening:" + Common.Plugin.JsonHelper.Serialize(item));
}
} }
//完型填空 if (item.QuestionTypeKey != "listening" && item.QuestionTypeKey != "reading-comprehensio" && !string.IsNullOrEmpty(item.Answer.ToString()))
else if (item.QuestionTypeKey == "cloze")
{ {
if (!string.IsNullOrEmpty(item.Answer.ToString())) try
{ {
var qAnsList = Common.Plugin.JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer.ToString()); var tempList = Common.ConvertHelper.StringToFileList(item.Answer);
if (qAnsList != null && qAnsList.Count() > 0) if (tempList != null && tempList.Count > 0)
{ {
foreach (var tItem in qAnsList) foreach (var tItem in tempList)
{ {
quesAnswerList.Add(tItem); quesAnswerList.Add(tItem);
} }
} }
} }
catch (Exception ex)
}
else if (item.QuestionTypeKey == "reading-comprehensio" || item.QuestionTypeKey == "listening")
{
if (!string.IsNullOrEmpty(item.Answer.ToString()))
{ {
try Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_Answer:" + Common.Plugin.JsonHelper.Serialize(item));
{
var tempList = Common.ConvertHelper.StringToFileList(item.Answer);
if (tempList != null && tempList.Count > 0)
{
foreach (var tItem in tempList)
{
quesAnswerList.Add(tItem);
}
}
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "GetAppQuestionCategoryListModule_:" + Common.Plugin.JsonHelper.Serialize(item));
}
} }
} }
var obj = new var obj = new
...@@ -942,13 +951,16 @@ namespace Edu.Module.Exam ...@@ -942,13 +951,16 @@ namespace Edu.Module.Exam
item.QuestionId, item.QuestionId,
item.QuestionTypeId, item.QuestionTypeId,
item.QuestionTypeKey, item.QuestionTypeKey,
item.Category,
LevelType = item.BankType,
item.Title, item.Title,
item.DifficultyType, item.DifficultyType,
item.DifficultyTypeStr, item.DifficultyTypeStr,
item.AnswerParse, item.AnswerParse,
QuestionContentObj, QuestionContentObj,
QuestionAnswerList = quesAnswerList, QuestionAnswerList = quesAnswerList,
AnswerList = answerList, StundetAnswer = new List<string>(),
item.Answer,
}; };
result.Add(obj); result.Add(obj);
} }
...@@ -974,6 +986,12 @@ namespace Edu.Module.Exam ...@@ -974,6 +986,12 @@ namespace Edu.Module.Exam
public bool SetStudentPracticeModule(RB_Student_Practice_Extend model) public bool SetStudentPracticeModule(RB_Student_Practice_Extend model)
{ {
bool flag = false; bool flag = false;
var oldModel = student_PracticeRepository.GetStudentPracticeListRepository(new RB_Student_Practice_Extend()
{
StudentId = model.StudentId,
QuestionId = model.QuestionId
})?.FirstOrDefault();
model.Id = oldModel?.Id ?? 0;
if (model.Id > 0) if (model.Id > 0)
{ {
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
...@@ -991,6 +1009,39 @@ namespace Edu.Module.Exam ...@@ -991,6 +1009,39 @@ namespace Edu.Module.Exam
} }
return flag; return flag;
} }
/// <summary>
/// 新增修改学员考试练习
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public bool SetStudentExamModule(RB_Student_Exam_Extend model)
{
bool flag = false;
if (model.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
};
flag = student_ExamRepository.Update(fileds, new WhereHelper(nameof(RB_Student_Exam_Extend.Id), model.Id));
}
else
{
var newId = student_ExamRepository.Insert(model);
model.Id = newId;
flag = newId > 0;
}
if (flag && model.ExamDetailsList != null && model.ExamDetailsList.Count > 0)
{
foreach (var item in model.ExamDetailsList)
{
item.ExamId = model.Id;
student_ExamDetailsRepository.Insert(item);
}
}
return flag;
}
#endregion #endregion
} }
} }
...@@ -14,7 +14,7 @@ namespace Edu.Module.Question ...@@ -14,7 +14,7 @@ namespace Edu.Module.Question
/// <summary> /// <summary>
/// 字母选项数组 /// 字母选项数组
/// </summary> /// </summary>
private static readonly string [] LetterArray= new string[26] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" }; private static readonly string[] LetterArray = new string[26] { "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z" };
/// <summary> /// <summary>
/// 问题解析 /// 问题解析
...@@ -25,7 +25,7 @@ namespace Edu.Module.Question ...@@ -25,7 +25,7 @@ namespace Edu.Module.Question
/// <param name="isOptionRandom">是否选项随机(1-随机选项)</param> /// <param name="isOptionRandom">是否选项随机(1-随机选项)</param>
/// <param name="isEdit">是否选项随机(编辑状态)</param> /// <param name="isEdit">是否选项随机(编辑状态)</param>
/// <returns></returns> /// <returns></returns>
public object ParsingQuestion(string key, string data,bool isNoAnswer=false,int isOptionRandom=0,bool isEdit=false) public object ParsingQuestion(string key, string data, bool isNoAnswer = false, int isOptionRandom = 0, bool isEdit = false)
{ {
var obj = new object(); var obj = new object();
switch (key) switch (key)
...@@ -36,7 +36,7 @@ namespace Edu.Module.Question ...@@ -36,7 +36,7 @@ namespace Edu.Module.Question
break; break;
//多选题 //多选题
case "multiple": case "multiple":
obj= GetChooseOptionList(data, isOptionRandom, isNoAnswer, isEdit: isEdit); obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer, isEdit: isEdit);
break; break;
//填空题 //填空题
case "fill-in": case "fill-in":
...@@ -44,7 +44,7 @@ namespace Edu.Module.Question ...@@ -44,7 +44,7 @@ namespace Edu.Module.Question
break; break;
//判断题 //判断题
case "judge": case "judge":
obj = GetJudgeList(data,isNoAnswer); obj = GetJudgeList(data, isNoAnswer);
break; break;
//简答题 //简答题
case "short-answer": case "short-answer":
...@@ -64,7 +64,7 @@ namespace Edu.Module.Question ...@@ -64,7 +64,7 @@ namespace Edu.Module.Question
break; break;
//分录题 //分录题
case "entry-problem": case "entry-problem":
obj = GetFillInList(data,isNoAnswer); obj = GetFillInList(data, isNoAnswer);
break; break;
//资料题 //资料题
case "data-question": case "data-question":
...@@ -76,11 +76,11 @@ namespace Edu.Module.Question ...@@ -76,11 +76,11 @@ namespace Edu.Module.Question
break; break;
//排序题 //排序题
case "sorting-problem": case "sorting-problem":
obj = GetSortingProblemList(data,isNoAnswer); obj = GetSortingProblemList(data, isNoAnswer);
break; break;
//完型填空 //完型填空
case "cloze": case "cloze":
obj = GetClozeList(data,isNoAnswer); obj = GetClozeList(data, isNoAnswer);
break; break;
//阅读理解 //阅读理解
case "reading-comprehensio": case "reading-comprehensio":
...@@ -135,7 +135,7 @@ namespace Edu.Module.Question ...@@ -135,7 +135,7 @@ namespace Edu.Module.Question
{ {
//单选题 //单选题
case "single": case "single":
item.SubAnwser = GetChooseOptionList(item.SubAnwser.ToString(),0, isNoAnswer); item.SubAnwser = GetChooseOptionList(item.SubAnwser.ToString(), 0, isNoAnswer);
break; break;
//多选题 //多选题
case "multiple": case "multiple":
...@@ -172,7 +172,7 @@ namespace Edu.Module.Question ...@@ -172,7 +172,7 @@ namespace Edu.Module.Question
break; break;
//单选题(数字) //单选题(数字)
case "single-number": case "single-number":
obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer,isSingleNum:true,isEdit:isEdit); obj = GetChooseOptionList(data, isOptionRandom, isNoAnswer, isSingleNum: true, isEdit: isEdit);
break; break;
} }
return obj; return obj;
...@@ -188,53 +188,51 @@ namespace Edu.Module.Question ...@@ -188,53 +188,51 @@ namespace Edu.Module.Question
private object GetChooseOptionList(string data, int isOptionRandom, bool isNoAnswer, bool isSingleNum = false, bool isEdit = false) private object GetChooseOptionList(string data, int isOptionRandom, bool isNoAnswer, bool isSingleNum = false, bool isEdit = false)
{ {
var obj = new object(); var obj = new object();
var singleList = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(data);
var singleList = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(data); var newList = new List<optionItem>();
var newList = new List<optionItem>(); if (!isEdit)
if (!isEdit) {
{ singleList.ForEach(item =>
singleList.ForEach(item =>
{
item.ShowName = item.Name;
});
}
//选项随机
if (isOptionRandom == 1)
{ {
var tempList = singleList.OrderBy(qitem => Guid.NewGuid()).ToList(); item.ShowName = item.Name;
for (var i = 0; i < tempList.Count; i++) });
{ }
var item = new optionItem() //选项随机
{ if (isOptionRandom == 1)
Name = tempList[i].Name, {
Content = tempList[i].Content, var tempList = singleList.OrderBy(qitem => Guid.NewGuid()).ToList();
IsAnswer = tempList[i].IsAnswer for (var i = 0; i < tempList.Count; i++)
};
item.ShowName = isSingleNum ? (i + 1).ToString() : LetterArray[i];
newList.Add(item);
}
}
//去掉答案
if (isNoAnswer)
{ {
singleList.ForEach(item => var item = new optionItem()
{ {
item.IsAnswer = false; Name = tempList[i].Name,
}); Content = tempList[i].Content,
newList.ForEach(item => IsAnswer = tempList[i].IsAnswer
{ };
item.IsAnswer = false; item.ShowName = isSingleNum ? (i + 1).ToString() : LetterArray[i];
}); newList.Add(item);
} }
if (isOptionRandom == 1) }
//去掉答案
if (isNoAnswer)
{
singleList.ForEach(item =>
{ {
obj = newList; item.IsAnswer = false;
} });
else newList.ForEach(item =>
{ {
obj = singleList; item.IsAnswer = false;
} });
}
if (isOptionRandom == 1)
{
obj = newList;
}
else
{
obj = singleList;
}
return obj; return obj;
} }
...@@ -362,7 +360,7 @@ namespace Edu.Module.Question ...@@ -362,7 +360,7 @@ namespace Edu.Module.Question
/// <returns></returns> /// <returns></returns>
private object GetShortAnswer(string data, bool isNoAnswer) private object GetShortAnswer(string data, bool isNoAnswer)
{ {
var shortAnswerList= Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(data); var shortAnswerList = Common.Plugin.JsonHelper.DeserializeObject<List<fillInItem>>(data);
if (isNoAnswer) if (isNoAnswer)
{ {
shortAnswerList.ForEach(item => shortAnswerList.ForEach(item =>
...@@ -405,7 +403,7 @@ namespace Edu.Module.Question ...@@ -405,7 +403,7 @@ namespace Edu.Module.Question
/// <param name="AnalysisAnswer">解析答案</param> /// <param name="AnalysisAnswer">解析答案</param>
/// <param name="IsRequire">是否开启验证</param> /// <param name="IsRequire">是否开启验证</param>
/// <returns></returns> /// <returns></returns>
public string CheckQuestion(string QuestionTypeKey,string QuestionContent,string Answer, out string AnalysisAnswer,bool IsRequire=true) public string CheckQuestion(string QuestionTypeKey, string QuestionContent, string Answer, out string AnalysisAnswer, bool IsRequire = true)
{ {
AnalysisAnswer = ""; AnalysisAnswer = "";
string message = ""; string message = "";
...@@ -446,7 +444,7 @@ namespace Edu.Module.Question ...@@ -446,7 +444,7 @@ namespace Edu.Module.Question
var optionItems = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(QuestionContent); var optionItems = Common.Plugin.JsonHelper.DeserializeObject<List<optionItem>>(QuestionContent);
message = CheckChoose(optionItems); message = CheckChoose(optionItems);
var judgeModel = optionItems.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault(); var judgeModel = optionItems.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault();
if (judgeModel != null ) if (judgeModel != null)
{ {
AnalysisAnswer = string.Join(",", judgeModel?.Name); AnalysisAnswer = string.Join(",", judgeModel?.Name);
} }
...@@ -606,15 +604,15 @@ namespace Edu.Module.Question ...@@ -606,15 +604,15 @@ namespace Edu.Module.Question
if (clozeList != null && clozeList.Count > 0) if (clozeList != null && clozeList.Count > 0)
{ {
int index = 1; int index = 1;
List<SubAnswerItem> clozeAnswerList = new List<SubAnswerItem>(); List<SubAnswerItem> clozeAnswerList = new List<SubAnswerItem>();
foreach (var rootItem in clozeList) foreach (var rootItem in clozeList)
{ {
var tempModel = rootItem.OptionList.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault(); var tempModel = rootItem.OptionList.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault();
clozeAnswerList.Add(new SubAnswerItem() clozeAnswerList.Add(new SubAnswerItem()
{ {
SubQuestionId= index.ToString(), SubQuestionId = index.ToString(),
SubAnswer= tempModel?.Name ?? "", SubAnswer = tempModel?.Name ?? "",
SubScore = rootItem.SubScore, SubScore = rootItem.SubScore,
}); });
if (IsRequire) if (IsRequire)
{ {
...@@ -683,9 +681,9 @@ namespace Edu.Module.Question ...@@ -683,9 +681,9 @@ namespace Edu.Module.Question
resultList.Add(new SubAnswerItem resultList.Add(new SubAnswerItem
{ {
SubQuestionId = Index.ToString(), SubQuestionId = Index.ToString(),
SubQuestionKey=item.QuestionKey, SubQuestionKey = item.QuestionKey,
SubAnswer = singleAnwser.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault()?.Name??"", SubAnswer = singleAnwser.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault()?.Name ?? "",
SubScore=item.SubScore, SubScore = item.SubScore,
}); });
if (IsRequire) if (IsRequire)
{ {
...@@ -723,7 +721,7 @@ namespace Edu.Module.Question ...@@ -723,7 +721,7 @@ namespace Edu.Module.Question
SubQuestionId = Index.ToString(), SubQuestionId = Index.ToString(),
SubQuestionKey = item.QuestionKey, SubQuestionKey = item.QuestionKey,
SubAnswer = string.Join(",", multipleAnwser.Where(qitem => qitem.IsAnswer == true).Select(qitem => qitem.Name)), SubAnswer = string.Join(",", multipleAnwser.Where(qitem => qitem.IsAnswer == true).Select(qitem => qitem.Name)),
SubScore=item.SubScore, SubScore = item.SubScore,
}); });
if (IsRequire) if (IsRequire)
{ {
...@@ -742,7 +740,7 @@ namespace Edu.Module.Question ...@@ -742,7 +740,7 @@ namespace Edu.Module.Question
SubQuestionId = Index.ToString(), SubQuestionId = Index.ToString(),
SubQuestionKey = item.QuestionKey, SubQuestionKey = item.QuestionKey,
SubAnswer = string.Join(",", r_fillInList.Select(qitem => Common.Plugin.StringHelper.AppHtmlFilterr(qitem.Content))), SubAnswer = string.Join(",", r_fillInList.Select(qitem => Common.Plugin.StringHelper.AppHtmlFilterr(qitem.Content))),
SubScore=item.SubScore, SubScore = item.SubScore,
}); });
if (IsRequire) if (IsRequire)
{ {
...@@ -759,8 +757,8 @@ namespace Edu.Module.Question ...@@ -759,8 +757,8 @@ namespace Edu.Module.Question
{ {
SubQuestionId = Index.ToString(), SubQuestionId = Index.ToString(),
SubQuestionKey = item.QuestionKey, SubQuestionKey = item.QuestionKey,
SubAnswer = judgeList.Where(qitem=>qitem.IsAnswer==true)?.FirstOrDefault()?.Name??"", SubAnswer = judgeList.Where(qitem => qitem.IsAnswer == true)?.FirstOrDefault()?.Name ?? "",
SubScore=item.SubScore, SubScore = item.SubScore,
}); });
break; break;
//简答题 //简答题
...@@ -772,7 +770,7 @@ namespace Edu.Module.Question ...@@ -772,7 +770,7 @@ namespace Edu.Module.Question
SubQuestionId = Index.ToString(), SubQuestionId = Index.ToString(),
SubQuestionKey = item.QuestionKey, SubQuestionKey = item.QuestionKey,
SubAnswer = Common.Plugin.StringHelper.AppHtmlFilterr(shortAnswer[0].Content), SubAnswer = Common.Plugin.StringHelper.AppHtmlFilterr(shortAnswer[0].Content),
SubScore=item.SubScore, SubScore = item.SubScore,
}); });
if (IsRequire) if (IsRequire)
{ {
......
...@@ -39,6 +39,10 @@ WHERE 1=1 ...@@ -39,6 +39,10 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.LevelType), (int)query.LevelType);
} }
if (query.QuestionId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Student_Practice_Extend.QuestionId), query.QuestionId);
}
} }
return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList(); return Get<RB_Student_Practice_Extend>(builder.ToString()).ToList();
} }
......
...@@ -147,7 +147,7 @@ WHERE 1=1 AND B.Status=0 AND A.Status=0 ...@@ -147,7 +147,7 @@ WHERE 1=1 AND B.Status=0 AND A.Status=0
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.`Name` ,'') AS QuestionTypeName SELECT A.*,IFNULL(B.`Name` ,'') AS QuestionTypeName,IFNULL(C.BankType,0) AS BankType
FROM RB_Question AS A LEFT JOIN RB_Question_Type B ON A.QuestionTypeId=B.QId FROM RB_Question AS A LEFT JOIN RB_Question_Type B ON A.QuestionTypeId=B.QId
INNER JOIN rb_question_bank AS C ON A.BankId=C.BankId INNER JOIN rb_question_bank AS C ON A.BankId=C.BankId
WHERE 1=1 WHERE 1=1
...@@ -197,7 +197,19 @@ WHERE 1=1 ...@@ -197,7 +197,19 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Question_ViewModel.BankType), (int)query.BankType); builder.AppendFormat(" AND C.{0}={1} ", nameof(RB_Question_ViewModel.BankType), (int)query.BankType);
} }
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.SortNum)); if (query.StartId > 0)
{
builder.AppendFormat(" AND A.{0}>{1} ", nameof(RB_Question_ViewModel.QuestionId), query.StartId);
}
if (query.OrderByType == 1)
{
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.QuestionId));
}
else
{
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_ViewModel.SortNum));
}
return GetPage<RB_Question_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Question_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
} }
......
...@@ -51,6 +51,10 @@ WHERE 1=1 "); ...@@ -51,6 +51,10 @@ WHERE 1=1 ");
builder.AppendFormat(" AND (A.{0} LIKE @BankName OR A.{1} LIKE @BankName)", nameof(RB_Question_Bank_ViewModel.BankName), nameof(RB_Question_Bank_ViewModel.BankNo)); builder.AppendFormat(" AND (A.{0} LIKE @BankName OR A.{1} LIKE @BankName)", nameof(RB_Question_Bank_ViewModel.BankName), nameof(RB_Question_Bank_ViewModel.BankNo));
parameters.Add("BankName", "%" + query.BankName.Trim() + "%"); parameters.Add("BankName", "%" + query.BankName.Trim() + "%");
} }
if (query.BankType > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Question_Bank_ViewModel.BankType), (int)query.BankType);
}
builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_Bank_ViewModel.BankNo)); builder.AppendFormat(" ORDER BY A.{0} ASC ", nameof(RB_Question_Bank_ViewModel.BankNo));
return GetPage<RB_Question_Bank_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Question_Bank_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
......
...@@ -24,38 +24,42 @@ namespace Edu.Repository.Sell ...@@ -24,38 +24,42 @@ namespace Edu.Repository.Sell
/// <returns></returns> /// <returns></returns>
public List<RB_ReturnMoney_Batch_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, int type, string month, int groupId) public List<RB_ReturnMoney_Batch_ViewModel> GetPageList(int pageIndex, int pageSize, out long count, int type, string month, int groupId)
{ {
string sql = $@"select IFNULL(SUM(b.CommissionMoeny),0) as TotalEmployee,IFNULL(SUM(c.CommissionMoeny),0) as TotalCustomer,a.FinanceIds, string sql = $@"";
IFNULL(SUM(d.CommissionMoeny),0) as TotalInternal,IFNULL(SUM(e.CommissionMoeny),0) as TotalTrans, a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr"; sql += $@" ";
sql += $@" from RB_ReturnMoney_Batch a LEFT JOIN sql += " ";
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=1 and `Status` in(1,2) GROUP BY OrderSourceType) as b StringBuilder builder = new StringBuilder();
on a.Id=b.BatchId builder.AppendFormat(@"
LEFT JOIN SELECT IFNULL(SUM(b.CommissionMoeny),0) as TotalEmployee,IFNULL(SUM(c.CommissionMoeny),0) as TotalCustomer,a.FinanceIds
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=2 and `Status` in(1,2) GROUP BY OrderSourceType) as c ,IFNULL(SUM(d.CommissionMoeny),0) as TotalInternal,IFNULL(SUM(e.CommissionMoeny),0) as TotalTrans
on a.Id=c.BatchId ,a.Id,a.BatchName,TotalMoney,a.CreateBy,a.CreateDate,DATE_FORMAT(a.CreateDate,'%Y-%m-%d %H:%i:%S') as CreateDateStr
LEFT JOIN FROM RB_ReturnMoney_Batch a LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=3 and `Status` in(1,2) GROUP BY OrderSourceType ) as d (SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=1 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as b
on a.Id=d.BatchId on a.Id=b.BatchId
LEFT JOIN LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=4 and `Status` in(1,2) GROUP BY OrderSourceType ) as e (SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=2 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as c
on a.Id=e.BatchId "; on a.Id=c.BatchId
sql += " where a.GroupId=@gid"; LEFT JOIN
DynamicParameters parameters = new DynamicParameters(); (SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=3 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as d
parameters.Add("gid", groupId); on a.Id=d.BatchId
LEFT JOIN
(SELECT SUM(CommissionMoeny) as CommissionMoeny,BatchId FROM rb_order_returncomission where OrderSourceType=4 and `Status` in(1,2) GROUP BY OrderSourceType,BatchId) as e
on a.Id=e.BatchId
WHERE 1=1
");
if (groupId > 0)
{
builder.AppendFormat(" AND a.GroupId={0} ", groupId);
}
if (!string.IsNullOrEmpty(month)) if (!string.IsNullOrEmpty(month))
{ {
sql += " and DATE_FORMAT(a.CreateDate,'%Y-%m')=@month"; builder.AppendFormat(" AND DATE_FORMAT(a.CreateDate,'%Y-%m')=DATE_FORMAT('{0}-01','%Y-%m')", month);
parameters.Add("month", month);
} }
if (type != 0) if (type != 0)
{ {
sql += " and a.CommissionType=@type"; builder.AppendFormat(" and a.CommissionType={0} ", type);
parameters.Add("type", type);
} }
builder.Append(" order by a.CreateDate desc ");
sql += " order by a.CreateDate desc"; return GetPage<RB_ReturnMoney_Batch_ViewModel>(pageIndex, pageSize, out count, builder.ToString()).ToList();
return GetPage<RB_ReturnMoney_Batch_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
} }
/// <summary> /// <summary>
......
...@@ -14,6 +14,7 @@ using System; ...@@ -14,6 +14,7 @@ using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Linq; using System.Linq;
using System.Text.RegularExpressions; using System.Text.RegularExpressions;
using System.Threading.Tasks;
namespace Edu.WebApi.Controllers.Course namespace Edu.WebApi.Controllers.Course
{ {
...@@ -402,6 +403,38 @@ namespace Edu.WebApi.Controllers.Course ...@@ -402,6 +403,38 @@ namespace Edu.WebApi.Controllers.Course
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 重新修改问题答案
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult RunQuestion()
{
Task.Run(() => {
var list = questionModule.GetQuestionListModule(new RB_Question_ViewModel() { Q_QuestionTypeIds = "14,16", });
if (list != null && list.Count > 0)
{
foreach (var item in list)
{
try
{
var listenList = JsonHelper.DeserializeObject<List<SubAnswerItem>>(item.Answer);
}
catch
{
string str = analysisQuestion.CheckQuestion(item.QuestionTypeKey, item.QuestionContent, item.Answer, out string newAnswer, IsRequire: false);
if (!string.IsNullOrEmpty(newAnswer))
{
item.Answer = newAnswer;
bool flag = questionModule.SetQuestionModule(item);
}
}
}
}
});
return ApiResult.Success();
}
/// <summary> /// <summary>
/// 批量修改问题考级程度 /// 批量修改问题考级程度
/// </summary> /// </summary>
......
...@@ -904,7 +904,6 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -904,7 +904,6 @@ namespace Edu.WebApi.Controllers.Exam
pageModel.PageData = result; pageModel.PageData = result;
return ApiResult.Success(data: pageModel); return ApiResult.Success(data: pageModel);
} }
#endregion
/// <summary> /// <summary>
/// 老师阅卷提交分数 /// 老师阅卷提交分数
...@@ -963,6 +962,9 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -963,6 +962,9 @@ namespace Edu.WebApi.Controllers.Exam
return result ? ApiResult.Success("阅卷成功!") : ApiResult.Failed("阅卷失败!"); return result ? ApiResult.Success("阅卷成功!") : ApiResult.Failed("阅卷失败!");
} }
#endregion
#region 小程序单词、语法、听力、阅读、模拟题
/// <summary> /// <summary>
/// 获取题目类型统计 /// 获取题目类型统计
/// </summary> /// </summary>
...@@ -991,6 +993,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -991,6 +993,7 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0},{1},{2}", (int)QuestionCategoryEnum.ChooseWord, (int)QuestionCategoryEnum.ChooseMean, (int)QuestionCategoryEnum.ChooseWordUse), QCategoryId = string.Format("{0},{1},{2}", (int)QuestionCategoryEnum.ChooseWord, (int)QuestionCategoryEnum.ChooseMean, (int)QuestionCategoryEnum.ChooseWordUse),
StartId = base.ParmJObj.GetInt("StartId"),
}; };
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
...@@ -1010,6 +1013,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1010,6 +1013,7 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ChooseGrammarUse), QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ChooseGrammarUse),
StartId = base.ParmJObj.GetInt("StartId"),
}; };
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
...@@ -1029,6 +1033,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1029,6 +1033,7 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.Listening), QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.Listening),
StartId = base.ParmJObj.GetInt("StartId"),
}; };
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
...@@ -1048,6 +1053,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1048,6 +1053,7 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ReadingChoose), QCategoryId = string.Format("{0}", (int)QuestionCategoryEnum.ReadingChoose),
StartId = base.ParmJObj.GetInt("StartId"),
}; };
var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseExamModule.GetAppQuestionCategoryListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
...@@ -1067,6 +1073,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1067,6 +1073,7 @@ namespace Edu.WebApi.Controllers.Exam
{ {
BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"), BankType = (LevelTypeEnum)base.ParmJObj.GetInt("BankType"),
}; };
query.StudentId = base.ParmJObj.GetInt("StudentId");
var list = courseExamModule.GetAppBankPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseExamModule.GetAppBankPageModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
pageModel.PageData = list; pageModel.PageData = list;
...@@ -1096,6 +1103,7 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1096,6 +1103,7 @@ namespace Edu.WebApi.Controllers.Exam
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
[AllowRepeat]
public ApiResult SetStudentPractice() public ApiResult SetStudentPractice()
{ {
var model = new RB_Student_Practice_Extend() var model = new RB_Student_Practice_Extend()
...@@ -1113,9 +1121,36 @@ namespace Edu.WebApi.Controllers.Exam ...@@ -1113,9 +1121,36 @@ namespace Edu.WebApi.Controllers.Exam
AnswerParse=base.ParmJObj.GetStringValue("AnswerParse"), AnswerParse=base.ParmJObj.GetStringValue("AnswerParse"),
IsAnswer=base.ParmJObj.GetInt("IsAnswer"), IsAnswer=base.ParmJObj.GetInt("IsAnswer"),
IsWrong=base.ParmJObj.GetInt("IsWrong"), IsWrong=base.ParmJObj.GetInt("IsWrong"),
StudentAnswer=base.ParmJObj.GetStringValue("StudentAnswer"),
}; };
bool flag = courseExamModule.SetStudentPracticeModule(model); bool flag = courseExamModule.SetStudentPracticeModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed(); return flag ? ApiResult.Success() : ApiResult.Failed();
} }
/// <summary>
/// 新增修改学员考试
/// </summary>
/// <returns></returns>
[HttpPost]
[AllowRepeat]
public ApiResult SetStudentExam()
{
var model = new RB_Student_Exam_Extend()
{
Id=base.ParmJObj.GetInt("Id"),
BankId=base.ParmJObj.GetInt("BankId"),
StudentId=base.ParmJObj.GetInt("StudentId"),
StartTime=base.ParmJObj.GetDateTime("StartTime"),
EndTime=base.ParmJObj.GetDateTime("EndTime"),
Score=base.ParmJObj.GetDecimal("Score"),
Times=base.ParmJObj.GetInt("Times"),
CreateTime=DateTime.Now,
GroupId=base.ParmJObj.GetInt("GroupId")
};
bool flag = courseExamModule.SetStudentExamModule(model);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion
} }
} }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment