using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
using Tiobon.Core.Common.Caches;
using Tiobon.Core.Common;
using Tiobon.Core.Model;
using AgileObjects.AgileMapper;
namespace Tiobon.Core.Services;
///
/// 课程 (服务)
///
public class Ghre_CourseServices : BaseServices, IGhre_CourseServices
{
private readonly IBaseRepository _dal;
private IGhre_CourseClassServices _ghre_CourseClassServices;
public Ghre_CourseServices(IBaseRepository dal,
ICaching caching,
IGhre_CourseClassServices ghre_CourseClassServices)
{
this._dal = dal;
base.BaseDal = dal;
_ghre_CourseClassServices = ghre_CourseClassServices;
base._caching = caching;
}
public override async Task> QueryFilterPage(QueryBody body)
{
var data = await BaseDal.QueryFilterPage(body);
var list = Mapper.Map(data.result.DT_TableDataT1).ToANew>();
var classIds = list.Select(x => x.CourseClassId).Distinct().ToList();
var classs = await _ghre_CourseClassServices.Query(x => classIds.Contains(x.Id));
list.ForEach(x =>
{
if (x.CourseClassId != null)
x.CourseClassName = classs.FirstOrDefault(o => o.Id == x.CourseClassId)?.ClassName;
});
return new ServicePageResult(body.pageNum, data.result.DT_TablePageInfoT1.TotalCount, body.pageSize, list);
}
}