课程管理 重新开发

master
xiaochanghai 1 year ago
parent 937215c864
commit 8c4df64adf
  1. 1452
      Model/Tiobon.Web.pdm
  2. 23
      Tiobon.Core.Api/Controllers/Ghre/Ghre_CourseController.cs
  3. 26
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  4. 8
      Tiobon.Core.Api/Tiobon.Core.xml
  5. 8
      Tiobon.Core.IServices/Ghre/IGhre_CourseServices.cs
  6. 14
      Tiobon.Core.Model/Base/Ghre/Ghre_Course.Dto.Base.cs
  7. 14
      Tiobon.Core.Model/Models/Ghre/Ghre_Course.cs
  8. 20
      Tiobon.Core.Model/View/Ghre/Ghre_Course.Dto.View.cs
  9. 11
      Tiobon.Core.Services/CommonServices.cs
  10. 250
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  11. 5
      Tiobon.Core.Services/Ghre/Ghre_ExamPaperServices.cs
  12. 4
      Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs
  13. 26
      Tiobon.Core/Tiobon.Core.Model.xml
  14. 8
      Tiobon.Core/Tiobon.Core.xml

File diff suppressed because it is too large Load Diff

@ -11,4 +11,27 @@ public class Ghre_CourseController : BaseController<IGhre_CourseServices, Ghre_C
public Ghre_CourseController(IGhre_CourseServices service) : base(service)
{
}
#region 查询
/// <summary>
/// 根据条件查询数据
/// </summary>
/// <param name="status">status</param>
/// <param name="body">条件</param>
/// <returns></returns>
[HttpPost, Route("QueryList/{status}")]
public async Task<ServicePageResult<Ghre_CourseDto>> QueryList(string status, [FromBody] QueryBody body)
{
var data = await _service.QueryList(body, status);
return data;
}
[HttpPost, Route("QueryDeptID/{StaffID}")]
public async Task<ServiceResult<int>> QueryDeptID(int StaffID)
{
var data = await _service.QueryDeptID(StaffID);
return data;
}
#endregion
}

@ -955,22 +955,22 @@
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.标准工时">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.StandardHour">
<summary>
标准工时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.学分">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CreditPoints">
<summary>
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.课程负责人">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.ManagerId">
<summary>
课程负责人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.课程负责人部门ID">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.ManagerDeptId">
<summary>
课程负责人部门ID
</summary>
@ -1045,6 +1045,11 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.RemarkSz">
<summary>
备注
@ -4318,22 +4323,22 @@
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.标准工时">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.StandardHour">
<summary>
标准工时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.学分">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CreditPoints">
<summary>
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.课程负责人">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.ManagerId">
<summary>
课程负责人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.课程负责人部门ID">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.ManagerDeptId">
<summary>
课程负责人部门ID
</summary>
@ -4408,6 +4413,11 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.RemarkSz">
<summary>
备注

@ -580,6 +580,14 @@
课程(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_CourseController.QueryList(System.String,Tiobon.Core.Common.QueryBody)">
<summary>
根据条件查询数据
</summary>
<param name="status">status</param>
<param name="body">条件</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_CourseSceneController">
<summary>
课程场景(Controller)

@ -1,4 +1,6 @@
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Common;
using Tiobon.Core.IServices.BASE;
using Tiobon.Core.Model;
using Tiobon.Core.Model.Models;
namespace Tiobon.Core.IServices
@ -8,5 +10,9 @@ namespace Tiobon.Core.IServices
/// </summary>
public interface IGhre_CourseServices :IBaseServices<Ghre_Course, Ghre_CourseDto, InsertGhre_CourseInput, EditGhre_CourseInput>
{
Task<ServicePageResult<Ghre_CourseDto>> QueryList(QueryBody filter, string status);
Task<ServiceResult<int>> QueryDeptID(int StaffID);
}
}

@ -63,22 +63,22 @@ namespace Tiobon.Core.Model.Models
/// <summary>
/// 标准工时
/// </summary>
public int? { get; set; }
public int? StandardHour { get; set; }
/// <summary>
/// 学分
/// </summary>
public int? { get; set; }
public int? CreditPoints { get; set; }
/// <summary>
/// 课程负责人
/// </summary>
public long? { get; set; }
public long? ManagerId { get; set; }
/// <summary>
/// 课程负责人部门ID
/// </summary>
public long? ID { get; set; }
public long? ManagerDeptId { get; set; }
/// <summary>
/// 内/外训
@ -157,6 +157,12 @@ namespace Tiobon.Core.Model.Models
[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>

@ -65,22 +65,22 @@ namespace Tiobon.Core.Model.Models
/// <summary>
/// 标准工时
/// </summary>
public int? { get; set; }
public int? StandardHour { get; set; }
/// <summary>
/// 学分
/// </summary>
public int? { get; set; }
public int? CreditPoints { get; set; }
/// <summary>
/// 课程负责人
/// </summary>
public long? { get; set; }
public long? ManagerId { get; set; }
/// <summary>
/// 课程负责人部门ID
/// </summary>
public long? ID { get; set; }
public long? ManagerDeptId { get; set; }
/// <summary>
/// 内/外训
@ -159,6 +159,12 @@ namespace Tiobon.Core.Model.Models
[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>

@ -26,13 +26,25 @@ public class Ghre_CourseDto : Ghre_Course
/// 课程分类
/// </summary>
public string CourseClassName { get; set; }
public string CourseClassName2 { get; set; }
public string CourseSceneName { get; set; }
public string CourseWareName { get; set; }
public string ManagerStaffName { get; set; }
public string CreateName { get; set; }
public string UpdateName { get; set; }
public string ChargeMethodLabel { get; set; }
public string TeacherName { get; set; }
public string InOrOutLabel { get; set; }
public string IsOPenLabel { get; set; }
/// <summary>
/// 创建信息
/// </summary>
public string CreateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
/// <summary>
/// 修改信息
/// </summary>
public string UpdateDataInfo { get; set; }
}

@ -939,7 +939,14 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
icon = "ghr-publish",
position = "left"
});
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "NewYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD1YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "UpdateYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD2YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "CopyYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD3YN"; }
toolbar = result.JM_PageControlT1.Toolbar.Where(x => x.fnKey == "DetailYN").FirstOrDefault();
if (toolbar != null) { toolbar.fnKey = "TBD4YN"; }
break;
case "F_Training_Course_Released":
@ -1015,7 +1022,7 @@ public partial class CommonServices : BaseServices<RootEntityTkey<int>>, ICommon
];
TableColumn.Add(searchItem);
sql = "SELECT Id, CourseNo, CourseName FROM Ghre_Course";
sql = "SELECT Id, CourseNo, CourseName FROM Ghre_Course WHERE IsEnable=1 AND Status='Released'";
dt = await Db.Ado.GetDataTableAsync(sql);
for (int i = 0; i < dt.Rows.Count; i++)

@ -6,7 +6,11 @@ using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Common.Caches;
using Tiobon.Core.Common;
using Tiobon.Core.Model;
using AgileObjects.AgileMapper;
using Newtonsoft.Json.Linq;
using SqlSugar;
using Newtonsoft.Json;
using MySqlX.XDevAPI.Common;
using System.Data;
namespace Tiobon.Core.Services;
@ -27,21 +31,247 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
base._caching = caching;
}
public override async Task<ServicePageResult<Ghre_CourseDto>> QueryFilterPage(QueryBody body)
public override async Task<ServicePageResult<Ghre_CourseDto>> QueryFilterPage(QueryBody filter)
{
var data = await BaseDal.QueryFilterPage(body);
var list = Mapper.Map(data.result.DT_TableDataT1).ToANew<List<Ghre_CourseDto>>();
RefAsync<int> totalCount = 0;
string sql = @"SELECT *
FROM (SELECT A.*,
B.ClassName CourseClassName,
C.ClassName CourseClassName2,
D.SceneName CourseSceneName,
E.CourseWareName,
F.StaffName ManagerStaffName,
G.UserName CreateName,
G.UserName UpdateName,
CASE A.InOrOut
WHEN 'In' THEN F.StaffName
WHEN 'Out' THEN J.TeacherName
END TeacherName
FROM Ghre_Course A
LEFT JOIN Ghre_CourseClass B ON A.CourseClassId = B.Id
LEFT JOIN Ghre_CourseClass C ON A.CourseClassId2 = C.Id
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
LEFT JOIN Ghra_Staff F ON A.ManagerId = F.StaffID
LEFT JOIN Ghrs_User G ON A.CreateBy = G.UserId
LEFT JOIN Ghrs_User H ON A.UpdateBy = H.UserId
LEFT JOIN Ghra_Staff I ON A.TeacherId = I.StaffID
LEFT JOIN Ghre_Teacher J ON A.SchoolTeacherId = I.StaffID
WHERE A.IsEnable = 1) A";
var classIds = list.Select(x => x.CourseClassId).Distinct().ToList();
var classs = await _ghre_CourseClassServices.Query(x => classIds.Contains(x.Id));
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime DESC";
list.ForEach(x =>
string conditions = "1=1";
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
if (x.CourseClassId != null)
x.CourseClassName = classs.FirstOrDefault(o => o.Id == x.CourseClassId)?.ClassName;
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
if (!string.IsNullOrWhiteSpace(value))
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
switch (jsonParam.operationKey)
{
case "Include":
conditions += $" AND {name} LIKE '%{jsonParam.columnValue}%'";
break;
case "NotInclude":
conditions += $" AND {name} NOT LIKE '%{jsonParam.columnValue}%'";
break;
case "IsNull":
conditions += $" AND {name} IS NULL";
break;
case "NotNull":
conditions += $" AND {name} IS NOT NULL";
break;
case "Equal":
conditions += $" AND {name} ='{jsonParam.columnValue}'";
break;
case "NotEqual":
conditions += $" AND {name} !='{jsonParam.columnValue}'";
break;
default:
break;
}
}
}
if (filter.pageSize == 0)
filter.pageSize = 10000;
var data = await Db.SqlQueryable<Ghre_CourseDto>(sql)
.OrderBy(filter.orderBy)
.ToPageListAsync(filter.pageNum, filter.pageSize, totalCount);
data.ForEach(async x =>
{
x.ChargeMethodLabel = await GetParaLabel("CourseChargeMethod", x.ChargeMethod);
x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
x.IsOPenLabel = x.IsOPen == true ? "是" : "否";
});
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);
}
public async Task<ServicePageResult<Ghre_CourseDto>> QueryList(QueryBody filter, string status)
{
RefAsync<int> totalCount = 0;
string sql = @"SELECT *
FROM (SELECT A.*,
B.ClassName CourseClassName,
C.ClassName CourseClassName2,
D.SceneName CourseSceneName,
E.CourseWareName,
F.StaffName ManagerStaffName,
G.UserName CreateName,
G.UserName UpdateName,
CASE A.InOrOut
WHEN 'In' THEN F.StaffName
WHEN 'Out' THEN J.TeacherName
END TeacherName
FROM Ghre_Course A
LEFT JOIN Ghre_CourseClass B ON A.CourseClassId = B.Id
LEFT JOIN Ghre_CourseClass C ON A.CourseClassId2 = C.Id
LEFT JOIN Ghre_CourseScene D ON A.CourseSceneId = D.Id
LEFT JOIN Ghre_CourseWare E ON A.CourseWareId = E.Id
LEFT JOIN Ghra_Staff F ON A.ManagerId = F.StaffID
LEFT JOIN Ghrs_User G ON A.CreateBy = G.UserId
LEFT JOIN Ghrs_User H ON A.UpdateBy = H.UserId
LEFT JOIN Ghra_Staff I ON A.TeacherId = I.StaffID
LEFT JOIN Ghre_Teacher J ON A.SchoolTeacherId = I.StaffID
WHERE A.IsEnable = 1) A";
if (string.IsNullOrWhiteSpace(filter.orderBy))
filter.orderBy = "CreateTime DESC";
string conditions = " WHERE 1=1";
if (!string.IsNullOrWhiteSpace(status))
conditions += $" AND Status ='{status}'";
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "page" || name == "pageSize")
continue;
if (!string.IsNullOrWhiteSpace(value))
{
var jsonParam = JsonConvert.DeserializeObject<JsonParam>(value);
if (name == "CourseNoOrName")
{
conditions += $" AND ( CourseNo LIKE '%{jsonParam.columnValue}%' OR CourseName LIKE '%{jsonParam.columnValue}%')";
continue;
}
switch (jsonParam.operationKey)
{
case "Include":
conditions += $" AND {name} LIKE '%{jsonParam.columnValue}%'";
break;
case "NotInclude":
conditions += $" AND {name} NOT LIKE '%{jsonParam.columnValue}%'";
break;
case "IsNull":
conditions += $" AND {name} IS NULL";
break;
case "NotNull":
conditions += $" AND {name} IS NOT NULL";
break;
case "Equal":
conditions += $" AND {name} ='{jsonParam.columnValue}'";
break;
case "NotEqual":
conditions += $" AND {name} !='{jsonParam.columnValue}'";
break;
default:
break;
}
}
}
if (filter.pageSize == 0)
filter.pageSize = 10000;
sql += conditions;
var data = await Db.SqlQueryable<Ghre_CourseDto>(sql)
.OrderBy(filter.orderBy)
.ToPageListAsync(filter.pageNum, filter.pageSize, totalCount);
data.ForEach(async x =>
{
x.ChargeMethodLabel = await GetParaLabel("CourseChargeMethod", x.ChargeMethod);
x.InOrOutLabel = await GetParaLabel("CourseInOrOut", x.InOrOut);
x.IsOPenLabel = x.IsOPen == true ? "是" : "否";
});
return new ServicePageResult<Ghre_CourseDto>(body.pageNum, data.result.DT_TablePageInfoT1.TotalCount, body.pageSize, list);
return new ServicePageResult<Ghre_CourseDto>(filter.pageNum, totalCount, filter.pageSize, data);
}
public async Task<ServiceResult<int>> QueryDeptID(int StaffID)
{
string sql = $"SELECT A.DeptID from Ghra_Staff A LEFT JOIN Ghro_Dept B ON A.DeptID = B.DeptID WHERE A.StaffID='{StaffID}'";
int id = await Db.Ado.GetIntAsync(sql);
return ServiceResult<int>.OprateSuccess("查询成功!", id);
}
public async Task<ServiceResult<CommonSelect>> QueryTeacher(long schoolId)
{
var result = new CommonSelect();
JArray TableColumn = new JArray();
JArray DT_TablePageInfoT1 = new JArray();
JArray DT_TableDataT1 = new JArray();
JObject searchItem = new JObject();
JObject item;
DataTable dt;
string sql;
searchItem = [
new JProperty("defaultHidden", true),
new JProperty("field","value"),
new JProperty("label","讲师ID"),
];
TableColumn.Add(searchItem);
searchItem = [
new JProperty("field","label"),
new JProperty("label","讲师名称"),
];
TableColumn.Add(searchItem);
sql = $"SELECT Id, TeacherNo , TeacherName FROM Ghre_Teacher WHERE IsEnable=1 AND SchoolId ='{schoolId}'";
dt = await Db.Ado.GetDataTableAsync(sql);
for (int i = 0; i < dt.Rows.Count; i++)
{
item = [
new JProperty("value",long.Parse(dt.Rows[i]["Id"].ToString())),
new JProperty("label",dt.Rows[i]["TeacherNo"].ToString()+"-"+dt.Rows[i]["TeacherName"].ToString())
];
DT_TableDataT1.Add(item);
}
item = [
new JProperty("ListMax",100),
new JProperty("ListMin",10),
new JProperty("PageNum",1),
new JProperty("PageSize",99999),
new JProperty("TotalCount",dt.Rows.Count),
new JProperty("UIType","Auto")
];
DT_TablePageInfoT1.Add(item);
result.JM_TableColumnT1.TableColumn = TableColumn;
result.DT_TableDataT1 = DT_TableDataT1;
result.DT_TablePageInfoT1 = DT_TablePageInfoT1;
return new ServiceResult<CommonSelect>() { Success = true, Message = "查询成功", Data = result, };
}
}

@ -1,5 +1,6 @@

using System.Data;
using System.Net;
using System.Text.RegularExpressions;
using AgileObjects.AgileMapper;
using Microsoft.AspNetCore.Http;
@ -481,6 +482,8 @@ namespace Tiobon.Core.Services
var answers1 = answers.Where(y => y.QuestionId == x.QuestionId).ToList();
x.QuestionType = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.QuestionType;
x.QuestionContent = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.QuestionContent;
if (!string.IsNullOrEmpty(x.QuestionContent))
x.QuestionContent = WebUtility.HtmlDecode(x.QuestionContent);
//var detail = questions1.Select(o =>
//new FromGhre_QuestionQuestionTypeDetail()
@ -779,7 +782,7 @@ delete from Ghre_ExamPaperQuestion WHERE ExamPaperId='{id}';");
];
TableColumn.Add(searchItem);
sql = $"SELECT Id, PaperNo, PaperName FROM Ghre_ExamPaper WHERE LinkId='{linkId}' AND IsEnable=1 ORDER BY CreateTime DESC";
sql = $"SELECT Id, PaperNo, PaperName FROM Ghre_ExamPaper WHERE LinkId='{linkId}' AND Status ='Released' AND IsEnable=1 ORDER BY CreateTime DESC";
dt = await Db.Ado.GetDataTableAsync(sql);
for (int i = 0; i < dt.Rows.Count; i++)

@ -219,6 +219,7 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt
{
x.DifficultyLevelLabel = await GetParaLabel("DifficultyLevel", x.DifficultyLevel);
x.QuestionTypeLabel = await GetParaLabel("QuestionType", x.QuestionType);
if (!string.IsNullOrEmpty(x.QuestionContent))
x.QuestionContent = WebUtility.HtmlDecode(x.QuestionContent);
});
@ -379,6 +380,7 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt
questionType.detail.answer = answers.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo;
questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList();
questionType.detail.content = question.QuestionContent;
if (!string.IsNullOrEmpty(questionType.detail.content))
questionType.detail.content = WebUtility.HtmlDecode(questionType.detail.content);
questionType.detail.RemarkSz = question.QuestionAnalysis;
@ -420,6 +422,7 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt
{
string questionTypeName = ConvertQuestionType(questionType.type);
if (!string.IsNullOrEmpty(questionType.detail.content))
questionType.detail.content = WebUtility.HtmlEncode(questionType.detail.content);
#region 判断是否重复
@ -491,6 +494,7 @@ public class Ghre_QuestionServices : BaseServices<Ghre_Question, Ghre_QuestionDt
var questionType = editModel.questionType.Where(x => x.isActive == 1).FirstOrDefault();
if (!string.IsNullOrEmpty(questionType.detail.content))
questionType.detail.content = WebUtility.HtmlEncode(questionType.detail.content);
#region 填空题处理

@ -955,22 +955,22 @@
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.标准工时">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.StandardHour">
<summary>
标准工时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.学分">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.CreditPoints">
<summary>
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.课程负责人">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.ManagerId">
<summary>
课程负责人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.课程负责人部门ID">
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.ManagerDeptId">
<summary>
课程负责人部门ID
</summary>
@ -1045,6 +1045,11 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_CourseBase.RemarkSz">
<summary>
备注
@ -4318,22 +4323,22 @@
课件ID
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.标准工时">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.StandardHour">
<summary>
标准工时
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.学分">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.CreditPoints">
<summary>
学分
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.课程负责人">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.ManagerId">
<summary>
课程负责人
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.课程负责人部门ID">
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.ManagerDeptId">
<summary>
课程负责人部门ID
</summary>
@ -4408,6 +4413,11 @@
课前准备
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.Status">
<summary>
状态
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Course.RemarkSz">
<summary>
备注

@ -580,6 +580,14 @@
课程(Controller)
</summary>
</member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_CourseController.QueryList(System.String,Tiobon.Core.Common.QueryBody)">
<summary>
根据条件查询数据
</summary>
<param name="status">status</param>
<param name="body">条件</param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_CourseSceneController">
<summary>
课程场景(Controller)

Loading…
Cancel
Save