新增课程、考试管理 修改状态 关联数据校验

master
xiaochanghai 1 year ago
parent 851556bac8
commit 32a3e38392
  1. 1097
      Model/Tiobon.Web.pdm
  2. 26
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 2
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 2
      Tiobon.Core.Services/BASE/BaseServices.cs
  5. 9
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  6. 13
      Tiobon.Core.Services/Ghre/Ghre_ExamPaperServices.cs
  7. 25
      Tiobon.Core.Services/Ghre/Ghre_ExamServices.cs
  8. 26
      Tiobon.Core/Tiobon.Core.Model.xml
  9. 2
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -2177,7 +2177,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordBase">
<summary>
Ghre_ExamRecord (Dto.Base)
考试记录 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ExamId">
@ -2215,14 +2215,14 @@
结束答题时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualBeginTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualEndTime">
<summary>
实际开始时间
实际结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualEndTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.Status">
<summary>
实际结束时间
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.RemarkSz">
@ -3201,7 +3201,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordInput">
<summary>
Ghre_ExamRecord (Dto.EditInput)
考试记录 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput">
@ -3311,7 +3311,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordInput">
<summary>
Ghre_ExamRecord (Dto.InsertInput)
考试记录 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput">
@ -5695,7 +5695,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecord">
<summary>
Ghre_ExamRecord (Model)
考试记录 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ExamId">
@ -5733,14 +5733,14 @@
结束答题时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualBeginTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualEndTime">
<summary>
实际开始时间
实际结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualEndTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.Status">
<summary>
实际结束时间
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.RemarkSz">
@ -7693,7 +7693,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDto">
<summary>
Ghre_ExamRecord(Dto.View)
考试记录(Dto.View)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDto.CreateDataInfo">

@ -761,7 +761,7 @@
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController">
<summary>
Ghre_ExamRecord(Controller)
考试记录(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">

@ -102,7 +102,7 @@ public class BaseServices<TEntity, TEntityDto, TInsertDto, TEditDto> : IBaseServ
('GHR_Common_000080', @langId, ' ')
UpdateDataInfo
FROM {entityType.GetEntityTableName()} a
WHERE a.Id = @ID";
WHERE a.Id = @ID AND IsEnable='1'";
dto = await Db.Ado.SqlQuerySingleAsync<TEntityDto>(sql);
return dto;
}

@ -322,10 +322,13 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
if (entity.Status == "Released")
{
string sql = $"SELECT count(0) FROM Ghre_Exam WHERE CourseId='{id}' and IsEnable=1";
var examPaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.LinkId == id && x.LinkType == "CourseId" && x.Status != "Disabled");
return ServiceResult.OprateFailed($"课程【{entity.CourseName}({entity.CourseNo})】已与试卷【{examPaper.PaperName}({examPaper.PaperName})】关联,暂不可{(status == "Draft" ? "" : "")}");
if (await Db.Ado.GetIntAsync(sql) > 0)
return ServiceResult.OprateFailed($"课程【{entity.CourseName}】已在考试中关联,不可{(status == "Disabled" ? "" : "")}!");
//string sql = $"SELECT count(0) FROM Ghre_Exam WHERE CourseId='{id}' and IsEnable=1";
//if (await Db.Ado.GetIntAsync(sql) > 0)
// return ServiceResult.OprateFailed($"课程【{entity.CourseName}】已在考试中关联,不可{(status == "Disabled" ? "停用" : "取消发布")}!");
}
BasePoco ent = entity;

@ -3,6 +3,7 @@ using System.Data;
using System.Net;
using System.Text.RegularExpressions;
using AgileObjects.AgileMapper;
using MathNet.Numerics.Distributions;
using Microsoft.AspNetCore.Http;
using MongoDB.Driver.Linq;
using Newtonsoft.Json.Linq;
@ -42,7 +43,7 @@ public class Ghre_ExamPaperServices : BaseServices<Ghre_ExamPaper, Ghre_ExamPape
IGhre_ExamPaperQuestionServices ghre_ExamPaperQuestionServices,
IGhre_CourseServices ghre_CourseServices,
IGhre_CourseSceneServices ghre_CourseSceneServices,
IGhre_ExamServices ghre_ExamServices,
//IGhre_ExamServices ghre_ExamServices,
IGhre_ExamRecordServices ghre_ExamRecordServices,
ICaching caching,
IGhrs_UserServices ghrs_UserServices)
@ -57,7 +58,7 @@ public class Ghre_ExamPaperServices : BaseServices<Ghre_ExamPaper, Ghre_ExamPape
_ghrs_UserServices = ghrs_UserServices;
_ghre_CourseServices = ghre_CourseServices;
_ghre_CourseSceneServices = ghre_CourseSceneServices;
_ghre_ExamServices = ghre_ExamServices;
//_ghre_ExamServices = ghre_ExamServices;
_ghre_ExamRecordServices = ghre_ExamRecordServices;
}
@ -755,10 +756,12 @@ delete from Ghre_ExamPaperQuestion WHERE ExamPaperId='{id}';");
#region 校验数据是否被引用
if (entity.Status == "Released" && (status == "Draft" || status == "Disabled"))//取消发布-停用
{
if (await _ghre_ExamServices.AnyAsync(x => x.ExamPaperId == id && x.Status == "Released"))
if (await Db.Queryable<Ghre_Exam>().AnyAsync(x => x.ExamPaperId == id && x.Status != "Disabled"))
{
var exam = await _ghre_ExamServices.QuerySingleDto(x => x.ExamPaperId == id && x.Status == "Released");
return ServiceResult.OprateFailed($"试卷【{entity.PaperName}({entity.PaperNo})】已与考试【{exam.ExamName}({exam.ExamNo}】关联,暂不可{(status == "Draft" ? "" : "")}");
var exam = await Db.Queryable<Ghre_Exam>().FirstAsync(x => x.ExamPaperId == id && x.Status != "Disabled");
return ServiceResult.OprateFailed($"试卷【{entity.PaperName}({entity.PaperNo})】已与考试【{exam.ExamName}({exam.ExamNo})】关联,暂不可{(status == "Draft" ? "" : "")}");
}
if (await _ghre_ExamRecordServices.AnyAsync(x => x.ExamPaperId == id && x.Status == "UnderWay"))

@ -15,7 +15,6 @@ using Microsoft.AspNetCore.Http;
using Tiobon.Core.Common.UserManager;
using MongoDB.Driver.Linq;
using Tiobon.Core.Common.DB.Dapper;
using System.Drawing.Drawing2D;
namespace Tiobon.Core.Services;
@ -1082,9 +1081,29 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
ent.UpdateIP = ip;
ent.UpdateProg = api;
if (status != "Released" && await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id))
if (entity.Status == "Released" && status == "Draft" && await _ghre_ExamRecordServices.AnyAsync(x => x.ExamId == id && x.Status == "UnderWay"))
return ServiceResult.OprateFailed("已有学员参与考试,不可取消发布!");
if (entity.Status == "Disabled" && status == "Released")
{
if (entity.LinkType == "CourseId")
{
var course = await _ghre_CourseServices.QueryById(entity.CourseId);
if (course is null)
return ServiceResult.OprateFailed("该考试关联的课程已被删除,暂不可取消归档!");
if (course.Status != "Released")
return ServiceResult.OprateFailed($"该考试关联的课程【{course.CourseName}({course.CourseNo})】状态为【{(course.Status == "Disabled" ? "" : "稿")}】,暂不可取消归档!");
}
var examPaper = await _ghre_ExamPaperServices.QueryById(entity.ExamPaperId);
if (examPaper is null)
return ServiceResult.OprateFailed("该考试关联的试卷已被删除,暂不可取消归档!");
if (examPaper.Status != "Released")
return ServiceResult.OprateFailed($"该考试关联的试卷【{examPaper.PaperName}({examPaper.PaperNo})】状态为【{(examPaper.Status == "Disabled" ? "" : "稿")}】,暂不可取消归档!");
}
if (status == "Released" || status == "Disabled" || status == "Draft")
{
entity.Status = status;
@ -1142,7 +1161,7 @@ public class Ghre_ExamServices : BaseServices<Ghre_Exam, Ghre_ExamDto, InsertGhr
{
ExamId = id,
UserId = UserContext.Current.User_Id,
ActualBeginTime = dt,
//ActualBeginTime = dt,
ExamPaperId = exam.ExamPaperId
};
await _ghre_ExamRecordServices.Add(insrt);

@ -2177,7 +2177,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordBase">
<summary>
Ghre_ExamRecord (Dto.Base)
考试记录 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ExamId">
@ -2215,14 +2215,14 @@
结束答题时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualBeginTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualEndTime">
<summary>
实际开始时间
实际结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.ActualEndTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.Status">
<summary>
实际结束时间
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordBase.RemarkSz">
@ -3201,7 +3201,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordInput">
<summary>
Ghre_ExamRecord (Dto.EditInput)
考试记录 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamRecordDetailInput">
@ -3311,7 +3311,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordInput">
<summary>
Ghre_ExamRecord (Dto.InsertInput)
考试记录 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamRecordDetailInput">
@ -5695,7 +5695,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecord">
<summary>
Ghre_ExamRecord (Model)
考试记录 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ExamId">
@ -5733,14 +5733,14 @@
结束答题时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualBeginTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualEndTime">
<summary>
实际开始时间
实际结束时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.ActualEndTime">
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.Status">
<summary>
实际结束时间
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecord.RemarkSz">
@ -7693,7 +7693,7 @@
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamRecordDto">
<summary>
Ghre_ExamRecord(Dto.View)
考试记录(Dto.View)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamRecordDto.CreateDataInfo">

@ -761,7 +761,7 @@
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordController">
<summary>
Ghre_ExamRecord(Controller)
考试记录(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamRecordDetailController">

Loading…
Cancel
Save