试卷新增默认查询数据接口

master
xiaochanghai 1 year ago
parent 129908badf
commit dd9bc40ee6
  1. 2066
      Model/Tiobon.Web.pdm
  2. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamPaperConfigController.cs
  3. 19
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamPaperController.cs
  4. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamPaperQuestionController.cs
  5. 461
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  6. 17
      Tiobon.Core.Api/Tiobon.Core.xml
  7. 12
      Tiobon.Core.IServices/Ghre/IGhre_ExamPaperConfigServices.cs
  8. 12
      Tiobon.Core.IServices/Ghre/IGhre_ExamPaperQuestionServices.cs
  9. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamPaperServices.cs
  10. 6
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamPaper.Dto.Base.cs
  11. 153
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamPaperConfig.Dto.Base.cs
  12. 126
      Tiobon.Core.Model/Base/Ghre/Ghre_ExamPaperQuestion.Dto.Base.cs
  13. 27
      Tiobon.Core.Model/Edit/Ghre/Ghre_ExamPaperConfig.Dto.EditInput.cs
  14. 27
      Tiobon.Core.Model/Edit/Ghre/Ghre_ExamPaperQuestion.Dto.EditInput.cs
  15. 27
      Tiobon.Core.Model/Insert/Ghre/Ghre_ExamPaperConfig.Dto.InsertInput.cs
  16. 27
      Tiobon.Core.Model/Insert/Ghre/Ghre_ExamPaperQuestion.Dto.InsertInput.cs
  17. 6
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamPaper.cs
  18. 157
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamPaperConfig.cs
  19. 128
      Tiobon.Core.Model/Models/Ghre/Ghre_ExamPaperQuestion.cs
  20. 27
      Tiobon.Core.Model/View/Ghre/Ghre_ExamPaperConfig.Dto.View.cs
  21. 27
      Tiobon.Core.Model/View/Ghre/Ghre_ExamPaperQuestion.Dto.View.cs
  22. 65
      Tiobon.Core.Model/ViewModels/Extend/DefaultGhre_ExamPaperInput.cs
  23. 6
      Tiobon.Core.Model/ViewModels/Extend/FromGhre_QuestionInput.cs
  24. 3
      Tiobon.Core.Services/CommonServices.cs
  25. 21
      Tiobon.Core.Services/Ghre/Ghre_ExamPaperConfigServices.cs
  26. 21
      Tiobon.Core.Services/Ghre/Ghre_ExamPaperQuestionServices.cs
  27. 323
      Tiobon.Core.Services/Ghre/Ghre_ExamPaperServices.cs
  28. 3
      Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs

File diff suppressed because it is too large Load Diff

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 试卷配置(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_ExamPaperConfigController : BaseController<IGhre_ExamPaperConfigServices, Ghre_ExamPaperConfig, Ghre_ExamPaperConfigDto, InsertGhre_ExamPaperConfigInput, EditGhre_ExamPaperConfigInput>
{
public Ghre_ExamPaperConfigController(IGhre_ExamPaperConfigServices service) : base(service)
{
}
}

@ -11,4 +11,23 @@ public class Ghre_ExamPaperController : BaseController<IGhre_ExamPaperServices,
public Ghre_ExamPaperController(IGhre_ExamPaperServices service) : base(service)
{
}
#region 基础接口
#region 查询
/// <summary>
/// 根据Id查询数据
/// </summary>
/// <param name="Id"></param>
/// <returns></returns>
[HttpPost("QueryDefault/{Id}")]
public async Task<ServiceResult<DefaultGhre_ExamPaperInput>> QueryDefault(long Id)
{
return await _service.QueryDefault(Id);
}
#endregion
#endregion
}

@ -0,0 +1,14 @@
namespace Tiobon.Core.Api.Controllers;
/// <summary>
/// 试卷题目(Controller)
/// </summary>
[Route("api/[controller]")]
[ApiController, GlobalActionFilter]
[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
public class Ghre_ExamPaperQuestionController : BaseController<IGhre_ExamPaperQuestionServices, Ghre_ExamPaperQuestion, Ghre_ExamPaperQuestionDto, InsertGhre_ExamPaperQuestionInput, EditGhre_ExamPaperQuestionInput>
{
public Ghre_ExamPaperQuestionController(IGhre_ExamPaperQuestionServices service) : base(service)
{
}
}

@ -636,6 +636,11 @@
试卷风格
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperBase.SetMethod">
<summary>
出题方式
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperBase.Status">
<summary>
状态
@ -711,6 +716,207 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase">
<summary>
试卷配置 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.TaxisNo">
<summary>
试卷ID
</summary>
<summary>
课程ID
</summary>
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.DifficultyLevel">
<summary>
难易程度
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.QuestionType">
<summary>
题目类型
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.QuestionContent">
<summary>
题目内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Quantity">
<summary>
数量
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Score">
<summary>
分值
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase">
<summary>
试卷题目 (Dto.Base)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.ExamPaperId">
<summary>
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.QuestionId">
<summary>
题目ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.ConfigId">
<summary>
试卷配置ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionBase.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_QuestionBase">
<summary>
题目 (Dto.Base)
@ -1135,6 +1341,16 @@
试卷 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamPaperConfigInput">
<summary>
试卷配置 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_ExamPaperQuestionInput">
<summary>
试卷题目 (Dto.EditInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.EditGhre_QuestionInput">
<summary>
题目 (Dto.EditInput)
@ -1185,6 +1401,16 @@
试卷 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamPaperConfigInput">
<summary>
试卷配置 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_ExamPaperQuestionInput">
<summary>
试卷题目 (Dto.InsertInput)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.InsertGhre_QuestionInput">
<summary>
题目 (Dto.InsertInput)
@ -2009,6 +2235,11 @@
试卷风格
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaper.SetMethod">
<summary>
出题方式
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaper.Status">
<summary>
状态
@ -2084,6 +2315,211 @@
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig">
<summary>
试卷配置 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.ExamPaperId">
<summary>
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.CourseId">
<summary>
课程ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.TaxisNo">
<summary>
排序号
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.DifficultyLevel">
<summary>
难易程度
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.QuestionType">
<summary>
题目类型
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.QuestionContent">
<summary>
题目内容
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Quantity">
<summary>
数量
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Score">
<summary>
分值
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperConfig.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion">
<summary>
试卷题目 (Model)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.ExamPaperId">
<summary>
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.QuestionId">
<summary>
题目ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.ConfigId">
<summary>
试卷配置ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.RemarkSz">
<summary>
备注
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.IsDefault">
<summary>
默认标志
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse1">
<summary>
预留字段1
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse2">
<summary>
预留字段2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse3">
<summary>
预留字段3
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse4">
<summary>
预留字段4
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse5">
<summary>
预留字段5
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse6">
<summary>
预留字段6
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse7">
<summary>
预留字段7
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse8">
<summary>
预留字段8
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse9">
<summary>
预留字段9
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.Reverse10">
<summary>
预留字段10
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.ReverseI1">
<summary>
预留字段11
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestion.ReverseI2">
<summary>
预留字段12
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_Question">
<summary>
题目 (Model)
@ -3322,6 +3758,16 @@
试卷(Dto.View)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperConfigDto">
<summary>
试卷配置(Dto.View)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamPaperQuestionDto">
<summary>
试卷题目(Dto.View)
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_QuestionDto">
<summary>
题目(Dto.View)
@ -4480,5 +4926,20 @@
</summary>
</member>
<member name="P:Tiobon.Core.Model.DefaultGhre_ExamPaperPreview.ExamPaperId">
<summary>
试卷ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.DefaultGhre_ExamPaperPreview.QuestionId">
<summary>
题目ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.DefaultGhre_ExamPaperPreview.ConfigId">
<summary>
试卷配置ID
</summary>
</member>
</members>
</doc>

@ -638,11 +638,28 @@
课程场景(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamPaperConfigController">
<summary>
试卷配置(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamPaperController">
<summary>
试卷(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_ExamPaperController.QueryDefault(System.Int64)">
<summary>
根据Id查询数据
</summary>
<param name="Id"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_ExamPaperQuestionController">
<summary>
试卷题目(Controller)
</summary>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_QuestionAnswerController">
<summary>
题目答案(Controller)

@ -0,0 +1,12 @@
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.IServices
{
/// <summary>
/// 试卷配置(自定义服务接口)
/// </summary>
public interface IGhre_ExamPaperConfigServices :IBaseServices<Ghre_ExamPaperConfig, Ghre_ExamPaperConfigDto, InsertGhre_ExamPaperConfigInput, EditGhre_ExamPaperConfigInput>
{
}
}

@ -0,0 +1,12 @@
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.IServices
{
/// <summary>
/// 试卷题目(自定义服务接口)
/// </summary>
public interface IGhre_ExamPaperQuestionServices :IBaseServices<Ghre_ExamPaperQuestion, Ghre_ExamPaperQuestionDto, InsertGhre_ExamPaperQuestionInput, EditGhre_ExamPaperQuestionInput>
{
}
}

@ -1,4 +1,5 @@
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.IServices
@ -8,5 +9,6 @@ namespace Tiobon.Core.IServices
/// </summary>
public interface IGhre_ExamPaperServices :IBaseServices<Ghre_ExamPaper, Ghre_ExamPaperDto, InsertGhre_ExamPaperInput, EditGhre_ExamPaperInput>
{
Task<ServiceResult<DefaultGhre_ExamPaperInput>> QueryDefault(long Id);
}
}

@ -94,6 +94,12 @@ namespace Tiobon.Core.Model.Models
[Display(Name = "Style"), Description("试卷风格"), MaxLength(32, ErrorMessage = "试卷风格 不能超过 32 个字符")]
public string Style { get; set; }
/// <summary>
/// 出题方式
/// </summary>
[Display(Name = "SetMethod"), Description("关联类型"), MaxLength(32, ErrorMessage = "关联类型 不能超过 32 个字符")]
public string SetMethod { get; set; }
/// <summary>
/// 状态
/// </summary>

@ -0,0 +1,153 @@
/* ,
* Ghre_ExamPaperConfig.cs
*
* N / A
* Ghre_ExamPaperConfig
*
* Ver
*
*V0.01 2024/5/13 11:28:39 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷配置 (Dto.Base)
/// </summary>
public class Ghre_ExamPaperConfigBase
{
/// <summary>
/// 试卷ID
/// </summary>
/// <summary>
/// 课程ID
/// </summary>
/// <summary>
/// 排序号
/// </summary>
public int? TaxisNo { get; set; }
/// <summary>
/// 难易程度
/// </summary>
[Display(Name = "DifficultyLevel"), Description("难易程度"), MaxLength(32, ErrorMessage = "难易程度 不能超过 32 个字符")]
public string DifficultyLevel { get; set; }
/// <summary>
/// 题目类型
/// </summary>
[Display(Name = "QuestionType"), Description("题目类型"), MaxLength(32, ErrorMessage = "题目类型 不能超过 32 个字符")]
public string QuestionType { get; set; }
/// <summary>
/// 题目内容
/// </summary>
[Display(Name = "QuestionContent"), Description("题目内容"), MaxLength(2000, ErrorMessage = "题目内容 不能超过 2000 个字符")]
public string QuestionContent { get; set; }
/// <summary>
/// 数量
/// </summary>
public int? Quantity { get; set; }
/// <summary>
/// 分值
/// </summary>
[Display(Name = "Score"), Description("分值"), Column(TypeName = "decimal(20,2)")]
public decimal? Score { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -0,0 +1,126 @@
/* ,
* Ghre_ExamPaperQuestion.cs
*
* N / A
* Ghre_ExamPaperQuestion
*
* Ver
*
*V0.01 2024/5/13 11:32:06 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷题目 (Dto.Base)
/// </summary>
public class Ghre_ExamPaperQuestionBase
{
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 题目ID
/// </summary>
[Display(Name = "QuestionId"), Description("题目ID"), MaxLength(10, ErrorMessage = "题目ID 不能超过 10 个字符")]
public long? QuestionId { get; set; }
/// <summary>
/// 试卷配置ID
/// </summary>
public long? ConfigId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperConfig.cs
*
* N / A
* Ghre_ExamPaperConfig
*
* Ver
*
*V0.01 2024/5/13 11:28:39 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷配置 (Dto.EditInput)
/// </summary>
public class EditGhre_ExamPaperConfigInput : Ghre_ExamPaperConfigBase
{
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperQuestion.cs
*
* N / A
* Ghre_ExamPaperQuestion
*
* Ver
*
*V0.01 2024/5/13 11:32:06 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷题目 (Dto.EditInput)
/// </summary>
public class EditGhre_ExamPaperQuestionInput : Ghre_ExamPaperQuestionBase
{
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperConfig.cs
*
* N / A
* Ghre_ExamPaperConfig
*
* Ver
*
*V0.01 2024/5/13 11:28:39 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷配置 (Dto.InsertInput)
/// </summary>
public class InsertGhre_ExamPaperConfigInput : Ghre_ExamPaperConfigBase
{
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperQuestion.cs
*
* N / A
* Ghre_ExamPaperQuestion
*
* Ver
*
*V0.01 2024/5/13 11:32:06 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷题目 (Dto.InsertInput)
/// </summary>
public class InsertGhre_ExamPaperQuestionInput : Ghre_ExamPaperQuestionBase
{
}
}

@ -97,6 +97,12 @@ namespace Tiobon.Core.Model.Models
[Display(Name = "Style"), Description("试卷风格"), MaxLength(32, ErrorMessage = "试卷风格 不能超过 32 个字符")]
public string Style { get; set; }
/// <summary>
/// 出题方式
/// </summary>
[Display(Name = "SetMethod"), Description("关联类型"), MaxLength(32, ErrorMessage = "关联类型 不能超过 32 个字符")]
public string SetMethod { get; set; }
/// <summary>
/// 状态
/// </summary>

@ -0,0 +1,157 @@
/* ,
* Ghre_ExamPaperConfig.cs
*
* N / A
* Ghre_ExamPaperConfig
*
* Ver
*
*V0.01 2024/5/13 11:28:39 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using System.ComponentModel.DataAnnotations.Schema;
using SqlSugar;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷配置 (Model)
/// </summary>
[SugarTable("Ghre_ExamPaperConfig", "Ghre_ExamPaperConfig"), Entity(TableCnName = "试卷配置", TableName = "Ghre_ExamPaperConfig")]
public class Ghre_ExamPaperConfig : BasePoco
{
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 课程ID
/// </summary>
public long? CourseId { get; set; }
/// <summary>
/// 排序号
/// </summary>
public int? TaxisNo { get; set; }
/// <summary>
/// 难易程度
/// </summary>
[Display(Name = "DifficultyLevel"), Description("难易程度"), MaxLength(32, ErrorMessage = "难易程度 不能超过 32 个字符")]
public string DifficultyLevel { get; set; }
/// <summary>
/// 题目类型
/// </summary>
[Display(Name = "QuestionType"), Description("题目类型"), MaxLength(32, ErrorMessage = "题目类型 不能超过 32 个字符")]
public string QuestionType { get; set; }
/// <summary>
/// 题目内容
/// </summary>
[Display(Name = "QuestionContent"), Description("题目内容"), MaxLength(2000, ErrorMessage = "题目内容 不能超过 2000 个字符")]
public string QuestionContent { get; set; }
/// <summary>
/// 数量
/// </summary>
public int? Quantity { get; set; }
/// <summary>
/// 分值
/// </summary>
[Display(Name = "Score"), Description("分值"), Column(TypeName = "decimal(20,2)")]
public decimal? Score { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -0,0 +1,128 @@
/* ,
* Ghre_ExamPaperQuestion.cs
*
* N / A
* Ghre_ExamPaperQuestion
*
* Ver
*
*V0.01 2024/5/13 11:32:06 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
using SqlSugar;
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷题目 (Model)
/// </summary>
[SugarTable("Ghre_ExamPaperQuestion", "Ghre_ExamPaperQuestion"), Entity(TableCnName = "试卷题目", TableName = "Ghre_ExamPaperQuestion")]
public class Ghre_ExamPaperQuestion : BasePoco
{
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 题目ID
/// </summary>
[Display(Name = "QuestionId"), Description("题目ID"), MaxLength(10, ErrorMessage = "题目ID 不能超过 10 个字符")]
public long? QuestionId { get; set; }
/// <summary>
/// 试卷配置ID
/// </summary>
public long? ConfigId { get; set; }
/// <summary>
/// 备注
/// </summary>
[Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
public string RemarkSz { get; set; }
/// <summary>
/// 默认标志
/// </summary>
public int? IsDefault { get; set; }
/// <summary>
/// 预留字段1
/// </summary>
[Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
public string Reverse1 { get; set; }
/// <summary>
/// 预留字段2
/// </summary>
[Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
public string Reverse2 { get; set; }
/// <summary>
/// 预留字段3
/// </summary>
[Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
public string Reverse3 { get; set; }
/// <summary>
/// 预留字段4
/// </summary>
[Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
public string Reverse4 { get; set; }
/// <summary>
/// 预留字段5
/// </summary>
[Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
public string Reverse5 { get; set; }
/// <summary>
/// 预留字段6
/// </summary>
[Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
public string Reverse6 { get; set; }
/// <summary>
/// 预留字段7
/// </summary>
[Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
public string Reverse7 { get; set; }
/// <summary>
/// 预留字段8
/// </summary>
[Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
public string Reverse8 { get; set; }
/// <summary>
/// 预留字段9
/// </summary>
[Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
public string Reverse9 { get; set; }
/// <summary>
/// 预留字段10
/// </summary>
[Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
public string Reverse10 { get; set; }
/// <summary>
/// 预留字段11
/// </summary>
public int? ReverseI1 { get; set; }
/// <summary>
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperConfig.cs
*
* N / A
* Ghre_ExamPaperConfig
*
* Ver
*
*V0.01 2024/5/13 11:28:39 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷配置(Dto.View)
/// </summary>
public class Ghre_ExamPaperConfigDto : Ghre_ExamPaperConfig
{
}
}

@ -0,0 +1,27 @@
/* ,
* Ghre_ExamPaperQuestion.cs
*
* N / A
* Ghre_ExamPaperQuestion
*
* Ver
*
*V0.01 2024/5/13 11:32:06 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
*
*/
namespace Tiobon.Core.Model.Models
{
/// <summary>
/// 试卷题目(Dto.View)
/// </summary>
public class Ghre_ExamPaperQuestionDto : Ghre_ExamPaperQuestion
{
}
}

@ -0,0 +1,65 @@
using System.ComponentModel.DataAnnotations;
using System.ComponentModel;
using System.Dynamic;
using Tiobon.Core.Model.Models;
using static System.Runtime.InteropServices.JavaScript.JSType;
namespace Tiobon.Core.Model;
public class DefaultGhre_ExamPaperInput
{
public List<DefaultGhre_ExamPaperColumn> baseColumns { get; set; } = new List<DefaultGhre_ExamPaperColumn>();
public List<DefaultGhre_ExamPaperColumn> randomSetColumns { get; set; } = new List<DefaultGhre_ExamPaperColumn>();
public List<DefaultGhre_ExamPaperColumn> manualSetColumns { get; set; } = new List<DefaultGhre_ExamPaperColumn>();
public DefaultGhre_ExamPaperPageData pageData { get; set; } = new DefaultGhre_ExamPaperPageData();
}
public class DefaultGhre_ExamPaperColumn
{
public string label { get; set; }
public string field { get; set; }
public string elementType { get; set; }
public bool required { get; set; }
public bool multipleSelect { get; set; }
public bool editable { get; set; }
public string dataSource { get; set; }
public string placeholder { get; set; }
public int displayType { get; set; }
}
public class DefaultGhre_ExamPaperPageData
{
public dynamic baseData { get; set; } = new ExpandoObject();
public DefaultGhre_ExamPaperStyleInfo styleInfo { get; set; } = new DefaultGhre_ExamPaperStyleInfo();
public string examPaperSetType { get; set; }
public List<Ghre_ExamPaperConfig> examPaperSetData { get; set; } = new List<Ghre_ExamPaperConfig> { };
public List<DefaultGhre_ExamPaperPreview> previewList { get; set; } = new List<DefaultGhre_ExamPaperPreview> { };
}
public class DefaultGhre_ExamPaperStyleInfo
{
public string coverImage { get; set; }
public string paperStyle { get; set; }
}
public class DefaultGhre_ExamPaperPreview
{
public long? parentId { get; set; }
public long Id { get; set; }
/// <summary>
/// 试卷ID
/// </summary>
public long? ExamPaperId { get; set; }
/// <summary>
/// 题目ID
/// </summary>
public long QuestionId { get; set; }
/// <summary>
/// 试卷配置ID
/// </summary>
public long? ConfigId { get; set; }
public List<FromGhre_QuestionQuestionTypeDetail> detail { get; set; } = new List<FromGhre_QuestionQuestionTypeDetail> { };
}

@ -1,7 +1,4 @@
using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace Tiobon.Core.Model;
namespace Tiobon.Core.Model;
public class FromGhre_QuestionInput
{
@ -41,6 +38,7 @@ public class FromGhre_QuestionQuestionType
}
public class FromGhre_QuestionQuestionTypeDetail
{
public long? Id { get; set; }
public string difficulty { get; set; }
public string content { get; set; }
public string answer { get; set; }

@ -1,7 +1,5 @@
using System.Data;
using AgileObjects.AgileMapper;
using AgileObjects.AgileMapper.Extensions;
using Elasticsearch.Net;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Logging;
@ -12,7 +10,6 @@ using Tiobon.Core.Common;
using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
namespace Tiobon.Core.Services;

@ -0,0 +1,21 @@

using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
namespace Tiobon.Core.Services
{
/// <summary>
/// 试卷配置 (服务)
/// </summary>
public class Ghre_ExamPaperConfigServices : BaseServices<Ghre_ExamPaperConfig, Ghre_ExamPaperConfigDto, InsertGhre_ExamPaperConfigInput, EditGhre_ExamPaperConfigInput>, IGhre_ExamPaperConfigServices
{
private readonly IBaseRepository<Ghre_ExamPaperConfig> _dal;
public Ghre_ExamPaperConfigServices(IBaseRepository<Ghre_ExamPaperConfig> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -0,0 +1,21 @@

using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
namespace Tiobon.Core.Services
{
/// <summary>
/// 试卷题目 (服务)
/// </summary>
public class Ghre_ExamPaperQuestionServices : BaseServices<Ghre_ExamPaperQuestion, Ghre_ExamPaperQuestionDto, InsertGhre_ExamPaperQuestionInput, EditGhre_ExamPaperQuestionInput>, IGhre_ExamPaperQuestionServices
{
private readonly IBaseRepository<Ghre_ExamPaperQuestion> _dal;
public Ghre_ExamPaperQuestionServices(IBaseRepository<Ghre_ExamPaperQuestion> dal)
{
this._dal = dal;
base.BaseDal = dal;
}
}
}

@ -3,19 +3,334 @@ using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Model;
using System.Dynamic;
using System.ComponentModel.DataAnnotations;
namespace Tiobon.Core.Services
{
/// <summary>
/// 试卷 (服务)
/// </summary>
/// <summary>
/// 试卷 (服务)
/// </summary>
public class Ghre_ExamPaperServices : BaseServices<Ghre_ExamPaper, Ghre_ExamPaperDto, InsertGhre_ExamPaperInput, EditGhre_ExamPaperInput>, IGhre_ExamPaperServices
{
private IGhre_ExamPaperConfigServices _ghre_ExamPaperConfigServices;
private IGhre_ExamPaperQuestionServices _ghre_ExamPaperQuestionServices;
private IGhre_QuestionServices _ghre_QuestionServices;
private IGhre_QuestionAnswerServices _ghre_QuestionAnswerServices;
private readonly IBaseRepository<Ghre_ExamPaper> _dal;
public Ghre_ExamPaperServices(IBaseRepository<Ghre_ExamPaper> dal)
public Ghre_ExamPaperServices(IBaseRepository<Ghre_ExamPaper> dal,
IGhre_ExamPaperConfigServices ghre_ExamPaperConfigServices,
IGhre_QuestionServices ghre_QuestionServices,
IGhre_QuestionAnswerServices ghre_QuestionAnswerServices,
IGhre_ExamPaperQuestionServices ghre_ExamPaperQuestionServices)
{
this._dal = dal;
base.BaseDal = dal;
_ghre_ExamPaperConfigServices = ghre_ExamPaperConfigServices;
_ghre_ExamPaperQuestionServices = ghre_ExamPaperQuestionServices;
_ghre_QuestionServices = ghre_QuestionServices;
_ghre_QuestionAnswerServices = ghre_QuestionAnswerServices;
}
public async Task<ServiceResult<DefaultGhre_ExamPaperInput>> QueryDefault(long Id)
{
var input = new DefaultGhre_ExamPaperInput();
#region baseColumns
var baseColumns = new List<DefaultGhre_ExamPaperColumn>
{
new DefaultGhre_ExamPaperColumn()
{
label = "试卷编号",
field = "PaperNo",
elementType = "Input",
required = false,
multipleSelect = false,
editable = false,
},
new DefaultGhre_ExamPaperColumn()
{
label = "试卷名称",
field = "PaperName",
elementType = "Input",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "答题时间",
field = "AnswerTime",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "评分方式",
field = "ScoreMethod",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "卷面总分",
field = "TotalScore",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "及格分",
field = "PassScore",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "可重考次数",
field = "RetakeTimes",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "试卷说明",
field = "RemarkSz",
elementType = "TextArea",
required = false,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "关联课程",
field = "LinkType",
elementType = "CourseRadioBox",
required = false,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "课程名称",
field = "CourseId",
elementType = "ApiSelect",
required = false,
multipleSelect = false,
editable = true,
},
new DefaultGhre_ExamPaperColumn()
{
label = "课程场景",
field = "CourseSceneId",
elementType = "ApiSelect",
required = false,
multipleSelect = false,
editable = true,
}
};
#endregion
#region randomSetColumns
var randomSetColumns = new List<DefaultGhre_ExamPaperColumn>
{
new DefaultGhre_ExamPaperColumn()
{
label = "课程名称",
field = "CourseId",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=1
},
new DefaultGhre_ExamPaperColumn()
{
label = "题目类型",
field = "QuestionType",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=2
},
new DefaultGhre_ExamPaperColumn()
{
label = "难易程度",
field = "DifficultyLevel",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=2
},
new DefaultGhre_ExamPaperColumn()
{
label = "数量",
field = "Quantity",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
displayType=2
},
new DefaultGhre_ExamPaperColumn()
{
label = "分值",
field = "Score",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
displayType=2
}
};
#endregion
#region manualSetColumns
var manualSetColumns = new List<DefaultGhre_ExamPaperColumn>
{
new DefaultGhre_ExamPaperColumn()
{
label = "课程名称",
field = "CourseId",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=1
},
new DefaultGhre_ExamPaperColumn()
{
label = "题目类型",
field = "QuestionType",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType= 2
},
new DefaultGhre_ExamPaperColumn()
{
label = "题目内容",
field = "QuestionContent",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=2
},
new DefaultGhre_ExamPaperColumn()
{
label = "难易程度",
field = "DifficultyLevel",
elementType = "ApiSelect",
required = true,
multipleSelect = false,
editable = true,
displayType=2
},
new DefaultGhre_ExamPaperColumn()
{
label = "分值",
field = "Score",
elementType = "InputNumber",
required = true,
multipleSelect = false,
editable = true,
displayType=2
}
};
#endregion
#region pageData
if (Id != 0)
{
var exampaper = await base.QueryById(Id);
dynamic baseData = new ExpandoObject();
baseData.PaperNo = exampaper.PaperNo;
baseData.PaperName = exampaper.PaperName;
baseData.AnswerTime = exampaper.AnswerTime;
baseData.ScoreMethod = exampaper.ScoreMethod;
baseData.TotalScore = exampaper.TotalScore;
baseData.PassScore = exampaper.PassScore;
baseData.RetakeTimes = exampaper.RetakeTimes;
baseData.RemarkSz = exampaper.RemarkSz;
baseData.LinkType = exampaper.LinkType;
baseData.CourseId = exampaper.LinkId;
baseData.CourseSceneId = exampaper.LinkId;
input.pageData.baseData = baseData;
input.pageData.styleInfo.coverImage = exampaper.CoverUrl;
input.pageData.styleInfo.paperStyle = exampaper.Style;
input.pageData.examPaperSetType = exampaper.SetMethod;
input.pageData.examPaperSetData = await _ghre_ExamPaperConfigServices.Query(x => x.ExamPaperId == Id);
var questions = await _ghre_ExamPaperQuestionServices.Query(x => x.ExamPaperId == Id);
var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview()
{
Id = x.Id,
ConfigId = x.ConfigId,
parentId = x.ConfigId,
QuestionId = x.QuestionId.Value,
ExamPaperId = x.ExamPaperId,
}).ToList();
var questionIds = previews.Select(x => x.QuestionId).Distinct().ToList();
var questions1 = await _ghre_QuestionServices.Query(x => questionIds.Contains(x.Id));
var answers = await _ghre_QuestionAnswerServices.Query(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value), "TaxisNo ASC");
previews.ForEach(x =>
{
var answers1 = answers.Where(y => y.QuestionId == x.QuestionId).ToList();
var detail = questions1.Select(o =>
new FromGhre_QuestionQuestionTypeDetail()
{
Id = o.Id,
difficulty = o.DifficultyLevel,
RemarkSz = o.QuestionAnalysis,
content = o.QuestionContent,
}).ToList();
detail.ForEach(y =>
{
y.answer = answers1.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo;
y.answer1 = answers1.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList();
y.answerList = answers.Select(x => new FromGhre_QuestionQuestionAnswerList()
{
No = x.QuestionNo,
label = x.AnswerContent,
imageUrl = x.ImageUrl,
imgWidthPc = x.ImageWidthPc,
imgWidthApp = x.ImageWidthApp,
}).ToList();
});
x.detail = detail;
});
input.pageData.previewList = previews;
}
#endregion
input.baseColumns = baseColumns;
input.randomSetColumns = randomSetColumns;
input.manualSetColumns = manualSetColumns;
return ServiceResult<DefaultGhre_ExamPaperInput>.OprateSuccess("查询成功!", input);
}
}
}

@ -1,18 +1,15 @@

using System.Data;
using AgileObjects.AgileMapper;
using Mysqlx.Crud;
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Tiobon.Core.Common;
using Tiobon.Core.Common.DB.Dapper;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.IServices;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using static Dapper.SqlMapper;
namespace Tiobon.Core.Services;

Loading…
Cancel
Save