Commit c915b251 authored by liudong1993's avatar liudong1993

1

parent a7b4cdc3
...@@ -342,6 +342,39 @@ namespace Edu.Education.Helper ...@@ -342,6 +342,39 @@ namespace Edu.Education.Helper
await scheduler.ScheduleJob(job, trigger); await scheduler.ScheduleJob(job, trigger);
} }
/// <summary>
/// 定时执行预约成功生成
/// </summary>
/// <returns></returns>
public async Task EduCreateScrollAppointmentTimer()
{
string cronExpression = "0 0 * * * ?";//每小时执行的一次 整点整分
NameValueCollection props = new NameValueCollection
{
{ "quartz.serializer.type", "binary" }
};
StdSchedulerFactory factory = new StdSchedulerFactory(props);
IScheduler scheduler = await factory.GetScheduler();
await scheduler.Start();
IJobDetail job = JobBuilder.Create<CreateScrollAppointment>()
.WithIdentity("job11", "group11")
.Build();
ITrigger trigger = TriggerBuilder.Create()
.WithIdentity("trigger11", "group11")
.StartNow()
.WithSimpleSchedule(x => x
.WithIntervalInHours(1)
.RepeatForever())
.Build();
//ICronTrigger trigger = (ICronTrigger)TriggerBuilder.Create()
// .WithIdentity("trigger11", "group11")
// .WithCronSchedule(cronExpression)
// .Build();
await scheduler.ScheduleJob(job, trigger);
}
} }
...@@ -683,6 +716,31 @@ namespace Edu.Education.Helper ...@@ -683,6 +716,31 @@ namespace Edu.Education.Helper
} }
} }
/// <summary>
/// 滚动开班预约课程生成
/// </summary>
public class CreateScrollAppointment : IJob
{
/// <summary>
/// 这里是作业调度每次定时执行方法
/// </summary>
/// <param name="context"></param>
public Task Execute(IJobExecutionContext context)
{
try
{
LogHelper.Write("滚动开班预约课程生成");
ScrollClassCommonModule scrollClassModule = new ScrollClassCommonModule();
scrollClassModule.CreateScrollAppointment(100000);
}
catch (Exception ex)
{
LogHelper.Write(ex, "CreateScrollAppointment");
}
return null;
}
}
public class UpdageHistoryOrderCommissionHelper public class UpdageHistoryOrderCommissionHelper
{ {
/// <summary> /// <summary>
......
...@@ -142,5 +142,9 @@ namespace Edu.Model.CacheModel ...@@ -142,5 +142,9 @@ namespace Edu.Model.CacheModel
/// </summary> /// </summary>
public string StuBirth { get; set; } public string StuBirth { get; set; }
/// <summary>
/// 学习方式:1 班课学习, 2 约课学习
/// </summary>
public int ClassScrollType { get; set; }
} }
} }
\ No newline at end of file
...@@ -86,5 +86,10 @@ namespace Edu.Model.Entity.Scroll ...@@ -86,5 +86,10 @@ namespace Edu.Model.Entity.Scroll
/// 当日完课时间 (用于统计预约次数) /// 当日完课时间 (用于统计预约次数)
/// </summary> /// </summary>
public DateTime CourseEndTime { get; set; } public DateTime CourseEndTime { get; set; }
/// <summary>
/// 上课教室ID
/// </summary>
public int RoomId { get; set; }
} }
} }
\ No newline at end of file
...@@ -435,5 +435,10 @@ namespace Edu.Model.Entity.Sell ...@@ -435,5 +435,10 @@ namespace Edu.Model.Entity.Sell
/// 返佣类型(1比例返佣,2-固定金额返佣) /// 返佣类型(1比例返佣,2-固定金额返佣)
/// </summary> /// </summary>
public int CommissionReType { get; set; } public int CommissionReType { get; set; }
/// <summary>
/// 滚动开班所属校区
/// </summary>
public int ScrollSchoolId { get; set; }
} }
} }
...@@ -170,5 +170,24 @@ namespace Edu.Model.ViewModel.Course ...@@ -170,5 +170,24 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public string CourseSubjectName { get; set; } public string CourseSubjectName { get; set; }
#region 滚动开班使用
/// <summary>
/// 课程订单数量
/// </summary>
public int OrderNum { get; set; }
/// <summary>
/// 课程报名人数
/// </summary>
public int GuestNum { get; set; }
/// <summary>
/// 排序 1订单数量升序 2订单数量降序 3报名人数升序 4报名人数降序
/// </summary>
public int Q_OrderBy { get; set; }
#endregion
} }
} }
\ No newline at end of file
...@@ -257,5 +257,10 @@ namespace Edu.Model.ViewModel.Grade ...@@ -257,5 +257,10 @@ namespace Edu.Model.ViewModel.Grade
/// 上课结束时间 /// 上课结束时间
/// </summary> /// </summary>
public string EndTime { get; set; } public string EndTime { get; set; }
/// <summary>
/// 学生ID
/// </summary>
public int StuId { get; set; }
} }
} }
...@@ -66,5 +66,10 @@ namespace Edu.Model.ViewModel.Grade ...@@ -66,5 +66,10 @@ namespace Edu.Model.ViewModel.Grade
/// 上课分钟数 /// 上课分钟数
/// </summary> /// </summary>
public int TimeMinute { get; set; } public int TimeMinute { get; set; }
/// <summary>
/// 0-正常,1-缺勤,2-未签到
/// </summary>
public int IsCheck { get; set; }
} }
} }
\ No newline at end of file
...@@ -40,11 +40,26 @@ namespace Edu.Model.ViewModel.Scroll ...@@ -40,11 +40,26 @@ namespace Edu.Model.ViewModel.Scroll
/// </summary> /// </summary>
public string StuName { get; set; } public string StuName { get; set; }
/// <summary>
/// 学生OpenId
/// </summary>
public string StuOpenId { get; set; }
/// <summary> /// <summary>
/// 课程名称 /// 课程名称
/// </summary> /// </summary>
public string CourseName { get; set; } public string CourseName { get; set; }
/// <summary>
/// 教室名称
/// </summary>
public string RoomName { get; set; }
/// <summary>
/// 教室所属校区
/// </summary>
public string RoomSchoolName { get; set; }
/// <summary> /// <summary>
/// 最小人数 /// 最小人数
/// </summary> /// </summary>
...@@ -60,6 +75,11 @@ namespace Edu.Model.ViewModel.Scroll ...@@ -60,6 +75,11 @@ namespace Edu.Model.ViewModel.Scroll
/// </summary> /// </summary>
public int CourseTimeId { get; set; } public int CourseTimeId { get; set; }
/// <summary>
/// 企业微信用户ID
/// </summary>
public string WorkUserId { get; set; }
/// <summary> /// <summary>
/// 上课时段 /// 上课时段
/// </summary> /// </summary>
......
...@@ -314,5 +314,10 @@ namespace Edu.Model.ViewModel.Sell ...@@ -314,5 +314,10 @@ namespace Edu.Model.ViewModel.Sell
/// 订单条数 /// 订单条数
/// </summary> /// </summary>
public int OrderCount { get; set; } public int OrderCount { get; set; }
/// <summary>
/// 开班类型 1正常班 2滚动班
/// </summary>
public int ClassScrollType { get; set; }
} }
} }
\ No newline at end of file
...@@ -113,5 +113,10 @@ namespace Edu.Model.ViewModel.User ...@@ -113,5 +113,10 @@ namespace Edu.Model.ViewModel.User
/// 已上课章节 /// 已上课章节
/// </summary> /// </summary>
public int CourseChapterNo { get; set; } public int CourseChapterNo { get; set; }
/// <summary>
/// 开班类型 1正常班 2滚动班
/// </summary>
public int ClassScrollType { get; set; }
} }
} }
...@@ -89,6 +89,11 @@ namespace Edu.Model.ViewModel.User ...@@ -89,6 +89,11 @@ namespace Edu.Model.ViewModel.User
/// </summary> /// </summary>
public string ClassName { get; set; } public string ClassName { get; set; }
/// <summary>
/// 开班类型 1正常班 2滚动班
/// </summary>
public int ClassScrollType { get; set; }
/// <summary> /// <summary>
/// 班级id /// 班级id
/// </summary> /// </summary>
......
...@@ -4817,6 +4817,46 @@ namespace Edu.Module.Course ...@@ -4817,6 +4817,46 @@ namespace Edu.Module.Course
return planList; return planList;
} }
/// <summary>
/// 获取约课老师计划列表
/// </summary>
/// <param name="model"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetStundentPlanModuleForYK(RB_Class_ViewModel model)
{
var timeList = new List<RB_Class_Time_ViewModel>();
var planList = class_PlanRepository.GetClassPlanStatisticalForYK(new RB_Class_Plan_ViewModel() { School_Id = model.School_Id, PlanType = 2, CourseId = model.CouseId, StuId = model.ManagerId, Group_Id = model.Group_Id, StartTime = model.StartTime, EndTime = model.EndTime });
if (planList != null && planList.Any())
{
string Ids = string.Join(",", planList.Select(qitem => qitem.ClassPlanId));
if (!string.IsNullOrEmpty(Ids))
{
timeList = class_TimeRepository.GetClassTimeList_V2(new RB_Class_Time_ViewModel() { QClassPlanIds = Ids });
}
string timeIds = string.Join(",", timeList.Select(x => x.ClassTimeId));
var checkList = classCheckRepository.GetClassCheckList_V2(new RB_Class_Check_ViewModel
{
ClassTimeIds = timeIds,
StuId = model.ManagerId,
Group_Id = model.Group_Id
});
foreach (var item in planList.OrderBy(x => x.ClassDate))
{
item.PlanTimeList = new List<RB_Class_Time_ViewModel>();
item.PlanTimeList = timeList.Where(x => x.ClassId == item.ClassId && (x.ClassPlanId == item.ClassPlanId || item.ClassDate == Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.NewPlanDateTime)))).ToList();
foreach (var itemTime in item.PlanTimeList)
{
//0-正常,1-缺勤,2-未签到
itemTime.IsCheck = checkList?.Where(y => y.StuId == item.StuId && y.ClassTimeId == itemTime.ClassTimeId).FirstOrDefault()?.CheckStatus ?? -1;
}
}
}
return planList;
}
/// <summary> /// <summary>
/// 获取老师计划列表 /// 获取老师计划列表
/// </summary> /// </summary>
......
...@@ -1059,7 +1059,18 @@ namespace Edu.Module.Course ...@@ -1059,7 +1059,18 @@ namespace Edu.Module.Course
demodel.Class_Price = courseModel.SellPrice; demodel.Class_Price = courseModel.SellPrice;
if (demodel.EnterID <= 0 && demodel.CreateBy > 0) if (demodel.EnterID <= 0 && demodel.CreateBy > 0)
{ {
demodel.EnterID = demodel.CreateBy; if (userInfo.AccountType == AccountTypeEnum.Teacher)
{
demodel.HelpEnterId = demodel.CreateBy;
}
else
{
demodel.EnterID = demodel.CreateBy;
}
}
if (demodel.OrderIdentify == 2 && StuList.Where(x => x.IsRenewGuest == 1).Any())
{
demodel.JoinType = OrderJoinTypeEnum.RenewOrder;
} }
int OrderId = orderRepository.Insert(demodel); int OrderId = orderRepository.Insert(demodel);
demodel.OrderId = OrderId; demodel.OrderId = OrderId;
......
...@@ -441,6 +441,7 @@ namespace Edu.Module.Course ...@@ -441,6 +441,7 @@ namespace Edu.Module.Course
//获取正在上课的课程 //获取正在上课的课程
var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id); var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id);
if (learnModel == null) { rmsg = "未查询有正在学习的课程,无法约课"; return ""; } if (learnModel == null) { rmsg = "未查询有正在学习的课程,无法约课"; return ""; }
if (learnModel.ClassScrollType != 2) { rmsg = "不是预约学员,无法查看"; return ""; }
//获取课程信息 //获取课程信息
var courseModel = courseRepository.GetEntity(learnModel.CourseId); var courseModel = courseRepository.GetEntity(learnModel.CourseId);
if (courseModel.CourseTimeId <= 0) { rmsg = "课程未关联上课时段"; return ""; } if (courseModel.CourseTimeId <= 0) { rmsg = "课程未关联上课时段"; return ""; }
...@@ -479,6 +480,15 @@ namespace Edu.Module.Course ...@@ -479,6 +480,15 @@ namespace Edu.Module.Course
NextAppointMinutes = chapterModel?.StudyMinutes ?? 0; NextAppointMinutes = chapterModel?.StudyMinutes ?? 0;
} }
#region 获取订阅模板
// 预约成功 + 取消
List<string> TempleteList = new List<string>()
{
"oAkcEBjei5seEiDBJVZyjJj2MsHHfYPikNkn-kdVEK0",
"_iqA9KHffrLRNg_yRQqk7uLQNzJsQIGF7ykXLsFXhlw"
};
#endregion
return new return new
{ {
AccountId = userInfo.Id, AccountId = userInfo.Id,
...@@ -493,7 +503,8 @@ namespace Edu.Module.Course ...@@ -493,7 +503,8 @@ namespace Edu.Module.Course
AdvanceDay, AdvanceDay,
ScrollETime, ScrollETime,
AppointDay, AppointDay,
learnModel.CourseId learnModel.CourseId,
TempleteList
}; };
} }
...@@ -511,6 +522,7 @@ namespace Edu.Module.Course ...@@ -511,6 +522,7 @@ namespace Edu.Module.Course
//获取正在上课的课程 //获取正在上课的课程
var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id); var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id);
if (learnModel == null) { rmsg = "未查询有正在学习的课程,无法约课";return ""; } if (learnModel == null) { rmsg = "未查询有正在学习的课程,无法约课";return ""; }
if (learnModel.ClassScrollType != 2) { rmsg = "不是预约学员,无法查看"; return ""; }
//获取课程信息 //获取课程信息
var courseModel = courseRepository.GetEntity(learnModel.CourseId); var courseModel = courseRepository.GetEntity(learnModel.CourseId);
if (courseModel.CourseTimeId <= 0) { rmsg = "课程未关联上课时段"; return ""; } if (courseModel.CourseTimeId <= 0) { rmsg = "课程未关联上课时段"; return ""; }
...@@ -524,6 +536,16 @@ namespace Edu.Module.Course ...@@ -524,6 +536,16 @@ namespace Edu.Module.Course
//获取课程的章节数量 //获取课程的章节数量
int MaxChapterNum = courseRepository.GetMaxChapterNum(learnModel.CourseId, userInfo.Group_Id); int MaxChapterNum = courseRepository.GetMaxChapterNum(learnModel.CourseId, userInfo.Group_Id);
if (learnModel.CourseChapterNo >= MaxChapterNum) { rmsg = "课程已上完,无法继续约课"; return ""; } if (learnModel.CourseChapterNo >= MaxChapterNum) { rmsg = "课程已上完,无法继续约课"; return ""; }
//查询已预约了几次课程
var myAppointModel = scroll_AppointmentRepository.GetMyAppointmentNum(userInfo.AccountId, userInfo.Group_Id);
string AppointDate = "";//最后预约的时间 再次预约只能预约之后的日期
int AppointNum = 0;//已预约次数
if (myAppointModel != null)
{
AppointDate = myAppointModel.Date.ToString("yyyy-MM-dd");
AppointNum = myAppointModel.ScrollMinNum;
}
#endregion #endregion
#region 组装数据 #region 组装数据
...@@ -598,8 +620,24 @@ namespace Edu.Module.Course ...@@ -598,8 +620,24 @@ namespace Edu.Module.Course
z.PeopleNum = x.Count(); z.PeopleNum = x.Count();
z.SortIdentify = x.Key.ShiftSort; z.SortIdentify = x.Key.ShiftSort;
z.Description = string.Join(",", x.Select(q => q.StuName)); z.Description = string.Join(",", x.Select(q => q.StuName));
if (z.State == 3) {
if (learnModel.CourseId != z.CourseId) {
//课程不一致 无法预约
z.State = 2;
}
if (z.CourseChapterNo != learnModel.CourseChapterNo + 1 + AppointNum) {
//章节不一致 无法预约
z.State = 2;
}
if (z.MaxPeopleNum <= z.PeopleNum) {
//人数已报满 无法预约
z.State = 2;
}
}
}); });
}); });
item.CourseTimeList = item.CourseTimeList.Where(x => x.State != 2).ToList();//排除不可预约的
RList.Add(new RList.Add(new
{ {
item.AccountId, item.AccountId,
...@@ -653,7 +691,8 @@ namespace Edu.Module.Course ...@@ -653,7 +691,8 @@ namespace Edu.Module.Course
#region 学生的课程 #region 学生的课程
//获取正在上课的课程 //获取正在上课的课程
var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id); var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(userInfo.AccountId, userInfo.Group_Id);
if (learnModel == null) { return "未查询有正在学习的课程,无法约课";} if (learnModel == null) { return "未查询有正在学习的课程,无法约课"; }
if (learnModel.ClassScrollType != 2) { return "不是预约学员,无法查看"; }
if (demodel.CourseId != learnModel.CourseId) { return "正在学习的课程不正确"; } if (demodel.CourseId != learnModel.CourseId) { return "正在学习的课程不正确"; }
if (learnModel.CourseChapterNo + AppointNum + 1 != demodel.ChapterNo) { return "预约第几次课有误,请刷新后再试"; } if (learnModel.CourseChapterNo + AppointNum + 1 != demodel.ChapterNo) { return "预约第几次课有误,请刷新后再试"; }
//获取课程信息 //获取课程信息
...@@ -776,7 +815,8 @@ namespace Edu.Module.Course ...@@ -776,7 +815,8 @@ namespace Edu.Module.Course
if (item.PeopleNum + 1 > item.MaxPeopleNum) { return "该时段已预约满,请预约其他时段"; } if (item.PeopleNum + 1 > item.MaxPeopleNum) { return "该时段已预约满,请预约其他时段"; }
} }
demodel.CourseEndTime = Convert.ToDateTime(Date + " " + timeList.Max(x => x.EndTime)); demodel.CourseEndTime = Convert.ToDateTime(Date + " " + timeList.Max(x => x.EndTime));//上完课的时间
demodel.RoomId = planModel.RoomId;//上课教室
//验证都OK了 插入预约数据 //验证都OK了 插入预约数据
bool flag = scroll_AppointmentRepository.Insert(demodel) > 0; bool flag = scroll_AppointmentRepository.Insert(demodel) > 0;
......
...@@ -103,10 +103,14 @@ WHERE 1=1 ...@@ -103,10 +103,14 @@ WHERE 1=1
{ {
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat($@"
SELECT A.*,IFNULL(B.CateName,'') AS CateName,IFNULL(C.SubjectName,'') AS CourseSubjectName SELECT A.*,IFNULL(B.CateName,'') AS CateName,IFNULL(C.SubjectName,'') AS CourseSubjectName, t.OrderNum, t.GuestNum
FROM RB_Course AS A LEFT JOIN rb_course_category AS B ON A.CateId=B.CateId FROM RB_Course AS A
LEFT JOIN rb_course_subject AS C ON A.CourseSubject=C.Id LEFT JOIN rb_course_category AS B ON A.CateId=B.CateId
LEFT JOIN rb_course_subject AS C ON A.CourseSubject=C.Id
LEFT JOIN (
SELECT o.CourseId,COUNT(0) AS OrderNum, SUM(o.GuestNum) AS GuestNum FROM rb_order o WHERE o.Group_Id ={query.Group_Id} AND o.OrderState <>3 GROUP BY o.CourseId
) t on t.CourseId = A.CourseId
WHERE 1=1 WHERE 1=1
"); ");
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Group_Id), query.Group_Id); builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Course_ViewModel.Group_Id), query.Group_Id);
...@@ -158,6 +162,24 @@ WHERE 1=1 ...@@ -158,6 +162,24 @@ WHERE 1=1
{ {
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_ViewModel.CourseSubject), (int)query.CourseSubject); builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Course_ViewModel.CourseSubject), (int)query.CourseSubject);
} }
if (query.Q_OrderBy > 0) {
if (query.Q_OrderBy == 1)
{
builder.AppendFormat(" AND t.OrderNum asc ");
}
else if (query.Q_OrderBy == 2)
{
builder.AppendFormat(" AND t.OrderNum desc ");
}
else if (query.Q_OrderBy == 3)
{
builder.AppendFormat(" AND t.GuestNum asc ");
}
else if (query.Q_OrderBy == 4)
{
builder.AppendFormat(" AND t.GuestNum desc ");
}
}
} }
return GetPage<RB_Course_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList(); return GetPage<RB_Course_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
} }
......
...@@ -262,6 +262,71 @@ GROUP BY A.ClassId ...@@ -262,6 +262,71 @@ GROUP BY A.ClassId
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList(); return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
} }
/// <summary>
/// 获取班级签到列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassCheckList_V2(RB_Class_Check_ViewModel query)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat($@" SELECT A.*,sog.Student_Id as StuId FROM RB_Class_Check AS A
inner join rb_student_orderguest sog on A.OrderGuestId = sog.GuestId
WHERE 1=1 ");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.School_Id), query.School_Id);
}
if (query.ClassId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassId), query.ClassId);
}
if (query.ClassCheckId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassCheckId), query.ClassCheckId);
}
if (query.OrderGuestId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.OrderGuestId), query.OrderGuestId);
}
if (query.StuId > 0)
{
builder.AppendFormat(" AND sog.Student_Id ={0} ", query.StuId);
}
if (!string.IsNullOrEmpty(query.Q_ClassIds))
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassId), query.Q_ClassIds);
}
if (!string.IsNullOrEmpty(query.Q_ClassTimeIds))
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.Q_ClassTimeIds);
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate);
}
if (!string.IsNullOrWhiteSpace(query.EndDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')<=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.EndDate);
}
if (query.ClassTimeId > 0)
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.ClassTimeId);
}
if (!string.IsNullOrWhiteSpace(query.ClassTimeIds))
{
builder.AppendFormat(" AND A.{0} in ({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.ClassTimeIds);
}
}
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
}
/// <summary> /// <summary>
/// 获取学生的上课时间 /// 获取学生的上课时间
/// </summary> /// </summary>
......
...@@ -605,6 +605,75 @@ GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress ...@@ -605,6 +605,75 @@ GROUP BY A.ClassPlanId,A.ClassId ,A.ClassDate,A.ClassRoomId,A.CompleteProgress
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList(); return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
} }
/// <summary>
/// 老师上课计划统计
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetClassPlanStatisticalForYK(RB_Class_Plan_ViewModel query)
{
StringBuilder where = new StringBuilder();
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);
}
if (query.CourseId > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.CourseId), query.CourseId);
}
if (query.PlanType > 0)
{
where.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Plan_ViewModel.PlanType), query.PlanType);
}
}
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.ClassPlanId,A.StuId,A.CourseId,A.ClassDate,A.ClassRoomId,A.CourseName,A.TeacherName,A.UserIcon,A.RoomName
,MIN(A.StartTime) AS StartTime,MAX(A.EndTime) AS EndTime,
(SELECT COUNT(*) from rb_class_plan p inner join rb_scroll_appointment s on p.ClassPlanId = s.ClassPlanId where p.`Status`=0 and p.PlanType =2 and s.StuId ={2} and DATE_FORMAT(p.ClassDate,'%Y-%m-%d') <=DATE_FORMAT(a.ClassDate,'%Y-%m-%d') and p.CourseId=a.CourseId) as Ranks
FROM
(
SELECT A.ClassPlanId,sa.StuId, A.CourseId,A.ClassDate,A.ClassRoomId,C.CourseName,IFNULL(D.TeacherName,'') AS TeacherName
,IFNULL(D.TeacherHead,'') AS UserIcon,E.RoomName,F.StartTime,F.EndTime
FROM rb_class_plan AS A
INNER JOIN rb_scroll_appointment sa on A.ClassPlanId = sa.ClassPlanId and sa.StuId ={2}
LEFT JOIN rb_course AS C ON A.CourseId=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
WHERE 1=1 AND A.`Status`=0 {0}
) AS A
GROUP BY A.ClassPlanId,A.StuId,A.CourseId ,A.ClassDate,A.ClassRoomId
", where.ToString(), Common.ConvertHelper.FormatDate(DateTime.Now), query.StuId);
return Get<RB_Class_Plan_ViewModel>(builder.ToString()).ToList();
}
/// <summary> /// <summary>
/// 查询指定计划的上课课时 /// 查询指定计划的上课课时
/// </summary> /// </summary>
......
...@@ -105,14 +105,73 @@ ORDER BY r.Id asc "; ...@@ -105,14 +105,73 @@ ORDER BY r.Id asc ";
} }
string sql = $@" string sql = $@"
SELECT r.*,c.AccountId as TeacherId,t.TeacherName,t.TeacherHead,s.StuName,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum,cou.CourseTimeId From RB_Scroll_Appointment r SELECT r.*,c.AccountId as TeacherId,t.TeacherName,t.TeacherHead,s.StuName,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum,cou.CourseTimeId,cr.RoomName,sc.SName as RoomSchoolName From RB_Scroll_Appointment r
inner join rb_account c on r.AccountId = c.Id inner join rb_account c on r.AccountId = c.Id
inner join rb_teacher t on c.AccountId = t.TId inner join rb_teacher t on c.AccountId = t.TId
inner join rb_student s on r.StuId = s.StuId inner join rb_student s on r.StuId = s.StuId
inner join rb_course cou on r.CourseId = cou.CourseId inner join rb_course cou on r.CourseId = cou.CourseId
inner join rb_class_room cr on r.RoomId = cr.RoomId
left join rb_school sc on sc.SId = cr.School_Id
WHERE {where} WHERE {where}
ORDER BY r.Id desc "; ORDER BY r.Id desc ";
return GetPage<RB_Scroll_Appointment_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList(); return GetPage<RB_Scroll_Appointment_ViewModel>(pageIndex, pageSize, out count, sql, parameters).ToList();
} }
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public List<RB_Scroll_Appointment_ViewModel> GetAppointList(RB_Scroll_Appointment_ViewModel demodel)
{
DynamicParameters parameters = new DynamicParameters();
string where = $@" 1=1 and r.{nameof(RB_Scroll_Appointment_ViewModel.Status)} =0 and r.{nameof(RB_Scroll_Appointment_ViewModel.State)} <>5";
if (demodel.Group_Id > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.State > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.State)} ={(int)demodel.State}";
}
if (demodel.AccountId > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.AccountId)} ={demodel.AccountId}";
}
if (demodel.TeacherId > 0)
{
where += $@" and c.AccountId ={demodel.TeacherId}";
}
if (demodel.StuId > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.StuId)} ={demodel.StuId}";
}
if (demodel.CourseId > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.CourseId)} ={demodel.CourseId}";
}
if (!string.IsNullOrEmpty(demodel.StartTime))
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.Date)} >='{demodel.StartTime}'";
}
if (!string.IsNullOrEmpty(demodel.EntTime))
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.Date)} <='{demodel.EntTime} 23:59:59'";
}
string sql = $@"
SELECT r.*,c.AccountId as TeacherId,c.WorkUserId,t.TeacherName,t.TeacherHead,s.StuName,sc.OpenId as StuOpenId,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum,cou.CourseTimeId,cr.RoomName,sc.SName as RoomSchoolName
From RB_Scroll_Appointment r
inner join rb_account c on r.AccountId = c.Id
inner join rb_teacher t on c.AccountId = t.TId
inner join rb_student s on r.StuId = s.StuId
inner join rb_account sc on sc.AccountId = s.StuId and sc.AccountType =4
inner join rb_course cou on r.CourseId = cou.CourseId
inner join rb_class_room cr on r.RoomId = cr.RoomId
left join rb_school sc on sc.SId = cr.School_Id
WHERE {where}
ORDER BY r.Id desc ";
return Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList();
}
} }
} }
...@@ -285,7 +285,7 @@ ORDER BY {orderBy} ...@@ -285,7 +285,7 @@ ORDER BY {orderBy}
SELECT o.*,c.ClassName,c.ClassNo,c.School_Id as ClassSchoolId,t.TeacherName,t.TeacherIcon,IFNULL(course.CourseName,'') AS CourseName SELECT o.*,c.ClassName,c.ClassNo,c.School_Id as ClassSchoolId,t.TeacherName,t.TeacherIcon,IFNULL(course.CourseName,'') AS CourseName
,C.OpenTime,course.CourseSubject,IFNULL(csubject.SubjectName,'') AS CourseSubjectName,IFNULL(school.SName,'') AS SchoolName ,C.OpenTime,course.CourseSubject,IFNULL(csubject.SubjectName,'') AS CourseSubjectName,IFNULL(school.SName,'') AS SchoolName
,IFNULL(c.ClassStatus,0) AS ClassStatus,IFNULL(course.CoverImg,'') AS CourseImg,IFNULL(course.B2BBackground,'') AS B2BBackground ,IFNULL(c.ClassStatus,0) AS ClassStatus,IFNULL(course.CoverImg,'') AS CourseImg,IFNULL(course.B2BBackground,'') AS B2BBackground
,IFNULL(course.B2BIcon,'') AS B2BIcon,cu.CustomerName,cu.ContactNumber as CustomerTel ,IFNULL(course.B2BIcon,'') AS B2BIcon,cu.CustomerName,cu.ContactNumber as CustomerTel,c.ClassScrollType
FROM RB_Order o LEFT JOIN rb_class c on o.ClassId = c.ClassId FROM RB_Order o LEFT JOIN rb_class c on o.ClassId = c.ClassId
LEFT JOIN rb_teacher t on c.Teacher_Id = t.TId LEFT JOIN rb_teacher t on c.Teacher_Id = t.TId
LEFT JOIN rb_course AS course ON (o.CourseId=course.CourseId AND o.CourseId>0 AND o.OrderType=1) LEFT JOIN rb_course AS course ON (o.CourseId=course.CourseId AND o.CourseId>0 AND o.OrderType=1)
......
...@@ -347,7 +347,11 @@ where b.`Status`=0 and b.ClassStatus in(1,2) and a.status=0 and a.Account_Id={ ...@@ -347,7 +347,11 @@ where b.`Status`=0 and b.ClassStatus in(1,2) and a.status=0 and a.Account_Id={
var parameters = new DynamicParameters(); var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat($@" builder.AppendFormat($@"
SELECT s.*,sog.GuestId,o.OrderState,cou.CourseName,cou.CourseId,cou.B2BIcon,cou.B2BBackground,c.ClassName,c.ClassId,c.ClassStatus,sch.SName,sch.SId,t.TeacherName,o.EnterID,og.TotalHours,og.CompleteHours, if((og.ValidClassHours-og.CompleteHours)<0,0,(og.ValidClassHours-og.CompleteHours)) as SurplusHours SELECT s.*,sog.GuestId,o.OrderState,cou.CourseName,cou.CourseId,cou.B2BIcon,cou.B2BBackground,c.ClassName,c.ClassId,c.ClassScrollType
case when og.TotalHours <= og.CompleteHours then 3 else
case when og.CompleteHours = 0 then 1 else
case when og.TotalHours > og.CompleteHours then 2 else 0 end end end as ClassStatus,
sch.SName,sch.SId,t.TeacherName,o.EnterID,og.TotalHours,og.CompleteHours, if((og.ValidClassHours-og.CompleteHours)<0,0,(og.ValidClassHours-og.CompleteHours)) as SurplusHours
FROM rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id FROM rb_student as s LEFT JOIN rb_student_orderguest as sog on s.StuId=sog.Student_Id
LEFT JOIN rb_order_guest as og on og.Id=sog.GuestId LEFT JOIN rb_order_guest as og on og.Id=sog.GuestId
LEFT JOIN rb_order as o on og.OrderId=o.OrderId LEFT JOIN rb_order as o on og.OrderId=o.OrderId
......
...@@ -74,7 +74,7 @@ WHERE 1=1 AND C.OrderState<>3 ...@@ -74,7 +74,7 @@ WHERE 1=1 AND C.OrderState<>3
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.JoinType,0) AS StuJoinType,IFNULL(D.GuestState,0) AS StuGuestState
,C.OrderState,IFNULL(D.TotalHours,0) AS TotalHours,IFNULL(D.CompleteHours,0) AS CompleteHours,IFNULL(B.ClassStatus,0) AS ClassStatus,IFNULL(D.RenewState,0) AS RenewState ,C.OrderState,IFNULL(D.TotalHours,0) AS TotalHours,IFNULL(D.CompleteHours,0) AS CompleteHours,IFNULL(B.ClassStatus,0) AS ClassStatus,IFNULL(D.RenewState,0) AS RenewState
,IFNULL(D.GuestName,'') AS GuestName,IFNULL(E.CourseName,'') AS CourseName,IFNULL(C.OrderType,0) AS OrderType,IFNULL(C.SourceId,0) AS SourceId ,IFNULL(D.GuestName,'') AS GuestName,IFNULL(E.CourseName,'') AS CourseName,IFNULL(C.OrderType,0) AS OrderType,IFNULL(C.SourceId,0) AS SourceId,B.ClassScrollType
FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId FROM RB_Student_OrderGuest AS A INNER JOIN rb_order AS C ON A.OrderId=C.OrderId
INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id INNER JOIN rb_order_guest AS D ON A.GuestId=D.Id
LEFT JOIN rb_course AS E ON c.CourseId=E.CourseId LEFT JOIN rb_course AS E ON c.CourseId=E.CourseId
...@@ -214,12 +214,16 @@ where og.Status =0 and ec.Group_Id ={group_Id} and ec.Status <>4 and o.OrderStat ...@@ -214,12 +214,16 @@ where og.Status =0 and ec.Group_Id ={group_Id} and ec.Status <>4 and o.OrderStat
/// <returns></returns> /// <returns></returns>
public RB_Student_OrderGuest_ViewModel GetLearningCourseInfo(int accountId, int group_Id, int Type) public RB_Student_OrderGuest_ViewModel GetLearningCourseInfo(int accountId, int group_Id, int Type)
{ {
string sql = $@"SELECT og.*,o.CourseId,c.ClassStatus,c.ClassName FROM rb_student_orderguest og string sql = $@"SELECT og.*,o.CourseId,
case when g.TotalHours <= g.CompleteHours then 3 else
case when g.CompleteHours =0 then 1 else
case when g.TotalHours > g.CompleteHours then 2 else 0 end end end as ClassStatus,c.ClassName,c.ClassScrollType
FROM rb_student_orderguest og
INNER JOIN rb_order_guest g on og.GuestId = g.Id INNER JOIN rb_order_guest g on og.GuestId = g.Id
INNER JOIN rb_order o on og.OrderId = o.OrderId INNER JOIN rb_order o on og.OrderId = o.OrderId
INNER JOIN rb_class c on o.ClassId = c.ClassId INNER JOIN rb_class c on o.ClassId = c.ClassId
WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and og.Student_Id ={accountId} and {(Type==1? "c.ClassStatus =2" : "c.ClassStatus <>2")} WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and og.Student_Id ={accountId} and {(Type==1? "g.TotalHours > g.CompleteHours" : "g.TotalHours <= g.CompleteHours")}
ORDER BY {(Type == 1 ? "c.OpenTime asc" : "c.OpenTime desc")} LIMIT 1"; ORDER BY {(Type == 1 ? "og.Id asc" : "og.Id desc")} LIMIT 1";
return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault(); return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault();
} }
...@@ -231,10 +235,12 @@ ORDER BY {(Type == 1 ? "c.OpenTime asc" : "c.OpenTime desc")} LIMIT 1"; ...@@ -231,10 +235,12 @@ ORDER BY {(Type == 1 ? "c.OpenTime asc" : "c.OpenTime desc")} LIMIT 1";
/// <returns></returns> /// <returns></returns>
public RB_Student_OrderGuest_ViewModel GetStudentLearningCourse(int accountId, int group_Id) public RB_Student_OrderGuest_ViewModel GetStudentLearningCourse(int accountId, int group_Id)
{ {
string sql = $@"SELECT og.*,o.CourseId,g.CourseChapterNo FROM rb_student_orderguest og string sql = $@"SELECT og.*,o.CourseId,g.CourseChapterNo,c.ClassScrollType
FROM rb_student_orderguest og
INNER JOIN rb_order_guest g on og.GuestId = g.Id INNER JOIN rb_order_guest g on og.GuestId = g.Id
INNER JOIN rb_order o on og.OrderId = o.OrderId INNER JOIN rb_order o on og.OrderId = o.OrderId
WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and g.GuestState =1 and og.Student_Id ={accountId} INNER JOIN rb_class c on o.ClassId = c.ClassId
WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 and g.TotalHours > g.CompleteHours and og.Student_Id ={accountId}
ORDER BY og.Id asc LIMIT 1"; ORDER BY og.Id asc LIMIT 1";
return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault(); return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault();
} }
......
...@@ -126,7 +126,8 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -126,7 +126,8 @@ namespace Edu.WebApi.Controllers.Applet
B2BBackground = courseModel?.B2BBackground ?? "", B2BBackground = courseModel?.B2BBackground ?? "",
LearningInfo.ClassStatus, LearningInfo.ClassStatus,
ClassStatusName = LearningInfo.ClassStatus.ToName(), ClassStatusName = LearningInfo.ClassStatus.ToName(),
LearningInfo.ClassName LearningInfo.ClassName,
LearningInfo.ClassScrollType
}; };
} }
else else
...@@ -313,6 +314,9 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -313,6 +314,9 @@ namespace Edu.WebApi.Controllers.Applet
x.CourseName, x.CourseName,
x.ChapterNo, x.ChapterNo,
x.CourseTimeList, x.CourseTimeList,
x.RoomId,
x.RoomName,
x.RoomSchoolName,
x.State, x.State,
StateName = x.State.ToName(), StateName = x.State.ToName(),
CreateTime = x.CreateTime.ToString("yyyy-MM-dd HH:mm") CreateTime = x.CreateTime.ToString("yyyy-MM-dd HH:mm")
......
...@@ -338,6 +338,7 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -338,6 +338,7 @@ namespace Edu.WebApi.Controllers.Applet
studentModel.ClassName,//班级 studentModel.ClassName,//班级
studentModel.CourseId, studentModel.CourseId,
studentModel.CourseName,//课程 studentModel.CourseName,//课程
studentModel.ClassScrollType,
ClassNext, ClassNext,
LearningGardenList, LearningGardenList,
Words Words
...@@ -640,9 +641,20 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -640,9 +641,20 @@ namespace Edu.WebApi.Controllers.Applet
Group_Id = base.AppletUserInfo.Group_Id, Group_Id = base.AppletUserInfo.Group_Id,
School_Id = -1, School_Id = -1,
ClassId = base.ParmJObj.GetInt("ClassId"), ClassId = base.ParmJObj.GetInt("ClassId"),
CouseId = base.ParmJObj.GetInt("CourseId"),
ClassScrollType = base.ParmJObj.GetInt("ClassScrollType")
}; };
List<RB_Class_Plan_ViewModel> list = new List<RB_Class_Plan_ViewModel>();
var list = classModule.GetStundentPlanModule(query); if (query.ClassScrollType == 2)
{
query.ManagerId = base.AppletUserInfo.AccountId;//暂存学生StuId
//约课
list = classModule.GetStundentPlanModuleForYK(query);
}
else
{
list = classModule.GetStundentPlanModule(query);
}
List<Model.ViewModel.Course.ChapterTree_ViewModel> chapterTreeList = new List<Model.ViewModel.Course.ChapterTree_ViewModel>(); List<Model.ViewModel.Course.ChapterTree_ViewModel> chapterTreeList = new List<Model.ViewModel.Course.ChapterTree_ViewModel>();
if (list != null && list.Any()) if (list != null && list.Any())
...@@ -670,32 +682,62 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -670,32 +682,62 @@ namespace Edu.WebApi.Controllers.Applet
itemGroup.PlanTimeList.ForEach(x => x.NewPlanDateTime = itemGroup.ClassDate.ToString("yyyy-MM-dd") + " " + x.EndTime); itemGroup.PlanTimeList.ForEach(x => x.NewPlanDateTime = itemGroup.ClassDate.ToString("yyyy-MM-dd") + " " + x.EndTime);
// DayTime = DayTime + "~" + itemGroup.PlanTimeList.Max(x => Convert.ToDateTime(x.NewPlanDateTime)).ToString("HH:ss"); // DayTime = DayTime + "~" + itemGroup.PlanTimeList.Max(x => Convert.ToDateTime(x.NewPlanDateTime)).ToString("HH:ss");
} }
planListResult.Add(new if (query.ClassScrollType == 2)
{ {
planListResult.Add(new
itemGroup.Chapter,
DateYear = startTime.AddDays(i).ToString("yyyy"),
DateMonth = startTime.AddDays(i).ToString("MM"),
DateDay = startTime.AddDays(i).ToString("dd"),
WeekStr = StringHelper.GetJapanWeekChar(startTime.AddDays(i)),
ClassDateStr = startTime.AddDays(i).ToString("yyyy-MM-dd"),
ClassName = plan.Where(x => x.ClassId == itemGroup.ClassId).FirstOrDefault()?.ClassName ?? "",
itemGroup.ClassId,
itemGroup.CourseId,
PlanTimeList = itemGroup.PlanTimeList.Select(x => new
{ {
x.StartTime, itemGroup.Chapter,
x.EndTime, DateYear = startTime.AddDays(i).ToString("yyyy"),
x.ClassPlanId, DateMonth = startTime.AddDays(i).ToString("MM"),
x.ClassTimeId, DateDay = startTime.AddDays(i).ToString("dd"),
x.TimeHour, WeekStr = StringHelper.GetJapanWeekChar(startTime.AddDays(i)),
TeacherName = itemGroup.TeacherName ?? "", ClassDateStr = startTime.AddDays(i).ToString("yyyy-MM-dd"),
UserIcon = itemGroup.UserIcon ?? "", ClassName = plan.Where(x => x.ClassId == itemGroup.ClassId).FirstOrDefault()?.ClassName ?? "",
x.GuestList.Where(x => x.StudentId == base.AppletUserInfo.AccountId).FirstOrDefault()?.IsCheck, itemGroup.ClassId,
OrderGuestId = x.GuestList.Where(x => x.StudentId == base.AppletUserInfo.AccountId).FirstOrDefault()?.Id, itemGroup.CourseId,
IsLeave = Convert.ToDateTime(x.NewPlanDateTime) > DateTime.Now ? 1 : 0 PlanTimeList = itemGroup.PlanTimeList.Select(x => new
}) {
}); x.StartTime,
x.EndTime,
x.ClassPlanId,
x.ClassTimeId,
x.TimeHour,
TeacherName = itemGroup.TeacherName ?? "",
UserIcon = itemGroup.UserIcon ?? "",
x.IsCheck,
OrderGuestId = 0,
IsLeave = Convert.ToDateTime(x.NewPlanDateTime) > DateTime.Now ? 1 : 0
})
});
}
else
{
planListResult.Add(new
{
itemGroup.Chapter,
DateYear = startTime.AddDays(i).ToString("yyyy"),
DateMonth = startTime.AddDays(i).ToString("MM"),
DateDay = startTime.AddDays(i).ToString("dd"),
WeekStr = StringHelper.GetJapanWeekChar(startTime.AddDays(i)),
ClassDateStr = startTime.AddDays(i).ToString("yyyy-MM-dd"),
ClassName = plan.Where(x => x.ClassId == itemGroup.ClassId).FirstOrDefault()?.ClassName ?? "",
itemGroup.ClassId,
itemGroup.CourseId,
PlanTimeList = itemGroup.PlanTimeList.Select(x => new
{
x.StartTime,
x.EndTime,
x.ClassPlanId,
x.ClassTimeId,
x.TimeHour,
TeacherName = itemGroup.TeacherName ?? "",
UserIcon = itemGroup.UserIcon ?? "",
x.GuestList.Where(x => x.StudentId == base.AppletUserInfo.AccountId).FirstOrDefault()?.IsCheck,
OrderGuestId = x.GuestList.Where(x => x.StudentId == base.AppletUserInfo.AccountId).FirstOrDefault()?.Id,
IsLeave = Convert.ToDateTime(x.NewPlanDateTime) > DateTime.Now ? 1 : 0
})
});
}
} }
} }
return ApiResult.Success(data: planListResult); return ApiResult.Success(data: planListResult);
...@@ -1306,6 +1348,7 @@ namespace Edu.WebApi.Controllers.Applet ...@@ -1306,6 +1348,7 @@ namespace Edu.WebApi.Controllers.Applet
item.CourseName, item.CourseName,
item.OrderState, item.OrderState,
OrderStateName=item.OrderState.ToName(), OrderStateName=item.OrderState.ToName(),
item.ClassScrollType
}); });
} }
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
......
...@@ -190,7 +190,8 @@ namespace Edu.WebApi.Controllers.APP ...@@ -190,7 +190,8 @@ namespace Edu.WebApi.Controllers.APP
TeacherName = studentModel.TeacherName, TeacherName = studentModel.TeacherName,
CourseName = studentModel.CourseName, CourseName = studentModel.CourseName,
StuSex = studentModel.StuSex, StuSex = studentModel.StuSex,
StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "", StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "",
ClassScrollType = studentModel.ClassScrollType,
Token = token, Token = token,
GroupLogo = model.GroupLogo, GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon, UserIcon = model.UserIcon,
...@@ -378,6 +379,7 @@ namespace Edu.WebApi.Controllers.APP ...@@ -378,6 +379,7 @@ namespace Edu.WebApi.Controllers.APP
CourseName = studentModel.CourseName, CourseName = studentModel.CourseName,
StuSex = studentModel.StuSex, StuSex = studentModel.StuSex,
StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "", StuBirth = studentModel.StuBirth.HasValue ? studentModel.StuBirth.Value.ToString("yyyy-MM-dd") : "",
ClassScrollType = studentModel.ClassScrollType,
Token = token, Token = token,
GroupLogo = model.GroupLogo, GroupLogo = model.GroupLogo,
UserIcon = model.UserIcon, UserIcon = model.UserIcon,
......
...@@ -316,7 +316,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -316,7 +316,8 @@ namespace Edu.WebApi.Controllers.Course
IsQPrice = base.ParmJObj.GetInt("IsQPrice"), IsQPrice = base.ParmJObj.GetInt("IsQPrice"),
IsQTeacher = base.ParmJObj.GetInt("IsQTeacher"), IsQTeacher = base.ParmJObj.GetInt("IsQTeacher"),
Saleplat = base.ParmJObj.GetStringValue("Saleplat"), Saleplat = base.ParmJObj.GetStringValue("Saleplat"),
CourseSubject=base.ParmJObj.GetInt("CourseSubject"), CourseSubject = base.ParmJObj.GetInt("CourseSubject"),
Q_OrderBy = base.ParmJObj.GetInt("Q_OrderBy")
}; };
query.Group_Id = base.UserInfo.Group_Id; query.Group_Id = base.UserInfo.Group_Id;
var list = courseModule.GetCoursePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query); var list = courseModule.GetCoursePageListModule(pageModel.PageIndex, pageModel.PageSize, out long rowsCount, query);
......
...@@ -267,6 +267,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -267,6 +267,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerId, x.CustomerId,
x.CustomerName, x.CustomerName,
x.CustomerTel, x.CustomerTel,
x.ClassScrollType,
SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new
{ {
qitem.S_ClassId, qitem.S_ClassId,
...@@ -376,6 +377,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -376,6 +377,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerId, x.CustomerId,
x.CustomerName, x.CustomerName,
x.CustomerTel, x.CustomerTel,
x.ClassScrollType,
SaleRemarkList = x.SaleRemarkList.Select(z => new SaleRemarkList = x.SaleRemarkList.Select(z => new
{ {
z.Id, z.Id,
...@@ -547,7 +549,8 @@ namespace Edu.WebApi.Controllers.Course ...@@ -547,7 +549,8 @@ namespace Edu.WebApi.Controllers.Course
StuIds = base.ParmJObj.GetStringValue("StuIds"), StuIds = base.ParmJObj.GetStringValue("StuIds"),
OrderIdentify = base.ParmJObj.GetInt("OrderIdentify"), OrderIdentify = base.ParmJObj.GetInt("OrderIdentify"),
CourseConsultantId = base.ParmJObj.GetInt("CourseConsultantId"), CourseConsultantId = base.ParmJObj.GetInt("CourseConsultantId"),
EnterID = base.ParmJObj.GetInt("EnterID") EnterID = base.ParmJObj.GetInt("EnterID"),
ScrollSchoolId = base.ParmJObj.GetInt("ScrollSchoolId")
}; };
var IsInsertClass = base.ParmJObj.GetInt("IsChaBan"); var IsInsertClass = base.ParmJObj.GetInt("IsChaBan");
if (IsInsertClass == 1) if (IsInsertClass == 1)
...@@ -1440,6 +1443,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1440,6 +1443,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerId, x.CustomerId,
x.CustomerName, x.CustomerName,
x.CustomerTel, x.CustomerTel,
x.ClassScrollType,
SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new
{ {
qitem.S_ClassId, qitem.S_ClassId,
...@@ -1632,6 +1636,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1632,6 +1636,7 @@ namespace Edu.WebApi.Controllers.Course
x.CustomerId, x.CustomerId,
x.CustomerName, x.CustomerName,
x.CustomerTel, x.CustomerTel,
x.ClassScrollType,
SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new SplitDetailsList = x?.SplitDetailsList?.Select(qitem => new
{ {
qitem.S_ClassId, qitem.S_ClassId,
...@@ -1739,6 +1744,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1739,6 +1744,7 @@ namespace Edu.WebApi.Controllers.Course
new ExcelColumn(value:"教务备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"教务备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"校长备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"校长备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"经理备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER }, new ExcelColumn(value:"经理备注"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
new ExcelColumn(value:"类型"){CellWidth=15,HAlignmentEnum= HAlignmentEnum.CENTER,VAlignmentEnum= VAlignmentEnum.CENTER },
} }
}; };
slist.Add(header); slist.Add(header);
...@@ -1803,6 +1809,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1803,6 +1809,7 @@ namespace Edu.WebApi.Controllers.Course
new ExcelColumn(value: item?.TeacherRemarkList.FirstOrDefault()?.Content??""){ }, new ExcelColumn(value: item?.TeacherRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.RectorRemarkList.FirstOrDefault()?.Content??""){ }, new ExcelColumn(value: item?.RectorRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item?.DirectorRemarkList.FirstOrDefault()?.Content??""){ }, new ExcelColumn(value: item?.DirectorRemarkList.FirstOrDefault()?.Content??""){ },
new ExcelColumn(value: item.ClassScrollType == 2 ?"约课":"跟班"){ },
} }
}; };
slist.Add(firstRow); slist.Add(firstRow);
...@@ -1837,6 +1844,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1837,6 +1844,7 @@ namespace Edu.WebApi.Controllers.Course
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ }, new ExcelColumn(value: ""){ },
new ExcelColumn(value: ""){ },
} }
}; };
slist.Add(firstRowT); slist.Add(firstRowT);
......
...@@ -402,6 +402,7 @@ namespace Edu.WebApi.Controllers.Customer ...@@ -402,6 +402,7 @@ namespace Edu.WebApi.Controllers.Customer
item.CompleteHours, item.CompleteHours,
item.GuestName, item.GuestName,
item.CourseName, item.CourseName,
item.ClassScrollType
}); });
} }
pageModel.Count = rowsCount; pageModel.Count = rowsCount;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment