using Edu.Common.Enum.Course;
using Edu.Model.Entity.Course;
using Edu.Model.Entity.EduTask;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.Sell;
using Edu.Repository.Course;
using Edu.Repository.EduTask;
using Edu.Repository.Sell;
using System.Collections.Generic;
using System.Linq;
using VT.FW.AOP.CustomerAttribute;
using VT.FW.DB;
namespace Edu.Module.EduTask
{
///
/// 调课计划处理类
///
public class StopStudentClassModule
{
///
/// 教务单据仓储层对象
///
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
///
/// 停课计划仓储层对象
///
private readonly RB_Student_StopClassRepository student_StopClassRepository = new RB_Student_StopClassRepository();
///
/// 订单学员仓储层对象
///
private readonly RB_Order_GuestRepository order_GuestRepository = new RB_Order_GuestRepository();
///
/// 获取调课计划列表
///
///
///
public List GetStudentStopClassListRepository(RB_Student_StopClass_ViewModel query)
{
return student_StopClassRepository.GetStudentStopClassListRepository(query);
}
///
/// 定时处理停课申请生效日期以及学员的上课状态
///
///
public bool UpdateAuditThroughStudent()
{
var list = order_GuestRepository.GetOrderStopClassing(new RB_Order_Guest_ViewModel { GuestState = Common.Enum.Course.GuestStateEnum.StopClassesApplyIng });
foreach (var item in list.Where(x => x.StopClassEffectTime.HasValue && x.StopClassEffectTime < System.DateTime.Now))
{
//将学员的学习状态变成停课申
Dictionary fileds = new Dictionary()
{
{nameof(RB_Order_Guest.GuestState),(int)GuestStateEnum.StopClasses},
{nameof(RB_Order_Guest.ChangeEffectTime),item.StopClassEffectTime},
{nameof(RB_Order_Guest.UpdateTime),System.DateTime.Now},
};
order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest.Id), item.Id));
}
return true;
}
///
/// 新增修改停课申请
///
///
[TransactionCallHandler]
public virtual bool SetStudentStopClassModule(RB_Student_StopClass_ViewModel extModel,string receiptFile)
{
bool flag = false;
if (extModel.Id > 0)
{
Dictionary fileds = new Dictionary()
{
{nameof(RB_Student_StopClass_ViewModel.OrderGuestId),extModel.OrderGuestId },
{nameof(RB_Student_StopClass_ViewModel.ClassId),extModel.ClassId },
{nameof(RB_Student_StopClass_ViewModel.CourseId),extModel.CourseId },
{nameof(RB_Student_StopClass_ViewModel.TakeEffectTime),extModel.TakeEffectTime },
{nameof(RB_Student_StopClass_ViewModel.UpdateBy),extModel.UpdateBy },
{nameof(RB_Student_StopClass_ViewModel.UpdateTime),extModel.UpdateTime },
};
flag = student_StopClassRepository.Update(fileds, new WhereHelper(nameof(RB_Student_StopClass_ViewModel.Id), extModel.Id));
}
else
{
var newId = student_StopClassRepository.Insert(extModel);
extModel.Id = newId;
flag = newId > 0;
if (flag)
{
//将学员的学习状态变成停课申请中
Dictionary fileds = new Dictionary()
{
{nameof(RB_Order_Guest.GuestState),(int)GuestStateEnum.StopClassesApplyIng},
};
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest.Id), extModel.OrderGuestId));
var educationReceipt = new RB_Education_Receipt()
{
Id = 0,
Title = "停课申请",
ReceiptType = Common.Enum.Finance.ReceiptTypeEnum.StopClass,
RelationId = newId,
ClassId = extModel.ClassId,
Group_Id = extModel.Group_Id,
School_Id = extModel.School_Id,
CreateBy = extModel.CreateBy,
CreateTime = extModel.CreateTime,
UpdateBy = extModel.UpdateBy,
UpdateTime = extModel.UpdateTime,
VerifyStatus = Common.Enum.EduTask.EduTaskRrocessStatus.NotAudit,
ReceiptFile= receiptFile
};
flag = education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt, out string message);
}
}
return flag;
}
}
}