Commit ebe850a1 authored by 黄奎's avatar 黄奎

新增实体类

parent b776b5e2
......@@ -122,5 +122,10 @@ namespace Edu.Model.Entity.Exam
/// 考级程度
/// </summary>
public LevelTypeEnum? LevelType { get; set; }
/// <summary>
/// 题目分数
/// </summary>
public decimal Score { get; set; }
}
}
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
namespace Edu.Model.Entity.Exam
{
/// <summary>
/// 试卷题目分组实体类
/// </summary>
[Serializable]
[DB(ConnectionName = "DefaultConnection")]
public class RB_Examination_Group
{
/// <summary>
/// 试卷分组编号
/// </summary>
public int GId { get; set; }
/// <summary>
/// 试卷编号
/// </summary>
public int PaperId { get; set; }
/// <summary>
/// 分组名称
/// </summary>
public string GroupName { get; set; }
/// <summary>
/// 问题类型编号
/// </summary>
public int QuestionTypeId { get; set; }
/// <summary>
/// 问题类型Key
/// </summary>
public string QuestionTypeKey { get; set; }
/// <summary>
/// 排序
/// </summary>
public int GSortNum { get; set; }
}
}
using System;
using Edu.Common.Enum.Question;
using System;
using System.Collections.Generic;
using System.Text;
using VT.FW.DB;
......@@ -27,6 +28,11 @@ namespace Edu.Model.Entity.Exam
/// </summary>
public string QuestionBandIds { get; set; }
/// <summary>
/// 难易程度(1-易,2-中,3-难)
/// </summary>
public DifficultyTypeEnum DifficultyType { get; set; }
/// <summary>
/// 创建时间
/// </summary>
......
using Edu.Model.Entity.Exam;
using System;
using System.Collections.Generic;
using System.Text;
namespace Edu.Model.ViewModel.Exam
{
/// <summary>
/// 试卷题目分组视图实体类
/// </summary>
public class RB_Examination_Group_ViewModel: RB_Examination_Group
{
/// <summary>
/// 试卷分组题目列表
/// </summary>
public List<RB_Examination_Details_ViewModel> DetailsList { get; set; }
/// <summary>
/// 试卷编号【查询使用】
/// </summary>
public string QPaperIds { get; set; }
}
}
......@@ -21,8 +21,8 @@ namespace Edu.Model.ViewModel.Exam
public string CreateTimeStr { get { return Common.ConvertHelper.FormatDate(this.CreateTime); } }
/// <summary>
/// 试卷问题列表
/// 试卷题目分组列表
/// </summary>
public List<RB_Examination_Details_ViewModel> DetailsList { get; set; }
public List<RB_Examination_Group_ViewModel> GroupList { get; set; }
}
}
......@@ -4,6 +4,7 @@ using Edu.Repository.Exam;
using System;
using System.Collections.Generic;
using VT.FW.DB;
using System.Linq;
namespace Edu.Module.Exam
{
......@@ -22,6 +23,11 @@ namespace Edu.Module.Exam
/// </summary>
private readonly RB_Examination_PaperRepository examination_PaperRepository = new RB_Examination_PaperRepository();
/// <summary>
/// 试卷分组仓储层对象
/// </summary>
private readonly RB_Examination_GroupRepository examination_GroupRepository = new RB_Examination_GroupRepository();
/// <summary>
/// 获取试卷分页列表
/// </summary>
......@@ -35,6 +41,16 @@ namespace Edu.Module.Exam
return examination_PaperRepository.GetExaminationPaperPageRepository(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 获取试卷题目列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Group_ViewModel> GetExaminationGroupListModule(RB_Examination_Group_ViewModel query)
{
return examination_GroupRepository.GetExaminationGroupListRepository(query);
}
/// <summary>
/// 获取试卷题目列表
/// </summary>
......@@ -45,6 +61,8 @@ namespace Edu.Module.Exam
return examination_DetailsRepository.GetExaminationDetailsListRepository(query);
}
/// <summary>
/// 新增/修改试卷
/// </summary>
......@@ -58,7 +76,8 @@ namespace Edu.Module.Exam
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Examination_Paper_ViewModel.PaperName),model.PaperName }
{nameof(RB_Examination_Paper_ViewModel.PaperName),model.PaperName },
{nameof(RB_Examination_Paper_ViewModel.DifficultyType),model.DifficultyType },
};
flag = examination_PaperRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Paper_ViewModel.PaperId), model.PaperId));
}
......@@ -68,43 +87,68 @@ namespace Edu.Module.Exam
model.PaperId = newPaperId;
flag = newPaperId > 0;
}
if (model.DetailsList != null && model.DetailsList.Count > 0)
if (model.GroupList != null && model.GroupList.Count > 0)
{
foreach (var item in model.DetailsList)
foreach (var gitem in model.GroupList)
{
item.PaperId = model.PaperId;
gitem.PaperId = model.PaperId;
if (flag)
{
if (item.Id > 0)
if (gitem.GId > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Examination_Details_ViewModel.PaperId),item.PaperId },
{nameof(RB_Examination_Details_ViewModel.BankId),item.BankId },
{nameof(RB_Examination_Details_ViewModel.QuestionId),item.QuestionId },
{nameof(RB_Examination_Details_ViewModel.Title),item.Title },
{nameof(RB_Examination_Details_ViewModel.QuestionContent),item.QuestionContent },
{nameof(RB_Examination_Details_ViewModel.DifficultyType),item.DifficultyType },
{nameof(RB_Examination_Details_ViewModel.AnswerParse),item.AnswerParse },
{nameof(RB_Examination_Details_ViewModel.QuestionTypeId),item.QuestionTypeId },
{nameof(RB_Examination_Details_ViewModel.QuestionTypeKey),item.QuestionTypeKey },
{nameof(RB_Examination_Details_ViewModel.Knowledge),item.Knowledge },
{nameof(RB_Examination_Details_ViewModel.UpdateBy),item.UpdateBy },
{nameof(RB_Examination_Details_ViewModel.UpdateTime),item.UpdateTime },
{nameof(RB_Examination_Details_ViewModel.IsUpdateJobExam),item.IsUpdateJobExam },
{nameof(RB_Examination_Details_ViewModel.SortNum),item.SortNum },
{nameof(RB_Examination_Details_ViewModel.Answer),item.Answer },
{nameof(RB_Examination_Details_ViewModel.IsMutex),item.IsMutex },
{nameof(RB_Examination_Details_ViewModel.Category),item.Category },
{nameof(RB_Examination_Details_ViewModel.LevelType),item.LevelType },
{nameof(RB_Examination_Group_ViewModel.PaperId),gitem.PaperId },
{nameof(RB_Examination_Group_ViewModel.GroupName),gitem.GroupName },
{nameof(RB_Examination_Group_ViewModel.QuestionTypeId),gitem.QuestionTypeId },
{nameof(RB_Examination_Group_ViewModel.QuestionTypeKey),gitem.QuestionTypeKey },
{nameof(RB_Examination_Group_ViewModel.GSortNum),gitem.GSortNum },
};
flag = examination_DetailsRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Details_ViewModel.Id), item.Id));
flag = examination_GroupRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Group_ViewModel.GId), gitem.GId));
}
else
{
var newId = examination_DetailsRepository.Insert(item);
item.Id = newId;
flag = newId > 0;
var newGroupId = examination_GroupRepository.Insert(gitem);
gitem.GId = newGroupId;
flag = newGroupId > 0;
}
}
if (flag && gitem.DetailsList != null && gitem.DetailsList.Count > 0)
{
foreach (var dItem in gitem.DetailsList)
{
if (dItem.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Examination_Details_ViewModel.PaperId),dItem.PaperId },
{nameof(RB_Examination_Details_ViewModel.BankId),dItem.BankId },
{nameof(RB_Examination_Details_ViewModel.QuestionId),dItem.QuestionId },
{nameof(RB_Examination_Details_ViewModel.Title),dItem.Title },
{nameof(RB_Examination_Details_ViewModel.QuestionContent),dItem.QuestionContent },
{nameof(RB_Examination_Details_ViewModel.DifficultyType),dItem.DifficultyType },
{nameof(RB_Examination_Details_ViewModel.AnswerParse),dItem.AnswerParse },
{nameof(RB_Examination_Details_ViewModel.QuestionTypeId),dItem.QuestionTypeId },
{nameof(RB_Examination_Details_ViewModel.QuestionTypeKey),dItem.QuestionTypeKey },
{nameof(RB_Examination_Details_ViewModel.Knowledge),dItem.Knowledge },
{nameof(RB_Examination_Details_ViewModel.UpdateBy),dItem.UpdateBy },
{nameof(RB_Examination_Details_ViewModel.UpdateTime),dItem.UpdateTime },
{nameof(RB_Examination_Details_ViewModel.IsUpdateJobExam),dItem.IsUpdateJobExam },
{nameof(RB_Examination_Details_ViewModel.SortNum),dItem.SortNum },
{nameof(RB_Examination_Details_ViewModel.Answer),dItem.Answer },
{nameof(RB_Examination_Details_ViewModel.IsMutex),dItem.IsMutex },
{nameof(RB_Examination_Details_ViewModel.Category),dItem.Category },
{nameof(RB_Examination_Details_ViewModel.LevelType),dItem.LevelType },
{nameof(RB_Examination_Details_ViewModel.Score),dItem.Score },
};
flag = examination_DetailsRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Details_ViewModel.Id), dItem.Id));
}
else
{
var newDetailsId = examination_DetailsRepository.Insert(dItem);
dItem.Id = newDetailsId;
flag = newDetailsId > 0;
}
}
}
}
......@@ -122,12 +166,33 @@ namespace Edu.Module.Exam
var extModel = examination_PaperRepository.GetEntity<RB_Examination_Paper_ViewModel>(PaperId);
if (extModel != null&& extModel.PaperId>0)
{
extModel.DetailsList = GetExaminationDetailsListModule(new RB_Examination_Details_ViewModel()
extModel.GroupList = GetExaminationGroupListModule(new RB_Examination_Group_ViewModel()
{
PaperId = extModel.PaperId
});
var detailsList = GetExaminationDetailsListModule(new RB_Examination_Details_ViewModel()
{
PaperId = extModel.PaperId
});
if (extModel.GroupList != null && extModel.GroupList.Count > 0 && detailsList!=null && detailsList.Count>0)
{
foreach (var gItem in extModel.GroupList)
{
gItem.DetailsList = detailsList?.Where(qitem => qitem.QuestionTypeId == gItem.QuestionTypeId)?.ToList() ?? new List<RB_Examination_Details_ViewModel>();
}
}
}
return extModel;
}
/// <summary>
/// 根据编号删除试卷题目
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
public bool RemoveExaminationDetailsModule(int Id)
{
return examination_DetailsRepository.Delete(Id) > 0;
}
}
}
......@@ -40,5 +40,6 @@ WHERE 1=1
}
return Get<RB_Examination_Details_ViewModel>(builder.ToString()).ToList();
}
}
}
using Edu.Model.Entity.Exam;
using Edu.Model.ViewModel.Exam;
using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace Edu.Repository.Exam
{
/// <summary>
/// 试卷题目分组仓储层
/// </summary>
public class RB_Examination_GroupRepository : BaseRepository<RB_Examination_Group>
{
/// <summary>
/// 获取试卷题目列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Examination_Group_ViewModel> GetExaminationGroupListRepository(RB_Examination_Group_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Examination_Group AS A
WHERE 1=1
");
if (query != null)
{
if (query.PaperId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Group_ViewModel.PaperId), query.PaperId);
}
if (!string.IsNullOrEmpty(query.QPaperIds))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Examination_Group_ViewModel.PaperId), query.QPaperIds);
}
}
return Get<RB_Examination_Group_ViewModel>(builder.ToString()).ToList();
}
}
}
......@@ -27,7 +27,7 @@ namespace Edu.Repository.Exam
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM RB_Examination_Paper
FROM RB_Examination_Paper AS A
WHERE 1=1
");
if (query != null)
......
......@@ -76,45 +76,72 @@ namespace Edu.WebApi.Controllers.Exam
PaperId = base.ParmJObj.GetInt("PaperId"),
PaperName = base.ParmJObj.GetStringValue("PaperName"),
QuestionBandIds = base.ParmJObj.GetStringValue("QuestionBandIds"),
DifficultyType=(DifficultyTypeEnum)base.ParmJObj.GetInt("DifficultyType"),
CreateBy = UserInfo.Id,
CreateTime = DateTime.Now,
Group_Id = base.UserInfo.Group_Id,
};
extModel.DetailsList = new List<RB_Examination_Details_ViewModel>();
string details = base.ParmJObj.GetStringValue("DetailsList");
if (!string.IsNullOrEmpty(details))
extModel.GroupList = new List<RB_Examination_Group_ViewModel>();
string groups = base.ParmJObj.GetStringValue("GroupList");
if (!string.IsNullOrEmpty(groups))
{
JArray jarray = JArray.Parse(details);
JArray jarray = JArray.Parse(groups);
if (jarray != null && jarray.Count > 0)
{
int gSortNum = 0;
foreach (var jItem in jarray)
{
JObject jobj = JObject.Parse(jItem.ToString());
extModel.DetailsList.Add(new RB_Examination_Details_ViewModel()
RB_Examination_Group_ViewModel gModel = new RB_Examination_Group_ViewModel()
{
Id = jobj.GetInt("Id"),
GId = jobj.GetInt("GId"),
PaperId = jobj.GetInt("PaperId"),
BankId = jobj.GetInt("BankId"),
QuestionId = jobj.GetInt("QuestionId"),
Title = jobj.GetStringValue("Title"),
QuestionContent = jobj.GetStringValue("QuestionContent"),
DifficultyType = (DifficultyTypeEnum)jobj.GetInt("DifficultyType"),
AnswerParse = jobj.GetStringValue("AnswerParse"),
GroupName = jobj.GetStringValue("GroupName"),
QuestionTypeId = jobj.GetInt("QuestionTypeId"),
QuestionTypeKey = jobj.GetStringValue("QuestionTypeKey"),
Knowledge = jobj.GetStringValue("Knowledge"),
CreateBy = base.UserInfo.Id,
CreateTime = DateTime.Now,
UpdateBy = base.UserInfo.Id,
UpdateTime = DateTime.Now,
IsUpdateJobExam = base.ParmJObj.GetInt("IsUpdateJobExam"),
Status = Common.Enum.DateStateEnum.Normal,
SortNum = base.ParmJObj.GetInt("SortNum"),
Answer = base.ParmJObj.GetStringValue("Answer"),
IsMutex = base.ParmJObj.GetInt("IsMutex"),
Category = (QuestionCategoryEnum)base.ParmJObj.GetInt("Category"),
LevelType = (LevelTypeEnum)base.ParmJObj.GetInt("LevelType"),
});
GSortNum= gSortNum,
DetailsList = new List<RB_Examination_Details_ViewModel>(),
};
gSortNum++;
string details = jobj.GetStringValue("DetailsList");
if (!string.IsNullOrEmpty(details))
{
JArray subArray = JArray.Parse(details);
int dSortNum = 0;
foreach (var sItem in subArray)
{
JObject sObj = JObject.Parse(sItem.ToString());
var detailModel = new RB_Examination_Details_ViewModel()
{
Id = sObj.GetInt("Id"),
PaperId = sObj.GetInt("PaperId"),
BankId = sObj.GetInt("BankId"),
QuestionId = sObj.GetInt("QuestionId"),
Title = sObj.GetStringValue("Title"),
QuestionContent = sObj.GetStringValue("QuestionContent"),
DifficultyType = (DifficultyTypeEnum)sObj.GetInt("DifficultyType"),
AnswerParse = sObj.GetStringValue("AnswerParse"),
QuestionTypeId = sObj.GetInt("QuestionTypeId"),
QuestionTypeKey = sObj.GetStringValue("QuestionTypeKey"),
Knowledge = sObj.GetStringValue("Knowledge"),
CreateBy = base.UserInfo.Id,
CreateTime = DateTime.Now,
UpdateBy = base.UserInfo.Id,
UpdateTime = DateTime.Now,
IsUpdateJobExam = sObj.GetInt("IsUpdateJobExam"),
Status = Common.Enum.DateStateEnum.Normal,
SortNum = dSortNum,
Answer = sObj.GetStringValue("Answer"),
IsMutex = sObj.GetInt("IsMutex"),
Category = (QuestionCategoryEnum)sObj.GetInt("Category"),
LevelType = (LevelTypeEnum)sObj.GetInt("LevelType"),
Score = sObj.GetDecimal("Score"),
};
dSortNum++;
gModel.DetailsList.Add(detailModel);
}
}
extModel.GroupList.Add(gModel);
}
}
}
......@@ -133,5 +160,18 @@ namespace Edu.WebApi.Controllers.Exam
var model = paperModule.GetExaminationPaperModule(PaperId);
return ApiResult.Success(data: model);
}
/// <summary>
/// 根据编号删除试卷题目
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult DeletePaperQuestion()
{
var PaperId = base.ParmJObj.GetInt("PaperId");
var model = paperModule.RemoveExaminationDetailsModule(PaperId);
return ApiResult.Success(data: model);
}
}
}
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