|
|
|
@ -579,14 +579,17 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
extend.DeptName = record.DepteName; |
|
|
|
|
extend.StaffPhoto = record.StaffPhotoUrl; |
|
|
|
|
extend.ExamName = record.ExamName + "(" + record.ExamNo + ")"; |
|
|
|
|
extend.ExamBeginDate = DateTimeHelper.ConvertToMiniuteString(record.BeginTime); |
|
|
|
|
extend.ExamEndDate = DateTimeHelper.ConvertToMiniuteString(record.EndTime); |
|
|
|
|
extend.ExamBeginDate = DateTimeHelper.ConvertToDayString(record.BeginTime); |
|
|
|
|
extend.ExamEndDate = DateTimeHelper.ConvertToDayString(record.EndTime); |
|
|
|
|
extend.ExamStatus = record.Status; |
|
|
|
|
extend.TotalScore = record.TotalScore; |
|
|
|
|
extend.Id = record.Id; |
|
|
|
|
extend.CourseName = record.CourseName; |
|
|
|
|
extend.CanRetake = true; |
|
|
|
|
|
|
|
|
|
if ((record.RetakeTimes ?? 0) >= (exampaper.RetakeTimes ?? 0)) |
|
|
|
|
extend.CanRetake = false; |
|
|
|
|
|
|
|
|
|
if (extend.ExamStatus == Consts.DIC_EXAM_RECORD_STATUS.EXAM_END) |
|
|
|
|
extend.ScoreOut = false; |
|
|
|
|
|
|
|
|
@ -613,6 +616,9 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
|
|
|
|
|
if (entity is null) |
|
|
|
|
return ServiceResult.OprateFailed("无效的考试ID!"); |
|
|
|
|
var dt = Db.GetDate(); |
|
|
|
|
if (!(entity.BeginTime.Value <= dt.Date && entity.EndTime.Value >= dt.Date)) |
|
|
|
|
return ServiceResult.OprateFailed("考试已结束!"); |
|
|
|
|
|
|
|
|
|
#region 试卷 引用次数 |
|
|
|
|
if (entity.Status == Consts.DIC_EXAM_RECORD_STATUS.WAIT) |
|
|
|
@ -646,6 +652,12 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
if (entity is null) |
|
|
|
|
return ServiceResult.OprateFailed("无效的考试ID!"); |
|
|
|
|
|
|
|
|
|
var exampaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == entity.ExamPaperId); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if ((entity.RetakeTimes ?? 0) >= (exampaper.RetakeTimes ?? 0)) |
|
|
|
|
return ServiceResult.OprateFailed($"重考次数已达上限,已重考次数【{entity.RetakeTimes ?? 0}】,允许重考次数【{exampaper.RetakeTimes ?? 0}】!"); |
|
|
|
|
|
|
|
|
|
if (entity.Status == Consts.DIC_EXAM_RECORD_STATUS.EXAM_END) |
|
|
|
|
entity.Status = Consts.DIC_EXAM_RECORD_STATUS.EXAMING; |
|
|
|
|
|
|
|
|
@ -664,6 +676,11 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
if (record is null) return ServiceResult.OprateFailed("无效的考试ID"); |
|
|
|
|
using var _context = ContextFactory.CreateContext(); |
|
|
|
|
|
|
|
|
|
var dt = Db.GetDate(); |
|
|
|
|
var endTime = record.EndTime.Value.AddDays(1).AddSeconds(9); |
|
|
|
|
if (!(record.BeginTime <= dt && record.EndTime >= dt)) |
|
|
|
|
return ServiceResult.OprateFailed("考试已结束!"); |
|
|
|
|
|
|
|
|
|
string sql = $@"UPDATE Ghre_ExamRecordDetail set IsEnable=0 where ExamRecordId='{record.Id}';
|
|
|
|
|
UPDATE Ghre_ExamRecordAnswer set IsEnable=0 where ExamRecordId='{record.Id}';";
|
|
|
|
|
await Db.Ado.ExecuteCommandAsync(sql); |
|
|
|
@ -786,13 +803,16 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
|
|
|
|
|
#region 打分 |
|
|
|
|
if (record.ScoreStatus == Consts.DIC_EXAM_RECORD_SCORE_STATUS.NO_SCORE && record.Status == Consts.DIC_EXAM_RECORD_STATUS.EXAM_END) |
|
|
|
|
{ |
|
|
|
|
await ExamHelper.SystemMarkAsync(Db, record, recordDetails, recordDetailAnswers); |
|
|
|
|
record.ScoreStatus = Consts.DIC_EXAM_RECORD_SCORE_STATUS.HAS_SCORE; |
|
|
|
|
} |
|
|
|
|
_context.Ghre_ExamRecordDetail.UpdateRange(recordDetails); |
|
|
|
|
_context.Ghre_ExamRecordAnswer.UpdateRange(recordDetailAnswers); |
|
|
|
|
await _context.SaveChangesAsync(); |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
await Update(record, new List<string> { "Status", "Score", "ActualEndTime" }, null, $"Id='{record.Id}'"); |
|
|
|
|
await Update(record, new List<string> { "Status", "Score", "ActualEndTime", "ScoreStatus" }, null, $"Id='{record.Id}'"); |
|
|
|
|
return ServiceResult.OprateSuccess("提交成功!"); |
|
|
|
|
} |
|
|
|
|
} |