新增记录学习时长接口

master
xiaochanghai 11 months ago
parent 021884c0aa
commit 7db8d9b7de
  1. 14
      Tiobon.Core.Api/Controllers/Ghre/Ghre_StudyRecordController.cs
  2. 10
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 7
      Tiobon.Core.Api/Tiobon.Core.xml
  4. 2
      Tiobon.Core.IServices/Ghre/IGhre_StudyRecordServices.cs
  5. 5
      Tiobon.Core.Model/Base/Ghre/Ghre_StudyRecord.Dto.Base.cs
  6. 5
      Tiobon.Core.Model/Models/Ghre/Ghre_StudyRecord.cs
  7. 48
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  8. 10
      Tiobon.Core/Tiobon.Core.Model.xml
  9. 7
      Tiobon.Core/Tiobon.Core.xml

@ -65,4 +65,18 @@ public class Ghre_StudyRecordController : BaseController<IGhre_StudyRecordServic
return await _service.Join(id); return await _service.Join(id);
} }
#endregion #endregion
#region 记录学习时长
/// <summary>
/// 记录学习时长
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[HttpPost, Route("RecordDuration/{id}")]
public async Task<ServiceResult> RecordDuration([FromBody] InsertGhre_StudyRecordInput insert, long id)
{
return await _service.RecordDuration(id, insert.StudyDuration);
}
#endregion
} }

@ -3965,6 +3965,11 @@
学习进度 学习进度
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.StudyDuration">
<summary>
学习时长(分钟)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.CourseType"> <member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.CourseType">
<summary> <summary>
课程类型 课程类型
@ -9731,6 +9736,11 @@
学习进度 学习进度
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.StudyDuration">
<summary>
学习时长(分钟)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.CourseType"> <member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.CourseType">
<summary> <summary>
课程类型 课程类型

@ -969,6 +969,13 @@
<param name="id"></param> <param name="id"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_StudyRecordController.RecordDuration(Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput,System.Int64)">
<summary>
记录学习时长
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRuleController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRuleController">
<summary> <summary>
必选修规则(Controller) 必选修规则(Controller)

@ -19,5 +19,7 @@ namespace Tiobon.Core.IServices
Task<ServiceResult> Join(long courseId); Task<ServiceResult> Join(long courseId);
Task<ServiceResult> RecordDuration(long studyRecordId, decimal? duration);
} }
} }

@ -87,6 +87,11 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public int? StudyProgress { get; set; } public int? StudyProgress { get; set; }
/// <summary>
/// 学习时长(分钟)
/// </summary>
public decimal? StudyDuration { get; set; }
/// <summary> /// <summary>
/// 课程类型 /// 课程类型
/// </summary> /// </summary>

@ -88,6 +88,11 @@ namespace Tiobon.Core.Model.Models
/// </summary> /// </summary>
public int? StudyProgress { get; set; } public int? StudyProgress { get; set; }
/// <summary>
/// 学习时长(分钟)
/// </summary>
public decimal? StudyDuration { get; set; }
/// <summary> /// <summary>
/// 课程类型 /// 课程类型
/// </summary> /// </summary>

@ -9,6 +9,9 @@ using Tiobon.Core.Common;
using Tiobon.Core.Model; using Tiobon.Core.Model;
using Newtonsoft.Json; using Newtonsoft.Json;
using Tiobon.Core.Common.Helper; using Tiobon.Core.Common.Helper;
using MySqlX.XDevAPI.Common;
using SqlSugar;
using Google.Protobuf.WellKnownTypes;
namespace Tiobon.Core.Services namespace Tiobon.Core.Services
{ {
@ -450,8 +453,7 @@ namespace Tiobon.Core.Services
#endregion #endregion
#region 加入学习
#region 获取ESS查询条件
public async Task<ServiceResult> Join(long courseId) public async Task<ServiceResult> Join(long courseId)
{ {
var staffId = GetStaffId(); var staffId = GetStaffId();
@ -479,5 +481,45 @@ namespace Tiobon.Core.Services
return ServiceResult.OprateSuccess("加入成功!"); return ServiceResult.OprateSuccess("加入成功!");
} }
#endregion #endregion
#region 记录学习时长
public async Task<ServiceResult> RecordDuration(long studyRecordId, decimal? duration)
{
var staffId = GetStaffId();
var sql = $"UPDATE Ghre_StudyRecord SET StudyDuration = ISNULL(StudyDuration, 0)+{duration} WHERE Id='{studyRecordId}' AND StaffId='{staffId}'";
await Db.Ado.ExecuteCommandAsync(sql);
await Task.Factory.StartNew(async () => await GenerateStaffStudyRecord(Db, studyRecordId));
return ServiceResult.OprateSuccess("记录成功!");
}
public async Task<bool> GenerateStaffStudyRecord(ISqlSugarClient Db, long studyRecordId)
{
var record = await Db.Queryable<Ghre_StudyRecord>().FirstAsync(x => x.Id == studyRecordId);
decimal studyProgress = 0;
var sql = $@"SELECT ISNULL (A.Hours, 0) * 60 + A.Minutes Minutes
FROM Ghre_CourseWare A
WHERE A.Id IN
(SELECT CourseWareId
FROM Ghre_Course
WHERE Id = '{record.CourseId}'
OR CourseSceneId = '{record.CourseSceneId}' AND IsEnable = 1)";
var mins = await Db.Ado.GetDecimalAsync(sql);
if (mins > 0)
{
var duration = record.StudyDuration ?? 0;
studyProgress = (duration / mins)*100;
if (studyProgress > 100)
studyProgress = 100;
}
sql = $"UPDATE Ghre_StudyRecord SET StudyProgress = ISNULL(StudyProgress, 0)+{studyProgress} WHERE Id='{studyRecordId}'";
if (studyProgress > 0) await Db.Ado.ExecuteCommandAsync(sql);
return true;
}
#endregion
} }
} }

@ -3965,6 +3965,11 @@
学习进度 学习进度
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.StudyDuration">
<summary>
学习时长(分钟)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.CourseType"> <member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecordBase.CourseType">
<summary> <summary>
课程类型 课程类型
@ -9731,6 +9736,11 @@
学习进度 学习进度
</summary> </summary>
</member> </member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.StudyDuration">
<summary>
学习时长(分钟)
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.CourseType"> <member name="P:Tiobon.Core.Model.Models.Ghre_StudyRecord.CourseType">
<summary> <summary>
课程类型 课程类型

@ -969,6 +969,13 @@
<param name="id"></param> <param name="id"></param>
<returns></returns> <returns></returns>
</member> </member>
<member name="M:Tiobon.Core.Api.Controllers.Ghre_StudyRecordController.RecordDuration(Tiobon.Core.Model.Models.InsertGhre_StudyRecordInput,System.Int64)">
<summary>
记录学习时长
</summary>
<param name="id"></param>
<returns></returns>
</member>
<member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRuleController"> <member name="T:Tiobon.Core.Api.Controllers.Ghre_StudyRuleController">
<summary> <summary>
必选修规则(Controller) 必选修规则(Controller)

Loading…
Cancel
Save