Commit e31e717b authored by 黄奎's avatar 黄奎

取消约课调整

parent 34188ad7
...@@ -4160,6 +4160,7 @@ namespace Edu.Module.Course ...@@ -4160,6 +4160,7 @@ namespace Edu.Module.Course
.GroupBy(x => new .GroupBy(x => new
{ {
x.Date, x.Date,
x.AccountId,
x.TeacherId, x.TeacherId,
x.TeacherName, x.TeacherName,
x.RoomId, x.RoomId,
...@@ -4179,12 +4180,12 @@ namespace Edu.Module.Course ...@@ -4179,12 +4180,12 @@ namespace Edu.Module.Course
string STime = item.FirstOrDefault().CourseSTime ?? "", ETime = item.FirstOrDefault().CourseETime ?? ""; string STime = item.FirstOrDefault().CourseSTime ?? "", ETime = item.FirstOrDefault().CourseETime ?? "";
var subAppointList = appointList.Where(qitem => var subAppointList = appointList.Where(qitem =>
qitem.Date == item.Key.Date && qitem.Date == item.Key.Date &&
qitem.AccountId==item.Key.AccountId&&
qitem.TeacherId == item.Key.TeacherId && qitem.TeacherId == item.Key.TeacherId &&
qitem.TeacherName == item.Key.TeacherName && qitem.TeacherName == item.Key.TeacherName &&
qitem.RoomId == item.Key.RoomId && qitem.RoomId == item.Key.RoomId &&
qitem.RoomName == item.Key.RoomName && qitem.RoomName == item.Key.RoomName &&
qitem.CourseId == item.Key.CourseId && qitem.CourseId == item.Key.CourseId &&
qitem.ChapterNo == item.Key.ChapterNo && qitem.ChapterNo == item.Key.ChapterNo &&
qitem.ShiftSort == item.Key.ShiftSort && qitem.ShiftSort == item.Key.ShiftSort &&
qitem.CourseSTime == item.Key.CourseSTime qitem.CourseSTime == item.Key.CourseSTime
...@@ -4205,6 +4206,7 @@ namespace Edu.Module.Course ...@@ -4205,6 +4206,7 @@ namespace Edu.Module.Course
item.Key.CourseName, item.Key.CourseName,
item.Key.RoomId, item.Key.RoomId,
item.Key.RoomName, item.Key.RoomName,
item.Key.AccountId,
item.Key.TeacherName, item.Key.TeacherName,
CourseGradeId, CourseGradeId,
item.Key.ChapterNo, item.Key.ChapterNo,
...@@ -4241,6 +4243,7 @@ namespace Edu.Module.Course ...@@ -4241,6 +4243,7 @@ namespace Edu.Module.Course
var obj = new var obj = new
{ {
TeacherId = titem.TId, TeacherId = titem.TId,
titem.AccountId,
titem.TeacherName, titem.TeacherName,
titem.TeacherHead, titem.TeacherHead,
SubList = subList SubList = subList
......
...@@ -275,6 +275,7 @@ namespace Edu.Module.Course ...@@ -275,6 +275,7 @@ namespace Edu.Module.Course
ChooseStuList = tempList.Select(qitem => new ChooseStuList = tempList.Select(qitem => new
{ {
CourseId= qitem.LearnCourseId, CourseId= qitem.LearnCourseId,
qitem.AccountId,
qitem.StuId, qitem.StuId,
qitem.CourseGradeId, qitem.CourseGradeId,
qitem.GuestId, qitem.GuestId,
......
...@@ -2675,7 +2675,7 @@ namespace Edu.Module.Course ...@@ -2675,7 +2675,7 @@ namespace Edu.Module.Course
{ {
if (demodel.Id <= 0 && appointList2.Where(x => x.State == Common.Enum.Course.CourseAppointStateEnum.WaitSure).Any()) if (demodel.Id <= 0 && appointList2.Where(x => x.State == Common.Enum.Course.CourseAppointStateEnum.WaitSure).Any())
{ {
// return "学员【" + demodel.StuName + "】预约的该次课已存在待确认的数据,无法再次预约"; return "学员【" + demodel.StuName + "】预约的该次课已存在待确认的数据,无法再次预约";
} }
int AgainNum = Convert.ToInt32(dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_AgainCourse" }).FirstOrDefault()?.Content ?? "1"); int AgainNum = Convert.ToInt32(dictvalueRepository.GetList(new RB_Dictvalue_Extend() { RB_Group_id = demodel.Group_Id, DictKey = "Scroll_AgainCourse" }).FirstOrDefault()?.Content ?? "1");
if (demodel.Id <= 0 && appointList2.Where(x => x.AppointType == 3).Count() >= AgainNum) if (demodel.Id <= 0 && appointList2.Where(x => x.AppointType == 3).Count() >= AgainNum)
...@@ -2690,6 +2690,14 @@ namespace Edu.Module.Course ...@@ -2690,6 +2690,14 @@ namespace Edu.Module.Course
//验证都OK了 插入预约数据 //验证都OK了 插入预约数据
if (demodel.Id <= 0) if (demodel.Id <= 0)
{ {
var tempList = appointList?.Where(qitem => qitem.AccountId == demodel.AccountId && Common.ConvertHelper.FormatDate(qitem.Date) == Common.ConvertHelper.FormatDate(demodel.Date) && qitem.ShiftSort == demodel.ShiftSort)?.ToList();
if (tempList != null && tempList.Count > 0)
{
if (tempList?.Where(qitem => qitem.State == Common.Enum.Course.CourseAppointStateEnum.WaitCourse)?.Count() > 0)
{
demodel.State = Common.Enum.Course.CourseAppointStateEnum.WaitCourse;
}
}
//默认扣除学生课时 //默认扣除学生课时
demodel.IsCalcStuCheck = 1; demodel.IsCalcStuCheck = 1;
AppointId = scroll_AppointmentRepository.Insert(demodel); AppointId = scroll_AppointmentRepository.Insert(demodel);
...@@ -2816,8 +2824,8 @@ namespace Edu.Module.Course ...@@ -2816,8 +2824,8 @@ namespace Edu.Module.Course
//查询当日 所有的预约记录 //查询当日 所有的预约记录
var alllist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = date, EntTime = date, TeacherId = teacherId, ShiftSort = shiftSort }); 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(); var list = alllist.Where(x => appointList.Contains(x.Id)).ToList();
if (list.Count() != appointList.Count()) { return "取消数量对不上"; } //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 "非已确认预约,无法取消"; } //if (list.Where(x => x.State != Common.Enum.Course.CourseAppointStateEnum.WaitCourse && x.State != Common.Enum.Course.CourseAppointStateEnum.Coursed).Any()) { return "非已确认预约,无法取消"; }
#region 获取token 推送订阅消息 #region 获取token 推送订阅消息
string Appid = Config.JiaXiaoHeAppId; string Appid = Config.JiaXiaoHeAppId;
...@@ -3196,16 +3204,7 @@ namespace Edu.Module.Course ...@@ -3196,16 +3204,7 @@ namespace Edu.Module.Course
//查询当日 所有的预约记录 //查询当日 所有的预约记录
var alllist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = model.Date, EntTime = model.Date, AccountId = model.AccountId, ShiftSort = model.ShiftSort }); var alllist = scroll_AppointmentRepository.GetAppointList(new RB_Scroll_Appointment_ViewModel() { Group_Id = userInfo.Group_Id, StartTime = model.Date, EntTime = model.Date, AccountId = model.AccountId, ShiftSort = model.ShiftSort });
var list = alllist.Where(x => appointList.Contains(x.Id)).ToList(); var list = alllist.Where(x => appointList.Contains(x.Id)).ToList();
if (list.Count() != appointList.Count())
{
message = "取消数量对不上";
return false;
}
if (list.Where(x =>x.State != Common.Enum.Course.CourseAppointStateEnum.WaitCourse && x.State != Common.Enum.Course.CourseAppointStateEnum.Coursed).Any())
{
message = "非已确认预约,无法取消";
return false;
}
#region 获取token 推送订阅消息 #region 获取token 推送订阅消息
string Appid = Config.JiaXiaoHeAppId; string Appid = Config.JiaXiaoHeAppId;
...@@ -3232,8 +3231,8 @@ namespace Edu.Module.Course ...@@ -3232,8 +3231,8 @@ namespace Edu.Module.Course
{ {
isCancelAll = true;//全部取消 isCancelAll = true;//全部取消
} }
var tempList = list.Where(qitem => qitem.State != Common.Enum.Course.CourseAppointStateEnum.Cancel && qitem.State != Common.Enum.Course.CourseAppointStateEnum.Absent)?.ToList();
foreach (var item in list) foreach (var item in tempList)
{ {
var currentStu= model.StuList.FirstOrDefault(qitem => qitem.AppointId == item.Id); var currentStu= model.StuList.FirstOrDefault(qitem => qitem.AppointId == item.Id);
item.IsCalcStuCheck = currentStu.IsCalcStuCheck; item.IsCalcStuCheck = currentStu.IsCalcStuCheck;
......
...@@ -52,6 +52,10 @@ namespace Edu.Repository.Scroll ...@@ -52,6 +52,10 @@ namespace Edu.Repository.Scroll
{ {
where += $@" and c.AccountId ={demodel.TeacherId}"; where += $@" and c.AccountId ={demodel.TeacherId}";
} }
if (demodel.AccountId > 0)
{
where += $@" and r.AccountId ={demodel.AccountId}";
}
if (demodel.StuId > 0) if (demodel.StuId > 0)
{ {
where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.StuId)} ={demodel.StuId}"; where += $@" and r.{nameof(RB_Scroll_Appointment_ViewModel.StuId)} ={demodel.StuId}";
...@@ -266,18 +270,18 @@ ORDER BY r.Id desc "; ...@@ -266,18 +270,18 @@ ORDER BY r.Id desc ";
string sql = $@" string sql = $@"
SELECT r.*,c.AccountId as TeacherId,c.WorkUserId,t.TeacherName,t.TeacherHead,s.StuName,sch.OpenId as StuOpenId,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum,cou.CourseTimeId,cr.RoomName SELECT r.*,c.AccountId as TeacherId,c.WorkUserId,t.TeacherName,t.TeacherHead,s.StuName,sch.OpenId as StuOpenId,cou.CourseName,cou.ScrollMinNum,cou.ScrollMaxNum,cou.CourseTimeId,cr.RoomName
,cr.School_Id as RoomSchoolId,sc.SName as RoomSchoolName ,og.TotalChapterNo,IFNULL(c2.CourseName,'') AS LearnCourseName,og.CourseChapterNo ,cr.School_Id as RoomSchoolId,sc.SName as RoomSchoolName ,og.TotalChapterNo,IFNULL(c2.CourseName,'') AS LearnCourseName,og.CourseChapterNo
From RB_Scroll_Appointment r FROM RB_Scroll_Appointment r
inner join rb_order_guest og on r.GuestId = og.Id INNER JOIN rb_order_guest og on r.GuestId = og.Id
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_account sch on sch.AccountId = s.StuId and sch.AccountType =4 INNER JOIN rb_account sch on sch.AccountId = s.StuId and sch.AccountType =4
inner join rb_course cou on r.CourseId = cou.CourseId INNER JOIN rb_course cou on r.CourseId = cou.CourseId
LEFT JOIN rb_course c2 ON r.LearnCourseId=c2.CourseId LEFT JOIN rb_course c2 ON r.LearnCourseId=c2.CourseId
inner join rb_class_room cr on r.RoomId = cr.RoomId LEFT JOIN rb_class_room cr on r.RoomId = cr.RoomId
left join rb_school sc on sc.SId = cr.School_Id 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 Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList(); return Get<RB_Scroll_Appointment_ViewModel>(sql, parameters).ToList();
} }
......
...@@ -95,7 +95,7 @@ SELECT A.Date,A.AccountId,A.State,A.GuestId,A.LearnCourseId,A.CourseGradeId,A.Co ...@@ -95,7 +95,7 @@ SELECT A.Date,A.AccountId,A.State,A.GuestId,A.LearnCourseId,A.CourseGradeId,A.Co
,IFNULL(A.CourseETime,'') AS EndTime,IFNULL(A.RoomId,0) AS ClassRoomId,A.Id AS AppointId,A.ShiftSort ,IFNULL(A.CourseETime,'') AS EndTime,IFNULL(A.RoomId,0) AS ClassRoomId,A.Id AS AppointId,A.ShiftSort
FROM rb_scroll_appointment AS A LEFT JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId FROM rb_scroll_appointment AS A LEFT JOIN rb_class_time AS B ON A.ClassPlanId=B.ClassPlanId
LEFT JOIN rb_class_check AS C ON B.ClassTimeId=C.ClassTimeId AND A.GuestId=C.OrderGuestId LEFT JOIN rb_class_check AS C ON B.ClassTimeId=C.ClassTimeId AND A.GuestId=C.OrderGuestId
WHERE 1=1 AND A.State IN(1,2,3) AND A.AppointType IN(1,2) WHERE 1=1 AND A.State IN(1,2,3,6) AND A.AppointType IN(1,2)
"); ");
appointBuilder.AppendFormat(@" AND A.LearnCourseId IN ({0}) ", courseIds); appointBuilder.AppendFormat(@" AND A.LearnCourseId IN ({0}) ", courseIds);
appointBuilder.AppendFormat(@" AND A.CourseGradeId IN ({0}) ", (int)query.QCourseRate); appointBuilder.AppendFormat(@" AND A.CourseGradeId IN ({0}) ", (int)query.QCourseRate);
......
...@@ -996,23 +996,51 @@ namespace Edu.WebApi.Controllers.Course ...@@ -996,23 +996,51 @@ namespace Edu.WebApi.Controllers.Course
public ApiResult CancelSureAppointment() public ApiResult CancelSureAppointment()
{ {
var userInfo = base.UserInfo; var userInfo = base.UserInfo;
string AppointIds = base.ParmJObj.GetStringValue("AppointIds"); //string AppointIds = base.ParmJObj.GetStringValue("AppointIds");
int TeacherId = base.ParmJObj.GetInt("TeacherId", 0); //int TeacherId = base.ParmJObj.GetInt("TeacherId", 0);
string Date = base.ParmJObj.GetStringValue("Date"); //string Date = base.ParmJObj.GetStringValue("Date");
string ShiftSort = base.ParmJObj.GetStringValue("ShiftSort"); //string ShiftSort = base.ParmJObj.GetStringValue("ShiftSort");
if (string.IsNullOrEmpty(AppointIds) || TeacherId <= 0 || string.IsNullOrEmpty(Date) || string.IsNullOrEmpty(ShiftSort)) //if (string.IsNullOrEmpty(AppointIds) || TeacherId <= 0 || string.IsNullOrEmpty(Date) || string.IsNullOrEmpty(ShiftSort))
//{
// return ApiResult.ParamIsNull();
//}
//string msg = scrollClassModule.CancelSureAppointmentModuleAsync(AppointIds, TeacherId, Date, ShiftSort, userInfo).Result;
//if (msg == "")
//{
// return ApiResult.Success();
//}
//else
//{
// return ApiResult.Failed(msg);
//}
CancelAppointmentModel model = new CancelAppointmentModel()
{ {
return ApiResult.ParamIsNull(); AccountId = base.ParmJObj.GetInt("AccountId", 0),
ShiftSort = base.ParmJObj.GetStringValue("ShiftSort"),
StuList = new List<StuAppointItem>(),
};
var Date = base.ParmJObj.GetStringValue("Date");
if (!string.IsNullOrEmpty(Date))
{
model.Date = Common.ConvertHelper.FormatDate(Convert.ToDateTime(Date));
} }
string msg = scrollClassModule.CancelSureAppointmentModuleAsync(AppointIds, TeacherId, Date, ShiftSort, userInfo).Result; string StuListStr = base.ParmJObj.GetStringValue("ChooseStuList");
if (msg == "") if (!string.IsNullOrEmpty(StuListStr))
{ {
return ApiResult.Success(); JArray jarray = JArray.Parse(StuListStr);
foreach (var jItem in jarray)
{
JObject jobj = JObject.Parse(Common.Plugin.JsonHelper.Serialize(jItem));
model.StuList.Add(new StuAppointItem() { AppointId = jobj.GetInt("AppointId"), IsCalcStuCheck = jobj.GetInt("IsCalcStuCheck") });
}
} }
else if (model.StuList.Count <= 0)
{ {
return ApiResult.Failed(msg); return ApiResult.ParamIsNull(message: "请选择要取消的学员!");
} }
bool flag = scrollClassModule.CancelSureAppointmentNewModule(model, userInfo, out string message);
return flag ? ApiResult.Success() : ApiResult.Failed(message: message);
} }
/// <summary> /// <summary>
...@@ -1043,7 +1071,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1043,7 +1071,7 @@ namespace Edu.WebApi.Controllers.Course
/// <summary> /// <summary>
/// 取消学员上课 {HK New} /// 取消学员上课 {HK 2024-09-06 New}
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
...@@ -1053,10 +1081,14 @@ namespace Edu.WebApi.Controllers.Course ...@@ -1053,10 +1081,14 @@ namespace Edu.WebApi.Controllers.Course
CancelAppointmentModel model = new CancelAppointmentModel() CancelAppointmentModel model = new CancelAppointmentModel()
{ {
AccountId= base.ParmJObj.GetInt("AccountId", 0), AccountId= base.ParmJObj.GetInt("AccountId", 0),
Date = base.ParmJObj.GetStringValue("Date"),
ShiftSort = base.ParmJObj.GetStringValue("ShiftSort"), ShiftSort = base.ParmJObj.GetStringValue("ShiftSort"),
StuList=new List<StuAppointItem>(), StuList=new List<StuAppointItem>(),
}; };
var Date = base.ParmJObj.GetStringValue("Date");
if (!string.IsNullOrEmpty(Date))
{
model.Date = Common.ConvertHelper.FormatDate(Convert.ToDateTime(Date));
}
string StuListStr = base.ParmJObj.GetStringValue("ChooseStuList"); string StuListStr = base.ParmJObj.GetStringValue("ChooseStuList");
if (!string.IsNullOrEmpty(StuListStr)) if (!string.IsNullOrEmpty(StuListStr))
{ {
......
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