课程维护新增场景支持多选维护

master
xiaochanghai 5 months ago
parent 437ded7b54
commit ae573d44d5
  1. 6044
      Model/Tiobon.Web.pdm
  2. 100
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 59
      Tiobon.Core.Model/Base/Ghre/Ghre_Course.Dto.Base.cs
  4. 1
      Tiobon.Core.Model/Edit/Ghre/Ghre_Course.Dto.EditInput.cs
  5. 1
      Tiobon.Core.Model/Insert/Ghre/Ghre_Course.Dto.InsertInput.cs
  6. 59
      Tiobon.Core.Model/Models/Ghre/Ghre_Course.cs
  7. 1
      Tiobon.Core.Model/View/Ghre/Ghre_Course.Dto.View.cs
  8. 24
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  9. 100
      Tiobon.Core/Tiobon.Core.Model.xml

File diff suppressed because it is too large Load Diff

@ -2675,11 +2675,21 @@
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseClassId2">
<summary>
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseSceneId">
<summary>
课程场景ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseSceneIds">
<summary>
课程场景ID2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseWareId">
<summary>
课件ID
@ -2765,6 +2775,16 @@
封面图
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Outline">
<summary>
课程大纲
@ -2775,6 +2795,16 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.RemarkSz">
<summary>
备注
@ -2850,26 +2880,6 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CourseClassBase">
<summary>
课程分类 (Dto.Base)
@ -16641,11 +16651,21 @@
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseClassId2">
<summary>
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseSceneId">
<summary>
课程场景ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseSceneIds">
<summary>
课程场景ID2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseWareId">
<summary>
课件ID
@ -16731,6 +16751,16 @@
封面图
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Outline">
<summary>
课程大纲
@ -16741,6 +16771,16 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.RemarkSz">
<summary>
备注
@ -16816,26 +16856,6 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CourseClass">
<summary>
课程分类 (Model)

@ -6,9 +6,9 @@
*
* Ver
*
*V0.01 2024/12/26 9:54:09 SimonHsiao
*V0.01 2025/2/6 14:16:52 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
@ -41,11 +41,22 @@ public class Ghre_CourseBase
[Display(Name = "CourseClassId"), Description("课程分类ID"), MaxLength(2000, ErrorMessage = "课程分类ID 不能超过 2000 个字符")]
public string CourseClassId { get; set; }
/// <summary>
/// 课程分类ID
/// </summary>
public long? CourseClassId2 { get; set; }
/// <summary>
/// 课程场景ID
/// </summary>
public long? CourseSceneId { get; set; }
/// <summary>
/// 课程场景ID2
/// </summary>
[Display(Name = "CourseSceneIds"), Description("课程场景ID2"), MaxLength(2000, ErrorMessage = "课程场景ID2 不能超过 2000 个字符")]
public string CourseSceneIds { get; set; }
/// <summary>
/// 课件ID
/// </summary>
@ -138,6 +149,17 @@ public class Ghre_CourseBase
[Display(Name = "CoverUrl"), Description("封面图"), MaxLength(2000, ErrorMessage = "封面图 不能超过 2000 个字符")]
public string CoverUrl { 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; }
/// <summary>
/// 课程大纲
/// </summary>
@ -150,6 +172,17 @@ public class Ghre_CourseBase
[Display(Name = "BeforeReady"), Description("课前准备"), MaxLength(2000, ErrorMessage = "课前准备 不能超过 2000 个字符")]
public string BeforeReady { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime? PublishTime { get; set; }
/// <summary>
/// 备注
/// </summary>
@ -235,26 +268,4 @@ public class Ghre_CourseBase
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { 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; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime? PublishTime { get; set; }
}

@ -29,4 +29,5 @@ public class EditGhre_CourseInput : Ghre_CourseBase
public string IsOPenLabel { get; set; }
public List<long> CourseSceneIds1 { get; set; } = new List<long>();
}

@ -26,6 +26,7 @@ public class InsertGhre_CourseInput : Ghre_CourseBase
public List<long> ExamPaperIds { get; set;}
public List<long> CourseClassIds { get; set; }
public string IsOPenLabel { get; set; }
public List<long> CourseSceneIds1 { get; set; } = new List<long>();
}

@ -6,9 +6,9 @@
*
* Ver
*
*V0.01 2024/12/26 9:54:09 SimonHsiao
*V0.01 2025/2/6 14:16:52 SimonHsiao
*
* Copyright(c) 2024 Tiobon Corporation. All Rights Reserved.
* Copyright(c) 2025 Tiobon Corporation. All Rights Reserved.
*
*  
* SimonHsiao
@ -42,11 +42,22 @@ public class Ghre_Course : BasePoco
[Display(Name = "CourseClassId"), Description("课程分类ID"), MaxLength(2000, ErrorMessage = "课程分类ID 不能超过 2000 个字符")]
public string CourseClassId { get; set; }
/// <summary>
/// 课程分类ID
/// </summary>
public long? CourseClassId2 { get; set; }
/// <summary>
/// 课程场景ID
/// </summary>
public long? CourseSceneId { get; set; }
/// <summary>
/// 课程场景ID2
/// </summary>
[Display(Name = "CourseSceneIds"), Description("课程场景ID2"), MaxLength(2000, ErrorMessage = "课程场景ID2 不能超过 2000 个字符")]
public string CourseSceneIds { get; set; }
/// <summary>
/// 课件ID
/// </summary>
@ -139,6 +150,17 @@ public class Ghre_Course : BasePoco
[Display(Name = "CoverUrl"), Description("封面图"), MaxLength(2000, ErrorMessage = "封面图 不能超过 2000 个字符")]
public string CoverUrl { 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; }
/// <summary>
/// 课程大纲
/// </summary>
@ -151,6 +173,17 @@ public class Ghre_Course : BasePoco
[Display(Name = "BeforeReady"), Description("课前准备"), MaxLength(2000, ErrorMessage = "课前准备 不能超过 2000 个字符")]
public string BeforeReady { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { get; set; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime? PublishTime { get; set; }
/// <summary>
/// 备注
/// </summary>
@ -236,26 +269,4 @@ public class Ghre_Course : BasePoco
/// 预留字段12
/// </summary>
public int? ReverseI2 { get; set; }
/// <summary>
/// 状态
/// </summary>
[Display(Name = "Status"), Description("状态"), MaxLength(32, ErrorMessage = "状态 不能超过 32 个字符")]
public string Status { 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; }
/// <summary>
/// 发布时间
/// </summary>
public DateTime? PublishTime { get; set; }
}

@ -50,5 +50,6 @@ public class Ghre_CourseDto : Ghre_Course
public List<long> ExamPaperIds { get; set; } = new List<long>();
public List<long> CourseClassIds { get; set; } = new List<long>();
public List<long> CourseSceneIds1 { get; set; } = new List<long>();
}

@ -152,6 +152,18 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
classsIds = classsIds.Distinct().ToList();
var classs = await _ghre_CourseClassServices.Query(x => classsIds.Contains(x.Id));
var courseSceneIds1 = data.Select(x => x.CourseSceneIds).Distinct().ToList();
var courseSceneIds = new List<long>();
courseSceneIds1.ForEach(x =>
{
if (!string.IsNullOrWhiteSpace(x))
courseSceneIds = courseSceneIds.Concat(JsonConvert.DeserializeObject<List<long>>(x)).ToList();
});
courseSceneIds = courseSceneIds.Distinct().ToList();
var courseScenes = await Db.Queryable<Ghre_CourseScene>().Where(x => courseSceneIds.Contains(x.Id)).ToListAsync();
data.ForEach(async x =>
{
x.ChargeMethodLabel = await GetParaLabel("CourseChargeMethod", x.ChargeMethod);
@ -159,6 +171,11 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
x.IsOPenLabel = x.IsOpen == "1" ? "是" : "否";
var courseClass = classs.Where(a => x.CourseClassId.Contains(a.Id.ToString())).ToList();
x.CourseClassName = string.Join(",", courseClass.Select(a => a.ClassName + " (" + a.ClassNo + ")"));
if (x.CourseSceneIds.IsNotEmptyOrNull())
{
var courseScene = courseScenes.Where(a => x.CourseSceneIds.Contains(a.Id.ToString())).ToList();
x.CourseSceneName = string.Join(",", courseScene.Select(a => a.SceneName + " (" + a.SceneNo + ")"));
}
});
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);
@ -238,6 +255,10 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
if (!string.IsNullOrWhiteSpace(courseClassId))
result.result.DT_TableDataT1[0].CourseClassIds = JsonConvert.DeserializeObject<List<long>>(courseClassId);
string courseSceneIds = result.result.DT_TableDataT1[0].CourseSceneIds;
if (!string.IsNullOrWhiteSpace(courseSceneIds))
result.result.DT_TableDataT1[0].CourseSceneIds1 = JsonConvert.DeserializeObject<List<long>>(courseSceneIds);
else result.result.DT_TableDataT1[0].ExamPaperIds = new List<long>();
if (body.doType == "Copy")
@ -450,6 +471,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
{
entity.ExamPaperId = JsonHelper.ObjToJson(entity.ExamPaperIds);
entity.CourseClassId = JsonHelper.ObjToJson(entity.CourseClassIds);
entity.CourseSceneIds = JsonHelper.ObjToJson(entity.CourseSceneIds1);
entity.Status = DIC_COURSE_STATUS.DRAFT;
entity.DefaultCoverImageName = entity.DefaultCoverImageName ?? "defaultCourseCover1";
entity.UseDefaultCoverImage = entity.UseDefaultCoverImage ?? true;
@ -474,7 +496,7 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
editModel.ExamPaperId = JsonHelper.ObjToJson(editModel.ExamPaperIds);
editModel.CourseClassId = JsonHelper.ObjToJson(editModel.CourseClassIds);
editModel.CourseSceneIds = JsonHelper.ObjToJson(editModel.CourseSceneIds1);
if (!editModel.CourseClassId.IsNull())
{

@ -2675,11 +2675,21 @@
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseClassId2">
<summary>
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseSceneId">
<summary>
课程场景ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseSceneIds">
<summary>
课程场景ID2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CourseWareId">
<summary>
课件ID
@ -2765,6 +2775,16 @@
封面图
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Outline">
<summary>
课程大纲
@ -2775,6 +2795,16 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.RemarkSz">
<summary>
备注
@ -2850,26 +2880,6 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CourseClassBase">
<summary>
课程分类 (Dto.Base)
@ -16641,11 +16651,21 @@
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseClassId2">
<summary>
课程分类ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseSceneId">
<summary>
课程场景ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseSceneIds">
<summary>
课程场景ID2
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CourseWareId">
<summary>
课件ID
@ -16731,6 +16751,16 @@
封面图
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Outline">
<summary>
课程大纲
@ -16741,6 +16771,16 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.RemarkSz">
<summary>
备注
@ -16816,26 +16856,6 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.PublishTime">
<summary>
发布时间
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_CourseClass">
<summary>
课程分类 (Model)

Loading…
Cancel
Save