diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionAnswerController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionAnswerController.cs
new file mode 100644
index 00000000..70bef6ce
--- /dev/null
+++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionAnswerController.cs
@@ -0,0 +1,14 @@
+namespace Tiobon.Core.Api.Controllers;
+
+///
+/// 题目答案(Controller)
+///
+[Route("api/[controller]")]
+[ApiController, GlobalActionFilter]
+[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
+public class Ghre_QuestionAnswerController : BaseController
+{
+ public Ghre_QuestionAnswerController(IGhre_QuestionAnswerServices service) : base(service)
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionController.cs
new file mode 100644
index 00000000..59a0d1b9
--- /dev/null
+++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_QuestionController.cs
@@ -0,0 +1,14 @@
+namespace Tiobon.Core.Api.Controllers;
+
+///
+/// 题目(Controller)
+///
+[Route("api/[controller]")]
+[ApiController, GlobalActionFilter]
+[Authorize(Permissions.Name), ApiExplorerSettings(GroupName = Grouping.GroupName_Ghre)]
+public class Ghre_QuestionController : BaseController
+{
+ public Ghre_QuestionController(IGhre_QuestionServices service) : base(service)
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.IServices/Ghre/IGhre_QuestionAnswerServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_QuestionAnswerServices.cs
new file mode 100644
index 00000000..a8d1320f
--- /dev/null
+++ b/Tiobon.Core.IServices/Ghre/IGhre_QuestionAnswerServices.cs
@@ -0,0 +1,12 @@
+using Tiobon.Core.IServices.BASE;
+using Tiobon.Core.Model.Models;
+
+namespace Tiobon.Core.IServices
+{
+ ///
+ /// 题目答案(自定义服务接口)
+ ///
+ public interface IGhre_QuestionAnswerServices :IBaseServices
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.IServices/Ghre/IGhre_QuestionServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_QuestionServices.cs
new file mode 100644
index 00000000..076eaed2
--- /dev/null
+++ b/Tiobon.Core.IServices/Ghre/IGhre_QuestionServices.cs
@@ -0,0 +1,12 @@
+using Tiobon.Core.IServices.BASE;
+using Tiobon.Core.Model.Models;
+
+namespace Tiobon.Core.IServices
+{
+ ///
+ /// 题目(自定义服务接口)
+ ///
+ public interface IGhre_QuestionServices :IBaseServices
+ {
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_Question.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_Question.Dto.Base.cs
new file mode 100644
index 00000000..03492aca
--- /dev/null
+++ b/Tiobon.Core.Model/Base/Ghre/Ghre_Question.Dto.Base.cs
@@ -0,0 +1,140 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_Question.cs
+*
+*功 能: N / A
+* 类 名: Ghre_Question
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:00:27 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目 (Dto.Base)
+ ///
+ public class Ghre_QuestionBase
+ {
+
+ ///
+ /// 课程Ids
+ ///
+ [Display(Name = "CourseIds"), Description("课程Ids"), MaxLength(2000, ErrorMessage = "课程Ids 不能超过 2000 个字符")]
+ public string CourseIds { get; set; }
+
+ ///
+ /// 题目编号
+ ///
+ [Display(Name = "CourseINo"), Description("题目编号"), MaxLength(32, ErrorMessage = "题目编号 不能超过 32 个字符")]
+ public string CourseINo { get; set; }
+
+ ///
+ /// 难易程度
+ ///
+ [Display(Name = "DifficultyLevel"), Description("难易程度"), MaxLength(32, ErrorMessage = "难易程度 不能超过 32 个字符")]
+ public string DifficultyLevel { get; set; }
+
+ ///
+ /// 题目类型
+ ///
+ [Display(Name = "CourseType"), Description("题目类型"), MaxLength(32, ErrorMessage = "题目类型 不能超过 32 个字符")]
+ public string CourseType { get; set; }
+
+ ///
+ /// 题目内容
+ ///
+ [Display(Name = "CourseContent"), Description("题目内容"), MaxLength(2000, ErrorMessage = "题目内容 不能超过 2000 个字符")]
+ public string CourseContent { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 默认标志
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// 预留字段1
+ ///
+ [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// 预留字段2
+ ///
+ [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// 预留字段3
+ ///
+ [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// 预留字段4
+ ///
+ [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// 预留字段5
+ ///
+ [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// 预留字段6
+ ///
+ [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// 预留字段7
+ ///
+ [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// 预留字段8
+ ///
+ [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// 预留字段9
+ ///
+ [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// 预留字段10
+ ///
+ [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
+ public string Reverse10 { get; set; }
+
+ ///
+ /// 预留字段11
+ ///
+ public int? ReverseI1 { get; set; }
+
+ ///
+ /// 预留字段12
+ ///
+ public int? ReverseI2 { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/Base/Ghre/Ghre_QuestionAnswer.Dto.Base.cs b/Tiobon.Core.Model/Base/Ghre/Ghre_QuestionAnswer.Dto.Base.cs
new file mode 100644
index 00000000..5a6b8f60
--- /dev/null
+++ b/Tiobon.Core.Model/Base/Ghre/Ghre_QuestionAnswer.Dto.Base.cs
@@ -0,0 +1,136 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_QuestionAnswer.cs
+*
+*功 能: N / A
+* 类 名: Ghre_QuestionAnswer
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:02:39 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目答案 (Dto.Base)
+ ///
+ public class Ghre_QuestionAnswerBase
+ {
+
+ ///
+ /// 题目ID
+ ///
+
+ ///
+ /// 答案内容
+ ///
+ [Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(32, ErrorMessage = "答案内容 不能超过 32 个字符")]
+ public string AnswerContent { get; set; }
+
+ ///
+ /// 是否为正确答案
+ ///
+ public bool? IsCorrect { get; set; }
+
+ ///
+ /// 图片地址
+ ///
+ [Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 64 个字符")]
+ public string ImageUrl { get; set; }
+
+ ///
+ /// 排序号
+ ///
+ public int? TaxisNo { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 默认标志
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// 预留字段1
+ ///
+ [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// 预留字段2
+ ///
+ [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// 预留字段3
+ ///
+ [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// 预留字段4
+ ///
+ [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// 预留字段5
+ ///
+ [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// 预留字段6
+ ///
+ [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// 预留字段7
+ ///
+ [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// 预留字段8
+ ///
+ [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// 预留字段9
+ ///
+ [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// 预留字段10
+ ///
+ [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
+ public string Reverse10 { get; set; }
+
+ ///
+ /// 预留字段11
+ ///
+ public int? ReverseI1 { get; set; }
+
+ ///
+ /// 预留字段12
+ ///
+ public int? ReverseI2 { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/Edit/Ghre/Ghre_Question.Dto.EditInput.cs b/Tiobon.Core.Model/Edit/Ghre/Ghre_Question.Dto.EditInput.cs
new file mode 100644
index 00000000..d8124a44
--- /dev/null
+++ b/Tiobon.Core.Model/Edit/Ghre/Ghre_Question.Dto.EditInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_Question.cs
+*
+*功 能: N / A
+* 类 名: Ghre_Question
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:00:27 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目 (Dto.EditInput)
+ ///
+ public class EditGhre_QuestionInput : Ghre_QuestionBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Edit/Ghre/Ghre_QuestionAnswer.Dto.EditInput.cs b/Tiobon.Core.Model/Edit/Ghre/Ghre_QuestionAnswer.Dto.EditInput.cs
new file mode 100644
index 00000000..30d8a3b6
--- /dev/null
+++ b/Tiobon.Core.Model/Edit/Ghre/Ghre_QuestionAnswer.Dto.EditInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_QuestionAnswer.cs
+*
+*功 能: N / A
+* 类 名: Ghre_QuestionAnswer
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:02:39 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目答案 (Dto.EditInput)
+ ///
+ public class EditGhre_QuestionAnswerInput : Ghre_QuestionAnswerBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Insert/Ghre/Ghre_Question.Dto.InsertInput.cs b/Tiobon.Core.Model/Insert/Ghre/Ghre_Question.Dto.InsertInput.cs
new file mode 100644
index 00000000..aa0c9b9b
--- /dev/null
+++ b/Tiobon.Core.Model/Insert/Ghre/Ghre_Question.Dto.InsertInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_Question.cs
+*
+*功 能: N / A
+* 类 名: Ghre_Question
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:00:27 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目 (Dto.InsertInput)
+ ///
+ public class InsertGhre_QuestionInput : Ghre_QuestionBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Insert/Ghre/Ghre_QuestionAnswer.Dto.InsertInput.cs b/Tiobon.Core.Model/Insert/Ghre/Ghre_QuestionAnswer.Dto.InsertInput.cs
new file mode 100644
index 00000000..ef757248
--- /dev/null
+++ b/Tiobon.Core.Model/Insert/Ghre/Ghre_QuestionAnswer.Dto.InsertInput.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_QuestionAnswer.cs
+*
+*功 能: N / A
+* 类 名: Ghre_QuestionAnswer
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:02:39 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目答案 (Dto.InsertInput)
+ ///
+ public class InsertGhre_QuestionAnswerInput : Ghre_QuestionAnswerBase
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/Models/Ghre/Ghre_Question.cs b/Tiobon.Core.Model/Models/Ghre/Ghre_Question.cs
new file mode 100644
index 00000000..74819a23
--- /dev/null
+++ b/Tiobon.Core.Model/Models/Ghre/Ghre_Question.cs
@@ -0,0 +1,142 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_Question.cs
+*
+*功 能: N / A
+* 类 名: Ghre_Question
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:00:27 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using SqlSugar;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目 (Model)
+ ///
+ [SugarTable("Ghre_Question", "Ghre_Question"), Entity(TableCnName = "题目", TableName = "Ghre_Question")]
+ public class Ghre_Question : BasePoco
+ {
+
+ ///
+ /// 课程Ids
+ ///
+ [Display(Name = "CourseIds"), Description("课程Ids"), MaxLength(2000, ErrorMessage = "课程Ids 不能超过 2000 个字符")]
+ public string CourseIds { get; set; }
+
+ ///
+ /// 题目编号
+ ///
+ [Display(Name = "CourseINo"), Description("题目编号"), MaxLength(32, ErrorMessage = "题目编号 不能超过 32 个字符")]
+ public string CourseINo { get; set; }
+
+ ///
+ /// 难易程度
+ ///
+ [Display(Name = "DifficultyLevel"), Description("难易程度"), MaxLength(32, ErrorMessage = "难易程度 不能超过 32 个字符")]
+ public string DifficultyLevel { get; set; }
+
+ ///
+ /// 题目类型
+ ///
+ [Display(Name = "CourseType"), Description("题目类型"), MaxLength(32, ErrorMessage = "题目类型 不能超过 32 个字符")]
+ public string CourseType { get; set; }
+
+ ///
+ /// 题目内容
+ ///
+ [Display(Name = "CourseContent"), Description("题目内容"), MaxLength(2000, ErrorMessage = "题目内容 不能超过 2000 个字符")]
+ public string CourseContent { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 默认标志
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// 预留字段1
+ ///
+ [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// 预留字段2
+ ///
+ [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// 预留字段3
+ ///
+ [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// 预留字段4
+ ///
+ [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// 预留字段5
+ ///
+ [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// 预留字段6
+ ///
+ [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// 预留字段7
+ ///
+ [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// 预留字段8
+ ///
+ [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// 预留字段9
+ ///
+ [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// 预留字段10
+ ///
+ [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
+ public string Reverse10 { get; set; }
+
+ ///
+ /// 预留字段11
+ ///
+ public int? ReverseI1 { get; set; }
+
+ ///
+ /// 预留字段12
+ ///
+ public int? ReverseI2 { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/Models/Ghre/Ghre_QuestionAnswer.cs b/Tiobon.Core.Model/Models/Ghre/Ghre_QuestionAnswer.cs
new file mode 100644
index 00000000..2df4483d
--- /dev/null
+++ b/Tiobon.Core.Model/Models/Ghre/Ghre_QuestionAnswer.cs
@@ -0,0 +1,139 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_QuestionAnswer.cs
+*
+*功 能: N / A
+* 类 名: Ghre_QuestionAnswer
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:02:39 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+using System.ComponentModel;
+using System.ComponentModel.DataAnnotations;
+using SqlSugar;
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目答案 (Model)
+ ///
+ [SugarTable("Ghre_QuestionAnswer", "Ghre_QuestionAnswer"), Entity(TableCnName = "题目答案", TableName = "Ghre_QuestionAnswer")]
+ public class Ghre_QuestionAnswer : BasePoco
+ {
+
+ ///
+ /// 题目ID
+ ///
+ public long? QuestionId { get; set; }
+
+ ///
+ /// 答案内容
+ ///
+ [Display(Name = "AnswerContent"), Description("答案内容"), MaxLength(32, ErrorMessage = "答案内容 不能超过 32 个字符")]
+ public string AnswerContent { get; set; }
+
+ ///
+ /// 是否为正确答案
+ ///
+ public bool? IsCorrect { get; set; }
+
+ ///
+ /// 图片地址
+ ///
+ [Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 64 个字符")]
+ public string ImageUrl { get; set; }
+
+ ///
+ /// 排序号
+ ///
+ public int? TaxisNo { get; set; }
+
+ ///
+ /// 备注
+ ///
+ [Display(Name = "RemarkSz"), Description("备注"), MaxLength(2000, ErrorMessage = "备注 不能超过 2000 个字符")]
+ public string RemarkSz { get; set; }
+
+ ///
+ /// 默认标志
+ ///
+ public int? IsDefault { get; set; }
+
+ ///
+ /// 预留字段1
+ ///
+ [Display(Name = "Reverse1"), Description("预留字段1"), MaxLength(1000, ErrorMessage = "预留字段1 不能超过 1000 个字符")]
+ public string Reverse1 { get; set; }
+
+ ///
+ /// 预留字段2
+ ///
+ [Display(Name = "Reverse2"), Description("预留字段2"), MaxLength(1000, ErrorMessage = "预留字段2 不能超过 1000 个字符")]
+ public string Reverse2 { get; set; }
+
+ ///
+ /// 预留字段3
+ ///
+ [Display(Name = "Reverse3"), Description("预留字段3"), MaxLength(1000, ErrorMessage = "预留字段3 不能超过 1000 个字符")]
+ public string Reverse3 { get; set; }
+
+ ///
+ /// 预留字段4
+ ///
+ [Display(Name = "Reverse4"), Description("预留字段4"), MaxLength(1000, ErrorMessage = "预留字段4 不能超过 1000 个字符")]
+ public string Reverse4 { get; set; }
+
+ ///
+ /// 预留字段5
+ ///
+ [Display(Name = "Reverse5"), Description("预留字段5"), MaxLength(1000, ErrorMessage = "预留字段5 不能超过 1000 个字符")]
+ public string Reverse5 { get; set; }
+
+ ///
+ /// 预留字段6
+ ///
+ [Display(Name = "Reverse6"), Description("预留字段6"), MaxLength(1000, ErrorMessage = "预留字段6 不能超过 1000 个字符")]
+ public string Reverse6 { get; set; }
+
+ ///
+ /// 预留字段7
+ ///
+ [Display(Name = "Reverse7"), Description("预留字段7"), MaxLength(1000, ErrorMessage = "预留字段7 不能超过 1000 个字符")]
+ public string Reverse7 { get; set; }
+
+ ///
+ /// 预留字段8
+ ///
+ [Display(Name = "Reverse8"), Description("预留字段8"), MaxLength(1000, ErrorMessage = "预留字段8 不能超过 1000 个字符")]
+ public string Reverse8 { get; set; }
+
+ ///
+ /// 预留字段9
+ ///
+ [Display(Name = "Reverse9"), Description("预留字段9"), MaxLength(1000, ErrorMessage = "预留字段9 不能超过 1000 个字符")]
+ public string Reverse9 { get; set; }
+
+ ///
+ /// 预留字段10
+ ///
+ [Display(Name = "Reverse10"), Description("预留字段10"), MaxLength(1000, ErrorMessage = "预留字段10 不能超过 1000 个字符")]
+ public string Reverse10 { get; set; }
+
+ ///
+ /// 预留字段11
+ ///
+ public int? ReverseI1 { get; set; }
+
+ ///
+ /// 预留字段12
+ ///
+ public int? ReverseI2 { get; set; }
+ }
+}
diff --git a/Tiobon.Core.Model/View/Ghre/Ghre_Question.Dto.View.cs b/Tiobon.Core.Model/View/Ghre/Ghre_Question.Dto.View.cs
new file mode 100644
index 00000000..2e4d609b
--- /dev/null
+++ b/Tiobon.Core.Model/View/Ghre/Ghre_Question.Dto.View.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_Question.cs
+*
+*功 能: N / A
+* 类 名: Ghre_Question
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:00:27 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目(Dto.View)
+ ///
+ public class Ghre_QuestionDto : Ghre_Question
+ {
+ }
+}
diff --git a/Tiobon.Core.Model/View/Ghre/Ghre_QuestionAnswer.Dto.View.cs b/Tiobon.Core.Model/View/Ghre/Ghre_QuestionAnswer.Dto.View.cs
new file mode 100644
index 00000000..74839476
--- /dev/null
+++ b/Tiobon.Core.Model/View/Ghre/Ghre_QuestionAnswer.Dto.View.cs
@@ -0,0 +1,27 @@
+/* 代码由框架生成,任何更改都可能导致被代码生成器覆盖,可自行修改。
+* Ghre_QuestionAnswer.cs
+*
+*功 能: N / A
+* 类 名: Ghre_QuestionAnswer
+*
+* Ver 变更日期 负责人 变更内容
+* ───────────────────────────────────
+*V0.01 2024/4/28 11:02:39 SimonHsiao 初版
+*
+* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
+*┌──────────────────────────────────┐
+*│ 此技术信息为本公司机密信息,未经本公司书面同意禁止向第三方披露. │
+*│ 作者:SimonHsiao │
+*└──────────────────────────────────┘
+*/
+
+namespace Tiobon.Core.Model.Models
+{
+
+ ///
+ /// 题目答案(Dto.View)
+ ///
+ public class Ghre_QuestionAnswerDto : Ghre_QuestionAnswer
+ {
+ }
+}
diff --git a/Tiobon.Core.Services/Ghre/Ghre_QuestionAnswerServices.cs b/Tiobon.Core.Services/Ghre/Ghre_QuestionAnswerServices.cs
new file mode 100644
index 00000000..a511f81d
--- /dev/null
+++ b/Tiobon.Core.Services/Ghre/Ghre_QuestionAnswerServices.cs
@@ -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
+{
+ ///
+ /// 题目答案 (服务)
+ ///
+ public class Ghre_QuestionAnswerServices : BaseServices, IGhre_QuestionAnswerServices
+ {
+ private readonly IBaseRepository _dal;
+ public Ghre_QuestionAnswerServices(IBaseRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ }
+ }
+}
\ No newline at end of file
diff --git a/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs
new file mode 100644
index 00000000..d3536607
--- /dev/null
+++ b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs
@@ -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
+{
+ ///
+ /// 题目 (服务)
+ ///
+ public class Ghre_QuestionServices : BaseServices, IGhre_QuestionServices
+ {
+ private readonly IBaseRepository _dal;
+ public Ghre_QuestionServices(IBaseRepository dal)
+ {
+ this._dal = dal;
+ base.BaseDal = dal;
+ }
+ }
+}
\ No newline at end of file