namespace Tiobon.Core.Services; /// /// 开班学员 (服务) /// public class Ghre_OpenClassStaffServices : BaseServices, IGhre_OpenClassStaffServices { private readonly IBaseRepository _dal; public Ghre_OpenClassStaffServices(ICaching caching, IBaseRepository dal) { this._dal = dal; base.BaseDal = dal; base._caching = caching; } public override async Task> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true) { var result = await base.QueryFilterPage(filter, condition, IsEnable); if (result.result.DT_TableDataT1.Any()) { var staffIds = result.result.DT_TableDataT1.Select(x => x.StaffId).Distinct().ToList(); var staffs = await Db.Queryable() .LeftJoin((o, cus) => o.DeptID == cus.DeptID)//多个条件用&& .LeftJoin((o, cus, oritem) => o.TitleID == oritem.TitleID) .Where(o => staffIds.Contains(o.StaffID)) .Select((o, cus, oritem) => new { o.StaffID, o.StaffNo, o.StaffName, o.Indate, o.Email, oritem.TitleName, cus.DeptName }) .ToListAsync(); for (int i = 0; i < result.result.DT_TableDataT1.Count; i++) { var DT_TableDataT1 = result.result.DT_TableDataT1[i]; DT_TableDataT1.Source = DT_TableDataT1.Source == "Backend" ? "后台新增" : "报名"; var staff = staffs.Where(x => x.StaffID == DT_TableDataT1.StaffId).FirstOrDefault(); DT_TableDataT1.StaffNo = staff?.StaffNo; DT_TableDataT1.StaffName = staff?.StaffName; DT_TableDataT1.Indate = DateTimeHelper.ConvertToDayString(staff?.Indate); DT_TableDataT1.TitleName = staff?.TitleName; DT_TableDataT1.DeptName = staff?.DeptName; DT_TableDataT1.Email = staff?.Email; result.result.DT_TableDataT1[i] = DT_TableDataT1; } } return result; } public override async Task> Add(List listEntity) { for (int i = 0; i < listEntity.Count; i++) { listEntity[i].Source = "Backend"; } return await base.Add(listEntity); } public DataTable ToDataTable1(List list, Dictionary fieldDescs = null, params string[] propertyName) { return ToDataTable(list, fieldDescs, propertyName); } }