You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tiobon.Web.Core/Tiobon.Core.Services/Ghre/Ghre_OpenClassScheduleServi...

34 lines
1.2 KiB

using MySqlX.XDevAPI.Common;
using Tiobon.Core.IServices;
namespace Tiobon.Core.Services;
/// <summary>
/// 开班课表 (服务)
/// </summary>
public class Ghre_OpenClassScheduleServices : BaseServices<Ghre_OpenClassSchedule, Ghre_OpenClassScheduleDto, InsertGhre_OpenClassScheduleInput, EditGhre_OpenClassScheduleInput>, IGhre_OpenClassScheduleServices
{
private readonly IBaseRepository<Ghre_OpenClassSchedule> _dal;
public Ghre_OpenClassScheduleServices(ICaching caching, IBaseRepository<Ghre_OpenClassSchedule> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
public override async Task<List<Ghre_OpenClassScheduleDto>> QueryDto(Expression<Func<Ghre_OpenClassSchedule, bool>> whereExpression)
{
var data = await base.QueryDto(whereExpression);
var courseIds = data.Select(x => x.CourseId).Distinct().ToList();
var courses = await Db.Queryable<Ghre_Course>().Where(x => courseIds.Contains(x.Id)).ToListAsync();
data.ForEach(x =>
{
x.CourseName = courses.Where(o => x.CourseId == o.Id).FirstOrDefault()?.CourseName;
x.StartEndTime.Add(x.StartTime);
x.StartEndTime.Add(x.EndTime);
});
return data;
}
}