namespace Tiobon.Core.Services; /// /// 开班管理 (服务) /// public class Ghre_OpenClassServices : BaseServices, IGhre_OpenClassServices { private readonly IGhre_OpenClassStaffServices _ghre_OpenClassStaffServices; private readonly IGhre_OpenClassFeeServices _ghre_OpenClassFeeServices; private readonly IBaseRepository _dal; public Ghre_OpenClassServices(ICaching caching, IBaseRepository dal, IGhre_OpenClassStaffServices ghre_OpenClassStaffServices, IGhre_OpenClassFeeServices ghre_OpenClassFeeServices) { this._dal = dal; base.BaseDal = dal; base._caching = caching; _ghre_OpenClassStaffServices = ghre_OpenClassStaffServices; _ghre_OpenClassFeeServices = ghre_OpenClassFeeServices; } public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { if (filter.jsonParam != null) foreach (JProperty jProperty in filter.jsonParam.Properties()) { var name = jProperty.Name; var value = jProperty.Value.ToString(); if (name == "StartEndTime") { var jsonParam = JsonHelper.JsonToObj(value); if (jsonParam.columnValue != null) { var ids1 = JsonHelper.JsonToObj>(jsonParam.columnValue.ToString()); condition += $" AND ((StartTime>='{ids1[0]} 00:00:00' AND StartTime<='{ids1[1]} 23:59:59')"; condition += $" OR (EndTime>='{ids1[0]} 00:00:00' AND EndTime<='{ids1[1]} 23:59:59'))"; } } } var result = await base.QueryFilterPage(filter, condition, IsEnable); for (int i = 0; i < result.result.DT_TableDataT1.Count; i++) { var DT_TableDataT1 = result.result.DT_TableDataT1[i]; DT_TableDataT1.OpenClassType = await GetParaLabel("TrainingOpenClassType", result.result.DT_TableDataT1[i].OpenClassType); DT_TableDataT1.OpenClassWay = await GetParaLabel("TrainingOpenClassWay", result.result.DT_TableDataT1[i].OpenClassWay); DT_TableDataT1.ScoringMethod = await GetParaLabel("ScoreMethod", result.result.DT_TableDataT1[i].ScoringMethod); if (DT_TableDataT1.LinkType == "Course") DT_TableDataT1.CourseOrSceneName = (await Db.Queryable().FirstAsync(x => x.Id == DT_TableDataT1.LinkId))?.CourseName; else DT_TableDataT1.CourseOrSceneName = (await Db.Queryable().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)}"; if (DT_TableDataT1.RegisterStartTime != null && DT_TableDataT1.RegisterEndTime != null) DT_TableDataT1.RegisterStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}"; if (DT_TableDataT1.ExamPaperId != null) DT_TableDataT1.ExamPaperName = (await Db.Queryable().FirstAsync(x => x.Id == DT_TableDataT1.ExamPaperId))?.PaperName; if (DT_TableDataT1.ManagerId != null) DT_TableDataT1.ManagerName = (await Db.Queryable().FirstAsync(x => x.StaffID == DT_TableDataT1.ManagerId))?.StaffName; if (DT_TableDataT1.TeacherId != null) DT_TableDataT1.TeacherName = (await Db.Queryable().FirstAsync(x => x.Id == DT_TableDataT1.TeacherId))?.TeacherName; result.result.DT_TableDataT1[i] = DT_TableDataT1; } return result; } public override async Task Add(InsertGhre_OpenClassInput entity) { entity.LinkId = entity.LinkType == "Course" ? entity.CourseId : entity.CourseSceneId; var result = await base.Add(entity); entity.Status = "Temporary"; return result; } public override async Task Update(long Id, EditGhre_OpenClassInput editModel) { editModel.LinkId = editModel.LinkType == "Course" ? editModel.CourseId : editModel.CourseSceneId; var result = await base.Update(Id, editModel, null, ["Status"]); return result; } public override async Task> QueryForm(QueryForm body) { var result = await base.QueryForm(body); if (result.result.DT_TableDataT1.Any()) { if (result.result.DT_TableDataT1[0].LinkType == "Course") 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; } return result; } #region 学员 public async Task> QueryStaff(long Id) { var result = await _ghre_OpenClassStaffServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}'"); return result.result.DT_TableDataT1; } #endregion #region 学员 public async Task> QueryFee(long Id) { var result = await _ghre_OpenClassFeeServices.QueryFilterPage(new QueryBody(), $"OpenClassId='{Id}'"); return result.result.DT_TableDataT1; } #endregion }