|
|
|
@ -1,4 +1,7 @@ |
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
using MathNet.Numerics.Distributions; |
|
|
|
|
using Microsoft.EntityFrameworkCore.Metadata.Internal; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 开班管理 (服务) |
|
|
|
@ -7,17 +10,20 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas |
|
|
|
|
{ |
|
|
|
|
private readonly IGhre_OpenClassStaffServices _ghre_OpenClassStaffServices; |
|
|
|
|
private readonly IGhre_OpenClassFeeServices _ghre_OpenClassFeeServices; |
|
|
|
|
private readonly IGhre_OpenClassScheduleServices _ghre_OpenClassScheduleServices; |
|
|
|
|
private readonly IBaseRepository<Ghre_OpenClass> _dal; |
|
|
|
|
public Ghre_OpenClassServices(ICaching caching, |
|
|
|
|
IBaseRepository<Ghre_OpenClass> dal, |
|
|
|
|
IGhre_OpenClassStaffServices ghre_OpenClassStaffServices, |
|
|
|
|
IGhre_OpenClassFeeServices ghre_OpenClassFeeServices) |
|
|
|
|
IGhre_OpenClassFeeServices ghre_OpenClassFeeServices, |
|
|
|
|
IGhre_OpenClassScheduleServices ghre_OpenClassScheduleServices) |
|
|
|
|
{ |
|
|
|
|
this._dal = dal; |
|
|
|
|
base.BaseDal = dal; |
|
|
|
|
base._caching = caching; |
|
|
|
|
_ghre_OpenClassStaffServices = ghre_OpenClassStaffServices; |
|
|
|
|
_ghre_OpenClassFeeServices = ghre_OpenClassFeeServices; |
|
|
|
|
_ghre_OpenClassScheduleServices = ghre_OpenClassScheduleServices; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<ServicePageResult<Ghre_OpenClassDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) |
|
|
|
@ -59,13 +65,13 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas |
|
|
|
|
DT_TableDataT1.CourseOrSceneName = (await Db.Queryable<Ghre_CourseScene>().FirstAsync(x => x.Id == DT_TableDataT1.LinkId))?.SceneName; |
|
|
|
|
|
|
|
|
|
if (DT_TableDataT1.StartTime != null && DT_TableDataT1.EndTime != null) |
|
|
|
|
DT_TableDataT1.StartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.EndTime)}"; |
|
|
|
|
DT_TableDataT1.StartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.EndTime)}"; |
|
|
|
|
|
|
|
|
|
if (DT_TableDataT1.RegisterStartTime != null && DT_TableDataT1.RegisterEndTime != null) |
|
|
|
|
DT_TableDataT1.RegisterStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}"; |
|
|
|
|
|
|
|
|
|
DT_TableDataT1.RegisterStartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}"; |
|
|
|
|
|
|
|
|
|
if (DT_TableDataT1.ExamStartTime != null && DT_TableDataT1.ExamEndTime != null) |
|
|
|
|
DT_TableDataT1.ExamStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamEndTime)}"; |
|
|
|
|
DT_TableDataT1.ExamStartEndTime1 = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.ExamEndTime)}"; |
|
|
|
|
|
|
|
|
|
if (DT_TableDataT1.ExamPaperId != null) |
|
|
|
|
DT_TableDataT1.ExamPaperName = (await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == DT_TableDataT1.ExamPaperId))?.PaperName; |
|
|
|
@ -93,17 +99,93 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas |
|
|
|
|
else |
|
|
|
|
prefixTemp = (await Db.Queryable<Ghre_CourseScene>().FirstAsync(x => x.Id == entity.CourseSceneId))?.SceneNo; |
|
|
|
|
|
|
|
|
|
if (entity.StartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.StartTime = entity.StartEndTime[0]; |
|
|
|
|
entity.EndTime = entity.StartEndTime[1]; |
|
|
|
|
} |
|
|
|
|
if (entity.RegisterStartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.RegisterStartTime = entity.RegisterStartEndTime[0]; |
|
|
|
|
entity.RegisterEndTime = entity.RegisterStartEndTime[1]; |
|
|
|
|
} |
|
|
|
|
if (entity.ExamStartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.ExamStartTime = entity.ExamStartEndTime[0]; |
|
|
|
|
entity.ExamEndTime = entity.ExamStartEndTime[1]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
prefixTemp = prefixTemp + "K"; |
|
|
|
|
entity.OpenClassNo = await GenerateContinuousSequence("Ghre_OpenClass", "OpenClassNo", prefixTemp, prefixTemp.Length + 4, 4); |
|
|
|
|
var result = await base.Add(entity); |
|
|
|
|
|
|
|
|
|
if (entity.Schedules != null && entity.Schedules.Any()) |
|
|
|
|
{ |
|
|
|
|
entity.Schedules.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
x.OpenClassId = result; |
|
|
|
|
if (x.StartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
x.StartTime = x.StartEndTime[0]; |
|
|
|
|
x.EndTime = x.StartEndTime[1]; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
await _ghre_OpenClassScheduleServices.Add(entity.Schedules); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (entity.Attachments != null && entity.Attachments.Any()) |
|
|
|
|
{ |
|
|
|
|
var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); |
|
|
|
|
await Db.Updateable<Ghre_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghre_Attachment() { TableName = result.ObjToString(), AttachmentGroupID = 1 }) |
|
|
|
|
.Where(it => paths.Contains(it.RelativePath)) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<bool> Update(long Id, EditGhre_OpenClassInput editModel) |
|
|
|
|
public override async Task<bool> Update(long Id, EditGhre_OpenClassInput entity) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
editModel.LinkId = editModel.LinkType == "Course" ? editModel.CourseId : editModel.CourseSceneId; |
|
|
|
|
var result = await base.Update(Id, editModel, null, ["Status"]); |
|
|
|
|
entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId; |
|
|
|
|
|
|
|
|
|
if (entity.StartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.StartTime = entity.StartEndTime[0]; |
|
|
|
|
entity.EndTime = entity.StartEndTime[2]; |
|
|
|
|
} |
|
|
|
|
if (entity.RegisterStartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.RegisterStartTime = entity.RegisterStartEndTime[0]; |
|
|
|
|
entity.RegisterEndTime = entity.RegisterStartEndTime[2]; |
|
|
|
|
} |
|
|
|
|
if (entity.ExamStartEndTime.Count == 2) |
|
|
|
|
{ |
|
|
|
|
entity.ExamStartTime = entity.ExamStartEndTime[0]; |
|
|
|
|
entity.ExamEndTime = entity.ExamStartEndTime[2]; |
|
|
|
|
} |
|
|
|
|
await _ghre_OpenClassScheduleServices.Delete(x => x.OpenClassId == Id); |
|
|
|
|
if (entity.Schedules != null && entity.Schedules.Any()) |
|
|
|
|
{ |
|
|
|
|
entity.Schedules.ForEach(x => x.OpenClassId = Id); |
|
|
|
|
|
|
|
|
|
await _ghre_OpenClassScheduleServices.Add(entity.Schedules); |
|
|
|
|
} |
|
|
|
|
await Db.Updateable<Ghre_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghre_Attachment() { TableName = null, AttachmentGroupID = null }) |
|
|
|
|
.Where(it => it.TableName == Id.ObjToString() && it.AttachmentGroupID == 1) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
|
|
|
|
|
if (entity.Attachments != null && entity.Attachments.Any()) |
|
|
|
|
{ |
|
|
|
|
var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); |
|
|
|
|
await Db.Updateable<Ghre_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghre_Attachment() { TableName = Id.ObjToString(), AttachmentGroupID = 1 }) |
|
|
|
|
.Where(it => paths.Contains(it.RelativePath)) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
} |
|
|
|
|
var result = await base.Update(Id, entity, null, ["Status"]); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
@ -118,9 +200,19 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas |
|
|
|
|
result.result.DT_TableDataT1[0].CourseId = result.result.DT_TableDataT1[0].LinkId; |
|
|
|
|
else |
|
|
|
|
result.result.DT_TableDataT1[0].CourseSceneId = result.result.DT_TableDataT1[0].LinkId; |
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1[0].StartEndTime.Add(result.result.DT_TableDataT1[0].StartTime); |
|
|
|
|
result.result.DT_TableDataT1[0].StartEndTime.Add(result.result.DT_TableDataT1[0].EndTime); |
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1[0].RegisterStartEndTime.Add(result.result.DT_TableDataT1[0].RegisterStartTime); |
|
|
|
|
result.result.DT_TableDataT1[0].RegisterStartEndTime.Add(result.result.DT_TableDataT1[0].RegisterEndTime); |
|
|
|
|
|
|
|
|
|
result.result.DT_TableDataT1[0].ExamStartEndTime.Add(result.result.DT_TableDataT1[0].ExamStartTime); |
|
|
|
|
result.result.DT_TableDataT1[0].ExamStartEndTime.Add(result.result.DT_TableDataT1[0].ExamEndTime); |
|
|
|
|
result.result.DT_TableDataT1[0].Schedules = await _ghre_OpenClassScheduleServices.QueryDto(x => x.OpenClassId == body.id); |
|
|
|
|
result.result.DT_TableDataT1[0].Attachments = await Db.Queryable<Ghre_Attachment>().Where(x => x.TableName == body.id.ObjToString() && x.AttachmentGroupID == 1).ToListAsync(); |
|
|
|
|
} |
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#region 学员 |
|
|
|
@ -182,4 +274,39 @@ public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClas |
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
|
|
|
|
|
#region 总结 |
|
|
|
|
|
|
|
|
|
public async Task<ServiceResult<Ghre_OpenClassDto>> QuerySummary(long Id) |
|
|
|
|
{ |
|
|
|
|
var result = await base.QueryById(Id); |
|
|
|
|
|
|
|
|
|
var result1 = new Ghre_OpenClassDto(); |
|
|
|
|
result1.Summary = result.Summary; |
|
|
|
|
result1.Attachments = await Db.Queryable<Ghre_Attachment>().Where(x => x.TableName == Id.ObjToString() && x.AttachmentGroupID == 2).ToListAsync(); |
|
|
|
|
return ServiceResult<Ghre_OpenClassDto>.OprateSuccess("查询成功!", result1); |
|
|
|
|
} |
|
|
|
|
public async Task<ServiceResult> InsertSummary(long Id, InsertGhre_OpenClassInput entity) |
|
|
|
|
{ |
|
|
|
|
|
|
|
|
|
await Db.Updateable<Ghre_OpenClass>() |
|
|
|
|
.SetColumns(it => new Ghre_OpenClass() { Summary = entity.Summary }) |
|
|
|
|
.Where(it => it.Id == Id) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
await Db.Updateable<Ghre_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghre_Attachment() { TableName = null, AttachmentGroupID = null }) |
|
|
|
|
.Where(it => it.TableName == Id.ObjToString() && it.AttachmentGroupID == 2) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
|
|
|
|
|
if (entity.Attachments != null && entity.Attachments.Any()) |
|
|
|
|
{ |
|
|
|
|
var paths = entity.Attachments.Select(x => x.RelativePath).ToList(); |
|
|
|
|
await Db.Updateable<Ghre_Attachment>() |
|
|
|
|
.SetColumns(it => new Ghre_Attachment() { TableName = Id.ObjToString(), AttachmentGroupID = 2 }) |
|
|
|
|
.Where(it => paths.Contains(it.RelativePath)) |
|
|
|
|
.ExecuteCommandAsync(); |
|
|
|
|
} |
|
|
|
|
return ServiceResult.OprateSuccess(); |
|
|
|
|
} |
|
|
|
|
#endregion |
|
|
|
|
} |