Commit 5413ae6c authored by 黄奎's avatar 黄奎

页面修改

parents 16073ec3 ea636e7f
...@@ -10,10 +10,10 @@ namespace Edu.Model.Entity.Course ...@@ -10,10 +10,10 @@ namespace Edu.Model.Entity.Course
[Serializable] [Serializable]
[DB(ConnectionName = "DefaultConnection")] [DB(ConnectionName = "DefaultConnection")]
public class RB_Class_LessonComment public class RB_Class_LessonComment
{ {
/// <summary> /// <summary>
/// 教案评论id /// 教案评论id
/// </summary> /// </summary>
public int LessonCommentId { get; set; } public int LessonCommentId { get; set; }
/// <summary> /// <summary>
...@@ -61,5 +61,11 @@ namespace Edu.Model.Entity.Course ...@@ -61,5 +61,11 @@ namespace Edu.Model.Entity.Course
/// 删除状态(0-正常,1-禁用) /// 删除状态(0-正常,1-禁用)
/// </summary> /// </summary>
public DateStateEnum Status { get; set; } public DateStateEnum Status { get; set; }
/// <summary>
/// 班级上课的时间
/// </summary>
public DateTime? ClassDate { get; set; }
} }
} }
...@@ -104,5 +104,10 @@ namespace Edu.Model.Entity.Course ...@@ -104,5 +104,10 @@ namespace Edu.Model.Entity.Course
/// 教案图片 /// 教案图片
/// </summary> /// </summary>
public string ProjectPic { get; set; } public string ProjectPic { get; set; }
/// <summary>
/// 上课时间
/// </summary>
public DateTime? ClassDate { get; set; }
} }
} }
...@@ -61,5 +61,10 @@ namespace Edu.Model.Entity.Course ...@@ -61,5 +61,10 @@ namespace Edu.Model.Entity.Course
/// 0-未反馈,1-已反馈 /// 0-未反馈,1-已反馈
/// </summary> /// </summary>
public int FanKuiStatus { get; set; } public int FanKuiStatus { get; set; }
/// <summary>
/// 0-未反馈,1-已反馈
/// </summary>
public int ParentFanKuiStatus { get; set; }
} }
} }
\ No newline at end of file
...@@ -32,7 +32,11 @@ namespace Edu.Model.Entity.Course ...@@ -32,7 +32,11 @@ namespace Edu.Model.Entity.Course
public string GuestName { get; set; } public string GuestName { get; set; }
/// <summary> /// <summary>
<<<<<<< HEAD
/// 状态 1正常 2退学 3-退课申请,4-驳回申请,5-停课,6-停课申请中,7-转班申请中 /// 状态 1正常 2退学 3-退课申请,4-驳回申请,5-停课,6-停课申请中,7-转班申请中
=======
/// 状态 1正常 2退学 3-申请中,4-驳回申请,5-停课,6-停课申请中,7-完结的订单
>>>>>>> ea636e7fac355faaa52e2a0e58c6412c218b20e7
/// </summary> /// </summary>
public int GuestState { get; set; } public int GuestState { get; set; }
...@@ -200,6 +204,9 @@ namespace Edu.Model.Entity.Course ...@@ -200,6 +204,9 @@ namespace Edu.Model.Entity.Course
/// 学生头像 /// 学生头像
/// </summary> /// </summary>
public string StuIcon { get; set; } public string StuIcon { get; set; }
/// <summary>
/// 变更生效时间
/// </summary>
public DateTime? ChangeEffectTime { get; set; }
} }
} }
...@@ -96,6 +96,11 @@ namespace Edu.Model.ViewModel.Course ...@@ -96,6 +96,11 @@ namespace Edu.Model.ViewModel.Course
/// </summary> /// </summary>
public int FanKuiStatus { get; set; } public int FanKuiStatus { get; set; }
/// <summary>
/// 0-未反馈,1-已反馈
/// </summary>
public int ParentFanKuiStatus { get; set; }
/// <summary> /// <summary>
/// 总评分 /// 总评分
/// </summary> /// </summary>
......
...@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Course ...@@ -11,6 +11,11 @@ namespace Edu.Model.ViewModel.Course
{ {
#region 财务相关 #region 财务相关
/// <summary>
/// 查询正常合同 1是
/// </summary>
public int IsSelectNormal { get; set; }
/// <summary> /// <summary>
/// 财务单据 /// 财务单据
/// </summary> /// </summary>
......
...@@ -44,6 +44,25 @@ namespace Edu.Model.ViewModel.EduTask ...@@ -44,6 +44,25 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary> /// </summary>
public string CourseName { get; set; } public string CourseName { get; set; }
/// <summary>
/// 上课日期
/// </summary>
public DateTime? ClassDate { get; set; }
/// <summary>
/// 上课开始时间
/// </summary>
public string StartTime { get; set; }
/// <summary>
/// 上课结束时间
/// </summary>
public string EndTime { get; set; }
/// <summary>
/// 上课课时
/// </summary>
public int TimeHour { get; set; }
/// <summary> /// <summary>
/// 学员信息 /// 学员信息
......
This diff is collapsed.
...@@ -2490,6 +2490,109 @@ namespace Edu.Module.Course ...@@ -2490,6 +2490,109 @@ namespace Edu.Module.Course
}) > 0; }) > 0;
} }
} }
/// <summary>
/// 更新学生的有效课时
/// </summary>
/// <param name="guestId"></param>
/// <param name="money"></param>
/// <returns></returns>
public bool UpdateStudentValidClassHours(int guestId, decimal money)
{
var gmodel = order_GuestRepository.GetEntity(guestId);
if (gmodel == null) { return false; }
var cmodel = education_ContractRepository.GetList(new RB_Education_Contract_ViewModel() { Group_Id = gmodel.Group_Id, GuestId = gmodel.Id }).Where(x => x.Status != 4).FirstOrDefault();
if (cmodel != null) {
//有合同
cmodel.Income = money >= 0 ? money : 0;
cmodel.Unit_Price = 0;
if (cmodel.TotalClassHours > 0)
{
if (cmodel.TotalDiscountMoney > 0)
{
cmodel.Unit_Price = Math.Round((cmodel.TotalCourseFee - (cmodel.TotalDiscountMoney / cmodel.TotalSub) * cmodel.TotalCourseFee) / cmodel.TotalClassHours, 6, MidpointRounding.AwayFromZero);//根据合同计算
}
else
{
cmodel.Unit_Price = Math.Round(cmodel.TotalCourseFee / cmodel.TotalClassHours, 6, MidpointRounding.AwayFromZero);//根据合同计算
}
}
decimal validClassHours = cmodel.Unit_Price > 0 ? Math.Round(cmodel.Income / cmodel.Unit_Price, 2, MidpointRounding.AwayFromZero) : 0;
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Order_Guest.ValidClassHours),validClassHours}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_Guest.Id),
FiledValue=guestId,
OperatorEnum= OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues, wheres);
}
return true;
}
/// <summary>
/// 初始化所有学生的课时
/// </summary>
/// <returns></returns>
public bool UpdateALLStudentValidClassHours() {
RB_Education_Contract_ViewModel dmodel = new RB_Education_Contract_ViewModel() { Group_Id = 100000 };
string datebaseStr = Config.ReadConfigKey("FinanceDateBase");//财务数据库
var list = education_ContractRepository.GetContractPageListForFinance(1, 10000, out long count, dmodel, datebaseStr);
if (list.Any())
{
string orderIds = string.Join(",", list.Select(x => x.OrderId).Distinct());
string guestIds = string.Join(",", list.Select(x => x.GuestId).Distinct());
//查询所有的财务单据
var flist = financeRepository.GetListSingle(new Model.ViewModel.Finance.RB_Finance_Extend() { RB_Group_Id = dmodel.Group_Id, FinanceType = 2, IsSelectNormal = 1, OrderIdStr = orderIds, GuestIdStr = guestIds });
if (flist.Any())
{
string frIds = string.Join(",", flist.Select(x => x.FrID));
//查询单据明细
var fdlist = financeDetailRepository.GetList(new Model.ViewModel.Finance.RB_FinanceDetail_Extend() { GroupId = dmodel.Group_Id, FrIds = frIds });
}
foreach (var item in list)
{
#region 财务单据
item.FinanceList = flist.Where(x => x.GuestId == item.GuestId).ToList();
item.Income = item.FinanceList.Where(x => x.Type == Common.Enum.Finance.WFTempLateClassEnum.IN && x.Is_Cashier == 1).Sum(x => (x.Money ?? 0) + (x.Fee ?? 0));//出纳审核算有效金额
item.Expend = item.FinanceList.Where(x => x.Type == Common.Enum.Finance.WFTempLateClassEnum.OUT).Sum(x => (x.Money ?? 0) + (x.Fee ?? 0));//制单就算
#endregion
item.Unit_Price = 0;
if (item.TotalClassHours > 0)
{
if (item.TotalDiscountMoney > 0)
{
item.Unit_Price = Math.Round((item.TotalCourseFee - (item.TotalDiscountMoney / item.TotalSub) * item.TotalCourseFee) / item.TotalClassHours, 6, MidpointRounding.AwayFromZero);//根据合同计算(包含优惠, 需减去课件费等)
}
else
{
item.Unit_Price = Math.Round(item.TotalCourseFee / item.TotalClassHours, 6, MidpointRounding.AwayFromZero);//根据合同计算(包含优惠, 需减去课件费等)
}
}
decimal Income = item.Income - item.Expend;
Income = Income >= 0 ? Income : 0;
decimal validClassHours = item.Unit_Price > 0 ? Math.Round(Income / item.Unit_Price, 2, MidpointRounding.AwayFromZero) : 0;
//更新学生的有效课时
Dictionary<string, object> keyValues = new Dictionary<string, object>() {
{ nameof(RB_Order_Guest.ValidClassHours),validClassHours}
};
List<WhereHelper> wheres = new List<WhereHelper>() {
new WhereHelper(){
FiledName=nameof(RB_Order_Guest.Id),
FiledValue=item.GuestId,
OperatorEnum= OperatorEnum.Equal
}
};
order_GuestRepository.Update(keyValues, wheres);
}
}
return true;
}
#endregion #endregion
......
...@@ -51,7 +51,10 @@ namespace Edu.Module.EduTask ...@@ -51,7 +51,10 @@ namespace Edu.Module.EduTask
/// </summary> /// </summary>
private readonly RB_Student_StopClassRepository student_StopClassRepository = new RB_Student_StopClassRepository(); private readonly RB_Student_StopClassRepository student_StopClassRepository = new RB_Student_StopClassRepository();
/// <summary>
/// 临时上课邀请计划仓储层对象
/// </summary>
private readonly RB_Student_TempInvitationRepository student_TempInvitationRepository = new RB_Student_TempInvitationRepository();
/// <summary> /// <summary>
/// 调课仓储层对象 /// 调课仓储层对象
/// </summary> /// </summary>
...@@ -78,9 +81,21 @@ namespace Edu.Module.EduTask ...@@ -78,9 +81,21 @@ namespace Edu.Module.EduTask
private readonly RB_Order_ChangeRepository order_ChangeRepository = new RB_Order_ChangeRepository(); private readonly RB_Order_ChangeRepository order_ChangeRepository = new RB_Order_ChangeRepository();
/// <summary> /// <summary>
<<<<<<< HEAD
/// 转班订单 /// 转班订单
/// </summary> /// </summary>
private readonly OrderChangeModule orderChangeModule = new OrderChangeModule(); private readonly OrderChangeModule orderChangeModule = new OrderChangeModule();
=======
/// 班级上课计划仓储层对象
/// </summary>
private readonly RB_Class_PlanRepository class_PlanRepository = new RB_Class_PlanRepository();
/// <summary>
/// 班级上课计划上课时间仓储层对象
/// </summary>
private readonly RB_Class_TimeRepository class_TimeRepository = new RB_Class_TimeRepository();
>>>>>>> ea636e7fac355faaa52e2a0e58c6412c218b20e7
/// <summary> /// <summary>
/// 获取教务单据分页列表 /// 获取教务单据分页列表
...@@ -102,12 +117,18 @@ namespace Edu.Module.EduTask ...@@ -102,12 +117,18 @@ namespace Edu.Module.EduTask
List<RB_Change_ClassPlan_ViewModel> changeClassList = new List<RB_Change_ClassPlan_ViewModel>(); List<RB_Change_ClassPlan_ViewModel> changeClassList = new List<RB_Change_ClassPlan_ViewModel>();
//停课申请 //停课申请
List<RB_Student_StopClass_ViewModel> stopClassList = new List<RB_Student_StopClass_ViewModel>(); List<RB_Student_StopClass_ViewModel> stopClassList = new List<RB_Student_StopClass_ViewModel>();
//临时上课邀请申请
List<RB_Student_TempInvitation_ViewModel> studentTempInvitationClassList = new List<RB_Student_TempInvitation_ViewModel>();
//老师列表 //老师列表
List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>(); List<RB_Teacher_ViewModel> teacherList = new List<RB_Teacher_ViewModel>();
//学生信息 //学生信息
List<RB_Order_Guest_ViewModel> orderGuestList = new List<RB_Order_Guest_ViewModel>(); List<RB_Order_Guest_ViewModel> orderGuestList = new List<RB_Order_Guest_ViewModel>();
//教室列表 //教室列表
List<RB_Class_Room_ViewModel> roomList = new List<RB_Class_Room_ViewModel>(); List<RB_Class_Room_ViewModel> roomList = new List<RB_Class_Room_ViewModel>();
//班级上课计划列表
List<RB_Class_Plan_ViewModel> planList = new List<RB_Class_Plan_ViewModel>();
//班级上课时间列表
List<RB_Class_Time_ViewModel> timeList = new List<RB_Class_Time_ViewModel>();
//订单转班列表 //订单转班列表
List<RB_Order_Change_ViewModel> orderTransList = new List<RB_Order_Change_ViewModel>(); List<RB_Order_Change_ViewModel> orderTransList = new List<RB_Order_Change_ViewModel>();
var groupList = list.GroupBy(qitem => new { qitem.ReceiptType }).Select(qitem => new { qitem.Key.ReceiptType }); var groupList = list.GroupBy(qitem => new { qitem.ReceiptType }).Select(qitem => new { qitem.Key.ReceiptType });
...@@ -223,7 +244,7 @@ namespace Edu.Module.EduTask ...@@ -223,7 +244,7 @@ namespace Edu.Module.EduTask
stopClassList = student_StopClassRepository.GetStudentStopClassListRepository(new RB_Student_StopClass_ViewModel() stopClassList = student_StopClassRepository.GetStudentStopClassListRepository(new RB_Student_StopClass_ViewModel()
{ {
Q_Student_StopClass_Ids = changeIds, Q_Student_StopClass_Ids = changeIds,
IsAuditThrough=-1 IsAuditThrough = -1
}); });
if (stopClassList != null && stopClassList.Any()) if (stopClassList != null && stopClassList.Any())
{ {
...@@ -234,7 +255,7 @@ namespace Edu.Module.EduTask ...@@ -234,7 +255,7 @@ namespace Edu.Module.EduTask
}); });
if (orderGuestList != null && orderGuestList.Any()) if (orderGuestList != null && orderGuestList.Any())
{ {
orderGuestList.ForEach(x => x.EnterName = x.EnterID > 0? (UserReidsCache.GetUserLoginInfo(x.EnterID)?.AccountName ?? ""):""); orderGuestList.ForEach(x => x.EnterName = x.EnterID > 0 ? (UserReidsCache.GetUserLoginInfo(x.EnterID)?.AccountName ?? "") : "");
stopClassList.ForEach(x => x.Order_Guest_ViewModel = orderGuestList.Where(y => y.Id == x.OrderGuestId).FirstOrDefault()); stopClassList.ForEach(x => x.Order_Guest_ViewModel = orderGuestList.Where(y => y.Id == x.OrderGuestId).FirstOrDefault());
} }
} }
...@@ -242,6 +263,42 @@ namespace Edu.Module.EduTask ...@@ -242,6 +263,42 @@ namespace Edu.Module.EduTask
#endregion #endregion
#region 临时上课邀请申请
if (subItem.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.InvitationClass)
{
string changeIds = string.Join(",", list.Where(qitem => qitem.ReceiptType == subItem.ReceiptType).Select(qitem => qitem.RelationId));
studentTempInvitationClassList = student_TempInvitationRepository.GetStundetTempInvitationListRepository(new RB_Student_TempInvitation_ViewModel()
{
Q_TempInvitation_Ids = changeIds,
});
if (studentTempInvitationClassList != null && studentTempInvitationClassList.Any())
{
string orderGuestIds = string.Join(",", studentTempInvitationClassList.Select(x => x.OrderGuestIds));
orderGuestList = order_GuestRepository.GetStopingStudentPage(new RB_Order_Guest_ViewModel
{
OrderGuestIds = orderGuestIds
});
if (orderGuestList != null && orderGuestList.Any())
{
orderGuestList.ForEach(x => x.EnterName = x.EnterID > 0 ? (UserReidsCache.GetUserLoginInfo(x.EnterID)?.AccountName ?? "") : "");
foreach (var item in studentTempInvitationClassList)
{
item.OrderGuestList = new List<RB_Order_Guest_ViewModel>();
foreach (var itemOrderGuestId in item.OrderGuestIds.Split(","))
{
if (!string.IsNullOrWhiteSpace(itemOrderGuestId))
{
item.OrderGuestList.AddRange(orderGuestList.Where(x => x.Id == Convert.ToInt32(itemOrderGuestId)));
}
}
}
}
}
}
#endregion
#region 订单转班 #region 订单转班
if (subItem.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderTransClass) if (subItem.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderTransClass)
{ {
...@@ -381,15 +438,30 @@ namespace Edu.Module.EduTask ...@@ -381,15 +438,30 @@ namespace Edu.Module.EduTask
/// </summary> /// </summary>
/// <param name="Id"></param> /// <param name="Id"></param>
/// <returns></returns> /// <returns></returns>
[TransactionCallHandler]
public bool InvalidReceiptModule(int Id) public bool InvalidReceiptModule(int Id)
{ {
bool flag = false;
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
{ {
{nameof(RB_Education_Receipt_ViewModel.VerifyStatus),(int)Edu.Common.Enum.User.WFRrocessStatus.Invalid} {nameof(RB_Education_Receipt_ViewModel.VerifyStatus),(int)Edu.Common.Enum.User.WFRrocessStatus.Invalid}
}; };
return education_ReceiptRepository.Update(fileds, new WhereHelper(nameof(RB_Education_Receipt_ViewModel.Id), Id)); flag = education_ReceiptRepository.Update(fileds, new WhereHelper(nameof(RB_Education_Receipt_ViewModel.Id), Id));
if (flag)
{
var model = education_ReceiptRepository.GetEntity(Id);
if (model != null && model.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.StopClass)
{
student_StopClassRepository.UpdateStudentStopClass(model.Id, 4);
}
}
return flag;
} }
/// <summary> /// <summary>
/// 修改审核人员 /// 修改审核人员
/// </summary> /// </summary>
...@@ -984,11 +1056,11 @@ namespace Edu.Module.EduTask ...@@ -984,11 +1056,11 @@ namespace Edu.Module.EduTask
{ {
if (auditModel.AuditStatus == 2) if (auditModel.AuditStatus == 2)
{ {
flag = student_StopClassRepository.UpdateStudentStopClass(receiptModel, auditModel.AuditStatus); flag = student_StopClassRepository.UpdateStudentStopClass(receiptModel.Id, auditModel.AuditStatus);
} }
if (auditModel.AuditStatus == 3) if (auditModel.AuditStatus == 3)
{ {
flag = student_StopClassRepository.UpdateStudentStopClass(receiptModel, auditModel.AuditStatus); flag = student_StopClassRepository.UpdateStudentStopClass(receiptModel.Id, auditModel.AuditStatus);
} }
} }
if (receiptModel.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderTransClass) if (receiptModel.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.OrderTransClass)
......
...@@ -47,14 +47,14 @@ namespace Edu.Module.EduTask ...@@ -47,14 +47,14 @@ namespace Edu.Module.EduTask
/// <returns></returns> /// <returns></returns>
public bool UpdateAuditThroughStudent() public bool UpdateAuditThroughStudent()
{ {
var list = order_GuestRepository.GetOrderGuestListRepository(new Model.ViewModel.Course.RB_Order_Guest_ViewModel { GuestState = 6 }); var list = order_GuestRepository.GetOrderStopClassing(new Model.ViewModel.Course.RB_Order_Guest_ViewModel { GuestState = 6 });
foreach (var item in list.Where(x => x.StopClassEffectTime.HasValue && x.StopClassEffectTime < System.DateTime.Now)) foreach (var item in list.Where(x => x.StopClassEffectTime.HasValue && x.StopClassEffectTime < System.DateTime.Now))
{ {
//将学员的学习状态变成停课申请中 //将学员的学习状态变成停课申请中
Dictionary<string, object> fileds = new Dictionary<string, object>() Dictionary<string, object> fileds = new Dictionary<string, object>()
{ {
{nameof(RB_Order_Guest.GuestState),5}, {nameof(RB_Order_Guest.GuestState),5},
{nameof(RB_Order_Guest.ChangeEffectTime),item.StopClassEffectTime},
{nameof(RB_Order_Guest.UpdateTime),System.DateTime.Now}, {nameof(RB_Order_Guest.UpdateTime),System.DateTime.Now},
}; };
order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest.Id), item.Id)); order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest.Id), item.Id));
......
...@@ -20,7 +20,7 @@ namespace Edu.Module.EduTask ...@@ -20,7 +20,7 @@ namespace Edu.Module.EduTask
private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository(); private readonly RB_Education_ReceiptRepository education_ReceiptRepository = new RB_Education_ReceiptRepository();
/// <summary> /// <summary>
/// 停课计划仓储层对象 /// 临时上课邀请计划仓储层对象
/// </summary> /// </summary>
private readonly RB_Student_TempInvitationRepository student_TempInvitationRepository = new RB_Student_TempInvitationRepository(); private readonly RB_Student_TempInvitationRepository student_TempInvitationRepository = new RB_Student_TempInvitationRepository();
......
...@@ -38,7 +38,11 @@ namespace Edu.Repository.Course ...@@ -38,7 +38,11 @@ namespace Edu.Repository.Course
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.ClassId), query.ClassId); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.ClassId), query.ClassId);
} }
if (query.ClassPlanId > 0) if (query.ClassPlanId > 0 && query.ClassDate.HasValue)
{
builder.AppendFormat(" AND ({0}={1} or DATE_FORMAT({2},'%y/%m/%d')= DATE_FORMAT('{3}','%y/%m/%d'))", nameof(RB_Class_LessonComment_ViewModel.ClassPlanId), query.ClassPlanId, nameof(RB_Class_LessonComment_ViewModel.ClassDate), query.ClassDate.Value);
}
else if (query.ClassPlanId > 0)
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.ClassPlanId), query.ClassPlanId); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.ClassPlanId), query.ClassPlanId);
} }
...@@ -46,6 +50,10 @@ namespace Edu.Repository.Course ...@@ -46,6 +50,10 @@ namespace Edu.Repository.Course
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.LessonPlanId), query.LessonPlanId); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.LessonPlanId), query.LessonPlanId);
} }
if (query.LessonCommentId > 0)
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.LessonCommentId), query.LessonCommentId);
}
if (query.CreateBy > 0) if (query.CreateBy > 0)
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.CreateBy), query.CreateBy); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonComment_ViewModel.CreateBy), query.CreateBy);
......
...@@ -81,10 +81,15 @@ namespace Edu.Repository.Course ...@@ -81,10 +81,15 @@ namespace Edu.Repository.Course
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.ClassId), query.ClassId); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.ClassId), query.ClassId);
} }
if (query.ClassPlanId > 0) if (query.ClassPlanId > 0 && query.ClassDate.HasValue)
{
builder.AppendFormat(" AND ({0}={1} or DATE_FORMAT({2},'%y/%m/%d')= DATE_FORMAT('{3}','%y/%m/%d'))", nameof(RB_Class_LessonPlan.ClassPlanId), query.ClassPlanId, nameof(RB_Class_LessonPlan.ClassDate), query.ClassDate.Value);
}
else if (query.ClassPlanId > 0)
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.ClassPlanId), query.ClassPlanId); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.ClassPlanId), query.ClassPlanId);
} }
if (query.IsTemplate > -1) if (query.IsTemplate > -1)
{ {
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.IsTemplate), query.IsTemplate); builder.AppendFormat(" AND {0}={1} ", nameof(RB_Class_LessonPlan.IsTemplate), query.IsTemplate);
......
...@@ -73,7 +73,7 @@ WHERE 1=1 ...@@ -73,7 +73,7 @@ WHERE 1=1
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
SELECT B.*,CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.StartTime,':00') AS NewPlanDateTime, SELECT B.*,CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.StartTime,':00') AS NewPlanDateTime,
CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.EndTime,':00') AS NewEndPlanDateTime CONCAT( DATE_FORMAT(A.ClassDate,'%Y-%m-%d') ,' ',B.EndTime,':00') AS NewEndPlanDateTime,TIMESTAMPDIFF(MINUTE,(DATE_FORMAT(CONCAT('2021-01-01 ',B.StartTime,':00'),'%Y-%m-%d %H:%i')),(DATE_FORMAT(CONCAT('2021-01-01 ',B.EndTime,':00'), '%Y-%m-%d %H:%i'))) AS TimeMinute
FROM rb_class_time AS B INNER JOIN rb_class_plan AS A ON A.ClassPlanId=B.ClassPlanId WHERE 1=1 FROM rb_class_time AS B INNER JOIN rb_class_plan AS A ON A.ClassPlanId=B.ClassPlanId WHERE 1=1
"); ");
if (query != null) if (query != null)
......
...@@ -26,10 +26,6 @@ namespace Edu.Repository.Course ...@@ -26,10 +26,6 @@ namespace Edu.Repository.Course
{ {
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Group_Id)} ={demodel.Group_Id}"; where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Group_Id)} ={demodel.Group_Id}";
} }
//if (demodel.School_Id > 0)
//{
// where += $@" and A.{nameof(RB_Order_Guest_ViewModel.School_Id)} ={demodel.School_Id}";
//}
if (demodel.Id > 0) if (demodel.Id > 0)
{ {
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Id)} ={demodel.Id}"; where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Id)} ={demodel.Id}";
...@@ -68,6 +64,7 @@ namespace Edu.Repository.Course ...@@ -68,6 +64,7 @@ namespace Edu.Repository.Course
} }
string sql = $@" string sql = $@"
<<<<<<< HEAD
SELECT A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours SELECT A.*,IFNULL(B.JoinType,0) AS JoinType,IFNULL(B.TargetJoinType,0) AS TargetJoinType,IFNULL(B.StartClassHours,0) AS StartClassHours
,IFNULL(C.CourseName,'') AS CourseName,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId ,IFNULL(C.CourseName,'') AS CourseName,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId
,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId ,sc.StopClassEffectTime,B.SourceOrderId,B.TargetOrderId
...@@ -75,6 +72,12 @@ FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId ...@@ -75,6 +72,12 @@ FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1) LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id
WHERE {where}"; WHERE {where}";
=======
SELECT A.*,IFNULL(B.IsChaBan,0) AS IsChaBan,IFNULL(B.StartClassHours,0) AS StartClassHours,IFNULL(C.CourseName,'') AS CourseName
,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1) WHERE {where}";
>>>>>>> ea636e7fac355faaa52e2a0e58c6412c218b20e7
return Get<RB_Order_Guest_ViewModel>(sql).ToList(); return Get<RB_Order_Guest_ViewModel>(sql).ToList();
} }
...@@ -320,7 +323,7 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3 ...@@ -320,7 +323,7 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3
/// <param name="demodel"></param> /// <param name="demodel"></param>
/// <param name="orderIds"></param> /// <param name="orderIds"></param>
/// <returns></returns> /// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetStopingStudentPage( RB_Order_Guest_ViewModel demodel) public List<RB_Order_Guest_ViewModel> GetStopingStudentPage(RB_Order_Guest_ViewModel demodel)
{ {
StringBuilder builder = new StringBuilder(); StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" builder.AppendFormat(@"
...@@ -384,5 +387,138 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3 "); ...@@ -384,5 +387,138 @@ WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3 ");
builder.AppendFormat($@" order by A.{nameof(RB_Order_Guest_ViewModel.Id)} desc"); builder.AppendFormat($@" order by A.{nameof(RB_Order_Guest_ViewModel.Id)} desc");
return Get<RB_Order_Guest_ViewModel>(builder.ToString()).ToList(); return Get<RB_Order_Guest_ViewModel>(builder.ToString()).ToList();
} }
/// <summary>
/// 获取分页列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetNotClassStudentList(RB_Order_Guest_ViewModel demodel)
{
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.IsChaBan,0) AS IsChaBan,IFNULL(B.StartClassHours,0) AS StartClassHours,school.SName as SchoolName,teacher.TeacherName,IFNULL(C.CourseName,'') AS CourseName,class.ClassNo,class.ClassName,b.EnterID
,plan.TotalPlanNum,planr.Ranks ,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_class as class on class.ClassId=a.ClassId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
LEFT JOIN (SELECT ClassId,COUNT(*) TotalPlanNum from rb_class_plan where `Status`=0 GROUP BY ClassId) as plan on plan.ClassId=class.ClassId
LEFT JOIN (SELECT ClassId,COUNT(*) Ranks from rb_class_plan where `Status`=0 and DATE_FORMAT(ClassDate,'%Y-%m-%d') <=DATE_FORMAT(NOW(),'%Y-%m-%d') GROUP BY ClassId) as planr on planr.ClassId=class.ClassId
LEFT JOIN rb_teacher as teacher on teacher.TId=class.Teacher_Id
LEFT JOIN rb_school as school on school.SId=class.School_Id
WHERE 1=1 and A.Status=0 and class.Status=0 and b.OrderState<>3 and a.GuestState in(1,6) ");
if (demodel.Group_Id > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.Group_Id)} ={demodel.Group_Id}");
}
if (demodel.School_Id > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.School_Id)} ={demodel.School_Id}");
}
if (demodel.OrderId > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.OrderId)} ={demodel.OrderId}");
}
if (demodel.Teacher_Id > 0)
{
builder.AppendFormat($@" and class.Teacher_Id ={demodel.Teacher_Id}");
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.GuestName)} like '%{demodel.GuestName}%'");
}
if (demodel.ClassId > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.ClassId)} !={demodel.ClassId}");
}
if (demodel.CourseId > 0)
{
builder.AppendFormat($@" AND B.{nameof(RB_Order_Guest_ViewModel.CourseId)} ={demodel.CourseId}");
}
if (demodel.EnterID > 0)
{
builder.AppendFormat($@" AND B.{nameof(RB_Order_Guest_ViewModel.EnterID)} ={demodel.EnterID}");
}
if (demodel.SourceId > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.SourceId)} ={demodel.SourceId}");
}
if (!string.IsNullOrWhiteSpace(demodel.OrderGuestIds))
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.Id)} in ({demodel.OrderGuestIds})");
}
if (demodel.GuestState > 0)
{
builder.AppendFormat($@" AND A.{nameof(RB_Order_Guest_ViewModel.GuestState)} ={demodel.GuestState}");
}
builder.AppendFormat($@" order by A.{nameof(RB_Order_Guest_ViewModel.Id)} desc");
return Get<RB_Order_Guest_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 获取列表
/// </summary>
/// <param name="demodel"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Order_Guest_ViewModel> GetOrderStopClassing(RB_Order_Guest_ViewModel demodel)
{
string where = $@" 1=1 and A.Status=0 ";
if (demodel.Group_Id > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Group_Id)} ={demodel.Group_Id}";
}
if (demodel.Id > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.Id)} ={demodel.Id}";
}
if (demodel.OrderId > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.OrderId)} ={demodel.OrderId}";
}
if (demodel.ClassId > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.ClassId)} ={demodel.ClassId}";
}
if (!string.IsNullOrEmpty(demodel.OrderIds))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.OrderId)} in({demodel.OrderIds})";
}
if (!string.IsNullOrEmpty(demodel.ClassIds))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.ClassId)} in({demodel.ClassIds})";
}
if (!string.IsNullOrEmpty(demodel.GuestName))
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestName)} like '%{demodel.GuestName}%'";
}
if (demodel.GuestState > 0)
{
where += $@" and A.{nameof(RB_Order_Guest_ViewModel.GuestState)} ={demodel.GuestState}";
}
if (demodel.QEffectStatus == 1)
{
where += $@" AND (B.IsChaBan=0 OR (B.IsChaBan=1 AND B.EffectStatus IN(1) )) ";
}
string sql = $@"
SELECT A.*,IFNULL(B.IsChaBan,0) AS IsChaBan,IFNULL(B.StartClassHours,0) AS StartClassHours,IFNULL(C.CourseName,'') AS CourseName
,B.EffectStatus,B.EffectTime,B.UpOrderId,B.OrderType,B.CourseId,B.IsRenewOrder,B.RenewOrderId,sc.StopClassEffectTime
FROM RB_Order_Guest AS A LEFT JOIN rb_order AS B ON A.OrderId=B.OrderId
LEFT JOIN rb_course AS C ON (B.CourseId=C.CourseId AND B.CourseId>0 AND B.OrderType=1)
LEFT JOIN (SELECT OrderGuestId,MAX(TakeEffectTime) as StopClassEffectTime from rb_student_stopclass where IsAuditThrough=1 GROUP BY OrderGuestId) as sc on sc.OrderGuestId=a.Id
WHERE {where}";
return Get<RB_Order_Guest_ViewModel>(sql).ToList();
}
} }
} }
...@@ -501,7 +501,7 @@ namespace Edu.WebApi.Controllers.Course ...@@ -501,7 +501,7 @@ namespace Edu.WebApi.Controllers.Course
var orderGuestList = classModule.GetOrderGuestListModule(new RB_Order_Guest_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = 0, ClassId = classModel.ClassId }); var orderGuestList = classModule.GetOrderGuestListModule(new RB_Order_Guest_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = 0, ClassId = classModel.ClassId });
var checkLogList = classModule.GetClassCheckList(new RB_Class_Check_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = -1, ClassId = classModel.ClassId, StartDate = timeModel.NewPlanDateTime, EndDate = timeModel.NewPlanDateTime }); var checkLogList = classModule.GetClassCheckList(new RB_Class_Check_ViewModel { Group_Id = base.UserInfo.Group_Id, School_Id = -1, ClassId = classModel.ClassId, StartDate = timeModel.NewPlanDateTime, EndDate = timeModel.NewPlanDateTime });
foreach (var item in orderGuestList.Where(x => x.GuestState == 1 || x.GuestState == 6 || (x.GuestState == 5 && x.StopClassEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.StopClassEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(timeModel.NewPlanDateTime))))) foreach (var item in orderGuestList.Where(x => x.GuestState == 1 || x.GuestState == 6 || ((x.GuestState == 5||x.GuestState==7) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(timeModel.NewPlanDateTime)))))
{ {
item.IsCheck = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(y => y.OrderGuestId == item.Id).FirstOrDefault()?.CheckStatus ?? 2 : 2; item.IsCheck = (checkLogList != null && checkLogList.Any()) ? checkLogList.Where(y => y.OrderGuestId == item.Id).FirstOrDefault()?.CheckStatus ?? 2 : 2;
} }
......
...@@ -269,6 +269,57 @@ namespace Edu.WebApi.Controllers.Course ...@@ -269,6 +269,57 @@ namespace Edu.WebApi.Controllers.Course
pageModel.PageData = result; pageModel.PageData = result;
return ApiResult.Success(data: pageModel); return ApiResult.Success(data: pageModel);
} }
/// <summary>
/// 获取学员列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetNotClassStudentList()
{
var model = new RB_Order_Guest_ViewModel
{
Teacher_Id = base.ParmJObj.GetInt("Teacher_Id", 0),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
ClassId = base.ParmJObj.GetInt("ClassId", 0),
CourseId = base.ParmJObj.GetInt("CourseId", 0),
EnterID = base.ParmJObj.GetInt("EnterID", 0),
};
model.Group_Id = base.UserInfo.Group_Id;
var list = classModule.GetNotClassStudentList(model);
List<object> result = new List<object>();
foreach (var item in list)
{
if (item.EnterID > 0)
{
item.EnterName = UserReidsCache.GetUserLoginInfo(item.EnterID)?.AccountName ?? "";
}
result.Add(new
{
item.Id,
item.GuestName,
item.Mobile,
item.ClassId,
item.ClassName,
item.CourseId,
item.CourseName,
item.GuestState,
item.GuestStateStr,
item.School_Id,
item.Teacher_Id,
item.TotalPlanNum,
item.Ranks,
item.EnterName,
item.EnterID,
item.IsRenewOrder,
item.RenewOrderId
});
}
return ApiResult.Success(data: result);
}
#endregion #endregion
} }
} }
...@@ -38,7 +38,7 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -38,7 +38,7 @@ namespace Edu.WebApi.Controllers.EduTask
/// </summary> /// </summary>
/// <returns></returns> /// <returns></returns>
[HttpPost] [HttpPost]
public ApiResult SetStudentStopClass() public ApiResult SetStudentTempInvitation()
{ {
var model = new RB_Student_TempInvitation_ViewModel() var model = new RB_Student_TempInvitation_ViewModel()
{ {
...@@ -49,6 +49,20 @@ namespace Edu.WebApi.Controllers.EduTask ...@@ -49,6 +49,20 @@ namespace Edu.WebApi.Controllers.EduTask
OrderGuestIds = base.ParmJObj.GetStringValue("OrderGuestIds"), OrderGuestIds = base.ParmJObj.GetStringValue("OrderGuestIds"),
Remarks = base.ParmJObj.GetStringValue("Remarks") Remarks = base.ParmJObj.GetStringValue("Remarks")
}; };
if (string.IsNullOrWhiteSpace(model.OrderGuestIds))
{
return ApiResult.Failed("请选择您要邀请的学生");
}
if (model.ClassId == 0)
{
return ApiResult.Failed("请选择您要邀请上课的班级");
}
if (model.ClassPlanId == 0 || model.ClassTimeId == 0)
{
return ApiResult.Failed("请选择您要邀请的时间");
}
var classModel = classModule.GetClassModule(model.ClassId); var classModel = classModule.GetClassModule(model.ClassId);
model.CourseId = classModel.CouseId; model.CourseId = classModel.CouseId;
model.TeacherId = classModel.Teacher_Id; model.TeacherId = classModel.Teacher_Id;
......
...@@ -11,8 +11,10 @@ using Edu.Module.Course; ...@@ -11,8 +11,10 @@ using Edu.Module.Course;
using Edu.Module.Finance; using Edu.Module.Finance;
using Edu.Module.StudyAbroad; using Edu.Module.StudyAbroad;
using Edu.WebApi.Filter; using Edu.WebApi.Filter;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Cors; using Microsoft.AspNetCore.Cors;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
using Newtonsoft.Json.Linq;
namespace Edu.WebApi.Controllers.Finance namespace Edu.WebApi.Controllers.Finance
{ {
...@@ -1097,7 +1099,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1097,7 +1099,7 @@ namespace Edu.WebApi.Controllers.Finance
}) })
}), }),
PreferPrice = x.FinanceList.Where(t => t.Type == WFTempLateClassEnum.IN)?.Sum(x => (x.Money ?? 0) + (x.Fee ?? 0)) ?? 0, PreferPrice = x.FinanceList.Where(t => t.Type == WFTempLateClassEnum.IN)?.Sum(x => (x.Money ?? 0) + (x.Fee ?? 0)) ?? 0,
EffectiveClassHours = x.Unit_Price > 0 ? Math.Round(x.Income / x.Unit_Price, 2, MidpointRounding.AwayFromZero) : 0, EffectiveClassHours = x.Unit_Price > 0 ? Math.Round((x.Income - x.Expend) / x.Unit_Price, 2, MidpointRounding.AwayFromZero) : 0,
x.Income, x.Income,
x.Expend, x.Expend,
x.UseBookFee, x.UseBookFee,
...@@ -1108,7 +1110,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1108,7 +1110,7 @@ namespace Edu.WebApi.Controllers.Finance
x.UseCourseFee, x.UseCourseFee,
x.AdjustPrice, x.AdjustPrice,
SurplusCourseHours = x.TotalClassHours - x.UseClassHours, SurplusCourseHours = x.TotalClassHours - x.UseClassHours,
SurplusMoney = x.Income - x.UseBookFee - x.UseCoursewareFee - x.UseCourseFee - x.AdjustPrice SurplusMoney = x.Income - x.Expend - x.UseBookFee - x.UseCoursewareFee - x.UseCourseFee - x.AdjustPrice
}); });
return ApiResult.Success("", pageModel); return ApiResult.Success("", pageModel);
} }
...@@ -1239,7 +1241,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1239,7 +1241,7 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: bankModel != null ? bankModel.Alias + bankModel.BankNo : ""){ }, new ExcelColumn(value: bankModel != null ? bankModel.Alias + bankModel.BankNo : ""){ },
new ExcelColumn(value: PreferPrice.ToString()){ Rowspan = Count }, new ExcelColumn(value: PreferPrice.ToString()){ Rowspan = Count },
new ExcelColumn(value: item.Income.ToString()){ Rowspan = Count }, new ExcelColumn(value: item.Income.ToString()){ Rowspan = Count },
new ExcelColumn(value: Math.Round(item.Income / item.Unit_Price,2,MidpointRounding.AwayFromZero).ToString()){ Rowspan = Count }, new ExcelColumn(value: Math.Round((item.Income - item.Expend) / item.Unit_Price,2,MidpointRounding.AwayFromZero).ToString()){ Rowspan = Count },
new ExcelColumn(value: item.UseBookFee.ToString("0.######")){ Rowspan = Count }, new ExcelColumn(value: item.UseBookFee.ToString("0.######")){ Rowspan = Count },
new ExcelColumn(value: item.UseCoursewareFee.ToString("0.######")){ Rowspan = Count }, new ExcelColumn(value: item.UseCoursewareFee.ToString("0.######")){ Rowspan = Count },
new ExcelColumn(value: (item.TotalClassHours > 0 ? Math.Round(Convert.ToDecimal(item.UseClassHours) / item.TotalClassHours * 100, 2, MidpointRounding.AwayFromZero) : 0).ToString() + "%"){ Rowspan = Count }, new ExcelColumn(value: (item.TotalClassHours > 0 ? Math.Round(Convert.ToDecimal(item.UseClassHours) / item.TotalClassHours * 100, 2, MidpointRounding.AwayFromZero) : 0).ToString() + "%"){ Rowspan = Count },
...@@ -1249,7 +1251,7 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1249,7 +1251,7 @@ namespace Edu.WebApi.Controllers.Finance
new ExcelColumn(value: item.Expend.ToString()){ Rowspan = Count }, new ExcelColumn(value: item.Expend.ToString()){ Rowspan = Count },
new ExcelColumn(value: item.AdjustPrice.ToString("0.######")){ Rowspan = Count }, new ExcelColumn(value: item.AdjustPrice.ToString("0.######")){ Rowspan = Count },
new ExcelColumn(value: (item.TotalClassHours - item.UseClassHours).ToString()){ Rowspan = Count }, new ExcelColumn(value: (item.TotalClassHours - item.UseClassHours).ToString()){ Rowspan = Count },
new ExcelColumn(value: (item.Income - item.UseBookFee - item.UseCoursewareFee - item.UseCourseFee - item.AdjustPrice).ToString("0.######")){ Rowspan = Count }, new ExcelColumn(value: (item.Income - item.Expend - item.UseBookFee - item.UseCoursewareFee - item.UseCourseFee - item.AdjustPrice).ToString("0.######")){ Rowspan = Count },
} }
}; };
slist.Add(firstRow); slist.Add(firstRow);
...@@ -1385,6 +1387,33 @@ namespace Edu.WebApi.Controllers.Finance ...@@ -1385,6 +1387,33 @@ namespace Edu.WebApi.Controllers.Finance
} }
} }
/// <summary>
/// 更新学生的有效课时
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public ApiResult UpdateStudentValidClassHours() {
JObject jObj = JObject.Parse(RequestParm.Msg.ToString());
int GuestId = jObj.GetInt("GuestId", 0);
decimal Money = jObj.GetDecimal("Money");
bool flag = orderModule.UpdateStudentValidClassHours(GuestId, Money);
return flag ? ApiResult.Success() : ApiResult.Failed();
}
/// <summary>
/// 初始化学生的有效课时
/// </summary>
/// <returns></returns>
[AllowAnonymous]
[HttpPost]
public ApiResult UpdateALLStudentValidClassHours()
{
bool flag = orderModule.UpdateALLStudentValidClassHours();
return flag ? ApiResult.Success() : ApiResult.Failed();
}
#endregion #endregion
#region 月结窗口 #region 月结窗口
......
...@@ -69,7 +69,7 @@ namespace Edu.WebApi.Timers ...@@ -69,7 +69,7 @@ namespace Edu.WebApi.Timers
timer4 = new System.Timers.Timer() timer4 = new System.Timers.Timer()
{ {
Interval = (1000 * 60) * (1 * 60 ) //1小时执行一次 Interval = (1000 * 60) * (1 * 10 ) //1小时执行一次
}; };
timer4.Elapsed += new System.Timers.ElapsedEventHandler(UpdateAuditThroughStudent); timer4.Elapsed += new System.Timers.ElapsedEventHandler(UpdateAuditThroughStudent);
timer4.Enabled = true; timer4.Enabled = true;
......
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