Commit 9daa34b8 authored by liudong1993's avatar liudong1993

1

parent 16d5af72
......@@ -139,6 +139,11 @@ namespace Edu.Model.ViewModel.User
/// </summary>
public int AppointNum { get; set; }
/// <summary>
/// 可补课数量
/// </summary>
public int MakeUpNum { get; set; }
/// <summary>
/// 订单创建时间
/// </summary>
......
......@@ -5514,24 +5514,17 @@ namespace Edu.Module.Course
if (classScrollType == 2)
{
//约课
planModel = class_PlanRepository.GetToDayClassPlanForYK(stuId, courseId, groupId);
//planModel = class_PlanRepository.GetToDayClassPlanForYK(stuId, courseId, groupId, 1);
//约课查询 约课记录里的 已上课 /未上课 的最近一条记录
NextCourseNo = scroll_AppointmentRepository.GetNextAppointList(guestId, groupId, 2);
ReviewCourseNo = scroll_AppointmentRepository.GetNextAppointList(guestId, groupId, 1);
}
else
{
planModel = class_PlanRepository.GetToDayClassPlan(classId, groupId);
}
if (planModel != null)
{
int zj = 1;
if (classScrollType == 2)
{
var ogModel = order_GuestRepository.GetEntity(guestId);
zj = ogModel.CourseChapterNo + 1;//这次课的章节
}
else
{
zj = planModel.LessonPlanNum + 1;
}
if (planModel != null) {
int zj = planModel.LessonPlanNum + 1;
if (planModel.ClassDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
{
//查询上课时间 看这节课到底上没有上
......@@ -5556,16 +5549,20 @@ namespace Edu.Module.Course
NextCourseNo = zj;
ReviewCourseNo = zj - 1;
}
else {
else
{
//这节课已上了
ReviewCourseNo = zj;
NextCourseNo = zj + 1;
}
}
else {
else
{
//可能未开班 可能计划不存在 直接查询 第一章节的词汇
NextCourseNo = 1;
}
}
int NextNum = 0, ReviewNum = 0;
if (NextCourseNo > 0) {
//查询单词数量
......
......@@ -237,10 +237,10 @@ namespace Edu.Module.Course
//人数未达标 取消课程
foreach (var qitem in item.Where(x => !CancelStuId.Contains(x.StuId)))
{
if (qitem.AppointType != 3)
{
CancelStuId.Add(qitem.StuId);
}
//if (qitem.AppointType != 3)
//{
// CancelStuId.Add(qitem.StuId);
//}
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Scroll_Appointment_ViewModel.State), Common.Enum.Course.CourseAppointStateEnum.Cancel},
{ nameof(RB_Scroll_Appointment_ViewModel.Remark), qitem.Remark +";人数"+item.Where(x => !CancelStuId.Contains(x.StuId)).Count()+",成本人数"+item.Key.ScrollMinNum+",未满足定时器取消"+DateTime.Now},
......@@ -290,7 +290,8 @@ namespace Edu.Module.Course
}
#region 之后的取消
if (qitem.AppointType !=3)
//暂时取消
if (qitem.AppointType == -1)
{
var clist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = groupId, StartTime = qitem.Date.ToString("yyyy-MM-dd"), StuId = qitem.StuId, State = Common.Enum.Course.CourseAppointStateEnum.WaitSure });
foreach (var qcitem in clist)
......@@ -671,10 +672,16 @@ namespace Edu.Module.Course
//更新 order_guest 表 上课章节 请假也暂时先算完成课时(请假应该是有补课的)
var gmodel = order_GuestRepository.GetEntity(item.GuestId);
if (gmodel != null && gmodel.CourseChapterNo < item.ChapterNo) {
//ld 2022-03-08 修改为学员上课最大课时
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.CourseChapterNo), gmodel.CourseChapterNo +1},
{ nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.CompleteHours), gmodel.CompleteHours + clist.Sum(x=>x.ClassHours)}
{ nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.CourseChapterNo), item.ChapterNo},
{ nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.CompleteHours), item.ChapterNo * clist.Sum(x=>x.ClassHours)}
};
if (gmodel.TotalChapterNo <= item.ChapterNo)
{
//章节已上完了 修改为 毕业
keyValues1.Add(nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.GuestState), Common.Enum.Course.GuestStateEnum.Graduate);
}
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.Id),
......
......@@ -1047,8 +1047,12 @@ namespace Edu.Module.Course
}
}
#region 之后的取消
//暂时不启用
if (appontModel.AppointType == -1)
{
var list = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = appontModel.Date.ToString("yyyy-MM-dd"), StuId = userInfo.AccountId, State = Common.Enum.Course.CourseAppointStateEnum.WaitSure });
foreach (var item in list) {
foreach (var item in list)
{
bool IsCancel = false;
if (item.Date == appontModel.Date)
{
......@@ -1058,10 +1062,12 @@ namespace Edu.Module.Course
IsCancel = true;
}
}
else {
else
{
IsCancel = true;
}
if (IsCancel) {
if (IsCancel)
{
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Scroll_Appointment_ViewModel.State), Common.Enum.Course.CourseAppointStateEnum.Cancel},
{ nameof(RB_Scroll_Appointment_ViewModel.UpdateTime), DateTime.Now},
......@@ -1074,7 +1080,8 @@ namespace Edu.Module.Course
}
};
bool flag1 = scroll_AppointmentRepository.Update(keyValues1, wheres1);
if (flag1) {
if (flag1)
{
if (!string.IsNullOrEmpty(Scroll_Notice))
{
foreach (var empModel in empList)
......@@ -1091,6 +1098,7 @@ namespace Edu.Module.Course
}
}
}
}
#endregion
}
return flag ? "" : "出错了,请联系管理员";
......@@ -1619,7 +1627,8 @@ namespace Edu.Module.Course
}
#region 之后的取消
if (item.AppointType == 1)
// 暂时先屏蔽了 因为改为随机约课了 没必要再取消后面的了
if (item.AppointType == -1)
{
var clist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = item.Date.ToString("yyyy-MM-dd"), StuId = item.StuId, State = Common.Enum.Course.CourseAppointStateEnum.WaitSure });
foreach (var qitem in clist)
......@@ -2398,6 +2407,526 @@ namespace Edu.Module.Course
return flag ? "" : "出错了,请联系管理员";
#endregion
}
#endregion
#region 约课调整
/// <summary>
/// 获取可约课的学生列表(包括补课 重新)
/// </summary>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Student_OrderGuest_ViewModel> GetCanAppointmentStuList_V2(string stuName, int NextChapterGradeNo, int CourseGradeId, int SchoolId, int group_Id)
{
return student_OrderGuestRepository.GetCanAppointmentStuList_V2(stuName, NextChapterGradeNo, CourseGradeId, SchoolId, group_Id);
}
/// <summary>
/// 后台预约
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public string SetAdminScrollAppointment_V2(RB_Scroll_Appointment_ViewModel demodel, out int AppointId)
{
AppointId = 0;
#region 初步验证
//提前天数
int AdvanceDay = Convert.ToInt32(dictvalueRepository.GetList(new Model.ViewModel.User.RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_AdvanceDay" }).FirstOrDefault()?.Content ?? "1");
if (demodel.Date < Convert.ToDateTime(DateTime.Now.AddDays(AdvanceDay).ToString("yyyy-MM-dd"))) { return "需要提前" + AdvanceDay + "天约课"; }
if (AdvanceDay == 1 && demodel.Date.ToString("yyyy-MM-dd") == DateTime.Now.AddDays(1).ToString("yyyy-MM-dd"))
{
//可预约的时间 (提前1天时启用)
string ScrollETime = dictvalueRepository.GetList(new Model.ViewModel.User.RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_Time" }).FirstOrDefault()?.Content ?? "";
if (DateTime.Now > Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + ScrollETime)) { return "需要在当日" + ScrollETime + "之前约课"; }
}
#endregion
#region 学生的课程
//获取正在上课的课程
var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(demodel.StuId, demodel.Group_Id, demodel.GuestId);
if (learnModel == null) { return demodel.StuName + " 未查询有正在学习的课程,无法约课"; }
if (learnModel.ClassScrollType != 2) { return demodel.StuName + " 不是预约学员,无法查看"; }
//获取课程信息
var courseModel = courseRepository.GetEntity(learnModel.CourseId);
if (courseModel.CourseTimeId <= 0) { return "课程未关联上课时段"; }
//查询课程使用的上课时段
var ctModel = scroll_CourseTimeRepository.GetEntity<RB_Scroll_CourseTime_ViewModel>(courseModel.CourseTimeId);
if (!string.IsNullOrEmpty(ctModel.Content))
{
ctModel.TimeList = JsonHelper.DeserializeObject<List<CourseTimeModel>>(ctModel.Content);
}
else { return "上课时段未配置"; }
double NextAppointMinutes = 0;
if (demodel.CourseGradeId > 0 && demodel.CourseGradeNo > 0)
{
//查询下一次课的耗时分钟数 前端需要根据这个分钟数
var chapterModel = course_ChapterRepository.GetChapterListRepository(new RB_Course_Chapter_ViewModel() { Group_Id = demodel.Group_Id, CourseId = learnModel.CourseId, CourseRate = demodel.CourseGradeId, ChapterGradeNo = demodel.CourseGradeNo }).FirstOrDefault();
NextAppointMinutes = chapterModel?.StudyMinutes ?? 0;
demodel.CourseGradeId = chapterModel?.CourseRate ?? 0;
demodel.CourseGradeNo = chapterModel?.ChapterGradeNo ?? 0;
demodel.ChapterNo = Convert.ToInt32(chapterModel?.ChapterNo ?? "0");
}
#endregion
#region 组装排班
string Date = demodel.Date.ToString("yyyy-MM-dd");
demodel.AccountId = teacherRepository.GetTeacherByTId(demodel.TeacherId, demodel.Group_Id).FirstOrDefault().AccountId;
//验证当日老师的数据
var planList = scroll_PlanRepository.GetList(new RB_Scroll_Plan_ViewModel() { Group_Id = demodel.Group_Id, AccountId = demodel.AccountId, STime = Date, ETime = Date });
if (!planList.Any()) { return "老师当日未查询到可预约课,请刷新后再试"; }
//开始验证 此时段数据是否可以预约
var pcList = class_PlanRepository.GetClassPlanModelRepository(new RB_Class_Plan_ViewModel() { Group_Id = demodel.Group_Id, QClassDateStr = Date, TeacherId = demodel.TeacherId });
if (pcList.Any())
{
//查询计划的时间段
string planids = string.Join(",", pcList.Select(x => x.ClassPlanId));
var ctList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = demodel.Group_Id, QClassPlanIds = planids });
foreach (var item in pcList)
{
item.PlanTimeList = ctList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
}
}
var rcList = reserve_ClassRepository.GetReserveClassListRepository(new Model.ViewModel.Reserve.RB_Reserve_Class_Extend() { Group_Id = demodel.Group_Id, StartClassDate = Date, EndClassDate = Date, TeacherId = demodel.TeacherId });
//再查询当日已预约情况
var appointList = scroll_AppointmentRepository.GetList(new RB_Scroll_Appointment_ViewModel() { Group_Id = demodel.Group_Id, StartTime = Date, EntTime = Date });
if (appointList.Where(x => x.StuId == demodel.StuId && x.ShiftSort == demodel.ShiftSort).Any())
{
return "已预约该时段,无法再次预约";
}
//开始遍历老师了
foreach (var item in planList)
{
//查询班次
var shiftModel = scroll_ShiftRepository.GetList(new RB_Scroll_Shift_ViewModel() { Group_Id = demodel.Group_Id, Id = item.ShiftId }).FirstOrDefault();
//上课时段
item.CourseTimeList = ctModel.TimeList.Where(x => Convert.ToDateTime("2020-01-01 " + x.StartTime) >= Convert.ToDateTime("2020-01-01 " + shiftModel.StartTime) && Convert.ToDateTime("2020-01-01 " + x.EndTime) <= Convert.ToDateTime("2020-01-01 " + shiftModel.EndTime)).RefMapperToList<CourseTimeExtend>();
//查询该时段内 是否已有正常排课
var pc2List = pcList.Where(x => x.TeacherId == item.TeacherId).ToList();
foreach (var qitem in pc2List)
{
foreach (var citem in qitem.PlanTimeList)
{
DateTime CSDate = Convert.ToDateTime("2022-01-01 " + citem.StartTime);
DateTime CEDate = Convert.ToDateTime("2022-01-01 " + citem.EndTime);
//开始验证重复数据
var HList = item.CourseTimeList.Where(x => (x.SDate <= CSDate && CSDate <= x.EDate) || (x.SDate <= CEDate && CEDate <= x.EDate)).ToList();
foreach (var hitem in HList)
{
hitem.State = 2;//已有排课 不可预约
}
}
}
//查询该时段内 是否已有正常试听
var rc2List = rcList.Where(x => x.TeacherId == item.TeacherId).ToList();
foreach (var qitem in rc2List)
{
DateTime CSDate = Convert.ToDateTime("2022-01-01 " + qitem.ClassTime);
DateTime CEDate = Convert.ToDateTime("2022-01-01 " + qitem.EndTime);
//开始验证重复数据
var HList = item.CourseTimeList.Where(x => (x.SDate <= CSDate && CSDate <= x.EDate) || (x.SDate <= CEDate && CEDate <= x.EDate)).ToList();
foreach (var hitem in HList)
{
hitem.State = 2;//已有排课 不可预约
}
}
//查询已预约情况
var aList = appointList.Where(x => x.TeacherId == item.TeacherId).ToList();
aList.GroupBy(x => new { x.CourseGradeId, x.CourseGradeNo, x.ShiftSort }).ToList().ForEach(x =>
{
var firstModel = x.FirstOrDefault();
List<int> SortList = JsonHelper.DeserializeObject<List<int>>("[" + x.Key.ShiftSort + "]");
item.CourseTimeList.Where(y => SortList.Contains(y.Sort)).ToList().ForEach(z => {
z.MinPeopleNum = firstModel.ScrollMinNum;
z.MaxPeopleNum = firstModel.ScrollMaxNum;
z.State = 3;//已预约了
if (x.Where(x => x.StuId == demodel.StuId).Any())
{
z.State = 2;//我预约的
}
z.CourseId = firstModel.CourseId;
z.CourseGradeId = x.Key.CourseGradeId;
z.CourseName = firstModel.CourseName;
z.CourseGradeNo = x.Key.CourseGradeNo;
z.PeopleNum = x.Count();
});
});
}
#endregion
#region 开始预约
var planModel = planList.FirstOrDefault();
var timeList = planModel.CourseTimeList.Where(x => ("," + demodel.ShiftSort + ",").Contains("," + x.Sort + ",")).ToList();
if (timeList.Sum(x => x.Minutes) != NextAppointMinutes) { return "预约时长不正确"; }
if (timeList.Where(x => x.State == 2).Any()) { return "此时段不可预约,请刷新后再试"; }
foreach (var item in timeList.Where(x => x.State == 3))
{
if (demodel.CourseGradeId != item.CourseGradeId) { return "预约课次等级不一致"; }
if (demodel.CourseGradeNo != item.CourseGradeNo) { return "预约课程章节不一致"; }
if (item.PeopleNum + 1 > item.MaxPeopleNum) { return "该时段已预约满,请预约其他时段"; }
demodel.CourseId = item.CourseId;
}
demodel.CourseEndTime = Convert.ToDateTime(Date + " " + timeList.Max(x => x.EndTime));//上完课的时间
demodel.CourseTime = JsonHelper.Serialize(timeList.Select(x => new { x.Sort, x.StartTime, x.EndTime, x.Minutes, x.ClassHours }));
demodel.RoomId = planModel.RoomId;//上课教室
demodel.GuestId = learnModel.GuestId;
demodel.OrderId = learnModel.OrderId;
demodel.CourseSTime = timeList.Min(x => x.StartTime);
demodel.CourseETime = timeList.Max(x => x.EndTime);
demodel.LearnCourseId = learnModel.CourseId;
demodel.AppointType = 1;
#region 验证补课 重上课
var appointList2 = scroll_AppointmentRepository.GetList(new RB_Scroll_Appointment_ViewModel() { Group_Id = demodel.Group_Id, GuestId = demodel.GuestId, CourseGradeId = demodel.CourseGradeId, CourseGradeNo = demodel.CourseGradeNo });
if (appointList2.Any()) {
if (appointList2.Where(x => x.State == Common.Enum.Course.CourseAppointStateEnum.WaitSure).Any())
{
return "预约的该次课已存在待确认的数据,无法再次预约";
}
int AgainNum = Convert.ToInt32(dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_AgainCourse" }).FirstOrDefault()?.Content ?? "1");
if (appointList2.Where(x => x.AppointType == 3).Count() >= AgainNum)
{
return "当次进度重上次数已用完";
}
demodel.AppointType = 3;
}
// 直接不要补课数据了 只要没有预约的数据 都是缺课
//var scList = scroll_SkipCourseRepository.GetList(new RB_Scroll_SkipCourse_ViewModel() { Group_Id = demodel.Group_Id, GuestId = demodel.GuestId, CourseGradeId = demodel.CourseGradeId, CourseGradeNo = demodel.CourseGradeNo });
//if (scList.Where(x => x.State == 1).Any()) {
// //有可补课的数据
// demodel.AppointType = 2;
//}
#endregion
//验证都OK了 插入预约数据
AppointId = scroll_AppointmentRepository.Insert(demodel);
bool flag = AppointId > 0;
if (flag) {
//定时器 更新已上课时 再更新其上课课时
//if (demodel.AppointType == 1 && demodel.ChapterNo > learnModel.CourseChapterNo + 1) {
// Dictionary<string, object> keyValues = new Dictionary<string, object>() {
// { nameof(RB_Order_Guest_ViewModel.CourseChapterNo), demodel.ChapterNo - 1},
// { nameof(RB_Order_Guest_ViewModel.CompleteHours), (demodel.ChapterNo - 1) * (timeList.Sum(x=>x.ClassHours))}
// };
// List<WhereHelper> wheres = new List<WhereHelper>() {
// new WhereHelper(){
// FiledName = nameof(RB_Order_Guest_ViewModel.Id),
// FiledValue = demodel.GuestId,
// OperatorEnum =OperatorEnum.Equal
// }
// };
// order_GuestRepository.Update(keyValues, wheres);
//}
}
return flag ? "" : "出错了,请联系管理员";
#endregion
}
/// <summary>
/// 后台补录
/// </summary>
/// <param name="demodel"></param>
/// <returns></returns>
public string SetAdminScrollMakeUp(RB_Scroll_Appointment_ViewModel demodel, out int AppointId)
{
AppointId = 0;
#region 学生的课程
//获取正在上课的课程
var learnModel = student_OrderGuestRepository.GetStudentLearningCourse(demodel.StuId, demodel.Group_Id, demodel.GuestId);
if (learnModel == null) { return demodel.StuName + " 未查询有正在学习的课程,无法约课"; }
if (learnModel.ClassScrollType != 2) { return demodel.StuName + " 不是预约学员,无法查看"; }
//获取课程信息
var courseModel = courseRepository.GetEntity(learnModel.CourseId);
if (courseModel.CourseTimeId <= 0) { return "课程未关联上课时段"; }
//查询课程使用的上课时段
var ctModel = scroll_CourseTimeRepository.GetEntity<RB_Scroll_CourseTime_ViewModel>(courseModel.CourseTimeId);
if (!string.IsNullOrEmpty(ctModel.Content))
{
ctModel.TimeList = JsonHelper.DeserializeObject<List<CourseTimeModel>>(ctModel.Content);
}
else { return "上课时段未配置"; }
double NextAppointMinutes = 0;
if (demodel.CourseGradeId > 0 && demodel.CourseGradeNo > 0)
{
//查询下一次课的耗时分钟数 前端需要根据这个分钟数
var chapterModel = course_ChapterRepository.GetChapterListRepository(new RB_Course_Chapter_ViewModel() { Group_Id = demodel.Group_Id, CourseId = learnModel.CourseId, CourseRate = demodel.CourseGradeId, ChapterGradeNo = demodel.CourseGradeNo }).FirstOrDefault();
NextAppointMinutes = chapterModel?.StudyMinutes ?? 0;
demodel.CourseGradeId = chapterModel?.CourseRate ?? 0;
demodel.CourseGradeNo = chapterModel?.ChapterGradeNo ?? 0;
demodel.ChapterNo = Convert.ToInt32(chapterModel?.ChapterNo ?? "0");
}
#endregion
#region 组装排班
string Date = demodel.Date.ToString("yyyy-MM-dd");
//再查询当日已预约情况
var appointList = scroll_AppointmentRepository.GetList(new RB_Scroll_Appointment_ViewModel() { Group_Id = demodel.Group_Id, TeacherId = demodel.TeacherId, StartTime = Date, EntTime = Date, ShiftSort = demodel.ShiftSort, CourseGradeId = demodel.CourseGradeId, CourseGradeNo = demodel.CourseGradeNo });
if (!appointList.Any()) { return "不存在预约课记录,请核实后再试"; }
#endregion
#region 开始预约
var appointModel = appointList.FirstOrDefault();
demodel.AccountId = appointModel.AccountId;
demodel.CourseId = appointModel.CourseId;
demodel.State = appointModel.State;
demodel.ClassPlanId = appointModel.ClassPlanId;
demodel.Remark = "补录约课记录";
var timeList = ctModel.TimeList.Where(x => ("," + demodel.ShiftSort + ",").Contains("," + x.Sort + ",")).ToList();
if (timeList.Sum(x => x.Minutes) != NextAppointMinutes) { return "预约时长不正确"; }
demodel.CourseEndTime = Convert.ToDateTime(Date + " " + timeList.Max(x => x.EndTime));//上完课的时间
demodel.CourseTime = JsonHelper.Serialize(timeList.Select(x => new { x.Sort, x.StartTime, x.EndTime, x.Minutes, x.ClassHours }));
demodel.RoomId = appointModel.RoomId;//上课教室
demodel.GuestId = learnModel.GuestId;
demodel.OrderId = learnModel.OrderId;
demodel.CourseSTime = timeList.Min(x => x.StartTime);
demodel.CourseETime = timeList.Max(x => x.EndTime);
demodel.LearnCourseId = learnModel.CourseId;
demodel.AppointType = 1;
#region 验证补课 重上课
var appointList2 = scroll_AppointmentRepository.GetList(new RB_Scroll_Appointment_ViewModel() { Group_Id = demodel.Group_Id, GuestId = demodel.GuestId, CourseGradeId = demodel.CourseGradeId, CourseGradeNo = demodel.CourseGradeNo });
if (appointList2.Any())
{
if (appointList2.Where(x => x.State == Common.Enum.Course.CourseAppointStateEnum.WaitSure).Any())
{
return "预约的该次课已存在待确认的数据,无法再次预约";
}
int AgainNum = Convert.ToInt32(dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_AgainCourse" }).FirstOrDefault()?.Content ?? "1");
if (appointList2.Where(x => x.AppointType == 3).Count() >= AgainNum)
{
return "当次进度重上次数已用完";
}
demodel.AppointType = 3;
}
#endregion
//验证都OK了 插入预约数据
AppointId = scroll_AppointmentRepository.Insert(demodel);
bool flag = AppointId > 0;
if (flag)
{
if (demodel.State == Common.Enum.Course.CourseAppointStateEnum.Coursed) {
//已上课 需更新课时 + 签到记录
var clist = JsonHelper.DeserializeObject<List<CourseTimeModel>>(demodel.CourseTime);
//更新 order_guest 表 上课章节 请假也暂时先算完成课时(请假应该是有补课的)
var gmodel = order_GuestRepository.GetEntity(demodel.GuestId);
if (gmodel != null && gmodel.CourseChapterNo < demodel.ChapterNo)
{
//ld 2022-03-08 修改为学员上课最大课时
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Order_Guest_ViewModel.CourseChapterNo), demodel.ChapterNo},
{ nameof(RB_Order_Guest_ViewModel.CompleteHours), demodel.ChapterNo * clist.Sum(x=>x.ClassHours)}
};
if (gmodel.TotalChapterNo <= demodel.ChapterNo)
{
//章节已上完了 修改为 毕业
keyValues1.Add(nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.GuestState), Common.Enum.Course.GuestStateEnum.Graduate);
}
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(Model.ViewModel.Sell.RB_Order_Guest_ViewModel.Id),
FiledValue = gmodel.Id,
OperatorEnum =OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues1, wheres1);
}
if (demodel.AppointType != 3)
{
//写入签到数据表 (非重复上课的 才写入签到数据)
var tlist = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = demodel.Group_Id, ClassPlanId = demodel.ClassPlanId });
foreach (var qitem in tlist)
{
var ccModel = clist.Where(x => x.StartTime == qitem.StartTime).FirstOrDefault();
if (ccModel != null)
{
//没有数据的插入 (有数据情况 =》 请假数据)
class_CheckRepository.Insert(new RB_Class_Check()
{
ClassCheckId = 0,
ClassId = 0,
ClassDate = demodel.Date,
Status = 0,
ClassRoomId = demodel.RoomId,
Group_Id = demodel.Group_Id,
School_Id = qitem.School_Id,
TeacherId = demodel.TeacherId,
OrderGuestId = demodel.GuestId,
CheckStatus = 0,
CreateBy = 0,
CreateTime = DateTime.Now,
StudyNum = ccModel.Minutes,
MakeUpStatus = 1,
CurrentDeductionHours = ccModel.ClassHours,
IsAbsentHours = 0,
ClassTimeId = qitem.ClassTimeId
});
}
}
}
}
}
return flag ? "" : "出错了,请联系管理员";
#endregion
}
/// <summary>
/// 后台取消预约(取消已确认约课)
/// </summary>
/// <param name="stuIds"></param>
/// <param name="teacherId"></param>
/// <param name="date"></param>
/// <param name="userInfo"></param>
/// <returns></returns>
public string CancelSureAppointment(string AppointIds, int teacherId, string date, string shiftSort, UserInfo userInfo)
{
bool flag = false;
List<int> appointList = JsonHelper.DeserializeObject<List<int>>("[" + AppointIds + "]");
//查询当日 所有的预约记录
var alllist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = date, EntTime = date, TeacherId = teacherId, ShiftSort = shiftSort });
var list = alllist.Where(x => appointList.Contains(x.Id)).ToList();
if (list.Count() != appointList.Count()) { return "取消数量对不上"; }
if (list.Where(x => x.State != Common.Enum.Course.CourseAppointStateEnum.WaitCourse && x.State != Common.Enum.Course.CourseAppointStateEnum.Coursed).Any()) { return "非已确认预约,无法取消"; }
#region 获取token 推送订阅消息
string Appid = Config.JiaXiaoHeAppId;
var Secret = Config.JiaXiaoHeAppSecret;
string tokenKey = "DATA_JiaXiaoHeToken_" + Appid;
string token = Cache.WeChat.WeChatReidsCache2.GetToken(tokenKey);
if (Config.IsLocal == 1)
{
token = "";
}
else
{
if (string.IsNullOrEmpty(token))
{
token = WeChatHelper.GetAccessToken(Appid, Secret);
Cache.WeChat.WeChatReidsCache2.Set(tokenKey, token);
}
if (string.IsNullOrEmpty(token))
{
return "取消失败,请联系管理员(token)";
}
}
#endregion
foreach (var item in list)
{
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Scroll_Appointment_ViewModel.State), Common.Enum.Course.CourseAppointStateEnum.Cancel},
{ nameof(RB_Scroll_Appointment_ViewModel.Remark), item.Remark +";后台管理取消已确认的约课"},
{ nameof(RB_Scroll_Appointment_ViewModel.UpdateBy), userInfo.Id},
{ nameof(RB_Scroll_Appointment_ViewModel.UpdateTime), DateTime.Now}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Scroll_Appointment_ViewModel.Id),
FiledValue = item.Id,
OperatorEnum =OperatorEnum.Equal
}
};
flag = scroll_AppointmentRepository.Update(keyValues, wheres);
if (flag)
{
//给学生推送 取消课程的订阅消息
SendAppointmentCancelMsg(token, item.StuOpenId, item, item.Date.ToString("yyyy-MM-dd") + " " + item.CourseSTime, "老师操作取消预约");
if (item.AppointType == 2)
{
//更新补课
Dictionary<string, object> keyValues1 = new Dictionary<string, object>() {
{ nameof(RB_Scroll_SkipCourse_ViewModel.State),1}
};
List<WhereHelper> wheres1 = new List<WhereHelper>() {
new WhereHelper(){
FiledName = nameof(RB_Scroll_SkipCourse_ViewModel.StuId),
FiledValue = item.StuId,
OperatorEnum =OperatorEnum.Equal
},
new WhereHelper(){
FiledName = nameof(RB_Scroll_SkipCourse_ViewModel.GuestId),
FiledValue = item.GuestId,
OperatorEnum =OperatorEnum.Equal
},
new WhereHelper(){
FiledName = nameof(RB_Scroll_SkipCourse_ViewModel.ChapterNo),
FiledValue = item.ChapterNo,
OperatorEnum =OperatorEnum.Equal
},
new WhereHelper(){
FiledName = nameof(RB_Scroll_SkipCourse_ViewModel.State),
FiledValue = 2,
OperatorEnum =OperatorEnum.Equal
}
};
scroll_SkipCourseRepository.Update(keyValues1, wheres1);
}
if (item.State == Common.Enum.Course.CourseAppointStateEnum.Coursed) {
//已上课 要删除 签到记录
var checkList = class_CheckRepository.GetClassCheckListRepository(new RB_Class_Check_ViewModel() { Group_Id = userInfo.Group_Id, OrderGuestId = item.GuestId, QClassPlanIds = item.ClassPlanId.ToString() });
foreach (var qitem in checkList)
{
class_CheckRepository.Delete(qitem);
}
}
}
else
{
return "出错了,请联系管理员";
}
}
if (flag)
{
if (list.Count() == alllist.Count()) {
//全部取消了 删除对应 计划 + 上课时段
string planIds = string.Join(",", list.Select(x => x.ClassPlanId).Distinct());
var planlist = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel() { Group_Id = userInfo.Group_Id, QClassPlanIds = planIds, PlanType = 2 });
var timelist = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = userInfo.Group_Id, QClassPlanIds = planIds });
foreach (var item in planlist) {
class_PlanRepository.Delete(item);
var tlist = timelist.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
foreach (var qitem in tlist) {
class_TimeRepository.Delete(qitem);
}
}
}
var firstModel = list.FirstOrDefault();
string CourseTime = firstModel.CourseSTime + "~" + firstModel.CourseETime;
string StuName = string.Join(",", list.Select(x => x.StuName));
string Scroll_Notice = dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = userInfo.Group_Id, DictKey = "Scroll_Notice" }).FirstOrDefault()?.Content ?? "";
if (!string.IsNullOrEmpty(Scroll_Notice))
{
//查询推送老师
var empList = accountRepository.GetEmployeeListRepository(new Employee_ViewModel() { Group_Id = userInfo.Group_Id, QIds = Scroll_Notice });
foreach (var empModel in empList)
{
//给老师推送取消课程 信息
if (!string.IsNullOrEmpty(empModel.WorkUserId))
{
var recipientPath = HttpUtility.UrlEncode($"/stu/subscribe");//地址需要后台功能做了之后吧
var content = $"<font color='info'>取消学生预约通知</font>\n>**概要信息** \n>上课日期:<font color='warning'>{firstModel.Date.ToString("yyyy-MM-dd")}</font>\n>上课时段:<font color='warning'>{CourseTime}</font>\n>上课老师:<font color='warning'>{firstModel.TeacherName}</font>\n>取消原因:<font color='comment'>后台管理取消 {StuName}的约课</font>\n>请 点 击:[查看详情]({Config.ErpUrl}/autologin?loginId={empModel.Id}&target={recipientPath})";
PushWorkChatHelper.PushToWorkChat(content, empModel.WorkUserId, "取消学生预约通知");
}
}
}
}
return "";
}
#endregion
#region 初始化
......@@ -2754,7 +3283,7 @@ namespace Edu.Module.Course
var AppointModel = AppointList.Where(y => y.ChapterNo == x.SortNum && y.AppointType != 3 && y.LearnCourseId == item.CourseId).FirstOrDefault();
var SkipModel = SkipList.Where(y => y.ChapterNo == x.SortNum && y.CourseId == item.CourseId).FirstOrDefault();
int AgainNum = AppointList.Where(y => y.ChapterNo == x.SortNum && y.AppointType == 3 && y.LearnCourseId == item.CourseId).Count();
int State = 0;
int State = 3;
int AppointState = 0;
if (AppointModel != null)
{
......@@ -2777,6 +3306,9 @@ namespace Edu.Module.Course
{
x.ChapterNo,
x.ChapterName,
x.CourseRate,
CourseRateName = x.CourseRate.ToName(),
x.ChapterGradeNo,
State,
AppointState,
AgainNum
......@@ -2791,6 +3323,9 @@ namespace Edu.Module.Course
{
x.ChapterNo,
x.ChapterName,
x.CourseRate,
CourseRateName = x.CourseRate.ToName(),
x.ChapterGradeNo,
State = 1,
AppointState = 3,
AgainNum = 0
......
......@@ -54,6 +54,10 @@ WHERE 1=1 AND A.Status=0 ");
{
builder.AppendFormat(" AND A.{0}={1} ", nameof(RB_Class_Check_ViewModel.OrderGuestId), query.OrderGuestId);
}
if (!string.IsNullOrEmpty(query.QClassPlanIds))
{
builder.AppendFormat(" AND ct.ClassPlanId IN({0}) ", query.QClassPlanIds);
}
if (!string.IsNullOrEmpty(query.QOrderGuestIds))
{
builder.AppendFormat(" AND A.{0} IN({1}) ", nameof(RB_Class_Check_ViewModel.OrderGuestId), query.QOrderGuestIds);
......
......@@ -44,6 +44,10 @@ namespace Edu.Repository.Scroll
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.CourseEndTime)} <='{demodel.CourseEndTimeStr}'";
}
if (!string.IsNullOrEmpty(demodel.ShiftSort))
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.ShiftSort)} ='{demodel.ShiftSort}'";
}
if (demodel.TeacherId > 0)
{
where += $@" and c.AccountId ={demodel.TeacherId}";
......@@ -64,6 +68,14 @@ namespace Edu.Repository.Scroll
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.AppointType)} ={demodel.AppointType}";
}
if (demodel.CourseGradeId > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.CourseGradeId)} ={(int)demodel.CourseGradeId}";
}
if (demodel.CourseGradeNo > 0)
{
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.CourseGradeNo)} ={demodel.CourseGradeNo}";
}
string sql = $@"
SELECT r.*,c.AccountId as TeacherId,s.StuName,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum From RB_Scroll_Appointment r
......@@ -293,5 +305,30 @@ WHERE a.Group_Id ={group_Id} and a.State =3 and a.AppointType =1 and a.CourseGra
ORDER BY a.OrderId DESC";
return Get<RB_Scroll_Appointment_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取约课下一次课
/// </summary>
/// <param name="guestId"></param>
/// <param name="groupId"></param>
/// <param name="type"></param>
/// <returns></returns>
public int GetNextAppointList(int guestId, int groupId, int type)
{
if (type == 1)
{
//复习
string sql = $@"SELECT ChapterNo FROM rb_scroll_appointment WHERE Group_Id ={groupId} and State <>5 and GuestId ={guestId} and CourseEndTime <= NOW() ORDER BY CourseEndTime DESC LIMIT 1";
var robj = ExecuteScalar(sql);
return robj == null ? 0 : Convert.ToInt32(robj);
}
else {
//下一次约课
string sql = $@"SELECT ChapterNo FROM rb_scroll_appointment WHERE Group_Id ={groupId} and State <>5 and GuestId ={guestId} and CourseEndTime > NOW() ORDER BY CourseEndTime ASC LIMIT 1";
var robj = ExecuteScalar(sql);
return robj == null ? 0 : Convert.ToInt32(robj);
}
}
}
}
......@@ -301,7 +301,7 @@ FROM rb_student_orderguest og
INNER JOIN rb_order_guest g on og.GuestId = g.Id
INNER JOIN rb_order o on og.OrderId = o.OrderId
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} {(guestId > 0 ? "and og.GuestId =" + guestId : "")}
WHERE og.Status =0 and g.`Status` =0 and o.Group_Id ={group_Id} and o.OrderState <>3 and o.OrderType =1 {(guestId > 0 ? "" : "and g.TotalHours > g.CompleteHours")} and og.Student_Id ={accountId} {(guestId > 0 ? "and og.GuestId =" + guestId : "")}
ORDER BY og.Id asc LIMIT 1";
return Get<RB_Student_OrderGuest_ViewModel>(sql).FirstOrDefault();
}
......@@ -813,6 +813,39 @@ and og.TotalChapterNo > og.CourseChapterNo and (og.CourseChapterNo + 1 + IFNULL(
return Get<RB_Student_OrderGuest_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取可约课的学生列表
/// </summary>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Student_OrderGuest_ViewModel> GetCanAppointmentStuList_V2(string stuName, int NextChapterGradeNo, int CourseGradeId, int SchoolId, int group_Id)
{
string sql = $@"SELECT sog.Student_Id,sog.GuestId,sog.OrderId,cou.CourseName,s.StuName as GuestName,og.CourseChapterNo,sa.AppointNum,ss.MakeUpNum FROM rb_student_orderguest sog
INNER JOIN rb_order_guest og on sog.GuestId = og.Id
INNER JOIN rb_order o on sog.OrderId = o.OrderId
INNER JOIN rb_course cou on o.CourseId = cou.CourseId
INNER JOIN rb_student s on sog.Student_Id = s.StuId
INNER JOIN rb_class c on o.ClassId = c.ClassId
inner join rb_course_chapter cc on o.CourseId = cc.CourseId and cc.ParentId =0 and cc.ChapterGradeNo ={NextChapterGradeNo} and cc.CourseRate ={CourseGradeId}
LEFT JOIN (
SELECT sa1.StuId,COUNT(0) as AppointNum FROM rb_scroll_appointment sa1
INNER JOIN rb_student s1 on sa1.StuId = s1.StuId
WHERE sa1.`Status` =0 and sa1.State <>5 and sa1.Group_Id ={group_Id} and s1.StuName LIKE '%{stuName}%' and sa1.CourseGradeId ={CourseGradeId} and sa1.CourseGradeNo ={NextChapterGradeNo} GROUP BY sa1.StuId
) sa on sog.Student_Id = sa.StuId
LEFT JOIN (
SELECT ss1.StuId,COUNT(0) as MakeUpNum FROM rb_scroll_skipcourse ss1
INNER JOIN rb_student s1 on ss1.StuId = s1.StuId
WHERE ss1.`Status` =0 and ss1.State =1 and ss1.Group_Id ={group_Id} and s1.StuName LIKE '%{stuName}%' and ss1.CourseGradeId ={CourseGradeId} and ss1.CourseGradeNo ={NextChapterGradeNo} GROUP BY ss1.StuId
) ss on sog.Student_Id = ss.StuId
WHERE o.Group_Id ={group_Id} and sog.`Status` =0 and og.GuestState <>2 and o.OrderState <>3 and c.ClassScrollType =2 and s.StuName LIKE '%{stuName}%'";
if (SchoolId >= 0)
{
sql += $@" and o.ScrollSchoolId ={SchoolId}";
}
return Get<RB_Student_OrderGuest_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取所有学习中的学生列表
/// </summary>
......
......@@ -725,6 +725,221 @@ namespace Edu.WebApi.Controllers.Course
}
#endregion
#region 约课调整
/// <summary>
/// 获取可约课的学生列表(包括补课 重上)
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetCanAppointmentStuList_V2()
{
var userInfo = base.UserInfo;
string StuName = base.ParmJObj.GetStringValue("StuName");//学生姓名
int CourseGradeId = base.ParmJObj.GetInt("CourseGradeId", 0);//上课等级ID
int NextCourseGradeNo = base.ParmJObj.GetInt("NextCourseGradeNo", 0);//上课等级ID对应的课次
int SchoolId = base.ParmJObj.GetInt("SchoolId", -1);//约课校区
if (string.IsNullOrEmpty(StuName) || CourseGradeId <= 0 || NextCourseGradeNo <= 0)
{
return ApiResult.ParamIsNull();
}
var list = scrollClassModule.GetCanAppointmentStuList_V2(StuName, NextCourseGradeNo, CourseGradeId, SchoolId, userInfo.Group_Id);
return ApiResult.Success("", list.Select(x => new
{
StuId = x.Student_Id,
StuName = x.GuestName,
x.GuestId,
x.OrderId,
x.CourseName,
x.CourseChapterNo,
x.AppointNum,
State = x.AppointNum > 0 ? 3 : 1
}));
}
/// <summary>
/// 后台预约课(可随机约课)
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetAdminScrollAppointment_V2()
{
var userInfo = base.UserInfo;
RB_Scroll_Appointment_ViewModel demodel = JsonHelper.DeserializeObject<RB_Scroll_Appointment_ViewModel>(base.RequestParm.Msg.ToString());
if (demodel.TeacherId <= 0)
{
return ApiResult.ParamIsNull("请传递老师编号ID");
}
if (string.IsNullOrEmpty(demodel.ShiftSort))
{
return ApiResult.ParamIsNull("请传递上课时段");
}
if (demodel.StuId <= 0)
{
return ApiResult.ParamIsNull("请传递学生ID");
}
if (demodel.GuestId <= 0)
{
return ApiResult.ParamIsNull("请传递学生ID");
}
if (demodel.CourseGradeId <= 0 && demodel.CourseGradeNo <= 0)
{
return ApiResult.ParamIsNull("请传递上课的等级");
}
#region 验证是否连续的时段
List<int> SortList = JsonHelper.DeserializeObject<List<int>>("[" + demodel.ShiftSort + "]");
int MinSort = SortList.Min(x => x);
string ShiftSort = "";
for (var i = 0; i < SortList.Count(); i++)
{
ShiftSort += (MinSort + i) + ",";
}
if (ShiftSort != demodel.ShiftSort + ",")
{
return ApiResult.ParamIsNull("需预约连续的时段");
}
#endregion
demodel.State = CourseAppointStateEnum.WaitSure;
demodel.Status = 0;
demodel.Group_Id = userInfo.Group_Id;
demodel.CreateBy = userInfo.Id;
demodel.CreateTime = DateTime.Now;
demodel.UpdateBy = userInfo.Id;
demodel.UpdateTime = DateTime.Now;
string msg = scrollClassModule.SetAdminScrollAppointment_V2(demodel, out int AppointId);
if (msg == "")
{
return ApiResult.Success("", AppointId);
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 补历史约课
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetAdminScrollMakeUp() {
var userInfo = base.UserInfo;
RB_Scroll_Appointment_ViewModel demodel = JsonHelper.DeserializeObject<RB_Scroll_Appointment_ViewModel>(base.RequestParm.Msg.ToString());
if (demodel.TeacherId <= 0)
{
return ApiResult.ParamIsNull("请传递老师编号ID");
}
if (string.IsNullOrEmpty(demodel.ShiftSort))
{
return ApiResult.ParamIsNull("请传递上课时段");
}
if (demodel.StuId <= 0)
{
return ApiResult.ParamIsNull("请传递学生ID");
}
if (demodel.GuestId <= 0)
{
return ApiResult.ParamIsNull("请传递学生ID");
}
if (demodel.CourseGradeId <= 0 && demodel.CourseGradeNo <= 0)
{
return ApiResult.ParamIsNull("请传递上课的等级");
}
#region 验证是否连续的时段
List<int> SortList = JsonHelper.DeserializeObject<List<int>>("[" + demodel.ShiftSort + "]");
int MinSort = SortList.Min(x => x);
string ShiftSort = "";
for (var i = 0; i < SortList.Count(); i++)
{
ShiftSort += (MinSort + i) + ",";
}
if (ShiftSort != demodel.ShiftSort + ",")
{
return ApiResult.ParamIsNull("需预约连续的时段");
}
#endregion
demodel.State = CourseAppointStateEnum.WaitSure;
demodel.Status = 0;
demodel.Group_Id = userInfo.Group_Id;
demodel.CreateBy = userInfo.Id;
demodel.CreateTime = DateTime.Now;
demodel.UpdateBy = userInfo.Id;
demodel.UpdateTime = DateTime.Now;
string msg = scrollClassModule.SetAdminScrollMakeUp(demodel, out int AppointId);
if (msg == "")
{
return ApiResult.Success("", AppointId);
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 取消已确认的预约
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult CancelSureAppointment()
{
var userInfo = base.UserInfo;
string AppointIds = base.ParmJObj.GetStringValue("AppointIds");
int TeacherId = base.ParmJObj.GetInt("TeacherId", 0);
string Date = base.ParmJObj.GetStringValue("Date");
string ShiftSort = base.ParmJObj.GetStringValue("ShiftSort");
if (string.IsNullOrEmpty(AppointIds) || TeacherId <= 0 || string.IsNullOrEmpty(Date) || string.IsNullOrEmpty(ShiftSort))
{
return ApiResult.ParamIsNull();
}
string msg = scrollClassModule.CancelSureAppointment(AppointIds, TeacherId, Date, ShiftSort, userInfo);
if (msg == "")
{
return ApiResult.Success();
}
else
{
return ApiResult.Failed(msg);
}
}
/// <summary>
/// 切换约课老师
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult SetScrollTeacher() {
var userInfo = base.UserInfo;
int TeacherId = base.ParmJObj.GetInt("TeacherId", 0);
string Date = base.ParmJObj.GetStringValue("Date");
string ShiftSort = base.ParmJObj.GetStringValue("ShiftSort");
int NewTeacherId = base.ParmJObj.GetInt("NewTeacherId", 0);
if (TeacherId <= 0 || NewTeacherId <= 0 || string.IsNullOrEmpty(Date) || string.IsNullOrEmpty(ShiftSort))
{
return ApiResult.ParamIsNull();
}
//string msg = scrollClassModule.SetScrollTeacher(TeacherId, Date, ShiftSort, NewTeacherId, userInfo);
//if (msg == "")
//{
// return ApiResult.Success();
//}
//else
//{
// return ApiResult.Failed(msg);
//}
return ApiResult.Success();
}
#endregion
#region 初始化约课数据
/// <summary>
/// 初始化约课数据
......
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