using Tiobon.Core.Model; namespace Tiobon.Core.Services; /// /// 开班课表 (服务) /// public class Ghre_OpenClassScheduleServices : BaseServices, IGhre_OpenClassScheduleServices { private readonly IBaseRepository _dal; public Ghre_OpenClassScheduleServices(ICaching caching, IBaseRepository dal) { this._dal = dal; base.BaseDal = dal; base._caching = caching; } public override async Task> QueryDto(Expression> whereExpression) { var data = await base.QueryDto(whereExpression); var courseIds = data.Select(x => x.CourseId).Distinct().ToList(); var courses = await Db.Queryable().Where(x => courseIds.Contains(x.Id)).ToListAsync(); data.ForEach(async x => { if (x.ParentTeacherId != null) x.ParentTeacherName = (await Db.Queryable().FirstAsync(a => a.StaffID == x.ParentTeacherId))?.StaffName; x.CourseName = courses.Where(o => x.CourseId == o.Id).FirstOrDefault()?.CourseName; x.StartEndTime.Add(x.StartTime); x.StartEndTime.Add(x.EndTime); }); return data; } public override async Task> Add(List listEntity) { for (int i = 0; i < listEntity.Count; i++) { if (listEntity[i].StartEndTime.Count == 2) { listEntity[i].StartTime = listEntity[i].StartEndTime[0]; listEntity[i].EndTime = listEntity[i].StartEndTime[1]; } } return await base.Add(listEntity); } }