using Edu.AOP.CustomerAttribute;
using Edu.Cache.User;
using Edu.Common;
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.CacheModel;
using Edu.Model.Entity.Course;
using Edu.Model.Entity.Grade;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Mall;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.Reserve;
using Edu.Model.ViewModel.Sell;
using Edu.Model.ViewModel.User;
using Edu.Repository.Course;
using Edu.Repository.Finance;
using Edu.Repository.Log;
using Edu.Repository.Reserve;
using Edu.Repository.User;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using VT.FW.DB;
using Edu.Model.Entity.Mall;
using Edu.Repository.BackClass;
using Edu.Repository.Grade;
using Edu.Repository.Sell;
using Edu.Module.User;
using System.Web;
using Edu.Common.Enum.System;
namespace Edu.Module.Course
{
///
/// 班级管理处理类
///
public class ClassModule
{
///
/// 班级仓储层对象
///
private readonly RB_ClassRepository classRepository = new RB_ClassRepository();
///
/// 班级上课计划仓储层对象
///
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
///
/// 班级上课计划上课时间仓储层对象
///
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
///
/// 班级类型
///
private readonly RB_Class_TypeRepository class_TypeRepository = new RB_Class_TypeRepository();
///
/// 班级价格仓储层对象
///
private readonly RB_Class_StepPriceRepository class_StepPriceRepository = new RB_Class_StepPriceRepository();
///
/// 订单学员仓储层对象
///
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
///
/// 课程仓储层对象
///
private readonly RB_CourseRepository courseRepository = new RB_CourseRepository();
///
/// 订单仓储层对象
///
private readonly RB_OrderRepository orderRepository = new RB_OrderRepository();
///
/// 课程日志记录表
///
private readonly RB_Class_LogRepository classLogRepository = new RB_Class_LogRepository();
///
/// 课程签到记录表
///
private readonly RB_Class_CheckRepository classCheckRepository = new RB_Class_CheckRepository();
///
/// 课程日志记录表
///
private readonly RB_StudentRepository studentRepository = new RB_StudentRepository();
///
/// 教室仓储层对象
///
private readonly RB_Class_RoomRepository class_RoomRepository = new RB_Class_RoomRepository();
///
/// 教师仓储层对象
///
private readonly RB_TeacherRepository teacherRepository = new RB_TeacherRepository();
///
/// 开启班级收支仓储层对象
///
private readonly RB_Class_FinanceRepository classFinanceRepository = new RB_Class_FinanceRepository();
///
/// 课程基础配置
///
private readonly RB_Class_ConfigRepository class_ConfigRepository = new RB_Class_ConfigRepository();
///
/// 教育月结轧账
///
private readonly RB_RollingAccountRepository rollingAccountRepository = new RB_RollingAccountRepository();
///
/// 课程基础配置
///
private readonly RB_Class_LessonPlanDetailsRepository ClassLessonPlanDetailsRepository = new RB_Class_LessonPlanDetailsRepository();
///
/// 课程基础配置
///
private readonly RB_Class_LessonPlanProjectsRepository ClassLessonPlanProjectsRepository = new RB_Class_LessonPlanProjectsRepository();
///
/// 班级备案评论仓储层对象
///
private readonly RB_Class_LessonCommentRepository classLessonCommentRepository = new RB_Class_LessonCommentRepository();
///
/// 课程基础配置
///
private readonly RB_Class_LessonPlanRepository ClassLessonPlanRepository = new RB_Class_LessonPlanRepository();
///
/// 班级关联课程仓储层对象
///
private readonly RB_Class_CourseRepository class_CourseRepository = new RB_Class_CourseRepository();
///
/// 约课仓储层对象
///
private readonly RB_Reserve_ClassRepository reserve_ClassRepository = new RB_Reserve_ClassRepository();
///
/// 访客预约仓储层对象
///
private readonly RB_Visitor_ReserveRepository visitor_ReserveRepository = new RB_Visitor_ReserveRepository();
///
/// 教室异常仓储对象
///
private readonly RB_Class_RoomUseLogRepository class_RoomUseLogRepository = new RB_Class_RoomUseLogRepository();
///
/// 学员补课记录表仓储层对象
///
private readonly RB_Student_MakeupRepository student_MakeupRepository = new RB_Student_MakeupRepository();
///
/// 学员订单仓储层对象
///
private readonly RB_Student_OrderGuestRepository student_OrderGuestRepository = new RB_Student_OrderGuestRepository();
///
/// 日志仓储对象
///
private readonly RB_User_ChangeLogRepository user_ChangeLogRepository = new RB_User_ChangeLogRepository();
///
/// b2b同业学生消息推送
///
private readonly RB_B2B_StudentNoticeRepository b2B_StudentNoticeRepository = new RB_B2B_StudentNoticeRepository();
///
/// 商品规格
///
private readonly Repository.Mall.RB_Goods_SpecificationRepository goods_SpecificationRepository = new Repository.Mall.RB_Goods_SpecificationRepository();
///
/// 商品规格值
///
private readonly Repository.Mall.RB_Goods_SpecificationValueRepository goods_SpecificationValueRepository = new Repository.Mall.RB_Goods_SpecificationValueRepository();
///
/// 商品规格价格
///
private readonly Repository.Mall.RB_Goods_SpecificationPriceRepository goods_SpecificationPriceRepository = new Repository.Mall.RB_Goods_SpecificationPriceRepository();
///
/// 账户仓储层
///
private readonly RB_AccountRepository accountRepository = new RB_AccountRepository();
///
/// 账户仓储层
///
private readonly RB_Class_FeedBackRepository class_FeedBackRepository = new RB_Class_FeedBackRepository();
///
/// 获取班级列表
///
///
///
public List GetClassListModule(RB_Class_ViewModel query)
{
var list = classRepository.GetClassListRepository(query);
if (list != null && list.Count > 0)
{
string classIds = string.Join(",", list.Select(qitem => qitem.ClassId));
List planList = new List();
List timeList = new List();
//查询剩余的上课计划
if (query.IsQuerySurplusPlan == 1)
{
planList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{
QClassIds = classIds,
StartTime = Common.ConvertHelper.FormatDate(DateTime.Now)
});
}
if (planList != null && planList.Count > 0)
{
string planIds = string.Join(",", planList.Select(qitem => qitem.ClassPlanId));
timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel()
{
QClassIds = classIds,
QClassPlanIds = planIds,
});
}
foreach (var item in list)
{
var tempPlanList = planList?.Where(qitem => qitem.ClassId == item.ClassId)?.OrderBy(qitem => qitem.ClassDate)?.ToList();
if (tempPlanList != null && tempPlanList.Count > 0)
{
foreach (var sItem in tempPlanList)
{
sItem.PlanTimeList = timeList?.Where(qitem => qitem.ClassId == item.ClassId && qitem.ClassPlanId == sItem.ClassPlanId)?.OrderBy(qitem => qitem.StartTime)?.ToList() ?? new List();
}
}
item.ClassPlanList = tempPlanList ?? new List();
}
}
return list;
}
///
/// 获取班级列表
///
///
///
public List GetClassListForProperty(RB_Class_ViewModel query)
{
return classRepository.GetClassListForProperty(query);
}
///
/// 获取班级课程名称以及老师信息列表
///
///
///
///
///
///
public List GetClassAndCourseListRepository(RB_Class_ViewModel query)
{
return classRepository.GetClassAndCourseListRepository(query);
}
///
/// 获取班级上课时间列表
///
///
///
public List GetClassTimeListModule(RB_Class_Time_ViewModel query)
{
return class_TimeRepository.GetClassTimeListRepository(query);
}
///
/// 获取班级上课时间列表
///
///
///
public List GetClassTimeList_V2(RB_Class_Time_ViewModel query)
{
return class_TimeRepository.GetClassTimeList_V2(query);
}
///
/// 获取班级上课时间列表
///
///
///
public List GetClassTimeList(RB_Class_Time_ViewModel query)
{
return class_TimeRepository.GetClassTimeList(query);
}
///
/// 获取班级分页列表
///
///
///
///
///
/// 是否查询阶梯价格
///
public List GetClassPageListModule(int pageIndex, int pageSize, out long rowsCount, RB_Class_ViewModel query, bool isGetStepPrice = false)
{
var list = classRepository.GetClassPageListRepository(pageIndex, pageSize, out rowsCount, query);
if (list != null && list.Count > 0)
{
var classTimeList = new List();
var classOrderList = new List();
var stepPriceList = new List();
var otherCourseList = new List();
var planList = new List();
string ids = string.Join(",", list.Select(qitem => qitem.ClassId));
if (!string.IsNullOrEmpty(ids))
{
classTimeList = class_TimeRepository.GetClassTimeListRepository(ids);
classOrderList = orderRepository.GetClassOrderPeopleNumRepository(ids);
otherCourseList = GetClassCourseListModule(new RB_Class_Course_Extend() { QClassIds = ids });
planList = class_PlanRepository.GetClassPlanMaxDataRepository(new RB_Class_Plan_ViewModel()
{
QClassIds = ids
});
}
if (isGetStepPrice)
{
stepPriceList = class_StepPriceRepository.GetClassStepPriceListRepository(new RB_Class_StepPrice_ViewModel() { QClassIds = ids })?.ToList() ?? new List();
}
//课程计划上课日期
foreach (var item in list)
{
item.NewPlanDateTime = classTimeList?.Where(qitem => qitem.ClassId == item.ClassId)?.FirstOrDefault()?.NewPlanDateTime;
item.OrderStudentCount = classOrderList?.Where(qitem => qitem.ClassId == item.ClassId)?.FirstOrDefault()?.GuestNum ?? 0;
if (isGetStepPrice)
{
item.ClassStepPriceList = stepPriceList?.Where(qitem => qitem.ClassId == item.ClassId)?.ToList() ?? new List();
}
item.OtherCourseList = otherCourseList?.Where(qitem => qitem.ClassId == item.ClassId)?.ToList() ?? new List();
var tempData = planList.Where(qitem => qitem.ClassId == item.ClassId)?.FirstOrDefault();
if (tempData != null)
{
item.EndClassDate = tempData.ClassDate;
}
item.FinishTimeStr = Common.ConvertHelper.FormatDate(item.EndClassDate);
}
}
return list;
}
///
/// 获取班级日志分页列表
///
/// 当前页
/// 每页显示条数
/// 总条数
/// 查询条件
///
public List GetClassLogPageListRepository(int pageIndex, int pageSize, out long rowsCount, RB_Class_Log_ViewModel query)
{
return classLogRepository.GetClassLogPageListRepository(pageIndex, pageSize, out rowsCount, query);
}
///
/// 新增修改班级
///
///
///
public virtual bool SetClassModule(RB_Class_ViewModel model)
{
bool flag = false;
if (model.ClassId > 0)
{
var oldModel = GetClassModule(model.ClassId);
if (oldModel.Teacher_Id != model.Teacher_Id && model.Teacher_Id > 0 && oldModel.Teacher_Id > 0)
{
class_PlanRepository.UpdatePlanTeacherIdRepository(model.Teacher_Id, model.ClassId);
}
Dictionary fileds = new Dictionary()
{
{ nameof(RB_Class_ViewModel.ClassName),model.ClassName},
{ nameof(RB_Class_ViewModel.CouseId),model.CouseId},
{ nameof(RB_Class_ViewModel.Teacher_Id),model.Teacher_Id},
{ nameof(RB_Class_ViewModel.Assist_Id),model.Assist_Id},
{ nameof(RB_Class_ViewModel.UpdateBy),model.UpdateBy},
{ nameof(RB_Class_ViewModel.UpdateTime),model.UpdateTime},
{ nameof(RB_Class_ViewModel.ClassPersion),model.ClassPersion},
{ nameof(RB_Class_ViewModel.OpenTime),model.OpenTime},
{ nameof(RB_Class_ViewModel.EndOrderTime),model.EndOrderTime},
{ nameof(RB_Class_ViewModel.OriginalPrice),model.OriginalPrice},
{ nameof(RB_Class_ViewModel.SellPrice),model.SellPrice},
{ nameof(RB_Class_ViewModel.IsStepPrice),model.IsStepPrice},
{ nameof(RB_Class_ViewModel.ClassRoomId),model.ClassRoomId},
{ nameof(RB_Class_ViewModel.IsOpenCommission),model.IsOpenCommission},
{ nameof(RB_Class_ViewModel.CommissionType),model.CommissionType},
{ nameof(RB_Class_ViewModel.CommissionValue),model.CommissionValue},
{ nameof(RB_Class_ViewModel.ClassHours),model.ClassHours},
{ nameof(RB_Class_ViewModel.ClassStyle),model.ClassStyle},
{ nameof(RB_Class_ViewModel.InnerRemark),model.InnerRemark},
{ nameof(RB_Class_ViewModel.ClassType),model.ClassType},
{ nameof(RB_Class_ViewModel.DefaultTimeJson),model.DefaultTimeJson},
{ nameof(RB_Class_ViewModel.DateJson),model.DateJson},
{ nameof(RB_Class_ViewModel.School_Id),model.School_Id},
{ nameof(RB_Class_ViewModel.IsSubscribe),model.IsSubscribe},
{ nameof(RB_Class_ViewModel.IsDeduction),model.IsDeduction},
{ nameof(RB_Class_ViewModel.Point),model.Point},
{ nameof(RB_Class_ViewModel.CourseClassType),model.CourseClassType},
{ nameof(RB_Class_ViewModel.StudentNumType),model.StudentNumType},
{ nameof(RB_Class_ViewModel.ClassHourMinute),model.ClassHourMinute},
};
if (oldModel.OpenTime != model.OpenTime || oldModel.ClassType != model.ClassType || string.IsNullOrEmpty(oldModel.ClassNo))
{
if (oldModel.OpenTime != model.OpenTime || string.IsNullOrEmpty(oldModel.ClassNo))
{
#region 生成班级号
model.ClassNo = "";
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
if (classTypeModel != null)
{
model.ClassNo = classTypeModel.ClassNoPrefix;
}
//查询最大的字母
int CNum = classRepository.GetMaxClassNoPrefix(model.OpenTime.ToString("yyyy-MM-dd"));
if (CNum == 0)
{
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + "A";
model.ClassLetterNum = 1;
}
else
{
string ClassNoLetterStr = Edu.Common.Config.ClassNoLetterStr;
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + ClassNoLetterStr.Substring(CNum, 1);
model.ClassLetterNum = CNum + 1;
}
#endregion
fileds.Add(nameof(RB_Class_ViewModel.ClassNo), model.ClassNo);
fileds.Add(nameof(RB_Class_ViewModel.ClassLetterNum), model.ClassLetterNum);
}
else if (oldModel.ClassType != model.ClassType)
{
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
if (classTypeModel != null)
{
model.ClassNo = classTypeModel.ClassNoPrefix;
}
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + oldModel.ClassNo.Substring(oldModel.ClassNo.Length - 1, 1);
fileds.Add(nameof(RB_Class_ViewModel.ClassNo), model.ClassNo);
}
}
flag = classRepository.Update(fileds, new WhereHelper(nameof(RB_Class_ViewModel.ClassId), model.ClassId));
}
else
{
#region 生成班级号
model.ClassNo = "";
var classTypeModel = class_TypeRepository.GetEntity(model.ClassType);
if (classTypeModel != null)
{
model.ClassNo = classTypeModel.ClassNoPrefix;
}
//查询最大的字母
int CNum = classRepository.GetMaxClassNoPrefix(model.OpenTime.ToString("yyyy-MM-dd"));
if (CNum == 0)
{
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + "A";
model.ClassLetterNum = 1;
}
else
{
string ClassNoLetterStr = Edu.Common.Config.ClassNoLetterStr;
model.ClassNo += model.OpenTime.ToString("yyyyMMdd") + ClassNoLetterStr.Substring(CNum, 1);
model.ClassLetterNum = CNum + 1;
}
#endregion
var newId = classRepository.Insert(model);
model.ClassId = newId;
flag = newId > 0;
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = "创建班级",
ClassId = newId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
#region 阶梯报价
//未开启阶梯价格
if (model.IsStepPrice == 0)
{
class_StepPriceRepository.DeleteClassStepPriceRepository(model.ClassId);
}
else//开启阶梯价格
{
var oldStepPriceList = class_StepPriceRepository.GetClassStepPriceListRepository(new RB_Class_StepPrice_ViewModel() { ClassId = model.ClassId });
//以前没有阶梯报价信息【直接新增】
if (oldStepPriceList == null || (oldStepPriceList != null && oldStepPriceList.Count == 0))
{
if (model.ClassStepPriceList != null && model.ClassStepPriceList.Count > 0)
{
foreach (var item in model.ClassStepPriceList)
{
item.ClassStepPriceId = 0;
item.ClassId = model.ClassId;
item.Group_Id = model.Group_Id;
item.School_Id = model.School_Id;
class_StepPriceRepository.Insert(item);
}
}
}
else//以前有阶梯报价
{
//现在没有阶梯报价了【直接删除以前的阶梯报价】
if (model.ClassStepPriceList == null || (model.ClassStepPriceList != null && model.ClassStepPriceList.Count == 0))
{
class_StepPriceRepository.DeleteClassStepPriceRepository(model.ClassId);
}
//找出差异的数据
var deleteList = oldStepPriceList.Where(qitem => !model.ClassStepPriceList.Any(oldItem => qitem.ClassStepPriceId == oldItem.ClassStepPriceId)).ToList();
foreach (var dItem in deleteList)
{
if (dItem.ClassStepPriceId > 0)
{
class_StepPriceRepository.Delete(dItem.ClassStepPriceId);
}
}
foreach (var priceItem in model.ClassStepPriceList)
{
priceItem.ClassId = model.ClassId;
priceItem.Group_Id = model.Group_Id;
priceItem.School_Id = model.School_Id;
if (priceItem.ClassStepPriceId == 0)
{
class_StepPriceRepository.Insert(priceItem);
}
else
{
class_StepPriceRepository.Update(priceItem);
}
}
}
}
#endregion
#region 班级计划
//默认上课时间
var defaultPlanTimeList = new List();
var BasicMinutes = class_ConfigRepository.GetBasicMinutesRepository(model.Group_Id);
foreach (var tItem in model.DefaultTimeList)
{
ClassTimeItem tModel = new ClassTimeItem()
{
DateList = new List(),
TimeList = new List()
};
tModel.DateList = tItem.DateList;
foreach (var subItem in tItem.TimeList)
{
var startDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + subItem.StartTime + ":00");
var endDate = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + subItem.EndTime + ":00");
TimeSpan span = endDate.Subtract(startDate);
var timeModel = new TimeItem()
{
StartTime = subItem.StartTime,
EndTime = subItem.EndTime,
TimeHour = subItem.TimeHour,
};
if (timeModel.TimeHour <= 0)
{
timeModel.TimeHour = Convert.ToDecimal(span.TotalMinutes / BasicMinutes);
}
tModel.TimeList.Add(timeModel);
defaultPlanTimeList.Add(tModel);
}
}
#endregion
if (model.Teacher_Id > 0 && model.ClassRoomId > 0)
{
//班级上课计划列表
List classPlanList = CreateClassPlanList(model, defaultPlanTimeList, BasicMinutes);
model.ClassPlanList = classPlanList;
}
else
{
model.ClassPlanList = new List();
}
#region 同步班级到甲鹤小程序 Add by:W 2021-08-02 09:49
SetGoodsSpecificationValue(model);
#endregion
return flag;
}
///
/// 添加上课计划
///
///
///
public bool AddClassPlanModule(int ClassId, List planList, UserInfo user, out bool result)
{
bool flag = true;
result = false;
RB_Class_ViewModel model = GetClassModule(ClassId);
model.ClassPlanList = planList;
List timeItemList = new List();
if (model.ClassPlanList != null && model.ClassPlanList.Count > 0)
{
var datetimeList = model.ClassPlanList.Select(qitem => qitem.ClassDate).ToList();
var dateStr = Common.ConvertHelper.DateTimeListToString(datetimeList);
//添加班级上课计划
var tempPlanList = class_PlanRepository.BatchInsertClassPlanRepository(model.ClassPlanList);
List timeList = new List();
foreach (var item in model.ClassPlanList)
{
var newClassPlanId = tempPlanList?.Where(qitem => qitem.ClassId == item.ClassId && Common.ConvertHelper.FormatDate(qitem.ClassDate) == Common.ConvertHelper.FormatDate(item.ClassDate))?.FirstOrDefault()?.ClassPlanId ?? 0;
if (newClassPlanId > 0 && item.PlanTimeList != null && item.PlanTimeList.Count > 0)
{
foreach (var subItem in item.PlanTimeList)
{
var classTime = new RB_Class_Time()
{
ClassTimeId = 0,
ClassId = model.ClassId,
ClassPlanId = newClassPlanId,
StartTime = subItem.StartTime,
EndTime = subItem.EndTime,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
ClassStatus = 0,
TimeHour = subItem.TimeHour
};
timeList.Add(classTime);
}
}
}
if (timeList != null && timeList.Count > 0)
{
flag = class_TimeRepository.BatchInsertClassTimeRepository(timeList);
}
}
//检查上课计划是否重复
class_PlanRepository.CheckClassPlanRepeatRepository(ClassId, out result);
if (result)
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0}创建上课计划成功!但是存在冲突的上课安排,等待管理员处理!", user.AccountName),
ClassId = ClassId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
else
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0},完成班级排课计划冲突", user.AccountName),
ClassId = ClassId,
Group_Id = model.Group_Id,
School_Id = model.School_Id,
CreateBy = model.CreateBy,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
return flag;
}
///
/// 批量修改上课计划
///
/// 调动类型(1-老师,2-教室,3-时段)
///
///
///
///
///
///
public bool BatchUpdateClassPlanModule(int ClassId, int ChangeType, int ClassRoomId, int TeacherId, List ClassPlanIdList, List TimeList, UserInfo user, out bool result)
{
bool flag = false;
string ids = string.Join(",", ClassPlanIdList);
result = false;
if (ChangeType == 1)
{
flag = class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(TeacherId, 0, ids);
}
if (ChangeType == 2)
{
flag = class_PlanRepository.UpdateClassPlanTeacherOrClassRoomIdRepository(0, ClassRoomId, ids);
}
if (ChangeType == 3)
{
flag = class_TimeRepository.DeleteClassTimeByPlanIdsRepository(ids);
var planList = class_PlanRepository.GetClassPlanListRepository(new RB_Class_Plan_ViewModel()
{
QClassPlanIds = ids
});
if (flag && planList != null && planList.Count > 0)
{
List timeList = new List();
foreach (var item in planList)
{
foreach (var subItem in TimeList)
{
var classTime = new RB_Class_Time()
{
ClassTimeId = 0,
ClassId = item.ClassId,
ClassPlanId = item.ClassPlanId,
StartTime = subItem.StartTime,
EndTime = subItem.EndTime,
Group_Id = item.Group_Id,
School_Id = item.School_Id,
ClassStatus = 0,
TimeHour = subItem.TimeHour
};
timeList.Add(classTime);
}
}
if (timeList != null && timeList.Count > 0)
{
flag = class_TimeRepository.BatchInsertClassTimeRepository(timeList);
}
}
}
class_PlanRepository.CheckClassPlanRepeatRepository(ClassId, out result);
if (result)
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0}修改上课计划成功!但是存在冲突的上课安排,等待管理员处理!", user.AccountName),
ClassId = ClassId,
Group_Id = user.Group_Id,
School_Id = user.School_Id,
CreateBy = user.Id,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
else
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0},完成班级排课计划冲突", user.AccountName),
ClassId = ClassId,
Group_Id = user.Group_Id,
School_Id = user.School_Id,
CreateBy = user.Id,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
return flag;
}
///
/// 忽略上课计划
///
///
///
///
public bool IgnoreClassPlanModule(int classId, UserInfo user)
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0},放弃处理上课计划冲突", user.AccountName),
ClassId = classId,
Group_Id = user.Group_Id,
School_Id = user.School_Id,
CreateBy = user.Id,
CreateTime = System.DateTime.Now
};
return classLogRepository.AddClassLogRepository(classLogModel);
}
///
/// 单个修改上课计划
///
///
public bool UpdateClassPlanSingleModule(List list, UserInfo user, out bool result)
{
var flag = true;
result = false;
foreach (var item in list)
{
if (flag)
{
flag = SetClassPlanModule(item, user.Id);
}
}
if (flag)
{
class_PlanRepository.CheckClassPlanRepeatRepository(list[0].ClassId, out result);
}
if (result)
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0}修改上课计划成功!但是存在冲突的上课安排,等待管理员处理!", user.AccountName),
ClassId = list[0].ClassId,
Group_Id = user.Group_Id,
School_Id = user.School_Id,
CreateBy = user.Id,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
else
{
var classLogModel = new Model.Entity.Log.RB_Class_Log()
{
LogType = Common.Enum.Course.ClassLogTypeEnum.CreateClass,
LogContent = string.Format("班级管理员{0},完成班级排课计划冲突", user.AccountName),
ClassId = list[0].ClassId,
Group_Id = user.Group_Id,
School_Id = user.School_Id,
CreateBy = user.Id,
CreateTime = System.DateTime.Now
};
classLogRepository.AddClassLogRepository(classLogModel);
}
return flag;
}
///
/// 获取有冲突的上课计划
///
///
public object GetRepeatClassPlanModule(int ClassId)
{
List