SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead,E.SName AS SchoolName,R.RoomName,IFNULL(t.GuestNum,0) as OrderStudentCount
FROM rb_class AS A
LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId
LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId
LEFT JOIN rb_class_room AS R ON A.ClassRoomId=R.RoomId
LEFT JOIN rb_school AS E ON A.School_Id=E.SId
left join (SELECT ClassId, SUM(GuestNum) AS GuestNum FROM rb_order WHERE OrderState in (1,2) GROUP BY ClassId)t on A.ClassId = t.ClassId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.Status),0);
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.ClassStatus),(int)Common.Enum.Course.ClassStatusEnum.NonOpenClass);
if(query!=null)
{
if(query.Group_Id>0)
{
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.Group_Id),query.Group_Id);
}
if(query.School_Id>0)
{
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.School_Id),query.School_Id);
}
if(query.CouseId>0)
{
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.CouseId),query.CouseId);
}
if(query.Teacher_Id>0)
{
builder.AppendFormat(" AND A.{0}={1} ",nameof(RB_Class_ViewModel.Teacher_Id),query.Teacher_Id);
}
if(!string.IsNullOrWhiteSpace(query.ClassName))
{
builder.AppendFormat(" AND A.{0} LIKE @ClassName ",nameof(RB_Class_ViewModel.ClassName));