|
|
@ -17,8 +17,7 @@ using MongoDB.Driver.Linq; |
|
|
|
using Tiobon.Core.Common.DB.Dapper; |
|
|
|
using Tiobon.Core.Common.DB.Dapper; |
|
|
|
using Tiobon.Core.Common.Helper; |
|
|
|
using Tiobon.Core.Common.Helper; |
|
|
|
using System.Data; |
|
|
|
using System.Data; |
|
|
|
using Snappier; |
|
|
|
using static Tiobon.Core.Model.Consts; |
|
|
|
using Org.BouncyCastle.Crypto; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
|
@ -1187,7 +1186,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr |
|
|
|
ent.UpdateIP = ip; |
|
|
|
ent.UpdateIP = ip; |
|
|
|
ent.UpdateProg = api; |
|
|
|
ent.UpdateProg = api; |
|
|
|
|
|
|
|
|
|
|
|
if (entity.Status == Consts.DIC_EXAM_STATUS.RELEASED && status == Consts.DIC_EXAM_STATUS.DRAFT && await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == "UnderWay")) |
|
|
|
if (entity.Status == Consts.DIC_EXAM_STATUS.RELEASED && status == Consts.DIC_EXAM_STATUS.DRAFT && await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == DIC_EXAM_RECORD_STATUS.EXAMING)) |
|
|
|
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!"); |
|
|
|
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!"); |
|
|
|
|
|
|
|
|
|
|
|
if (entity.Status == Consts.DIC_EXAM_STATUS.DISABLED && status == Consts.DIC_EXAM_STATUS.RELEASED) |
|
|
|
if (entity.Status == Consts.DIC_EXAM_STATUS.DISABLED && status == Consts.DIC_EXAM_STATUS.RELEASED) |
|
|
@ -1208,52 +1207,54 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr |
|
|
|
if (examPaper.Status != Consts.DIC_EXAM_STATUS.RELEASED) |
|
|
|
if (examPaper.Status != Consts.DIC_EXAM_STATUS.RELEASED) |
|
|
|
return ServiceResult.OprateFailed($"该考试关联的试卷【{examPaper.PaperName}({examPaper.PaperNo})】状态为【{(examPaper.Status == Consts.DIC_EXAM_STATUS.DISABLED ? "已停用" : "草稿箱")}】,暂不可取消归档!"); |
|
|
|
return ServiceResult.OprateFailed($"该考试关联的试卷【{examPaper.PaperName}({examPaper.PaperNo})】状态为【{(examPaper.Status == Consts.DIC_EXAM_STATUS.DISABLED ? "已停用" : "草稿箱")}】,暂不可取消归档!"); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
if (status == Consts.DIC_EXAM_STATUS.RELEASED && entity.Status == Consts.DIC_EXAM_STATUS.DRAFT) |
|
|
|
if (entity.LinkType == Consts.DIC_EXAM_LINK_TYPE_COURSE) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
#region 校验同一个课程下 考试时间不允许重叠 |
|
|
|
if (entity.LinkType == Consts.DIC_EXAM_LINK_TYPE_COURSE) |
|
|
|
var exams = await base.Query(x => x.Status == Consts.DIC_EXAM_STATUS.RELEASED && x.CourseId == entity.CourseId && x.Id != id); |
|
|
|
{ |
|
|
|
if (exams.Any()) |
|
|
|
#region 校验同一个课程下 考试时间不允许重叠 |
|
|
|
for (int i = 0; i < exams.Count; i++) |
|
|
|
var exams = await base.Query(x => x.Status == Consts.DIC_EXAM_STATUS.RELEASED && x.CourseId == entity.CourseId && x.Id != id); |
|
|
|
{ |
|
|
|
if (exams.Any()) |
|
|
|
var exam = exams[i]; |
|
|
|
for (int i = 0; i < exams.Count; i++) |
|
|
|
var course = await _ghre_CourseServices.QuerySingle(entity.CourseId); |
|
|
|
|
|
|
|
if (exam.DateType != entity.DateType || exam.DateType == Consts.DicExamDateType.AFTER_HOW_LONG) |
|
|
|
|
|
|
|
return ServiceResult.OprateFailed($"课程【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else if (exam.DateType == Consts.DicExamDateType.EXAM_DATE) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
if ((entity.BeginTime >= exam.BeginTime && entity.BeginTime <= exam.EndTime) |
|
|
|
var exam = exams[i]; |
|
|
|
|| (entity.EndTime >= exam.BeginTime && entity.EndTime <= exam.EndTime) |
|
|
|
var course = await _ghre_CourseServices.QuerySingle(entity.CourseId); |
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime) |
|
|
|
if (exam.DateType != entity.DateType || exam.DateType == Consts.DicExamDateType.AFTER_HOW_LONG) |
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime)) |
|
|
|
return ServiceResult.OprateFailed($"课程【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】!"); |
|
|
|
return ServiceResult.OprateFailed($"课程【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】时间重叠!"); |
|
|
|
|
|
|
|
|
|
|
|
else if (exam.DateType == Consts.DicExamDateType.EXAM_DATE) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if ((entity.BeginTime >= exam.BeginTime && entity.BeginTime <= exam.EndTime) |
|
|
|
|
|
|
|
|| (entity.EndTime >= exam.BeginTime && entity.EndTime <= exam.EndTime) |
|
|
|
|
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime) |
|
|
|
|
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime)) |
|
|
|
|
|
|
|
return ServiceResult.OprateFailed($"课程【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】时间重叠!"); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|
{ |
|
|
|
{ |
|
|
|
#region 校验同一个课程场景下 考试时间不允许重叠 |
|
|
|
#region 校验同一个课程场景下 考试时间不允许重叠 |
|
|
|
var exams = await base.Query(x => x.Status == Consts.DIC_EXAM_STATUS.RELEASED && x.CourseSceneId == entity.CourseSceneId && x.Id != id); |
|
|
|
var exams = await base.Query(x => x.Status == Consts.DIC_EXAM_STATUS.RELEASED && x.CourseSceneId == entity.CourseSceneId && x.Id != id); |
|
|
|
if (exams.Any()) |
|
|
|
if (exams.Any()) |
|
|
|
for (int i = 0; i < exams.Count; i++) |
|
|
|
for (int i = 0; i < exams.Count; i++) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var exam = exams[i]; |
|
|
|
|
|
|
|
var course = await _ghre_CourseSceneServices.QuerySingle(entity.CourseSceneId); |
|
|
|
|
|
|
|
if (exam.DateType != entity.DateType || exam.DateType == Consts.DicExamDateType.AFTER_HOW_LONG) |
|
|
|
|
|
|
|
return ServiceResult.OprateFailed($"课程场景【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】!"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
else if (exam.DateType == Consts.DicExamDateType.EXAM_DATE) |
|
|
|
|
|
|
|
{ |
|
|
|
{ |
|
|
|
if ((entity.BeginTime >= exam.BeginTime && entity.BeginTime <= exam.EndTime) |
|
|
|
var exam = exams[i]; |
|
|
|
|| (entity.EndTime >= exam.BeginTime && entity.EndTime <= exam.EndTime) |
|
|
|
var course = await _ghre_CourseSceneServices.QuerySingle(entity.CourseSceneId); |
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime) |
|
|
|
if (exam.DateType != entity.DateType || exam.DateType == Consts.DicExamDateType.AFTER_HOW_LONG) |
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime)) |
|
|
|
return ServiceResult.OprateFailed($"课程场景【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】!"); |
|
|
|
return ServiceResult.OprateFailed($"课程场景【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】时间重叠!"); |
|
|
|
|
|
|
|
|
|
|
|
else if (exam.DateType == Consts.DicExamDateType.EXAM_DATE) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
if ((entity.BeginTime >= exam.BeginTime && entity.BeginTime <= exam.EndTime) |
|
|
|
|
|
|
|
|| (entity.EndTime >= exam.BeginTime && entity.EndTime <= exam.EndTime) |
|
|
|
|
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime) |
|
|
|
|
|
|
|
|| (exam.EndTime >= entity.BeginTime && exam.EndTime <= entity.EndTime)) |
|
|
|
|
|
|
|
return ServiceResult.OprateFailed($"课程场景【{course.CourseName}】已存在有效的考试管理数据【{exam.ExamName}({exam.ExamNo})】时间重叠!"); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
#endregion |
|
|
|
#endregion |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
#region 生成学习记录 |
|
|
|
#region 生成学习记录 |
|
|
@ -1283,7 +1284,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr |
|
|
|
var exist = await Db.Queryable<Ghre_StudyRecord>() |
|
|
|
var exist = await Db.Queryable<Ghre_StudyRecord>() |
|
|
|
.WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) |
|
|
|
.WhereIF(!entity.CourseId.IsNull(), x => x.CourseId == entity.CourseId) |
|
|
|
.WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) |
|
|
|
.WhereIF(!entity.CourseSceneId.IsNull(), x => x.CourseSceneId == entity.CourseSceneId) |
|
|
|
.Where(x => x.ExamId == id && x.StaffId == staff.StaffId ).AnyAsync(); |
|
|
|
.Where(x => x.ExamId == id && x.StaffId == staff.StaffId).AnyAsync(); |
|
|
|
|
|
|
|
|
|
|
|
if (!exist) |
|
|
|
if (!exist) |
|
|
|
inserts.Add(new Ghre_StudyRecord() |
|
|
|
inserts.Add(new Ghre_StudyRecord() |
|
|
|