Commit 61ec03e8 authored by 吴春's avatar 吴春

提交代码

parent 9df38368
......@@ -38,7 +38,7 @@ namespace Edu.Model.Entity.Exam
/// <summary>
/// 试卷考试学员编号
/// </summary>
public int ExaminationStuId { get; set; }
public int GuestId { get; set; }
/// <summary>
/// 创建时间
......
......@@ -44,7 +44,7 @@ namespace Edu.Model.ViewModel.Exam
/// <summary>
/// 学生得分
/// </summary>
public string StundetScore { get; set; }
public decimal StundetScore { get; set; }
/// <summary>
/// 知识点
......
......@@ -15,9 +15,6 @@ namespace Edu.Model.ViewModel.Exam
/// </summary>
public string GuestName { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public int GuestId { get; set; }
}
}
......@@ -18,7 +18,7 @@ namespace Edu.Module.Exam
/// <summary>
/// 试卷处理类
/// </summary>
public class PaperModule
public partial class PaperModule
{
/// <summary>
/// 试卷题目仓储层对象
......@@ -74,6 +74,8 @@ namespace Edu.Module.Exam
/// </summary>
private readonly RB_Question_PointRepository question_PointRepository = new RB_Question_PointRepository();
/// <summary>
/// 获取试卷分页列表
/// </summary>
......@@ -650,6 +652,12 @@ namespace Edu.Module.Exam
{
PaperId = extModel.PaperId
});
List<RB_Examination_StudentDetails_ViewModel> studentDetailsList = new List<RB_Examination_StudentDetails_ViewModel>();
if (GuestId > 0 && PublishId > 0)
{
studentDetailsList = examination_StudentDetailsRepository.GetExaminationStudentListRepository(new RB_Examination_StudentDetails_ViewModel { PaperId = extModel.PaperId, PublishId = PublishId, GuestId = GuestId });
}
if (extModel.GroupList != null && extModel.GroupList.Count > 0 && detailsList != null && detailsList.Count > 0)
{
List<int> pointsList = new List<int>();
......@@ -679,6 +687,23 @@ namespace Edu.Module.Exam
sItem.Answer = "";
sItem.AnswerParse = "";
}
if (studentDetailsList != null && studentDetailsList.Any())
{
var studentDetailsModel = studentDetailsList.Where(x => x.DetailsId == sItem.Id).FirstOrDefault();
if (studentDetailsModel != null && studentDetailsModel.Id > 0)
{
sItem.StundetAnswer = studentDetailsModel.StundetAnswer ?? "";
sItem.StundetDetailsId = studentDetailsModel.Id;
sItem.StundetScore = studentDetailsModel.StundetScore;
}
else
{
sItem.StundetAnswer = "";
sItem.StundetDetailsId = 0;
sItem.StundetScore = 0;
}
}
sItem.QuestionPointList = pointList?.Where(qitem => sItem.Knowledge.Contains(qitem.PointId.ToString()))?.ToList() ?? new List<RB_Question_Point_ViewModel>();
sItem.QuestionContentObj = analysisQuestion.ParsingQuestion(sItem.QuestionTypeKey, sItem.QuestionContent);
string newTitle = sItem.Title;
......@@ -1166,6 +1191,50 @@ namespace Edu.Module.Exam
{
return examination_StudentRepository.GetExaminationStudentPageRepository(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 新增/修改试卷
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
[TransactionCallHandler]
public virtual bool SetStudentPaperDetails(List<RB_Examination_StudentDetails_ViewModel> list, RB_Examination_Student_ViewModel studentModel)
{
bool flag = false;
if (list != null && list.Any())
{
foreach (var gitem in list)
{
if (gitem.Id > 0)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Examination_StudentDetails_ViewModel.StundetAnswer),gitem.StundetAnswer },
{nameof(RB_Examination_StudentDetails_ViewModel.StundetScore),gitem.StundetScore },
{nameof(RB_Examination_StudentDetails_ViewModel.IsMarking),gitem.IsMarking }
};
flag = examination_StudentDetailsRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_StudentDetails_ViewModel.Id), gitem.Id));
}
else
{
var newGroupId = examination_StudentDetailsRepository.Insert(gitem);
gitem.Id = newGroupId;
flag = newGroupId > 0;
}
}
if (flag)//试卷提交成功,更新考试最后时间
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Examination_Student_ViewModel.ExamEndTime), studentModel.ExamEndTime}
};
flag = examination_StudentRepository.Update(fileds, new WhereHelper(nameof(RB_Examination_Student_ViewModel.Id), studentModel.Id));
}
}
return flag;
}
#endregion
}
}
......@@ -24,7 +24,7 @@ namespace Edu.Repository.Exam
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName
FROM RB_Examination_StudentDetails AS A
LEFT JOIN RB_Examination_Student AS c ON C.Id=a.ExaminationStuId
LEFT JOIN RB_Examination_Student AS c ON C.GuestId=a.GuestId
LEFT JOIN rb_order_guest AS B ON c.GuestId=B.Id
WHERE 1=1
");
......@@ -32,13 +32,10 @@ WHERE 1=1
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.Status), 0);
if (query != null)
{
if (query.ExaminationStuId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.ExaminationStuId), query.ExaminationStuId);
}
if (query.GuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Examination_Student.GuestId), query.GuestId);
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Student.GuestId), query.GuestId);
}
if (query.PublishId > 0)
{
......
......@@ -3,7 +3,9 @@ using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Edu.Common.API;
using Edu.Common.Enum.Question;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Exam;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.User;
using Edu.Module.Course;
......@@ -14,6 +16,7 @@ using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Applet
{
......@@ -563,10 +566,121 @@ namespace Edu.WebApi.Controllers.Applet
var PaperId = base.ParmJObj.GetInt("PaperId");
var Id = base.ParmJObj.GetInt("Id");
var GuestId = base.ParmJObj.GetInt("GuestId", 0);
var modelPublish = paperModule.GetExaminationPublishModule(Id);
var modelPublish = paperModule.GetExaminationPublishModule(Id);
var modelPaper = paperModule.GetExaminationPaperModule(PaperId, isShowAnswer: false, GuestId: GuestId, PublishId: Id);
modelPublish.GuestId = GuestId;
return ApiResult.Success(data: new { Publish = modelPublish, Paper = modelPaper });
}
/// <summary>
/// 学生提交答卷
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetSetStudentPaperDetails()
{
List<RB_Examination_StudentDetails_ViewModel> stuDetailsList = new List<RB_Examination_StudentDetails_ViewModel>();
var Id = base.ParmJObj.GetInt("PublishId");
var GuestId = base.ParmJObj.GetInt("GuestId", 0);
var modelPublish = paperModule.GetExaminationPublishModule(Id);
var studentModel = modelPublish.StudentList.Where(x => x.GuestId == GuestId).FirstOrDefault();
studentModel.ExamEndTime = System.DateTime.Now;
var extModel = new RB_Examination_Paper_ViewModel()
{
PaperId = base.ParmJObj.GetInt("PaperId"),
PaperName = base.ParmJObj.GetStringValue("PaperName"),
QuestionBandIds = base.ParmJObj.GetStringValue("QuestionBandIds"),
DifficultyType = (DifficultyTypeEnum)base.ParmJObj.GetInt("DifficultyType"),
Group_Id = base.ParmJObj.GetInt("Group_Id"),
GenerateType = base.ParmJObj.GetInt("GenerateType"),
CreateNum = base.ParmJObj.GetInt("CreateNum"),
PaperType = base.ParmJObj.GetInt("PaperType"),
ParentId = base.ParmJObj.GetInt("ParentId"),
IsExamine = base.ParmJObj.GetInt("IsExamine"),
};
extModel.GroupList = new List<RB_Examination_Group_ViewModel>();
string groups = base.ParmJObj.GetStringValue("GroupList");
if (!string.IsNullOrEmpty(groups))
{
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());
RB_Examination_Group_ViewModel gModel = new RB_Examination_Group_ViewModel()
{
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>(),
};
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"),
UpdateTime = DateTime.Now,
IsUpdateJobExam = sObj.GetInt("IsUpdateJobExam"),
Status = Common.Enum.DateStateEnum.Normal,
SortNum = dSortNum,
StundetAnswer = sObj.GetStringValue("StundetAnswer"),
IsMutex = sObj.GetInt("IsMutex"),
StundetDetailsId = sObj.GetInt("StundetDetailsId"),
LevelType = (LevelTypeEnum)sObj.GetInt("LevelType"),
StundetScore = sObj.GetDecimal("StundetScore"),
};
dSortNum++;
var studentDetailsModel = new RB_Examination_StudentDetails_ViewModel()
{
Id = detailModel.StundetDetailsId,
PaperId = detailModel.PaperId,
PublishId = base.ParmJObj.GetInt("PublishId"),
DetailsId = detailModel.Id,
GuestId = GuestId,
CreateTime = System.DateTime.Now,
Status = Common.Enum.DateStateEnum.Normal,
StundetAnswer = detailModel.StundetAnswer,
StundetScore = detailModel.StundetScore,
IsMarking = 0
};
stuDetailsList.Add(studentDetailsModel);
gModel.DetailsList.Add(detailModel);
}
}
extModel.GroupList.Add(gModel);
}
}
}
var result = paperModule.SetStudentPaperDetails(stuDetailsList, studentModel);
return result ? ApiResult.Success("提交试卷成功") : ApiResult.Failed("提交试卷失败");
}
#endregion
}
}
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