Commit 003b9580 authored by 黄奎's avatar 黄奎

页面修改

parent a36b4184
......@@ -127,5 +127,10 @@ namespace Edu.Model.Entity.Exam
/// 题目分数
/// </summary>
public decimal Score { get; set; }
/// <summary>
/// 分组编号
/// </summary>
public int GId { get; set; }
}
}
using System;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Exam;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
......@@ -28,12 +30,12 @@ namespace Edu.Model.Entity.Exam
public string GroupName { get; set; }
/// <summary>
/// 问题类型编号
/// 问题类型编号【GroupType=1时使用】
/// </summary>
public int QuestionTypeId { get; set; }
/// <summary>
/// 问题类型Key
/// 问题类型Key【GroupType=1时使用】
/// </summary>
public string QuestionTypeKey { get; set; }
......@@ -46,5 +48,15 @@ namespace Edu.Model.Entity.Exam
/// 分数
/// </summary>
public decimal GScore { get; set; }
/// <summary>
/// 组卷类型
/// </summary>
public ExamGroupTypeEnum GroupType { get; set; }
/// <summary>
/// 题目分类编号【GroupType=2时使用】
/// </summary>
public QuestionCategoryEnum CategoryId { get; set; }
}
}
using Edu.Common.Enum.Question;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Question;
using System;
using System.Collections.Generic;
using System.Text;
......@@ -102,5 +103,15 @@ namespace Edu.Model.Entity.Exam
/// 审核和备注
/// </summary>
public string ExamineRemark { get; set; }
/// <summary>
/// 组卷类型
/// </summary>
public ExamGroupTypeEnum GroupType { get; set; }
/// <summary>
/// 试卷总分数
/// </summary>
public decimal PaperScore { get; set; }
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Question;
using System;
using System.Collections.Generic;
......@@ -73,5 +74,10 @@ namespace Edu.Model.Entity.Exam
/// 模板题库编号
/// </summary>
public string TemplateBankIds { get; set; }
/// <summary>
/// 组卷类型
/// </summary>
public ExamGroupTypeEnum GroupType { get; set; }
}
}
\ No newline at end of file
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Question;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
......@@ -11,13 +10,14 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public class ExamTemplate
{
/// <summary>
/// 问题类型编号
/// 问题类型编号【GroupType=1时使用】
/// </summary>
public int QuestionTypeId { get; set; }
/// <summary>
/// 问题类型Key
/// 问题类型Key【GroupType=1时使用】
/// </summary>
public string QuestionTypeKey { get; set; }
......@@ -51,10 +51,6 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public List<DifficultyTypeItem> ChooseList { get; set; }
/// <summary>
/// 题目分类列表
/// </summary>
public List<CategoryItem> CategoryList { get; set; }
}
/// <summary>
......@@ -72,26 +68,4 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public int ChooseNum { get; set; }
}
/// <summary>
/// 题型分类
/// </summary>
public class CategoryItem
{
/// <summary>
/// 题型分类
/// </summary>
public QuestionCategoryEnum Category { get; set; }
/// <summary>
/// 选择题目数
/// </summary>
public int ChooseNum { get; set; }
/// <summary>
/// 难易程度选题【ChooseType=2时使用】
/// </summary>
public List<DifficultyTypeItem> ChooseList { get; set; }
}
}
......@@ -18,6 +18,7 @@ using Edu.Model.ViewModel.EduTask;
using Edu.Common.Enum.Finance;
using Edu.Repository.EduTask;
using Edu.Common.Enum.Exam;
using Edu.Common.Enum.Course;
namespace Edu.Module.Exam
{
......@@ -309,6 +310,8 @@ namespace Edu.Module.Exam
{nameof(RB_Examination_Group_ViewModel.QuestionTypeKey),gitem.QuestionTypeKey },
{nameof(RB_Examination_Group_ViewModel.GSortNum),gitem.GSortNum },
{nameof(RB_Examination_Group_ViewModel.GScore),gitem.GScore },
{nameof(RB_Examination_Group_ViewModel.GroupType),gitem.GroupType },
{nameof(RB_Examination_Group_ViewModel.CategoryId),gitem.CategoryId },
};
flag = examination_GroupRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Group_ViewModel.GId), gitem.GId));
}
......@@ -324,6 +327,7 @@ namespace Edu.Module.Exam
foreach (var dItem in gitem.DetailsList)
{
dItem.PaperId = model.PaperId;
dItem.GId = gitem.GId;
if (dItem.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
......@@ -347,6 +351,7 @@ namespace Edu.Module.Exam
{nameof(RB_Examination_Details_ViewModel.Category),dItem.Category },
{nameof(RB_Examination_Details_ViewModel.LevelType),dItem.LevelType },
{nameof(RB_Examination_Details_ViewModel.Score),dItem.Score },
{nameof(RB_Examination_Details_ViewModel.GId),dItem.GId },
};
flag = examination_DetailsRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Details_ViewModel.Id), dItem.Id));
}
......@@ -383,6 +388,7 @@ namespace Edu.Module.Exam
{nameof(RB_Examination_Template_ViewModel.TemplateDifficultyType),model.TemplateDifficultyType },
{nameof(RB_Examination_Template_ViewModel.TemplateData),model.TemplateData },
{nameof(RB_Examination_Template_ViewModel.TemplateBankIds),model.TemplateBankIds },
//{nameof(RB_Examination_Template_ViewModel.GroupType),model.GroupType },
};
flag = examination_TemplateRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Template_ViewModel.TemplateId), model.TemplateId));
}
......@@ -395,6 +401,7 @@ namespace Edu.Module.Exam
}
//获取问题列表
var questionList = new List<RB_Question_ViewModel>();
string Q_QuestionTypeIds = "";
if (model.TempDataList != null && model.TempDataList.Count > 0)
{
......@@ -403,8 +410,12 @@ namespace Edu.Module.Exam
questionList = questionRepository.GetQuestionListRepository(new RB_Question_ViewModel()
{
QBankIds = model.TemplateBankIds,
Q_QuestionTypeIds = Q_QuestionTypeIds
Q_QuestionTypeIds = model.GroupType == ExamGroupTypeEnum.QuestionType ? Q_QuestionTypeIds : "",
QCategoryId = model.GroupType == ExamGroupTypeEnum.QuestionClassify ? Q_QuestionTypeIds : "",
});
var newPaperId = 0;
if (model.TemplateNum > 1)
{
//文件夹
var paperModel = new RB_Examination_Paper_ViewModel()
{
......@@ -422,13 +433,16 @@ namespace Edu.Module.Exam
PaperType = 1,
ParentId = model.ParentId,
IsOpen = model.IsOpen,
GroupType=model.GroupType,
};
var newPaperId = examination_PaperRepository.Insert(paperModel);
newPaperId = examination_PaperRepository.Insert(paperModel);
paperModel.PaperId = newPaperId;
flag = newPaperId > 0;
if (paperModel.CreateNum > 0)
}
if (model.TemplateNum > 0)
{
for (var i = 0; i < paperModel.CreateNum; i++)
for (var i = 0; i < model.TemplateNum; i++)
{
var subModel = new RB_Examination_Paper_ViewModel()
{
......@@ -446,8 +460,9 @@ namespace Edu.Module.Exam
PaperType = 2,
ParentId = newPaperId,
IsOpen = model.IsOpen,
GroupType=model.GroupType,
PaperScore=model.TemplateScore,
};
var newSubPaperId = examination_PaperRepository.Insert(subModel);
subModel.PaperId = newSubPaperId;
flag = newSubPaperId > 0;
......@@ -456,7 +471,15 @@ namespace Edu.Module.Exam
int G_Sort = 1;
foreach (var item in model.TempDataList)
{
var tempQuestioinList = questionList?.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId)?.ToList();
var tempQuestioinList = new List<RB_Question_ViewModel>();
if (model.GroupType == ExamGroupTypeEnum.QuestionType)
{
tempQuestioinList = questionList?.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId)?.ToList();
}
else if (model.GroupType == ExamGroupTypeEnum.QuestionClassify)
{
tempQuestioinList = questionList?.Where(qitem => qitem.Category.ToInt() == item.QuestionTypeId)?.ToList();
}
var subTempQuestionList = new List<RB_Question_ViewModel>();
//题库随机选题
if (item.ChooseType == 1)
......@@ -475,29 +498,26 @@ namespace Edu.Module.Exam
}
}
}
else if (item.ChooseType == 3)
{
if (item.CategoryList != null && item.CategoryList.Count > 0)
{
foreach (var subItem in item.CategoryList.Where(qitem => qitem.ChooseNum > 0))
{
var tempList = tempQuestioinList?.Where(qitem => qitem.Category == subItem.Category)?.OrderBy(qitem => Guid.NewGuid())?.Take(subItem.ChooseNum)?.ToList();
if (tempList != null && tempList.Count > 0)
{
subTempQuestionList.AddRange(tempList);
}
}
}
}
var groupModel = new RB_Examination_Group_ViewModel()
{
GId = 0,
PaperId = subModel.PaperId,
GroupName = !string.IsNullOrEmpty(item.QuestionDesc) ? item.QuestionDesc : item.QuestionTypeName,
GSortNum = G_Sort,
QuestionTypeId = item.QuestionTypeId,
GScore=item.QuestionScore,
QuestionTypeKey = item.QuestionTypeKey,
GroupType=model.GroupType,
};
if (model.GroupType == ExamGroupTypeEnum.QuestionType)
{
groupModel.QuestionTypeId = item.QuestionTypeId;
groupModel.CategoryId = 0;
}
else if (model.GroupType == ExamGroupTypeEnum.QuestionClassify)
{
groupModel.QuestionTypeId = 0;
groupModel.CategoryId = (QuestionCategoryEnum)item.QuestionTypeId;
}
G_Sort++;
var newGId = examination_GroupRepository.Insert(groupModel);
groupModel.GId = newGId;
......@@ -508,6 +528,7 @@ namespace Edu.Module.Exam
var detailsModel = new RB_Examination_Details_ViewModel()
{
Id = 0,
GId= groupModel.GId,
PaperId = subModel.PaperId,
BankId = qItem.BankId,
QuestionId = qItem.QuestionId,
......@@ -523,7 +544,7 @@ namespace Edu.Module.Exam
UpdateBy = model.CreateBy,
UpdateTime = model.CreateTime,
IsUpdateJobExam = qItem.IsUpdateJobExam,
Status = Common.Enum.DateStateEnum.Normal,
Status = DateStateEnum.Normal,
SortNum = Q_SortNum,
Answer = qItem.Answer,
IsMutex = qItem.IsMutex,
......@@ -577,7 +598,9 @@ namespace Edu.Module.Exam
{nameof(RB_Examination_Paper_ViewModel.CreateNum),model.CreateNum },
{nameof(RB_Examination_Paper_ViewModel.PaperType),model.PaperType },
{nameof(RB_Examination_Paper_ViewModel.ParentId),model.ParentId },
{nameof(RB_Examination_Paper_ViewModel.IsOpen),model.IsOpen }
{nameof(RB_Examination_Paper_ViewModel.IsOpen),model.IsOpen },
{nameof(RB_Examination_Paper_ViewModel.GroupType),model.GroupType },
{nameof(RB_Examination_Paper_ViewModel.PaperScore),model.PaperScore },
};
flag = examination_PaperRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Paper_ViewModel.PaperId), model.PaperId));
}
......@@ -691,11 +714,10 @@ namespace Edu.Module.Exam
}
foreach (var gItem in extModel.GroupList)
{
gItem.DetailsList = detailsList?.Where(qitem => qitem.QuestionTypeId == gItem.QuestionTypeId)?.OrderBy(qitem => qitem.SortNum)?.ToList() ?? new List<RB_Examination_Details_ViewModel>();
gItem.DetailsList = detailsList?.Where(qitem => qitem.GId == gItem.GId)?.OrderBy(qitem => qitem.SortNum)?.ToList() ?? new List<RB_Examination_Details_ViewModel>();
if (gItem.DetailsList != null && gItem.DetailsList.Count > 0)
{
gItem.GScore = gItem?.DetailsList?.Sum(qitem => qitem.Score) ?? 0;
foreach (var sItem in gItem.DetailsList)
{
List<object> quesAnswerList = new List<object>();
......
......@@ -143,7 +143,7 @@ namespace Edu.Module.Question
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetQuestionCategoryListModule(RB_Question_ViewModel query)
public List<object> GetQuestionTypeStaticListModule(RB_Question_ViewModel query)
{
List<object> list = new List<object>();
var dataList = questionRepository.GetQuestionStaticsListRepository(query);
......@@ -158,11 +158,12 @@ namespace Edu.Module.Question
{
var qType = questionTypeList?.Where(qitem => qitem.QId == item.QuestionTypeId)?.FirstOrDefault();
var diffTypeList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId)
.GroupBy(qitem =>new { qitem.DifficultyType })
.Select(qitem => new
{
qitem.DifficultyType,
DifficultyTypeName = qitem.DifficultyType.ToName(),
DifficultyTypeCount = qitem.QuestionCount,
qitem.Key.DifficultyType,
DifficultyTypeName = qitem.Key.DifficultyType.ToName(),
DifficultyTypeCount = qitem.Sum(sItem=>sItem.QuestionCount),
ChooseNum = 0
});
......@@ -190,22 +191,21 @@ namespace Edu.Module.Question
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetQuestionCategoryList_V2Module(RB_Question_ViewModel query)
public List<object> GetQuestionCategoryStaticListModule(RB_Question_ViewModel query)
{
List<object> list = new List<object>();
var dataList = questionRepository.GetQuestionStaticsListRepository(query);
if (dataList != null && dataList.Count > 0)
{
var questionTypeList = GetQuestionTypeListModule(new RB_Question_Type_ViewModel());
var groupList = dataList.GroupBy(qitem => new { qitem.QuestionTypeId, }).Select(qitem => new
var groupList = dataList.GroupBy(qitem => new { qitem.Category, }).Select(qitem => new
{
qitem.Key.QuestionTypeId
qitem.Key.Category
});
foreach (var item in groupList)
{
var qType = questionTypeList?.Where(qitem => qitem.QId == item.QuestionTypeId)?.FirstOrDefault();
var diffTypeList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId)
.GroupBy(qitem => new { qitem.QuestionTypeId,qitem.DifficultyType})
var diffTypeList = dataList.Where(qitem => qitem.Category == item.Category)
.GroupBy(qitem => new {qitem.DifficultyType})
.Select(qitem => new
{
qitem.Key.DifficultyType,
......@@ -213,41 +213,17 @@ namespace Edu.Module.Question
DifficultyTypeCount = qitem.Sum(c=>c.QuestionCount),
ChooseNum = 0
});
var categoryList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId).GroupBy(qitem => new { qitem.Category }).Select(qitem => new { qitem.Key.Category });
List<object> resultCategoryList = new List<object>();
foreach (var subItem in categoryList)
{
var tempCategoryList = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId && qitem.Category == subItem.Category)?.ToList();
if (tempCategoryList != null && tempCategoryList.Count > 0)
{
var cObj = new
{
subItem.Category,
CategoryName = subItem.Category.ToName(),
QuestionTypeNum = tempCategoryList.Sum(qitem=>qitem.QuestionCount),
ChooseNum = 0,
ChooseList= tempCategoryList?.Select(qitem => new
{
qitem.DifficultyType,
DifficultyTypeName = qitem.DifficultyType.ToName(),
DifficultyTypeCount = qitem.QuestionCount,
ChooseNum = 0
})
};
resultCategoryList.Add(cObj);
}
}
var obj = new
{
item.QuestionTypeId,
QuestionTypeKey = qType?.Key,
QuestionTypeName = qType?.Name,
QuestionTypeId=item.Category,
QuestionTypeKey = "",
QuestionTypeName =item.Category.ToName(),
QuestionScore = 0,
QuestionDesc = "",
ChooseType = 1,
ChooseNum = 0,
QuestionTypeNum = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId).Sum(qitem => qitem.QuestionCount),
CategoryList= resultCategoryList,
QuestionTypeNum = dataList.Where(qitem => qitem.Category == item.Category).Sum(qitem => qitem.QuestionCount),
ChooseList = diffTypeList,
};
list.Add(obj);
......
......@@ -44,6 +44,10 @@ WHERE 1=1
{
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds);
}
if (!string.IsNullOrEmpty(query.QCategoryId))
{
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.Category), query.QCategoryId);
}
return Get<RB_Question_ViewModel>(builder.ToString()).ToList();
}
}
......@@ -84,6 +88,7 @@ WHERE 1=1 AND `Status`=0
}
}
/// <summary>
/// 获取问题分页列表
/// </summary>
......
......@@ -241,13 +241,31 @@ namespace Edu.WebApi.Controllers.Course
return ApiResult.Success(data: pageModel);
}
/// <summary>
/// 根据题库编号获取题库题型列表【试卷组卷使用】
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetQuestionTypeStaticList()
{
var query = new RB_Question_ViewModel()
{
CourseId = base.ParmJObj.GetInt("CourseId"),
Title = base.ParmJObj.GetStringValue("Title"),
PointName = base.ParmJObj.GetStringValue("PointName"),
BankId = base.ParmJObj.GetInt("BankId"),
QBankIds = base.ParmJObj.GetStringValue("QBankIds"),
};
var data = questionModule.GetQuestionTypeStaticListModule(query);
return ApiResult.Success(data: data);
}
/// <summary>
/// 根据题库编号获取题库题型分类列表【试卷组卷使用】
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetQuestionCategoryList()
public ApiResult GetQuestionCategoryStaticList()
{
var query = new RB_Question_ViewModel()
{
......@@ -257,11 +275,10 @@ namespace Edu.WebApi.Controllers.Course
BankId = base.ParmJObj.GetInt("BankId"),
QBankIds = base.ParmJObj.GetStringValue("QBankIds"),
};
var data = questionModule.GetQuestionCategoryList_V2Module(query);
var data = questionModule.GetQuestionCategoryStaticListModule(query);
return ApiResult.Success(data: data);
}
/// <summary>
/// 获取问题难易列表
/// </summary>
......
......@@ -136,6 +136,8 @@ namespace Edu.WebApi.Controllers.Exam
PaperType = base.ParmJObj.GetInt("PaperType"),
ParentId = base.ParmJObj.GetInt("ParentId"),
IsOpen = base.ParmJObj.GetInt("IsOpen"),
GroupType=(ExamGroupTypeEnum)base.ParmJObj.GetInt("GroupType"),
PaperScore=base.ParmJObj.GetDecimal("PaperScore"),
};
if (string.IsNullOrEmpty(extModel.PaperName))
{
......@@ -157,12 +159,24 @@ namespace Edu.WebApi.Controllers.Exam
GId = jobj.GetInt("GId"),
PaperId = jobj.GetInt("PaperId"),
GroupName = jobj.GetStringValue("GroupName"),
QuestionTypeId = jobj.GetInt("QuestionTypeId"),
QuestionTypeKey = jobj.GetStringValue("QuestionTypeKey"),
GSortNum = gSortNum,
GScore = jobj.GetDecimal("GScore"),
DetailsList = new List<RB_Examination_Details_ViewModel>(),
GroupType=extModel.GroupType,
};
if (extModel.GroupType == ExamGroupTypeEnum.QuestionType)
{
gModel.QuestionTypeId = jobj.GetInt("QuestionTypeId");
gModel.QuestionTypeKey = jobj.GetStringValue("QuestionTypeKey");
gModel.CategoryId = 0;
}
else if (extModel.GroupType == ExamGroupTypeEnum.QuestionClassify)
{
gModel.QuestionTypeId = 0;
gModel.QuestionTypeKey = "";
gModel.CategoryId = (QuestionCategoryEnum)jobj.GetInt("QuestionTypeId");
}
gSortNum++;
string details = jobj.GetStringValue("DetailsList");
if (!string.IsNullOrEmpty(details))
......@@ -245,6 +259,7 @@ namespace Edu.WebApi.Controllers.Exam
IsSaveTemplate = base.ParmJObj.GetBoolValue("IsSaveTemplate"),
ParentId = base.ParmJObj.GetInt("ParentId"),
IsOpen = base.ParmJObj.GetInt("IsOpen"),
GroupType=(ExamGroupTypeEnum)base.ParmJObj.GetInt("GroupType"),
};
string TemplateData = base.ParmJObj.GetStringValue("TemplateData");
if (!string.IsNullOrEmpty(TemplateData))
......
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