考试管理新增是否使用默认封面

master
xiaochanghai 11 months ago
parent 81797125f2
commit a3a0a4ab8c
  1. 2065
      Model/Tiobon.Web.pdm
  2. 20
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 11
      Tiobon.Core.Model/Base/Ghre/Ghre_Exam.Dto.Base.cs
  4. 11
      Tiobon.Core.Model/Models/Ghre/Ghre_Exam.cs
  5. 91
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs

File diff suppressed because it is too large Load Diff

@ -2400,6 +2400,16 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLogBase"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLogBase">
<summary> <summary>
考试通知记录 (Dto.Base) 考试通知记录 (Dto.Base)
@ -8176,6 +8186,16 @@
预留字段12 预留字段12
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Exam.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Exam.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLog"> <member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLog">
<summary> <summary>
考试通知记录 (Model) 考试通知记录 (Model)

@ -194,5 +194,16 @@ namespace Tiobon.Core.Model.Models
/// 预留字段12 /// 预留字段12
/// </summary> /// </summary>
public int? ReverseI2 { get; set; } public int? ReverseI2 { get; set; }
/// <summary>
/// 是否使用默认封面
/// </summary>
public bool? UseDefaultCoverImage { get; set; }
/// <summary>
/// 默认封面图Name
/// </summary>
[Display(Name = "DefaultCoverImageName"), Description("默认封面图Name"), MaxLength(32, ErrorMessage = "默认封面图Name 不能超过 32 个字符")]
public string DefaultCoverImageName { get; set; }
} }
} }

@ -196,5 +196,16 @@ namespace Tiobon.Core.Model.Models
/// 预留字段12 /// 预留字段12
/// </summary> /// </summary>
public int? ReverseI2 { get; set; } public int? ReverseI2 { get; set; }
/// <summary>
/// 是否使用默认封面
/// </summary>
public bool? UseDefaultCoverImage { get; set; }
/// <summary>
/// 默认封面图Name
/// </summary>
[Display(Name = "DefaultCoverImageName"), Description("默认封面图Name"), MaxLength(32, ErrorMessage = "默认封面图Name 不能超过 32 个字符")]
public string DefaultCoverImageName { get; set; }
} }
} }

@ -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()

Loading…
Cancel
Save