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.
68 lines
3.5 KiB
68 lines
3.5 KiB
namespace Tiobon.Core.Services;
|
|
|
|
/// <summary>
|
|
/// 开班反馈 (服务)
|
|
/// </summary>
|
|
public class Ghre_OpenClassFeedbackServices : BaseServices<Ghre_OpenClassFeedback, Ghre_OpenClassFeedbackDto, InsertGhre_OpenClassFeedbackInput, EditGhre_OpenClassFeedbackInput>, IGhre_OpenClassFeedbackServices
|
|
{
|
|
private readonly IBaseRepository<Ghre_OpenClassFeedback> _dal;
|
|
public Ghre_OpenClassFeedbackServices(ICaching caching, IBaseRepository<Ghre_OpenClassFeedback> dal)
|
|
{
|
|
this._dal = dal;
|
|
base.BaseDal = dal;
|
|
base._caching = caching;
|
|
}
|
|
|
|
public override async Task<ServicePageResult<Ghre_OpenClassFeedbackDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
|
|
{
|
|
var result = await base.QueryFilterPage(filter, condition, IsEnable);
|
|
|
|
var staffIds = result.result.DT_TableDataT1.Where(x => x.StaffId != null).Select(x => x.StaffId.Value).Distinct().ToList();
|
|
var teacherIds = result.result.DT_TableDataT1.Where(x => x.TeacherId != null).Select(x => x.TeacherId.Value).Distinct().ToList();
|
|
var openClassIds = result.result.DT_TableDataT1.Where(x => x.OpenClassId != null).Select(x => x.OpenClassId.Value).Distinct().ToList();
|
|
//var surveyIds = result.result.DT_TableDataT1.Where(x => x.SurveyId != null).Select(x => x.SurveyId.Value).Distinct().ToList();
|
|
var courseIds = result.result.DT_TableDataT1.Where(x => x.CourseId != null).Select(x => x.CourseId.Value).Distinct().ToList();
|
|
|
|
|
|
var staffs = await Db.Queryable<Ghra_Staff>()
|
|
.Where(x => staffIds.Contains(x.StaffID)).Select(x => new { x.StaffID, x.StaffNo, x.StaffName }).ToListAsync();
|
|
|
|
var openClasss = await Db.Queryable<Ghre_OpenClass>()
|
|
.Where(x => openClassIds.Contains(x.Id)).Select(x => new { x.Id, x.OpenClassName }).ToListAsync();
|
|
|
|
var courses = await Db.Queryable<Ghre_Course>()
|
|
.Where(x => courseIds.Contains(x.Id)).Select(x => new { x.Id, x.CourseName }).ToListAsync();
|
|
|
|
var teachers = await Db.Queryable<Ghre_Teacher>()
|
|
.Where(x => teacherIds.Contains(x.Id)).Select(x => new { x.Id, x.TeacherName }).ToListAsync();
|
|
|
|
|
|
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++)
|
|
{
|
|
var DT_TableDataT1 = result.result.DT_TableDataT1[i];
|
|
if (DT_TableDataT1.StaffId != null)
|
|
DT_TableDataT1.StaffName = staffs.Where(x => x.StaffID == DT_TableDataT1.StaffId).FirstOrDefault()?.StaffName;
|
|
|
|
if (DT_TableDataT1.OpenClassId != null)
|
|
DT_TableDataT1.OpenClassName = openClasss.Where(x => x.Id == DT_TableDataT1.OpenClassId).FirstOrDefault()?.OpenClassName;
|
|
|
|
if (DT_TableDataT1.CourseId != null)
|
|
DT_TableDataT1.CourseName = courses.Where(x => x.Id == DT_TableDataT1.CourseId).FirstOrDefault()?.CourseName;
|
|
|
|
if (DT_TableDataT1.TeacherId != null)
|
|
DT_TableDataT1.TeacherName = teachers.Where(x => x.Id == DT_TableDataT1.TeacherId).FirstOrDefault()?.TeacherName;
|
|
|
|
if (DT_TableDataT1.ExpiryTime != null)
|
|
{
|
|
if (DateTimeHelper.ConvertToSecondString(DT_TableDataT1.ExpiryTime) == DateTimeHelper.ConvertToSecondString(DateTime.MaxValue))
|
|
DT_TableDataT1.ExpiryTime1 = "长期";
|
|
else DT_TableDataT1.ExpiryTime1 = DateTimeHelper.ConvertToSecondString(DT_TableDataT1.ExpiryTime);
|
|
}
|
|
else
|
|
DT_TableDataT1.ExpiryTime1 = "长期";
|
|
result.result.DT_TableDataT1[i] = DT_TableDataT1;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
} |