Commit b102fa5a authored by 吴春's avatar 吴春

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

parents 9e327063 56a1a3bc
using Edu.Common.Enum.Question; using Edu.Common.Enum.Course;
using Edu.Common.Enum.Question;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using System.Text; using System.Text;
...@@ -36,7 +37,7 @@ namespace Edu.Model.ViewModel.Exam ...@@ -36,7 +37,7 @@ namespace Edu.Model.ViewModel.Exam
public string QuestionDesc { get; set; } public string QuestionDesc { get; set; }
/// <summary> /// <summary>
/// 选择类型(1-题库随机,2-题库难易程度) /// 选择类型(1-题库随机,2-题库难易程度,3-题库按照分类选题)
/// </summary> /// </summary>
public int ChooseType { get; set; } public int ChooseType { get; set; }
...@@ -49,6 +50,11 @@ namespace Edu.Model.ViewModel.Exam ...@@ -49,6 +50,11 @@ namespace Edu.Model.ViewModel.Exam
/// 难易程度选题【ChooseType=2时使用】 /// 难易程度选题【ChooseType=2时使用】
/// </summary> /// </summary>
public List<DifficultyTypeItem> ChooseList { get; set; } public List<DifficultyTypeItem> ChooseList { get; set; }
/// <summary>
/// 题目分类列表
/// </summary>
public List<CategoryItem> CategoryList { get; set; }
} }
/// <summary> /// <summary>
...@@ -66,4 +72,26 @@ namespace Edu.Model.ViewModel.Exam ...@@ -66,4 +72,26 @@ namespace Edu.Model.ViewModel.Exam
/// </summary> /// </summary>
public int ChooseNum { get; set; } 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; }
}
} }
...@@ -75,5 +75,10 @@ namespace Edu.Model.ViewModel.Exam ...@@ -75,5 +75,10 @@ namespace Edu.Model.ViewModel.Exam
/// 学员考试表编号 /// 学员考试表编号
/// </summary> /// </summary>
public int Exam_Student_Id { get; set; } public int Exam_Student_Id { get; set; }
/// <summary>
/// 账号编号
/// </summary>
public string QAccountIds { get; set; }
} }
} }
...@@ -466,7 +466,7 @@ namespace Edu.Module.Exam ...@@ -466,7 +466,7 @@ namespace Edu.Module.Exam
//题库难易程度随机选题 //题库难易程度随机选题
else if (item.ChooseType == 2) else if (item.ChooseType == 2)
{ {
foreach (var subItem in item.ChooseList) foreach (var subItem in item.ChooseList.Where(qitem=>qitem.ChooseNum>0))
{ {
var tempList = tempQuestioinList?.Where(qitem => qitem.DifficultyType == subItem.DifficultyType)?.OrderBy(qitem => Guid.NewGuid())?.Take(subItem.ChooseNum)?.ToList(); var tempList = tempQuestioinList?.Where(qitem => qitem.DifficultyType == subItem.DifficultyType)?.OrderBy(qitem => Guid.NewGuid())?.Take(subItem.ChooseNum)?.ToList();
if (tempList != null && tempList.Count > 0) if (tempList != null && tempList.Count > 0)
...@@ -475,6 +475,20 @@ namespace Edu.Module.Exam ...@@ -475,6 +475,20 @@ 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() var groupModel = new RB_Examination_Group_ViewModel()
{ {
GId = 0, GId = 0,
......
...@@ -165,6 +165,7 @@ namespace Edu.Module.Question ...@@ -165,6 +165,7 @@ namespace Edu.Module.Question
DifficultyTypeCount = qitem.QuestionCount, DifficultyTypeCount = qitem.QuestionCount,
ChooseNum = 0 ChooseNum = 0
}); });
var obj = new var obj = new
{ {
item.QuestionTypeId, item.QuestionTypeId,
...@@ -183,6 +184,79 @@ namespace Edu.Module.Question ...@@ -183,6 +184,79 @@ namespace Edu.Module.Question
return list; return list;
} }
/// <summary>
/// 根据题库编号获取题库题型分类列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<object> GetQuestionCategoryList_V2Module(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
{
qitem.Key.QuestionTypeId
});
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})
.Select(qitem => new
{
qitem.Key.DifficultyType,
DifficultyTypeName = qitem.Key.DifficultyType.ToName(),
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,
QuestionScore = 0,
QuestionDesc = "",
ChooseType = 1,
ChooseNum = 0,
QuestionTypeNum = dataList.Where(qitem => qitem.QuestionTypeId == item.QuestionTypeId).Sum(qitem => qitem.QuestionCount),
CategoryList= resultCategoryList,
ChooseList = diffTypeList,
};
list.Add(obj);
}
}
return list;
}
/// <summary> /// <summary>
/// 新增修改题目 /// 新增修改题目
/// </summary> /// </summary>
......
...@@ -104,10 +104,11 @@ WHERE 1=1 ...@@ -104,10 +104,11 @@ WHERE 1=1
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.PaperName,'') AS PaperName,c.ExamStatus,C.Id AS Exam_Student_Id SELECT A.ExamStartTime,A.ExamineStatus,A.Id,A.PublishPic, C.PaperId,IFNULL(B.PaperName,'') AS PaperName,c.ExamStatus,C.Id AS Exam_Student_Id,C.GuestId
FROM RB_Examination_Publish AS A INNER JOIN rb_examination_paper AS B ON A.PaperId=B.PaperId FROM rb_examination_student AS C INNER JOIN RB_Examination_Publish AS A ON C.PublishId=A.Id
INNER JOIN rb_examination_student as c on c.PublishId=a.Id INNER JOIN rb_examination_paper AS B ON C.PaperId=B.PaperId
WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2 LEFT JOIN rb_student_orderguest AS D ON C.GuestId=D.Id
WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
"); ");
if (query != null) if (query != null)
{ {
...@@ -119,6 +120,10 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2 ...@@ -119,6 +120,10 @@ WHERE 1=1 and a.ExamineStatus=2 and b.ExamineStatus=2
{ {
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId); builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Publish_ViewModel.GuestId), query.GuestId);
} }
if (!string.IsNullOrEmpty(query.QAccountIds))
{
builder.AppendFormat(" AND D.Account_Id IN({0}) ", query.QAccountIds);
}
if (!string.IsNullOrEmpty(query.PaperName)) if (!string.IsNullOrEmpty(query.PaperName))
{ {
builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName)); builder.AppendFormat(" AND B.{0} LIKE @PaperName ", nameof(RB_Examination_Publish_ViewModel.PaperName));
......
...@@ -57,9 +57,9 @@ WHERE 1=1 ...@@ -57,9 +57,9 @@ WHERE 1=1
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT QuestionTypeId,DifficultyType,Count(QuestionId) AS QuestionCount SELECT QuestionTypeId,DifficultyType,Category,Count(QuestionId) AS QuestionCount
FROM RB_Question FROM RB_Question
WHERE 1=1 WHERE 1=1 AND `Status`=0
"); ");
if (query == null) if (query == null)
{ {
...@@ -79,7 +79,7 @@ WHERE 1=1 ...@@ -79,7 +79,7 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds); builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds);
} }
builder.AppendFormat(" GROUP BY QuestionTypeId,DifficultyType "); builder.AppendFormat(" GROUP BY QuestionTypeId,DifficultyType,Category ");
return Get<RB_Question_ViewModel>(builder.ToString()).ToList(); return Get<RB_Question_ViewModel>(builder.ToString()).ToList();
} }
} }
......
...@@ -103,7 +103,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -103,7 +103,8 @@ namespace Edu.WebApi.Controllers.Applet
List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel> examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>(); List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel> examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>();
if (studentModel != null && studentModel.GuestId > 0) if (studentModel != null && studentModel.GuestId > 0)
{ {
examinationPublishList = paperModule.GetGuestExaminationPublishPage(1, 5, out long rowsCount, new Model.ViewModel.Exam.RB_Examination_Publish_ViewModel { GuestId = studentModel.GuestId, Group_Id = studentModel.Group_Id }); examinationPublishList = paperModule.GetGuestExaminationPublishPage(1, 5, out long rowsCount,
new RB_Examination_Publish_ViewModel { QAccountIds= appletUserInfo.Id.ToString(), Group_Id = studentModel.Group_Id });
if (examinationPublishList == null) if (examinationPublishList == null)
{ {
examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>(); examinationPublishList = new List<Model.ViewModel.Exam.RB_Examination_Publish_ViewModel>();
...@@ -170,6 +171,7 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -170,6 +171,7 @@ namespace Edu.WebApi.Controllers.Applet
x.Id, x.Id,
x.PaperName, x.PaperName,
x.PicList, x.PicList,
x.GuestId,
ExamStartTime = x.ExamStartTime.ToString("yyyy-MM-dd HH:mm:ss"), ExamStartTime = x.ExamStartTime.ToString("yyyy-MM-dd HH:mm:ss"),
x.ExamStatus, x.ExamStatus,
x.ExamStatusStr x.ExamStatusStr
......
...@@ -178,8 +178,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -178,8 +178,6 @@ namespace Edu.WebApi.Controllers.APP
} }
/// <summary> /// <summary>
/// 根据手机号码一键登录 /// 根据手机号码一键登录
/// </summary> /// </summary>
...@@ -189,7 +187,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -189,7 +187,6 @@ namespace Edu.WebApi.Controllers.APP
[AllowAnonymous] [AllowAnonymous]
public ApiResult LoginByAccount() public ApiResult LoginByAccount()
{ {
JObject jobj = JObject.Parse(RequestParm.Msg.ToString()); JObject jobj = JObject.Parse(RequestParm.Msg.ToString());
string account = jobj.GetStringValue("Account"); string account = jobj.GetStringValue("Account");
string UnionId = jobj.GetStringValue("UnionId"); string UnionId = jobj.GetStringValue("UnionId");
...@@ -287,8 +284,6 @@ namespace Edu.WebApi.Controllers.APP ...@@ -287,8 +284,6 @@ namespace Edu.WebApi.Controllers.APP
} }
} }
#region 小程序获取手机号码 #region 小程序获取手机号码
/// <summary> /// <summary>
/// 获取手机号码 /// 获取手机号码
......
...@@ -257,7 +257,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -257,7 +257,7 @@ namespace Edu.WebApi.Controllers.Course
BankId = base.ParmJObj.GetInt("BankId"), BankId = base.ParmJObj.GetInt("BankId"),
QBankIds = base.ParmJObj.GetStringValue("QBankIds"), QBankIds = base.ParmJObj.GetStringValue("QBankIds"),
}; };
var data = questionModule.GetQuestionCategoryListModule(query); var data = questionModule.GetQuestionCategoryList_V2Module(query);
return ApiResult.Success(data: data); return ApiResult.Success(data: data);
} }
......
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