using Edu.Common.Enum; using Edu.Model.Entity.Course; using Edu.Model.Entity.Grade; using Edu.Model.ViewModel.Course; using Edu.Model.ViewModel.Grade; using Edu.Model.ViewModel.Sell; using Edu.Model.ViewModel.User; using System; using System.Collections.Generic; using System.Linq; using System.Text; using VT.FW.DB.Dapper; namespace Edu.Repository.Grade { /// /// 班级仓储层 /// public class RB_ClassRepository : BaseRepository { /// /// 获取班级列表 /// /// /// public List GetClassListRepository(RB_Class_ViewModel query) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.* ,IFNULL(B.CourseName,'') AS CourseName,IFNULL(C.GuestNum,0) AS GuestNum,IFNULL(D.SName,'') AS SchoolName FROM rb_class AS A LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId LEFT JOIN(SELECT ClassId,SUM(GuestNum) AS GuestNum FROM rb_order WHERE OrderState=1 GROUP BY ClassId) AS C ON A.ClassId=C.ClassId LEFT JOIN rb_school AS D ON A.School_Id=D.SId WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), (int)DateStateEnum.Normal); if (query != null) { if (query.CouseId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId); } if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Group_Id), query.Group_Id); } if (query.ClassId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassId), query.ClassId); } if (!string.IsNullOrEmpty(query.Q_ClassIds)) { builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_ViewModel.ClassId), query.Q_ClassIds); } if (query.School_Id > -1) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.School_Id), query.School_Id); } if (query.Teacher_Id > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Teacher_Id), query.Teacher_Id); } if (!string.IsNullOrEmpty(query.MoreStatus)) { builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_ViewModel.ClassStatus), query.MoreStatus); } //查询未报满的班级 if (query.IsQuerySurplus == 1) { builder.AppendFormat(" AND A.{0}>IFNULL(C.GuestNum,0) ", nameof(RB_Class_ViewModel.ClassPersion)); } if (query.Teacher_Id > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Teacher_Id), query.Teacher_Id); } if (query.ClassScrollType > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), query.ClassScrollType); if (query.ClassScrollType == 2) { //滚动开班 默认查询当月的 builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.ToString("yyyy-MM")); } } } return Get(builder.ToString()).ToList(); } /// /// 获取班级课程名称以及老师信息列表 /// /// /// /// /// /// public List GetClassAndCourseListRepository(RB_Class_ViewModel query) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,B.CourseName,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead ,E.SName AS SchoolName,c.CateName,E.ManagerId,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_course_category c on b.CateId = c.CateId LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId 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 "); 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.ClassId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassId), query.ClassId); } if (!string.IsNullOrEmpty(query.Q_ClassIds)) { builder.AppendFormat(" AND A.{0} in ({1}) ", nameof(RB_Class_ViewModel.ClassId), query.Q_ClassIds); } if (query.Status >= 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), (int)query.Status); } if (query.ClassStatus > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassStatus), (int)query.ClassStatus); } if (!string.IsNullOrEmpty(query.StartTime)) { builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Class_ViewModel.OpenTime), query.StartTime); } if (!string.IsNullOrEmpty(query.EndTime)) { builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Class_ViewModel.OpenTime), query.EndTime); } if (!string.IsNullOrWhiteSpace(query.ClassName)) { builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName)); parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.CourseName)) { builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName)); parameters.Add("CourseName", "%" + query.CourseName.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.TeacherName)) { builder.AppendFormat(" AND D.{0} LIKE @TeacherName ", nameof(RB_Class_ViewModel.TeacherName)); parameters.Add("TeacherName", "%" + query.TeacherName.Trim() + "%"); } if (query.ClassScrollType > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), query.ClassScrollType); if (query.ClassScrollType == 2) { //滚动开班 默认查询当月的 builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.ToString("yyyy-MM")); } } } return Get(builder.ToString(), parameters).ToList(); } /// /// 获取班级列表 /// /// /// public List GetClassListForProperty(RB_Class_ViewModel query) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,B.CourseName FROM rb_class AS A left join rb_course AS B ON A.CouseId=B.CourseId WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0} in(1,2,3) ", nameof(RB_Class_ViewModel.ClassStatus));// 未开班 + 学习中的 if (query != null) { if (query.CouseId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId); } if (query.Group_Id > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Group_Id), query.Group_Id); } if (query.ClassId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassId), query.ClassId); } if (!string.IsNullOrEmpty(query.Q_ClassIds)) { builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_ViewModel.ClassId), query.Q_ClassIds); } if (query.ClassStatus > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassStatus), (int)query.ClassStatus); } if (query.ClassScrollType > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), query.ClassScrollType); if (query.ClassScrollType == 2) { //滚动开班 默认查询当月的 builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.ToString("yyyy-MM")); } } } return Get(builder.ToString()).ToList(); } /// /// 获取班级分页列表 /// /// /// /// /// /// public List GetClassPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_ViewModel query) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,B.CourseName,C.AssistName,IFNULL(C.AssistIcon,'') AS AssistIcon,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead ,E.SName AS SchoolName,IFNULL(F.RoomName,'') AS RoomName,plan.TotalPlanNum,ySplan.UsePlanNum,B.CourseSubject,IFNULL(csubject.SubjectName,'') AS CourseSubjectName FROM rb_class AS A LEFT JOIN rb_course AS B ON A.CouseId=B.CourseId LEFT JOIN rb_assist AS C ON A.Assist_Id=C.AId LEFT JOIN rb_teacher AS D ON A.Teacher_Id=D.TId LEFT JOIN rb_school AS E ON A.School_Id=E.SId LEFT JOIN rb_class_room AS F ON A.ClassRoomId=F.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 LEFT JOIN ((SELECT ClassId,COUNT(*) AS UsePlanNum FROM rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(NOW(),'%Y-%m-%d') GROUP BY ClassId)) as ySplan on ySplan.ClassId=a.ClassId LEFT JOIN rb_course_subject AS csubject ON B.CourseSubject=csubject.Id WHERE 1=1 "); 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 >-1) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.School_Id), query.School_Id); } if (query.Status >= 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), (int)query.Status); } if (query.CouseId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId); } if (query.ClassStatus > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassStatus), (int)query.ClassStatus); } if (!string.IsNullOrEmpty(query.QClassStatus)) { builder.AppendFormat(" AND A.{0} IN ({1}) ", nameof(RB_Class_ViewModel.ClassStatus), query.QClassStatus); } if (!string.IsNullOrWhiteSpace(query.ClassName)) { builder.AppendFormat(" AND A.{0} LIKE @ClassName ", nameof(RB_Class_ViewModel.ClassName)); parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%"); } if (!string.IsNullOrEmpty(query.ClassNo)) { builder.AppendFormat(" AND A.{0} LIKE @ClassNo ", nameof(RB_Class_ViewModel.ClassNo)); parameters.Add("ClassNo", "%" + query.ClassNo.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.CourseName)) { builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Course_ViewModel.CourseName)); parameters.Add("CourseName", "%" + query.CourseName.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.AssistName)) { builder.AppendFormat(" AND C.{0} LIKE @AssistName ", nameof(RB_Assist_ViewModel.AssistName)); parameters.Add("AssistName", "%" + query.AssistName.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.TeacherName)) { builder.AppendFormat(" AND D.{0} LIKE @TeacherName ", nameof(RB_Teacher_ViewModel.TeacherName)); parameters.Add("TeacherName", "%" + query.TeacherName.Trim() + "%"); } if (!string.IsNullOrEmpty(query.StartTime)) { builder.AppendFormat(" AND A.{0}>='{1}' ", nameof(RB_Class_ViewModel.OpenTime), query.StartTime); } if (!string.IsNullOrEmpty(query.EndTime)) { builder.AppendFormat(" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Class_ViewModel.OpenTime), query.EndTime); } if (query.OldClassId > 0) { builder.AppendFormat(" AND A.{0}<>{1} ", nameof(RB_Class_ViewModel.ClassId), query.OldClassId); } if (query.Teacher_Id > 0) { builder.AppendFormat(" AND D.{0}={1} ", nameof(RB_Teacher_ViewModel.TId), query.Teacher_Id); } if (query.CourseSubject > 0) { builder.AppendFormat(" AND B.{0}={1} ", nameof(RB_Class_ViewModel.CourseSubject), query.CourseSubject); } if (query.ClassScrollType > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), query.ClassScrollType); if (query.ClassScrollType == 2) { //滚动开班 默认查询当月的 builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.ToString("yyyy-MM")); } } } return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); } /// /// 更新班级结课日期 /// /// /// public bool UpdateClassEndDateRepository(int classId) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" UPDATE rb_class AS A INNER JOIN( SELECT MAX(ClassDate) AS ClassDate,ClassId FROM rb_class_plan WHERE Status=0 GROUP BY ClassId ) AS B ON A.ClassId=B.ClassId SET A.EndClassDate=B.ClassDate WHERE A.ClassId={0} ", classId); return base.Execute(builder.ToString()) > 0; } /// /// 获取班课产品 /// /// /// /// /// /// public List GetClassProductPageList(int pageIndex, int pageSize, out long rowsCount, RB_Class_ViewModel query) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.*,B.CourseName,B.CourseFeature,D.TeacherName,IFNULL(D.TeacherHead,'') AS TeacherHead,E.SName AS SchoolName,R.RoomName ,IFNULL(t.GuestNum,0) AS OrderStudentCount,IFNULL(B.SellPrice,0) AS CourseSellPrice,IFNULL(B.CoursewareFee,0) AS CoursewareFee,IFNULL(B.TextbookFee,0) AS TextbookFee,B.SellPriceType as CourseSellPriceType,IFNULL(B.OriginalPrice,0) AS CourseOriginalPrice ,B.B2CRatio,B.B2CReNewRatio,B.B2BRebateRatio,B.B2BReNewRatio,B.SchoolRebateRatio,B.SchoolReNewRatio ,B.CourseSubject,IFNULL(csubject.SubjectName,'') AS CourseSubjectName 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 LEFT JOIN rb_course_subject AS csubject ON B.CourseSubject=csubject.Id WHERE 1=1 "); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), 0); builder.AppendFormat(" AND A.{0} in(1,2) ", nameof(RB_Class_ViewModel.ClassStatus)); builder.AppendFormat(" AND B.Saleplat<>'' AND B.SaleState=1 AND B.Status=0 "); 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.CourseSubject > 0) { builder.AppendFormat(" AND B.{0}={1} ", nameof(RB_Class_ViewModel.CourseSubject), (int)query.CourseSubject); } if (query.School_Id > -1) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.School_Id), query.School_Id); } if (query.ClassId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassId), query.ClassId); } if (query.CouseId > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.CouseId), query.CouseId); } //课程分类编号 if (query.CateId > 0) { builder.AppendFormat(" AND B.{0}={1} ", nameof(RB_Class_ViewModel.CateId), query.CateId); } 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)); parameters.Add("ClassName", "%" + query.ClassName.Trim() + "%"); } if (!string.IsNullOrEmpty(query.ClassNo)) { builder.AppendFormat(" AND A.{0} ='{1}' ", nameof(RB_Class_ViewModel.ClassNo), query.ClassNo); } if (!string.IsNullOrWhiteSpace(query.CourseName)) { builder.AppendFormat(" AND B.{0} LIKE @CourseName ", nameof(RB_Class_ViewModel.CourseName)); parameters.Add("CourseName", "%" + query.CourseName.Trim() + "%"); } if (!string.IsNullOrWhiteSpace(query.TeacherName)) { builder.AppendFormat(" AND D.{0} LIKE @TeacherName ", nameof(RB_Class_ViewModel.TeacherName)); parameters.Add("TeacherName", "%" + query.TeacherName.Trim() + "%"); } if (!string.IsNullOrEmpty(query.StartTime)) { builder.AppendFormat(" AND A.{0} >='{1}' ", nameof(RB_Class_ViewModel.OpenTime), query.StartTime); } if (!string.IsNullOrEmpty(query.EndTime)) { builder.AppendFormat(" AND A.{0} <='{1} 23:59:59' ", nameof(RB_Class_ViewModel.OpenTime), query.EndTime); } //报名截止日期开始 if (!string.IsNullOrEmpty(query.JoinStartTime)) { builder.AppendFormat(" AND A.{0} >='{1}' ", nameof(RB_Class_ViewModel.EndOrderTime), query.JoinStartTime); } //报名截止日期结束 if (!string.IsNullOrEmpty(query.JoinEndTime)) { builder.AppendFormat(" AND A.{0} <='{1} 23:59:59' ", nameof(RB_Class_ViewModel.EndOrderTime), query.JoinEndTime); } if (query.Q_CanApply == 1) { builder.AppendFormat(" AND (IFNULL(A.ClassPersion,0)-IFNULL(t.GuestNum,0))>0 "); builder.AppendFormat(" AND A.{0} >='{1}' ", nameof(RB_Class_ViewModel.EndOrderTime), DateTime.Now.ToString("yyyy-MM-dd")); } //销售平台 if (!string.IsNullOrEmpty(query.Saleplat)) { var salePlatList = Common.ConvertHelper.StringToList(query.Saleplat); string str = ""; if (salePlatList != null && salePlatList.Count > 0) { for (var i = 0; i < salePlatList.Count; i++) { if (i == 0) { str += string.Format(" FIND_IN_SET('{0}', B.Saleplat)>0 ", salePlatList[i]); } else { str += string.Format(" AND FIND_IN_SET('{0}', B.Saleplat)>0 ", salePlatList[i]); } } } if (!string.IsNullOrEmpty(str)) { builder.AppendFormat(" AND ({0}) ", str); } } if (query.ClassScrollType > 0) { builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), query.ClassScrollType); if (query.ClassScrollType == 2) { //滚动开班 默认查询当月的 builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.ToString("yyyy-MM")); } } } builder.AppendFormat(" order by A.{0} asc", nameof(RB_Class_ViewModel.OpenTime)); Common.Plugin.LogHelper.WriteInfo("GetClassProductPageList::" + builder.ToString()); return GetPage(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); } /// /// 班级类型统计 /// /// /// public List GetClassTypeStaticListRepository(string qClassTypeIds) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT A.ClassType,A.TotalClassNum,IFNULL(B.CompleteClassNum,0) AS CompleteClassNum FROM ( SELECT ClassType, COUNT(1) AS TotalClassNum FROM rb_class WHERE `Status`=0 AND ClassStatus IN(1,2,3) AND ClassType IN({0}) GROUP BY ClassType ) AS A LEFT JOIN ( SELECT ClassType, COUNT(1) AS CompleteClassNum FROM rb_class WHERE `Status`=0 AND ClassStatus=3 AND ClassType IN({0}) GROUP BY ClassType ) AS B ON A.ClassType=B.ClassType ", qClassTypeIds); return Get(builder.ToString()).ToList(); } /// /// 获取教师列表 /// /// /// public List GetTeachingPerfClassList(int GroupId) { string sql = $@" SELECT c.* FROM rb_class c LEFT JOIN rb_teaching_perf t on (c.ClassId = t.ClassId AND t.`Status`=0) WHERE c.`Status`=0 and c.Group_Id ={GroupId} and c.ClassStatus =3 AND t.Id IS NULL"; return Get(sql).ToList(); } /// /// 统计教师带班数量 /// /// /// public List GetTeacherClassCountRepository(string teacherIds) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT Teacher_Id,COUNT(1) AS ClassCount FROM rb_class WHERE status=0 AND ClassStatus<>4 AND Teacher_Id IN({0}) GROUP BY Teacher_Id ", teacherIds); return Get(builder.ToString()).ToList(); } /// /// 获取上个月 没有订单的滚动班级 /// /// /// public bool SetLastMonthNotOrderClassDel(int groupId) { StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" update rb_class AS A left join rb_order o on A.ClassId =o.ClassId and o.OrderState <>3 set A.Status =1 WHERE 1=1 and o.OrderId IS NULL "); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Status), (int)DateStateEnum.Normal); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.Group_Id), groupId); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_ViewModel.ClassScrollType), 2); builder.AppendFormat(" AND A.{0}='{1}' ", nameof(RB_Class_ViewModel.ScrollMonth), DateTime.Now.AddMonths(-1).ToString("yyyy-MM"));//上个月 return Execute(builder.ToString()) > 0; } /// /// 根据学生id获取教师账户 /// /// /// public List GetListByStudentId(int Student_Id, int Group_Id) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@" SELECT c.*,cp.ClassPlanId,cp.ClassDate FROM rb_class as c LEFT JOIN rb_student_orderguest as sog on sog.ClassId=c.ClassId LEFT JOIN (SELECT ClassId,MIN(ClassDate) as ClassDate,MIN(ClassPlanId) as ClassPlanId from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%y-%M-%d')>=DATE_FORMAT(now(),'%y-%M-%d') GROUP BY ClassId) as cp on c.ClassId=cp.ClassId WHERE c.`Status`=0 and sog.`Status`=0 "); builder.AppendFormat(" AND sog.Student_Id={0} ", Student_Id); builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Class_ViewModel.Group_Id), Group_Id); return Get(builder.ToString(), parameters).ToList(); } /// /// 获取app约课 /// /// /// public List GetStuAppointment(int Group_Id) { var parameters = new DynamicParameters(); StringBuilder builder = new StringBuilder(); builder.AppendFormat(@"SELECT a.CourseClassType,a.StudentNumType,SUM(b.OrderNum) as OrderStudentCount from rb_class as a LEFT JOIN (SELECT ClassId,COUNT(OrderId) as OrderNum from rb_order where OrderState=1 GROUP BY ClassId ) as b on a.ClassId=b.ClassId where a.`Status`=0 and a.IsSubscribe=1 and ClassStatus in(1,2)"); builder.AppendFormat(" AND a.Group_Id={0} ", Group_Id); builder.AppendFormat(" GROUP BY a.CourseClassType,a.StudentNumType "); return Get(builder.ToString(), parameters).ToList(); } /// /// 获取班级编码 /// /// /// public int GetMaxClassNoPrefix(string OpenTime) { string sql = $@"SELECT Max(ClassLetterNum) AS ClassLetterNum FROM RB_Class WHERE Status =0 AND OpenTime ='{OpenTime}'"; var obj = ExecuteScalar(sql); return obj == null ? 0 : Convert.ToInt32(obj); } } }