|
|
|
@ -436,6 +436,11 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
|
|
|
|
|
var record = records.result.DT_TableDataT1.FirstOrDefault(); |
|
|
|
|
|
|
|
|
|
var dt = Db.GetDate(); |
|
|
|
|
if (!(record.BeginTime.Value <= dt.Date && record.EndTime.Value >= dt.Date)) |
|
|
|
|
return ServiceResult<QueryExam>.OprateFailed("考试已结束!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var details = await Db.Queryable<Ghre_ExamRecordDetail>().Where(x => x.ExamRecordId == record.Id).ToListAsync(); |
|
|
|
|
var detailIds = details.Select(x => x.Id).ToList(); |
|
|
|
|
var recordAnswers = await Db.Queryable<Ghre_ExamRecordAnswer>() |
|
|
|
@ -631,7 +636,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
if (entity.ActualBeginTime is null) |
|
|
|
|
entity.ActualBeginTime = DateTime.Now; |
|
|
|
|
if (entity.Status == Consts.DIC_EXAM_RECORD_STATUS.WAIT) |
|
|
|
|
entity.Status = Consts.DIC_EXAM_RECORD_STATUS.EXAM_END; |
|
|
|
|
entity.Status = Consts.DIC_EXAM_RECORD_STATUS.EXAMING; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -662,10 +667,11 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
entity.Status = Consts.DIC_EXAM_RECORD_STATUS.EXAMING; |
|
|
|
|
|
|
|
|
|
entity.RetakeTimes = entity.RetakeTimes is null ? 1 : entity.RetakeTimes + 1; |
|
|
|
|
entity.ScoreStatus = Consts.DIC_EXAM_RECORD_SCORE_STATUS.NO_SCORE; |
|
|
|
|
|
|
|
|
|
await Update(entity, new List<string>() |
|
|
|
|
{ |
|
|
|
|
"Status","RetakeTimes" |
|
|
|
|
"Status","RetakeTimes","ScoreStatus" |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess("成功!"); |
|
|
|
@ -677,7 +683,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
using var _context = ContextFactory.CreateContext(); |
|
|
|
|
|
|
|
|
|
var dt = Db.GetDate(); |
|
|
|
|
var endTime = record.EndTime.Value.AddDays(1).AddSeconds(9); |
|
|
|
|
var endTime = record.EndTime.Value.AddDays(1).AddSeconds(9); |
|
|
|
|
if (!(record.BeginTime <= dt && record.EndTime >= dt)) |
|
|
|
|
return ServiceResult.OprateFailed("考试已结束!"); |
|
|
|
|
|
|
|
|
@ -813,6 +819,50 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
await Update(record, new List<string> { "Status", "Score", "ActualEndTime", "ScoreStatus" }, null, $"Id='{record.Id}'"); |
|
|
|
|
|
|
|
|
|
await Task.Factory.StartNew(async () => await DealPass(Db, studyRecordId)); |
|
|
|
|
|
|
|
|
|
return ServiceResult.OprateSuccess("提交成功!"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public async Task<bool> DealPass(ISqlSugarClient Db, long studyRecordId) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
var record = await Db.Queryable<Ghre_ExamRecord>().FirstAsync(x => x.Id == studyRecordId); |
|
|
|
|
|
|
|
|
|
var studyRecord = await Db.Queryable<Ghre_StudyRecord>().FirstAsync(x => x.Id == record.StudyRecordId); |
|
|
|
|
var examPaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == record.ExamPaperId); |
|
|
|
|
record.IsPass = examPaper.PassScore > (record.Score + record.AdjustScore) ? false : true; |
|
|
|
|
|
|
|
|
|
await Db.Updateable(record).UpdateColumns(it => new { it.IsPass }, true)//true表示追加AOP赋值列 |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
|
|
|
|
|
if (record.IsPass == true) |
|
|
|
|
{ |
|
|
|
|
if (studyRecord.CourseSceneId.IsNull() && !await Db.Queryable<Ghre_CreditPoint>().AnyAsync(x => x.ExamId == studyRecord.ExamId)) |
|
|
|
|
{ |
|
|
|
|
var course = await Db.Queryable<Ghre_Course>().FirstAsync(x => x.Id == studyRecord.CourseId); |
|
|
|
|
#region 学分发放 |
|
|
|
|
var creditPoint = new Ghre_CreditPoint() |
|
|
|
|
{ |
|
|
|
|
CourseId = studyRecord.CourseId, |
|
|
|
|
CourseSnapId = studyRecord.CourseSnapId, |
|
|
|
|
StaffId = studyRecord.StaffId, |
|
|
|
|
ExamId = studyRecord.ExamId, |
|
|
|
|
Date = DateTime.Now.Date, |
|
|
|
|
CreditPoints = course.CreditPoints |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
await Db.Insertable(creditPoint).ExecuteReturnSnowflakeIdListAsync(); |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 证书发放 |
|
|
|
|
|
|
|
|
|
#endregion |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
} |