using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Model.Entity.Grade;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.Reserve;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VT.FW.DB;
namespace Edu.Repository.Grade
{
///
/// 班级上课计划仓储层
///
public class RB_Class_PlanRepository : BaseRepository
{
///
/// 获取班级上课计划列表
///
///
///
public List GetClassPlanListRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon,IFNULL(C.ClassName,'') AS ClassName
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN rb_class AS C ON A.ClassId=C.ClassId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (!string.IsNullOrEmpty(query.QClassPlanIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.QClassPlanIds);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
if (query.IsQRepeat == 1)
{
builder.AppendFormat(" AND IFNULL(A.{0},'')<>'' ", nameof(RB_Class_Plan_ViewModel.RepeatPlanIds));
}
}
return Get(builder.ToString()).ToList();
}
///
/// 获取班级上课计划列表
///
///
///
public List GetClassPlanListExtRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
,Time.StartTime,time.EndTime,time.ClassTimeId
,TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',time.StartTime), CONCAT('2020-12-16',' ',time.EndTime)) AS ClassMinutes
,time.TimeHour,c.ClassName
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN rb_class_time AS time ON A.ClassPlanId=Time.ClassPlanId
Left JOIN rb_class as c ON c.ClassId=A.ClassId
WHERE 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassRoomId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassRoomId), query.ClassRoomId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
}
//if (query.School_Id > 0)
//{
// builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
//}
if (query.ClassTimeId > 0)
{
builder.AppendFormat(" AND time.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassTimeId), query.ClassTimeId);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
if (!string.IsNullOrEmpty(query.QClassDateStr))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m/%d')= DATE_FORMAT('{1}','%y/%m/%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QClassDateStr);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 获取上课计划
///
///
///
public List GetClassPlanList_V2(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT a.*,c.Teacher_Id,c.ClassName,c.ClassType,c.ClassHourMinute,T.TeacherName ,cou.CourseName
FROM rb_class_plan as a
LEFT JOIN rb_class c on a.ClassId = c.ClassId
LEFT JOIN rb_teacher AS T ON a.TeacherId=T.TId
LEFT JOIN rb_course as cou on cou.CourseId=c.CouseId
where a.`Status`=0 and c.ClassStatus in(2,3) and c.`Status`=0");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassRoomId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassRoomId), query.ClassRoomId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
}
if (!string.IsNullOrEmpty(query.Q_TeacherIds))
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.Q_TeacherIds);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND A.{0} >='{1}' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND A.{0} <='{1} 23:59:59' ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 获取班级上课计划
///
///
///
///
///
///
public List GetClassPlanModelRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT a.*
FROM rb_class_plan as a
WHERE a.`Status`=0 ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (!string.IsNullOrEmpty(query.QClassDateStr))
{
builder.AppendFormat(@" AND DATE_FORMAT(a.ClassDate,'%Y-%m-%d')=DATE_FORMAT('{0}','%Y-%m-%d') ", query.QClassDateStr);
}
else
{
builder.AppendFormat(@" AND DATE_FORMAT(a.ClassDate,'%Y-%m-%d')=DATE_FORMAT(NOW(),'%Y-%m-%d') ");
}
}
builder.AppendFormat(@" ORDER BY ClassDate DESC ");
return Get(builder.ToString()).ToList();
}
///
/// 判断是否存在
///
///
///
public bool CheckExistsRepository(RB_Class_Plan_ViewModel model)
{
List list = new List()
{
new WhereHelper (nameof(RB_Class_Plan_ViewModel.ClassId),model.ClassId),
new WhereHelper (nameof(RB_Class_Plan_ViewModel.ClassDate),model.ClassDate),
};
return base.Exists(list);
}
///
/// 批量验证同一班级的上课计划
///
///
///
///
public List BatchCheckExistsRepository(int classId, string qClassDate)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*
FROM rb_class_plan AS A
WHERE A.`Status`=0 AND A.ClassId={0} AND A.ClassDate IN({1})
", classId, qClassDate);
return Get(builder.ToString()).ToList();
}
///
/// 老师改变则修改后面的代课老师为新的教师编号
///
///
///
///
public bool UpdatePlanTeacherIdRepository(int TeacherId, int classId)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
UPDATE rb_class_plan
SET TeacherId={0}
WHERE ClassId={1} AND ClassDate>'{2}'
", TeacherId, classId, DateTime.Now.ToString("yyyy-MM-dd"));
return base.Execute(builder.ToString()) > 0;
}
///
/// 根据编号删除班级上课计划
///
///
///
public bool DeleteClassPlanRepository(string ClassPlanIds)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" DELETE FROM RB_Class_Plan WHERE ClassPlanId IN({0}) ", ClassPlanIds);
return base.Execute(builder.ToString()) > 0;
}
///
/// 获取班级最后一次上课日期
///
///
///
public List GetClassPlanMaxDataRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.ClassId,MAX(A.ClassDate) AS ClassDate
FROM rb_class_plan AS A
WHERE 1=1 ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 获取班级上课记录
///
///
///
///
///
///
public List GetClassPlanLogPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT a.*,b.Teacher_Id,c.TeacherName
FROM rb_class_plan as a
LEFT JOIN rb_class as b on a.ClassId=b.ClassId
LEFT JOIN rb_teacher as c on c.TId=a.TeacherId
WHERE a.`Status`=0 and DATE_FORMAT(a.ClassDate,'%Y-%m-%d')<=DATE_FORMAT(NOW(),'%Y-%m-%d') ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
//if (query.School_Id > 0)
//{
// builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
//}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
}
if (query.Status >= 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)query.Status);
}
}
builder.AppendFormat(@" order by ClassDate desc ");
return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
///
/// 获取班级累计上课时间(分钟)
///
///
///
///
public int GetClassTotalMinute(int classId, int group_Id)
{
string sql = $@"SELECT SUM(t.minNum) AS minNum FROM(
SELECT TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',t.StartTime), CONCAT('2020-12-16',' ',t.EndTime)) AS minNum FROM rb_class_plan p
INNER JOIN rb_class_time t on p.ClassPlanId = t.ClassPlanId
WHERE p.`Status`=0 AND p.Group_Id={group_Id} AND p.ClassId ={classId}
)t;
";
var obj = ExecuteScalar(sql);
if (obj != null)
{
return Convert.ToInt32(obj);
}
else
{
return 0;
}
}
///
/// 获取班级上课计划列表
///
///
///
public List GetTeacherPlanListRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT * from (SELECT
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks,
A.*,class.ClassName,lp.LessonPlanNum,lps.LessonPlanSummaryNum,IFNULL(B.RoomName,'') AS RoomName,IFNULL(T.TeacherName,'') AS TeacherName,IFNULL(T.TeacherHead,'') AS UserIcon
FROM RB_Class_Plan AS A LEFT JOIN rb_class_room AS B ON A.ClassRoomId=B.RoomId
LEFT JOIN rb_class as class on a.ClassId=class.ClassId
LEFT JOIN rb_teacher AS T ON A.TeacherId=T.TId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanSummaryNum from rb_class_lessonplan where `Status`=0 and ISNULL(Summary)=0 and LENGTH(trim(Summary))>0 GROUP BY ClassPlanId)as lps on a.ClassPlanId=lps.ClassPlanId
WHERE 1=1 and class.ClassStatus in(1,2) and t.`Status`=0 and a.`Status`=0 and class.`Status`=0 ORDER BY a.ClassId,a.ClassDate) as a where 1=1
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.TeacherId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 获取学生上课计划列表
///
///
///
public List GetStudentPlanListRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat($@"SELECT a.*,c.ClassName,lp.LessonPlanNum,c.ClassHours,b.RoomName,IFNULL(T.TeacherHead,'') AS UserIcon,IFNULL(T.TeacherName,'') AS TeacherName FROM rb_class_plan as a LEFT JOIN rb_class as c on a.ClassId=c.ClassId
LEFT JOIN rb_class_room as b on a.ClassRoomId=b.RoomId
LEFT JOIN rb_teacher AS T ON c.Teacher_Id=T.TId
LEFT JOIN rb_student_orderguest as sog on sog.ClassId=c.ClassId
LEFT JOIN (SELECT ClassPlanId,COUNT(*) as LessonPlanNum from rb_class_lessonplan where `Status`=0 GROUP BY ClassPlanId)as lp on a.ClassPlanId=lp.ClassPlanId
where sog.Account_Id={query.StuId} and c.ClassStatus in(1,2) and c.`Status`=0 and sog.`Status`=0
");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.ClassPlanId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassPlanId), query.ClassPlanId);
}
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.Teacher_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Teacher_Id), query.Teacher_Id);
}
if (!string.IsNullOrEmpty(query.QClassIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Plan_ViewModel.ClassId), query.QClassIds);
}
if (!string.IsNullOrEmpty(query.QMonth))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y/%m')= DATE_FORMAT('{1}-01','%y/%m') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.QMonth);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 老师上课计划统计
///
///
///
public List GetClassPlanStatisticalRepository(RB_Class_Plan_ViewModel query)
{
StringBuilder where = new StringBuilder();
where.AppendFormat(" AND B.ClassStatus IN(1,2,3) ");
if (query != null)
{
if (query.Group_Id > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
where.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
where.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
}
if (query.TeacherId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
}
if (query.ClassRoomId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassRoomId), query.ClassRoomId);
}
if (query.School_Id > -1)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,A.CourseId,A.Teacher_Id,A.TeacherName,A.UserIcon,A.RoomName
,SUM(A.minNum) AS ClassMinutes,MIN(A.StartTime) AS StartTime,MAX(A.EndTime) AS EndTime,A.CompleteProgress,a.TotalPlanNum,
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks
FROM
(
SELECT A.ClassPlanId, A.ClassId,A.ClassDate,A.ClassRoomId,B.ClassName,C.CourseName,c.CourseId,B.Teacher_Id,IFNULL(D.TeacherName,'') AS TeacherName,IFNULL(D.TeacherHead,'') AS UserIcon,E.RoomName
,TIMESTAMPDIFF(MINUTE, CONCAT('2020-12-16',' ',F.StartTime), CONCAT('2020-12-16',' ',F.EndTime)) AS minNum,F.StartTime,F.EndTime,B.CompleteProgress,plan.TotalPlanNum
FROM rb_class_plan AS A INNER JOIN rb_class AS B ON A.ClassId=B.ClassId
LEFT JOIN rb_course AS C ON B.CouseId=C.CourseId
LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
LEFT JOIN rb_class_time F on A.ClassPlanId = F.ClassPlanId
LEFT JOIN ((SELECT ClassId,COUNT(*) as TotalPlanNum from rb_class_plan where `Status`=0 GROUP BY ClassId)) as plan on plan.ClassId=a.ClassId
WHERE 1=1 AND A.`Status`=0 AND B.`Status`=0 {0}
) AS A
GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress
", where.ToString());
return Get(builder.ToString()).ToList();
}
///
/// 查询指定计划的上课课时
///
///
///
public double GetCurrentPlanStudyHoursRepository(int planId)
{
string sql = "select (select Count(0) from rb_class_plan b where b.ClassId=a.ClassId and b.ClassDate
/// 获取班级上课记录
///
///
///
///
///
///
public List GetTeacherPlan(int pageIndex, int pageSize, out long rowsCount, RB_Class_Plan_ViewModel query)
{
StringBuilder where = new StringBuilder();
StringBuilder whereReserve = new StringBuilder();
where.AppendFormat(" AND B.ClassStatus IN(1,2) and b.`Status`=0 ");
whereReserve.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.Status), (int)DateStateEnum.Normal);
string orderby = " a.ClassDate asc ,a.NewPlanDateTime asc";
if (query != null)
{
if (query.Group_Id > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.Group_Id), query.Group_Id);
whereReserve.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.StartTime))
{
where.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')>=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.StartTime);
whereReserve.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
where.AppendFormat(" AND DATE_FORMAT(A.{0},'%y-%m-%d')<=DATE_FORMAT('{1}','%y-%m-%d') ", nameof(RB_Class_Plan_ViewModel.ClassDate), query.EndTime);
whereReserve.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Reserve_Class_Extend.ClassDate), query.EndTime);
}
if (query.TeacherId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.TeacherId), query.TeacherId);
whereReserve.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.TeacherId), query.TeacherId);
}
if (query.ClassRoomId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassRoomId), query.ClassRoomId);
whereReserve.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.ClassRoomId), query.ClassRoomId);
}
if (query.School_Id > -1)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.School_Id), query.School_Id);
whereReserve.AppendFormat(" AND A.{0}={1} ", nameof(RB_Reserve_Class_Extend.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.ClassId), query.ClassId);
}
if (query.OrderBy == 1)
{
orderby = " a.ClassDate desc ,a.NewPlanDateTime asc";
}
}
StringBuilder builder = new StringBuilder();
StringBuilder builderClass = new StringBuilder();
StringBuilder builderReserveClass = new StringBuilder();
builderReserveClass.AppendFormat(@"SELECT 2 as ClassType,A.ReserveClassId as ClassTimeId,a.ClassTime AS NewPlanDateTime ,a.ClassTime as StartTime,a.EndTime,0 as ClassPlanId,0 as ClassId,a.ClassDate,a.ClassRoomId,'试听课' as ClassName,a.ClassContent as CourseName,
a.TeacherId as Teacher_Id,IFNULL(D.TeacherName,'') AS TeacherName,IFNULL(E.RoomName,'') AS RoomName,
IFNULL(E.SeatNum,0) AS RoomNum,0 as TotalPlanNum
FROM RB_Reserve_Class AS A LEFT JOIN rb_teacher AS D ON A.TeacherId=D.TId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
WHERE 1=1 {0} ", whereReserve.ToString());
builderClass.AppendFormat(@"
SELECT 1 as ClassType,F.ClassTimeId,CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',f.StartTime,':00') AS NewPlanDateTime,F.StartTime,f.EndTime,A.ClassPlanId, A.ClassId,A.ClassDate,A.ClassRoomId,B.ClassName,C.CourseName,
B.Teacher_Id,IFNULL(D.TeacherName,'') AS TeacherName,E.RoomName,IFNULL(E.SeatNum,0) AS RoomNum,plan.TotalPlanNum
FROM rb_class_time as F INNER JOIN
rb_class_plan AS A on F.ClassPlanId=a.ClassPlanId
INNER JOIN rb_class AS B ON A.ClassId=B.ClassId
LEFT JOIN rb_course AS C ON B.CouseId=C.CourseId
LEFT JOIN rb_teacher AS D ON B.Teacher_Id=D.TId
LEFT JOIN rb_class_room AS E ON A.ClassRoomId=E.RoomId
LEFT JOIN ((SELECT ClassId,COUNT(*) as TotalPlanNum from rb_class_plan where `Status`=0 GROUP BY ClassId)) as plan on plan.ClassId=a.ClassId
WHERE 1=1 AND A.`Status`=0 {0}
", where.ToString());
if (query.ClassType == 1)
{
builder.AppendFormat(@"SELECT A.ClassType,A.ClassTimeId,A.Teacher_Id,A.TeacherName,A.RoomName, a.RoomNum,A.StartTime,A.EndTime,A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,a.TotalPlanNum,
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks
FROM ( {0} ) AS A
GROUP BY a.ClassType,A.ClassTimeId,A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId ORDER BY {1}", builderClass.ToString(), orderby);
}
else if (query.ClassType == 2)
{
builder.AppendFormat(@"SELECT A.ClassType,A.ClassTimeId,A.Teacher_Id,A.TeacherName,A.RoomName, a.RoomNum,A.StartTime,A.EndTime,A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,a.TotalPlanNum,
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks
FROM ( {0} ) AS A
GROUP BY a.ClassType,A.ClassTimeId,A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId ORDER BY {1} ", builderReserveClass.ToString(), orderby);
}
else
{
builder.AppendFormat(@"SELECT A.ClassType,A.ClassTimeId,A.Teacher_Id,A.TeacherName,A.RoomName, a.RoomNum,A.StartTime,A.EndTime,A.ClassPlanId,A.ClassId,A.ClassDate,A.ClassRoomId,A.ClassName,A.CourseName,a.TotalPlanNum,
(SELECT COUNT(*) from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and ClassId=a.ClassId) as Ranks
FROM ( {0} UNION all {1} ) AS A
GROUP BY a.ClassType,A.ClassTimeId,A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId ORDER BY {2} ", builderClass.ToString(), builderReserveClass.ToString(), orderby);
}
return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString()).ToList();
}
#endregion
#region 检查上课计划是否重复
///
/// 检查上课计划是否存在时间上的交集【HK2021-07-28新增】
///
///
///
///
public List CheckClassPlanRepository(int classId,List timeList)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.* FROM
(
SELECT A.*,B.ClassTimeId,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.StartTime,':00') AS StartTime,CONCAT(DATE_FORMAT(A.ClassDate,'%Y-%m-%d'),' ',B.EndTime,':00') AS EndTime
FROM rb_class_plan AS A INNER JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId
INNER JOIN rb_class AS C ON A.ClassId=C.ClassId
WHERE A.`Status`=0 AND A.ClassDate>='{0}' AND C.ClassStatus IN(1,2)
) AS A
WHERE 1=1
", Common.ConvertHelper.FormatDate(DateTime.Now));
if (classId > 0)
{
builder.AppendFormat(" AND A.{0}<>{1} ", nameof(RB_Class_Plan_ViewModel.ClassId), classId);
}
if (timeList != null && timeList.Count > 0)
{
string tempStr = "";
int index = 0;
foreach (var item in timeList)
{
if (index == 0)
{
tempStr += string.Format(" (NOT (A.StartTime > '{0}' OR A.EndTime < '{1}')) ", item.EndTime, item.StartTime);
}
else
{
tempStr += string.Format(" OR (NOT (A.StartTime > '{0}' OR A.EndTime < '{1}')) ", item.EndTime, item.StartTime);
}
index++;
}
if (!string.IsNullOrEmpty(tempStr))
{
builder.AppendFormat(" AND ({0}) ", tempStr);
}
}
return Get(builder.ToString()).ToList();
}
///
/// 批量添加上课计划
///
///
///
public List BatchInsertClassPlanRepository(List planList)
{
List newPlanList = new List();
bool flag = true;
if (planList != null && planList.Count > 0)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" INSERT INTO RB_Class_Plan(ClassId,ClassDate,Status,ClassRoomId,Group_Id,School_Id,TeacherId,BeiKeStatus,FanKuiStatus,ParentFanKuiStatus) ");
builder.AppendFormat(" VALUES ");
string tempStr = "";
foreach (var item in planList)
{
tempStr += $",({item.ClassId},'{Common.ConvertHelper.FormatDate(item.ClassDate)}',0,{item.ClassRoomId},{item.Group_Id},{item.School_Id},{item.TeacherId},0,0,0) ";
}
builder.Append(tempStr.TrimStart(','));
flag = base.Execute(builder.ToString()) > 0;
if (flag)
{
newPlanList = GetClassPlanListRepository(new RB_Class_Plan_ViewModel() { ClassId = planList[0].ClassId, StartTime = Common.ConvertHelper.FormatDate(DateTime.Now) });
}
}
return newPlanList;
}
///
/// 批量更新上课计划冲突的计划编号
///
///
///
public bool BatchUpdateClassPlanRepository(List planList)
{
bool flag = true;
if (planList != null && planList.Count > 0)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" INSERT INTO RB_Class_Plan(ClassPlanId,RepeatPlanIds) ");
builder.AppendFormat(" VALUES ");
string tempStr = "";
foreach (var item in planList)
{
tempStr += $",({item.ClassPlanId},'{item.RepeatPlanIds}') ";
}
builder.Append(tempStr.TrimStart(','));
builder.Append(" ON DUPLICATE KEY UPDATE RepeatPlanIds =VALUES(RepeatPlanIds) ");
flag = base.Execute(builder.ToString()) > 0;
}
return flag;
}
///
/// 检查班级上课计划是否存在重复,有重复则更新冲突的编号
///
///
///
public void CheckClassPlanRepeatRepository(int ClassId, out bool result)
{
result = false;
List timeItemList = new List();
var newPlanList = GetClassPlanListExtRepository(new RB_Class_Plan_ViewModel()
{
ClassId = ClassId,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now)
});
foreach (var item in newPlanList)
{
timeItemList.Add(new TimeItem()
{
StartTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.StartTime + ":00",
EndTime = Common.ConvertHelper.FormatDate(item.ClassDate) + " " + item.EndTime + ":00",
});
}
var repeatList = CheckClassPlanRepository(ClassId, timeItemList);
var updatePlanList = new List();
foreach (var item in newPlanList)
{
var tempRepeatList = repeatList?.Where(qitem => qitem.ClassDate == item.ClassDate)?.ToList();
List ids = new List();
if (tempRepeatList != null && tempRepeatList.Count > 0)
{
if (item.TeacherId > 0)
{
var teacherList = tempRepeatList?.Where(qitem => qitem.TeacherId == item.TeacherId)?.ToList();
if (teacherList != null && teacherList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", teacherList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
if (item.ClassRoomId > 0)
{
var classroomList = tempRepeatList?.Where(qitem => qitem.ClassRoomId == item.ClassRoomId)?.ToList();
if (classroomList != null && classroomList.Count > 0)
{
var tempIds = Common.ConvertHelper.StringToList(string.Join(",", classroomList.GroupBy(qitem => qitem.ClassPlanId).Select(qitem => qitem.Key)));
if (tempIds != null && tempIds.Count > 0)
{
ids.AddRange(tempIds);
}
}
}
}
string RepeatPlanIds = "";
if (ids != null && ids.Count > 0)
{
RepeatPlanIds = string.Join(",", ids);
if (!result)
{
result = true;
}
}
updatePlanList.Add(new RB_Class_Plan_ViewModel()
{
ClassPlanId = item.ClassPlanId,
RepeatPlanIds = RepeatPlanIds,
});
}
if (updatePlanList != null && updatePlanList.Count > 0)
{
BatchUpdateClassPlanRepository(updatePlanList);
}
}
///
/// 批量修改教室或者老师
///
///
///
///
///
public bool UpdateClassPlanTeacherOrClassRoomIdRepository(int TeacherId, int ClassRoomId, string planIds)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(" UPDATE rb_class_plan SET ");
if (TeacherId > 0)
{
builder.AppendFormat(" TeacherId={0} ", TeacherId);
}
if (ClassRoomId > 0)
{
builder.AppendFormat(" ClassRoomId={0} ", ClassRoomId);
}
builder.AppendFormat(" WHERE ClassPlanId IN({0}) ", planIds);
return base.Execute(builder.ToString()) > 0;
}
#endregion
///
/// 生成上课计划列表
///
///
///
///
///
///
public List CreateClassPlanRepository(RB_Class_ViewModel model, List defaultPlanTimeList,decimal finishClassHours,int BasicMinutes,string defaultOpenTime="")
{
List classPlanList = new List();
if (model.ClassHours > 0 && defaultPlanTimeList != null && defaultPlanTimeList.Count > 0)
{
var srartDate = model.OpenTime;
if (model.OpenTime < DateTime.Now)
{
srartDate = DateTime.Now;
}
if (!string.IsNullOrEmpty(defaultOpenTime))
{
srartDate = Convert.ToDateTime(defaultOpenTime);
}
//按周排课和按月排课
if (model.ClassStyle == ClassStyleEnum.Week || model.ClassStyle == ClassStyleEnum.Month)
{
int i = 0;
double totalHours = Convert.ToDouble(finishClassHours);
while (model.ClassHours > totalHours)
{
var newDate = srartDate.AddDays(i);
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List(),
TeacherId = model.Teacher_Id,
ClassDate = newDate
};
if (model.ClassStyle == ClassStyleEnum.Week)
{
switch (item)
{
case "1":
if (newDate.DayOfWeek == DayOfWeek.Monday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "2":
if (newDate.DayOfWeek == DayOfWeek.Tuesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "3":
if (newDate.DayOfWeek == DayOfWeek.Wednesday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "4":
if (newDate.DayOfWeek == DayOfWeek.Thursday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "5":
if (newDate.DayOfWeek == DayOfWeek.Friday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "6":
if (newDate.DayOfWeek == DayOfWeek.Saturday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
case "7":
if (newDate.DayOfWeek == DayOfWeek.Sunday)
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
break;
}
}
else if (model.ClassStyle == ClassStyleEnum.Month)
{
if (newDate.Day == Convert.ToInt32(item))
{
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
var dayHours = CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
totalHours += dayHours;
classPlanList.Add(planModel);
}
}
}
}
i++;
}
}
//固定日期
else if (model.ClassStyle == ClassStyleEnum.FixedDate)
{
foreach (var item in model.WeekDayList)
{
var planModel = new RB_Class_Plan_ViewModel()
{
ClassId = model.ClassId,
ClassPlanId = 0,
ClassRoomId = model.ClassRoomId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
PlanTimeList = new List(),
TeacherId = model.Teacher_Id,
ClassDate = Convert.ToDateTime(item)
};
var timeList = defaultPlanTimeList.Where(qitem => qitem.DateList.Contains(item))?.FirstOrDefault()?.TimeList;
if (timeList != null && timeList.Count > 0)
{
CalcDayClassHoursRepository(timeList, planModel.PlanTimeList, model, BasicMinutes);
classPlanList.Add(planModel);
}
}
}
//约课
else
{
}
}
return classPlanList;
}
///
/// 计算每天课时
///
///
///
///
///
private double CalcDayClassHoursRepository(List timeList, List classTimeList, RB_Class_ViewModel model, int BasicMinutes)
{
double dayClassHours = 0;
double dayMinutes = 0;
foreach (var sItem in timeList)
{
var timeModel = new RB_Class_Time_ViewModel()
{
StartTime = sItem.StartTime,
EndTime = sItem.EndTime,
TimeHour = sItem.TimeHour,
};
classTimeList.Add(timeModel);
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + sItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
if (span.TotalMinutes > 0)
{
dayMinutes += span.TotalMinutes;
}
}
if (model.ClassHourMinute > 0)
{
dayClassHours = dayMinutes / model.ClassHourMinute;
}
else
{
dayClassHours = dayMinutes / BasicMinutes;
}
return dayClassHours;
}
///
/// 查询明日还有未备课的老师信息
///
///
public List GetNotPerparingTeachRepository()
{
var sql = @"select b.Id as AccountId,b.WorkUserId,c.TeacherName,Count(0) as ClassCount from rb_class_plan a
left join rb_account b on a.TeacherId=b.AccountId and b.AccountType=2
left join rb_teacher c on a.TeacherId=c.Tid
left join rb_class d on a.ClassId=d.ClassId
where ClassDate=DATE_FORMAT(DATE_ADD(NOW(),INTERVAL 1 DAY),'%Y-%m-%d') and a.BeiKeStatus=0 and a.TeacherId>0 and d.ClassStatus=2 and d.`Status`=0 and a.`Status`=0 and b.WorkUserId is not null
group by TeacherId";
return Get(sql,null).ToList();
}
}
}