Commit 797d63bc authored by liudong1993's avatar liudong1993

Merge branch 'master' of http://gitlab.oytour.com/Kui2/education

parents e3fc219c 2644c67a
using Edu.Common.Plugin;
namespace Edu.Common.Enum.Course
{
/// <summary>
/// 学员状态枚举
/// </summary>
public enum GuestStateEnum
{
/// <summary>
///正常
/// </summary>
[EnumField("正常")]
Normal = 1,
/// <summary>
///退学
/// </summary>
[EnumField("退学")]
DropOut =2,
/// <summary>
///退学申请中
/// </summary>
[EnumField("退学申请中")]
DropOutApplyIng = 3,
/// <summary>
///驳回申请
/// </summary>
[EnumField("驳回申请")]
RejectApply =4,
/// <summary>
///停课
/// </summary>
[EnumField("停课")]
StopClasses =5,
/// <summary>
/// 停课申请中
/// </summary>
[EnumField("停课申请中")]
StopClassesApplyIng =6,
/// <summary>
/// 毕业
/// </summary>
[EnumField("毕业")]
Graduate =7,
/// <summary>
/// 转班申请中
/// </summary>
[EnumField("转班申请中")]
TransferClassesApplyIng =8,
/// <summary>
/// 分拆申请中
/// </summary>
[EnumField("分拆申请中")]
SplitApplyIng =9,
}
}
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using System;
using VT.FW.DB;
......@@ -135,5 +136,10 @@ namespace Edu.Model.Entity.Course
/// 甲鹤小程序商品id
/// </summary>
public int MallGoodsId { get; set; }
/// <summary>
/// 课程等级
/// </summary>
public CourseRateEnum CourseRate { get; set; }
}
}
\ No newline at end of file
......@@ -45,22 +45,16 @@ namespace Edu.Model.Entity.Exam
/// </summary>
public DateTime CreateTime { get; set; }
/// <summary>
/// 删除状态
/// </summary>
public DateStateEnum Status { get; set; }
/// <summary>
/// 问题答案【JSON字符串】
/// 学生答案
/// </summary>
public string StundetAnswer { get; set; }
/// <summary>
/// 题目得分
/// </summary>
......@@ -71,6 +65,9 @@ namespace Edu.Model.Entity.Exam
/// </summary>
public int IsMarking { get; set; }
/// <summary>
/// 学生选项内容
/// </summary>
public string StudentContent { get; set; }
}
}
......@@ -13,9 +13,10 @@ namespace Edu.Model.Entity.Sell
public class RB_Order_Guest
{
/// <summary>
/// id
/// 主键编号
/// </summary>
public int Id { get; set; }
/// <summary>
/// 订单编号
/// </summary>
......@@ -32,9 +33,9 @@ namespace Edu.Model.Entity.Sell
public string GuestName { get; set; }
/// <summary>
/// 状态 1正常 2退学 3-申请中,4-驳回申请,5-停课,6-停课申请中,7-完结的订单,8-转班申请中,9-分拆申请
/// 状态(参考枚举)
/// </summary>
public int GuestState { get; set; }
public GuestStateEnum GuestState { get; set; }
/// <summary>
/// 职业
......@@ -220,5 +221,10 @@ namespace Edu.Model.Entity.Sell
/// 合同链接
/// </summary>
public string ContractUrl { get; set; }
/// <summary>
/// 学员毕业时间
/// </summary>
public DateTime? GraduationTime { get; set; }
}
}
......@@ -15,6 +15,11 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary>
public string QIds { get; set; }
/// <summary>
/// 学员编号
/// </summary>
public string QGuestIds { get; set; }
/// <summary>
/// 单据标题
/// </summary>
......@@ -30,6 +35,11 @@ namespace Edu.Model.ViewModel.EduTask
/// </summary>
public int ReceiptType { get; set; }
/// <summary>
/// 单据类型编号【逗号分割】
/// </summary>
public string QReceiptTypes { get; set; }
/// <summary>
/// 集团编号
/// </summary>
......
......@@ -44,5 +44,25 @@ namespace Edu.Model.ViewModel.EduTask
/// 附件list
/// </summary>
public List<string> ReceiptFileList { get; set; }
/// <summary>
/// 退课学员编号
/// </summary>
public int BackClassGuestId { get; set; }
/// <summary>
/// 停课学员编号
/// </summary>
public int StopClassGuestId { get; set; }
/// <summary>
/// 订单分拆、转班学员编号
/// </summary>
public int OrderChangeGuestId { get; set; }
/// <summary>
/// 临沭上课邀请学员编号
/// </summary>
public string TempinvitationGuestIds { get; set; }
}
}
......@@ -59,5 +59,10 @@ namespace Edu.Model.ViewModel.Exam
/// 审核状态【0-草稿,1-审核中,2-正常,3-驳回,4-作废】
/// </summary>
public int QExamineStatus { get; set; }
/// <summary>
/// 创建人
/// </summary>
public int QCreateBy { get; set; }
}
}
......@@ -45,6 +45,11 @@ namespace Edu.Model.ViewModel.Question
/// 是否是选项答案
/// </summary>
public bool IsAnswer { get; set; }
/// <summary>
/// 显示选项
/// </summary>
public string ShowName { get; set; }
}
/// <summary>
......
......@@ -60,6 +60,11 @@ namespace Edu.Model.ViewModel.Question
/// </summary>
public string QBankIds { get; set; }
/// <summary>
/// 题目类型
/// </summary>
public string Q_QuestionTypeIds { get; set; }
/// <summary>
/// 选项
/// </summary>
......
using System;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.Entity.Sell;
namespace Edu.Model.ViewModel.Sell
......@@ -134,19 +136,7 @@ namespace Edu.Model.ViewModel.Sell
{
get
{
string str = "";
switch (this.GuestState)
{
case 1: str = "正常"; break;
case 2: str = "退学"; break;
case 3: str = "申请退学中"; break;
case 4: str = "驳回申请"; break;
case 5: str = "停课"; break;
case 6: str = "停课申请中"; break;
case 7: str = "完结"; break;
case 8: str = "转班申请中"; break;
}
return str;
return this.GuestState.ToName();
}
}
......@@ -169,5 +159,10 @@ namespace Edu.Model.ViewModel.Sell
return str;
}
}
/// <summary>
/// 课程等级
/// </summary>
public CourseRateEnum CourseRate { get; set; }
}
}
using Edu.Common.Enum.Sale;
using Edu.Common.Plugin;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.EduTask;
using System;
using System.Collections.Generic;
......@@ -76,20 +78,7 @@ namespace Edu.Model.ViewModel.Sell
{
get
{
string str = "";
switch (this.GuestState)
{
case 1: str = "正常"; break;
case 2: str = "退学"; break;
case 3: str = "申请退学中"; break;
case 4: str = "驳回申请"; break;
case 5: str = "停课"; break;
case 6: str = "停课申请中"; break;
case 7: str = "完结"; break;
case 8: str = "转班申请中"; break;
case 9: str = "分拆申请中"; break;
}
return str;
return this.GuestState.ToName();
}
}
......@@ -270,5 +259,14 @@ namespace Edu.Model.ViewModel.Sell
}
}
/// <summary>
/// 已完成课时的学员
/// </summary>
public int QFinishGuest { get; set; }
/// <summary>
/// 学员业务单据列表
/// </summary>
public List<RB_Education_Receipt_ViewModel> GuestEduReceiptList { get; set; }
}
}
\ No newline at end of file
This diff is collapsed.
......@@ -294,6 +294,7 @@ namespace Edu.Module.Course
{nameof(RB_Course_ViewModel.Saleplat),model.Saleplat },
{nameof(RB_Course_ViewModel.IsKCourse),model.IsKCourse },
{nameof(RB_Course_ViewModel.ClassHours),model.ClassHours },
{nameof(RB_Course_ViewModel.CourseRate),model.CourseRate },
};
flag = courseRepository.Update(fileds, new WhereHelper(nameof(RB_Course_ViewModel.CourseId), model.CourseId));
}
......@@ -320,65 +321,6 @@ namespace Edu.Module.Course
};
flag = mallGoodsRepository.Update(fileds, new WhereHelper(nameof(RB_Goods.Id), model.MallGoodsId));
}
#region 阶梯报价
//未开启阶梯价格
if (model.IsOpenStepPrice == 0)
{
course_StepPriceRepository.DeleteStepPriceRepository(model.CourseId);
}
else//开启阶梯价格
{
var oldStepPriceList = course_StepPriceRepository.GetCourseStepPriceListRepository(new RB_Course_StepPrice_ViewModel() { CourseId = model.CourseId });
//以前没有阶梯报价信息【直接新增】
if (oldStepPriceList == null || (oldStepPriceList != null && oldStepPriceList.Count == 0))
{
if (model.StepPriceList != null && model.StepPriceList.Count > 0)
{
foreach (var item in model.StepPriceList)
{
item.CoursePriceId = 0;
item.CourseId = model.CourseId;
item.Group_Id = model.Group_Id;
item.School_Id = model.School_Id;
course_StepPriceRepository.Insert(item);
}
}
}
else//以前有阶梯报价
{
//现在没有阶梯报价了【直接删除以前的阶梯报价】
if (model.StepPriceList == null || (model.StepPriceList != null && model.StepPriceList.Count == 0))
{
//course_StepPriceRepository.DeleteStepPriceRepository(model.CourseId);
}
//找出差异的数据
//var deleteList = oldStepPriceList.Where(qitem => !model.StepPriceList.Any(oldItem => qitem.CoursePriceId == oldItem.CoursePriceId)).ToList();
//foreach (var dItem in deleteList)
//{
// if (dItem.CoursePriceId > 0)
// {
// course_StepPriceRepository.Delete(dItem.CoursePriceId);
// }
//}
//foreach (var priceItem in model.StepPriceList)
//{
// priceItem.CourseId = model.CourseId;
// priceItem.Group_Id = model.Group_Id;
// priceItem.School_Id = model.School_Id;
// if (priceItem.CoursePriceId == 0)
// {
// course_StepPriceRepository.Insert(priceItem);
// }
// else
// {
// course_StepPriceRepository.Update(priceItem);
// }
//}
}
}
#endregion
return flag;
}
......
......@@ -13,6 +13,7 @@ using Edu.Model.Entity.Course;
using Edu.Model.Entity.Sell;
using Edu.Model.ViewModel.Contract;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.EduTask;
using Edu.Model.ViewModel.Grade;
using Edu.Model.ViewModel.Log;
using Edu.Model.ViewModel.Mall;
......@@ -22,6 +23,7 @@ using Edu.Model.ViewModel.StudyAbroad;
using Edu.Model.ViewModel.User;
using Edu.Repository.Contract;
using Edu.Repository.Course;
using Edu.Repository.EduTask;
using Edu.Repository.Finance;
using Edu.Repository.Grade;
using Edu.Repository.Log;
......@@ -181,26 +183,6 @@ namespace Edu.Module.Course
/// </summary>
private readonly RB_Order_SplitDetailsRepository splitDetailsRepository = new RB_Order_SplitDetailsRepository();
/// <summary>
/// 小程序对应的商品仓储对象
/// </summary>
private readonly Repository.Mall.RB_GoodsRepository mallGoodsRepository = new Repository.Mall.RB_GoodsRepository();
/// <summary>
/// 小程序对应的商品分类仓储对象
/// </summary>
private readonly Repository.Mall.RB_Goods_CategoryRepository MallGoodsCategoryRepository = new Repository.Mall.RB_Goods_CategoryRepository();
/// <summary>
/// 小程序对应的商品优惠仓储对象
/// </summary>
private readonly Repository.Mall.RB_Goods_PreferentialRepository MallGoodsPreferentialRepository = new Repository.Mall.RB_Goods_PreferentialRepository();
/// <summary>
/// 商品规格
/// </summary>
private readonly Repository.Mall.RB_Goods_SpecificationRepository goods_SpecificationRepository = new Repository.Mall.RB_Goods_SpecificationRepository();
/// <summary>
/// 商品规格值
/// </summary>
......@@ -636,7 +618,7 @@ namespace Edu.Module.Course
}
#region 验证学生名单数量
var glist = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = demodel.Group_Id, OrderId = demodel.OrderId, GuestState = 1 });
var glist = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { Group_Id = demodel.Group_Id, OrderId = demodel.OrderId, GuestState = GuestStateEnum.Normal });
if (glist.Count() > demodel.GuestNum)
{
flag = false;
......@@ -779,7 +761,7 @@ namespace Edu.Module.Course
OrderId = demodel.OrderId,
ClassId = demodel.ClassId,
GuestName = visitorModel?.Name ?? "",
GuestState = 1,
GuestState = GuestStateEnum.Normal,
Profession = "",
Sex = 1,
Age = 18,
......@@ -826,7 +808,7 @@ namespace Edu.Module.Course
OrderId = demodel.OrderId,
ClassId = demodel.ClassId,
GuestName = oldGuestModel?.GuestName ?? "",
GuestState = 1,
GuestState = GuestStateEnum.Normal,
Profession = oldGuestModel?.Profession ?? "",
Sex = oldGuestModel?.Sex ?? 1,
Age = oldGuestModel?.Age ?? 18,
......@@ -1340,8 +1322,10 @@ namespace Edu.Module.Course
#region 更新甲鹤小程序规格对应的库存
if (flag && orderModel.JoinType != OrderJoinTypeEnum.RenewOrder)//续费订单不去更新规格库存
{
List<int> classId = new List<int>();
classId.Add(orderModel.ClassId);
List<int> classId = new List<int>
{
orderModel.ClassId
};
System.Threading.Tasks.Task.Run(() => UpdateGoodsSpecification(classId));
}
#endregion
......@@ -1864,6 +1848,13 @@ namespace Edu.Module.Course
var list = order_GuestRepository.GetOrderGuestPageRepository(pageIndex, pageSize, out count, dmodel);
if (list != null && list.Count > 0)
{
string guestIds = string.Join(",", list.Select(qitem => qitem.Id));
//查询学员[停课,退课,转班,分拆,临课]业务单据
var guestEduReceiptList = education_ReceiptRepository.GetEducationReceiptListExtRepository(new EducationReceiptQuery()
{
QGuestIds = guestIds,
QReceiptTypes = "2,3,4,5,6",
});
List<RB_Order_ViewModel> sourceTargetList = new List<RB_Order_ViewModel>();
List<int> idList = new List<int>();
var sourceOrderIdList = Common.ConvertHelper.StringToList(string.Join(",", list.Select(x => x.SourceOrderId)));
......@@ -1883,6 +1874,12 @@ namespace Edu.Module.Course
}
foreach (var item in list)
{
item.GuestEduReceiptList = guestEduReceiptList?
.Where(qitem => qitem.BackClassGuestId == item.Id
|| qitem.StopClassGuestId == item.Id
|| qitem.OrderChangeGuestId == item.Id
|| qitem.TempinvitationGuestIds.Contains(item.Id.ToString())
)?.ToList() ?? new List<RB_Education_Receipt_ViewModel>();
if (item.SourceOrderId > 0)
{
item.SourceClassName = sourceTargetList?.Where(qitem => qitem.OrderId == item.SourceOrderId)?.FirstOrDefault()?.ClassName;
......@@ -2089,7 +2086,7 @@ namespace Edu.Module.Course
}
dmodel.ClassId = ordermodel.ClassId;
dmodel.SourceId = ordermodel.SourceId;
int GuestNum = order_GuestRepository.GetOrderGuestNumRepository(new RB_Order_Guest_ViewModel() { OrderId = dmodel.OrderId, GuestState = 1 });
int GuestNum = order_GuestRepository.GetOrderGuestNumRepository(new RB_Order_Guest_ViewModel() { OrderId = dmodel.OrderId, GuestState = GuestStateEnum.Normal });
if (GuestNum >= ordermodel.GuestNum)
{
message = "学生名单已录入完毕";
......@@ -2804,7 +2801,7 @@ namespace Edu.Module.Course
string LogContent = "";
if (gmodel.CompleteHours <= validClassHours)
{
keyValues.Add(nameof(RB_Order_Guest.GuestState), 1);
keyValues.Add(nameof(RB_Order_Guest.GuestState), (int)GuestStateEnum.Normal);
keyValues.Add(nameof(RB_Order_Guest.DropOutRemark), "有效课时大于完成课时,恢复学员状态!");
LogContent = gmodel.GuestName + "有效课时大于完成课时,系统恢复学员状态!";
}
......
......@@ -17,6 +17,7 @@ using Edu.Repository.Contract;
using Edu.Model.Entity.Contract;
using Edu.Model.Entity.Course;
using Edu.Model.ViewModel.Contract;
using Edu.Common.Enum.Course;
namespace Edu.Module.Course
{
......@@ -176,7 +177,7 @@ namespace Edu.Module.Course
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),3 }
{nameof(RB_Order_Guest_ViewModel.GuestState),(int)GuestStateEnum.DropOutApplyIng}
};
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), GuestId));
}
......@@ -269,5 +270,31 @@ namespace Edu.Module.Course
}
return flag;
}
/// <summary>
/// 处理学员状态
/// </summary>
/// <returns></returns>
public virtual bool DealGuestStateModule()
{
bool flag = false;
var guestList = order_GuestRepository.GetCommonOrderGuestListRepository(new RB_Order_Guest_ViewModel()
{
QFinishGuest = 1
});
if (guestList != null && guestList.Count > 0)
{
foreach (var item in guestList.Take(1))
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Order_Guest_ViewModel.GuestState),(int)GuestStateEnum.Graduate},
{ nameof(RB_Order_Guest_ViewModel.GraduationTime),DateTime.Now},
};
flag = order_GuestRepository.Update(fileds, new WhereHelper(nameof(RB_Order_Guest_ViewModel.Id), item.Id));
}
}
return flag;
}
}
}
......@@ -732,7 +732,7 @@ namespace Edu.Module.Course
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == -1).Count() == item.GuestNum)
if (g2list.Where(x => x.GuestState == GuestStateEnum.DropOut).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
......@@ -2022,7 +2022,7 @@ namespace Edu.Module.Course
#region 班级提成
//查询是否订单下所有学员都已退学
var g2list = glist.Where(x => x.OrderId == item.OrderId).ToList();
if (g2list.Where(x => x.GuestState == -1).Count() == item.GuestNum)
if (g2list.Where(x => x.GuestState == GuestStateEnum.DropOut).Count() == item.GuestNum)
{
//所有学生都退学了 直接计算提成 全部一次性发放
if (item.HelpEnterId > 0)
......
......@@ -170,7 +170,7 @@ namespace Edu.Module.Course
if (backModel == null || backModel.AuditStatus != WFRrocessStatus.AuditThrough) { return "退课流程未审核通过"; }
if (backModel.FinanceId > 0) { return "已制单,无法再次生成财务单据"; }
var guestModel = order_GuestRepository.GetEntity(backModel.GuestId);
if (guestModel == null || guestModel.GuestState != 2) { return "客人名单状态不正确"; }
if (guestModel == null || guestModel.GuestState != GuestStateEnum.DropOut) { return "客人名单状态不正确"; }
var fcmodel = finance_ConfigRepository.GetList(new RB_Finance_Config_ViewModel() { Group_Id = userInfo.Group_Id, Type = FinanceConfigTypeEnum.DropCourse }).FirstOrDefault();
if (fcmodel == null) { return "未配置制单流程"; }
......@@ -435,12 +435,9 @@ namespace Edu.Module.Course
public List<RB_Order_Guest_Extend> GetAllStudentPage(int pageIndex, int pageSize, out long rowsCount, RB_Order_Guest_Extend demodel)
{
var orderstudentList = order_GuestRepository.GetAllStudentPage(pageIndex, pageSize, out rowsCount, demodel);
return orderstudentList;
}
/// <summary>
/// 获取签到状态记录
/// </summary>
......@@ -454,8 +451,6 @@ namespace Edu.Module.Course
return class_CheckRepository.GetClassCheckPageList(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
/// 获取学员事件记录分页列表
/// </summary>
......@@ -469,7 +464,6 @@ namespace Edu.Module.Course
return student_EventLogRepository.GetStudentEventLogPageList(pageIndex, pageSize, out rowsCount, query);
}
/// <summary>
///删除学员事件
/// </summary>
......@@ -478,16 +472,14 @@ namespace Edu.Module.Course
public bool DelStudentEventLog(int Id, int UpdateBy)
{
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{ nameof(RB_Student_EventLog_ViewModel.Status),1},
{ nameof(RB_Student_EventLog_ViewModel.UpdateBy),UpdateBy},
{ nameof(RB_Student_EventLog_ViewModel.UpdateTime),System.DateTime.Now},
};
{
{ nameof(RB_Student_EventLog_ViewModel.Status),1},
{ nameof(RB_Student_EventLog_ViewModel.UpdateBy),UpdateBy},
{ nameof(RB_Student_EventLog_ViewModel.UpdateTime),System.DateTime.Now},
};
return student_EventLogRepository.Update(fileds, new WhereHelper(nameof(RB_Student_EventLog_ViewModel.Id), Id));
}
/// <summary>
/// 新增/修改学员事件
/// </summary>
......@@ -512,23 +504,7 @@ namespace Edu.Module.Course
flag = student_EventLogRepository.Update(fileds, new WhereHelper(nameof(RB_Student_EventLog_ViewModel.Id), model.Id));
}
return flag;
}
/// <summary>
/// 获取学员事件记录列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_EventLog_ViewModel> GetStudentEventLogList(RB_Student_EventLog_ViewModel query)
{
return student_EventLogRepository.GetStudentEventLogList(query);
}
#endregion
}
}
}
\ No newline at end of file
......@@ -492,11 +492,6 @@ namespace Edu.Module.EduTask
if (item.ReceiptType == Common.Enum.Finance.ReceiptTypeEnum.InvitationClass)
{
var tempModel = studentTempInvitationClassList.Where(qitem => qitem.Id == item.RelationId)?.FirstOrDefault();
//tempModel.ClassDate = planList.Where(x => x.ClassPlanId == tempModel.ClassPlanId).FirstOrDefault()?.ClassDate.ToString("yyyy-MM-dd") ?? "";
//tempModel.StartTime = timeList.Where(x => x.ClassTimeId == tempModel.ClassTimeId).FirstOrDefault()?.StartTime ?? "";
//tempModel.EndTime = timeList.Where(x => x.ClassTimeId == tempModel.ClassTimeId).FirstOrDefault()?.EndTime ?? "";
//tempModel.TimeHour = timeList.Where(x => x.ClassTimeId == tempModel.ClassTimeId).FirstOrDefault()?.TimeHour ?? 0;
tempModel.ClassPlanTimeList = new List<ClassPlanTime>();
foreach (var itemClassTimeIds in tempModel.ClassTimeIds.Split(","))
{
......@@ -1626,11 +1621,11 @@ namespace Edu.Module.EduTask
/// <summary>
/// 获取教务单据列表
/// </summary>
/// <param name="RelationIds"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptList(string RelationIds)
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptListModule(EducationReceiptQuery query)
{
return education_ReceiptRepository.GetEducationReceiptList(RelationIds);
return education_ReceiptRepository.GetEducationReceiptListRepository(query);
}
}
}
......@@ -131,7 +131,7 @@ namespace Edu.Module.EduTask
flag = education_ReceiptRepository.SetEducationReceiptRepository(educationReceipt, out message);
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.GuestState),8}
{nameof(RB_Order_Guest_ViewModel.GuestState),(int)GuestStateEnum.TransferClassesApplyIng}
};
if (flag)
{
......@@ -325,7 +325,7 @@ namespace Edu.Module.EduTask
Dictionary<string, object> guestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_ViewModel.TotalHours),guestClassHours.FinishClassHours },
{nameof(RB_Order_Guest_ViewModel.GuestState),7 },
{nameof(RB_Order_Guest_ViewModel.GuestState),(int)GuestStateEnum.Graduate },
};
if (flag)
{
......@@ -1007,7 +1007,7 @@ namespace Edu.Module.EduTask
Dictionary<string, object> newGuestFileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest_Extend.TotalHours),guest.CompleteHours },
{nameof(RB_Order_Guest_Extend.GuestState),7 }
{nameof(RB_Order_Guest_Extend.GuestState),(int)GuestStateEnum.Graduate}
};
flag = guestRepository.Update(newGuestFileds, new WhereHelper(nameof(RB_Order_Guest_Extend.Id), guest.Id));
#endregion
......
using Edu.Model.Entity.Course;
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;
......@@ -50,13 +51,13 @@ namespace Edu.Module.EduTask
/// <returns></returns>
public bool UpdateAuditThroughStudent()
{
var list = order_GuestRepository.GetOrderStopClassing(new RB_Order_Guest_ViewModel { GuestState = 6 });
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<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest.GuestState),5},
{nameof(RB_Order_Guest.GuestState),(int)GuestStateEnum.StopClasses},
{nameof(RB_Order_Guest.ChangeEffectTime),item.StopClassEffectTime},
{nameof(RB_Order_Guest.UpdateTime),System.DateTime.Now},
};
......@@ -97,7 +98,7 @@ namespace Edu.Module.EduTask
//将学员的学习状态变成停课申请中
Dictionary<string, object> fileds = new Dictionary<string, object>()
{
{nameof(RB_Order_Guest.GuestState),6},
{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()
......
This diff is collapsed.
......@@ -141,7 +141,7 @@ WHERE 1=1 ");
if (flag)
{
var guestList = order_GuestRepository.GetOrderGuestListRepository(new RB_Order_Guest_ViewModel() { OrderId = backModel.OrderId });
if (guestList != null && guestList.Where(qitem => qitem.GuestState == 2).Count() == guestList.Count())
if (guestList != null && guestList.Where(qitem => qitem.GuestState == GuestStateEnum.DropOut).Count() == guestList.Count())
{
//更新订单为退学状态
Dictionary<string, object> orderFileds = new Dictionary<string, object>()
......
......@@ -153,7 +153,6 @@ WHERE 1=1
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptListRepository(EducationReceiptQuery query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.TeacherName,'') AS TeacherName
......@@ -211,6 +210,85 @@ WHERE 1=1
return Get<RB_Education_Receipt_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取教务单据列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptListExtRepository(EducationReceiptQuery query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.ClassName,'') AS ClassName,IFNULL(B.ClassNo,'') AS ClassNo,IFNULL(C.TeacherName,'') AS TeacherName
,IFNULL(D.SName,'') AS SchoolName,IFNULL(E.CourseName,'') AS CourseName,IFNULL(backClass.GuestId,0) AS BackClassGuestId
,IFNULL(stopClass.OrderGuestId,0) AS StopClassGuestId,IFNULL(orderChange.OrderGuestId,0) AS OrderChangeGuestId,IFNULL(tempinvitation.OrderGuestIds,'') AS TempinvitationGuestIds
FROM RB_Education_Receipt AS A LEFT JOIN rb_class AS B ON A.ClassId=B.ClassId
LEFT JOIN rb_teacher AS C ON B.Teacher_Id=C.TId
LEFT JOIN rb_school AS D ON A.School_Id=D.SId
LEFT JOIN rb_course AS E ON B.CouseId=E.CourseId
LEFT JOIN rb_student_backclass AS backClass ON A.RelationId=backClass.BackId AND A.ReceiptType=2
LEFT JOIN rb_student_stopclass AS stopClass ON A.RelationId=stopClass.Id AND A.ReceiptType=3
LEFT JOIN rb_order_change AS orderChange ON A.RelationId=orderChange.Id AND A.ReceiptType IN(5,6)
LEFT JOIN rb_student_tempinvitation AS tempinvitation ON A.RelationId=tempinvitation.Id AND A.ReceiptType=4
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Education_Receipt_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.QIds))
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.Id), query.QIds);
}
if (query.RelationId > 0)
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.RelationId), query.RelationId);
}
if (!string.IsNullOrEmpty(query.QRelationIds))
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.RelationId), query.QRelationIds);
}
if (!string.IsNullOrEmpty(query.Title))
{
builder.AppendFormat(@" AND A.{0} LIKE @Title ", nameof(RB_Education_Receipt_ViewModel.Title));
parameters.Add("Title", "%" + query.Title.Trim() + "%");
}
if (!string.IsNullOrEmpty(query.StartTime))
{
builder.AppendFormat(@" AND A.{0}>='{1}' ", nameof(RB_Education_Receipt_ViewModel.CreateTime), query.StartTime);
}
if (!string.IsNullOrEmpty(query.EndTime))
{
builder.AppendFormat(@" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Education_Receipt_ViewModel.CreateTime), query.EndTime);
}
if (query.ReceiptType > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Education_Receipt_ViewModel.ReceiptType), query.ReceiptType);
}
if (!string.IsNullOrEmpty(query.QReceiptTypes))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Education_Receipt_ViewModel.ReceiptType), query.QReceiptTypes);
}
if (query.VerifyStatus > -1)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Education_Receipt_ViewModel.VerifyStatus), query.VerifyStatus);
}
if (!string.IsNullOrEmpty(query.QEffectiveDate))
{
builder.AppendFormat(@" AND A.{0}>='{1}' ", nameof(RB_Education_Receipt_ViewModel.EffectiveDate), query.QEffectiveDate);
}
if (!string.IsNullOrEmpty(query.QGuestIds))
{
builder.AppendFormat("AND (backClass.GuestId IN({0}) OR stopClass.OrderGuestId IN({0}) OR orderChange.OrderGuestId IN({0}) OR tempinvitation.OrderGuestIds IN({0}) ) ", query.QGuestIds);
}
}
return Get<RB_Education_Receipt_ViewModel>(builder.ToString(), parameters).ToList();
}
/// <summary>
/// 新增修改教务单据
/// </summary>
......@@ -568,27 +646,5 @@ WHERE 1=1
}
return result;
}
/// <summary>
/// 获取教务单据列表
/// </summary>
/// <param name="RelationIds"></param>
/// <returns></returns>
public List<RB_Education_Receipt_ViewModel> GetEducationReceiptList(string RelationIds)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT A.* FROM RB_Education_Receipt AS A WHERE 1=1 ");
if (!string.IsNullOrEmpty(RelationIds))
{
builder.AppendFormat(@" AND A.{0} IN ({1}) ", nameof(RB_Education_Receipt_ViewModel.RelationId), RelationIds);
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Education_Receipt_ViewModel.Id));
return Get<RB_Education_Receipt_ViewModel>(builder.ToString(), parameters).ToList();
}
}
}
......@@ -4,6 +4,7 @@ using System.Linq;
using System.Text;
using System.Web;
using Edu.Common;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.System;
using Edu.Model.Entity.EduTask;
using Edu.Model.Entity.Sell;
......@@ -175,6 +176,7 @@ namespace Edu.Repository.EduTask
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "UpdateStundetLeave");
}
}
var signModel = checkLogList?.Where(qitem => qitem.ClassTimeId == item.ClassTimeId && qitem.ClassId == item.ClassId && qitem.OrderGuestId == model.OrderGuestId)?.FirstOrDefault();
......@@ -276,7 +278,7 @@ namespace Edu.Repository.EduTask
//已上课时>=有效课时,如果是,修改学员状态为停课,并且备注“有效课时消耗完毕,系统自动停课”
if (completeHours > guestModel.ValidClassHours)
{
orderFileds.Add(nameof(RB_Order_Guest_ViewModel.GuestState), 5);
orderFileds.Add(nameof(RB_Order_Guest_ViewModel.GuestState),(int)GuestStateEnum.StopClasses);
orderFileds.Add(nameof(RB_Order_Guest_ViewModel.ChangeEffectTime), DateTime.Now);
orderFileds.Add(nameof(RB_Order_Guest_ViewModel.DropOutRemark), "有效课时消耗完毕,系统自动停课");
LogContent = guestModel.GuestName + "有效课时消耗完毕,系统自动停课!";
......@@ -607,7 +609,7 @@ namespace Edu.Repository.EduTask
public bool CalcGuestHoursModule(RB_Order_Guest guestModel, RB_Class_Check_ViewModel checkModel, RB_Order orderModel, RB_Class_ViewModel classModel, Model.ViewModel.User.RB_Account_ViewModel sellerInfo)
{
bool flag = true;
if (guestModel.GuestState == 1)
if (guestModel.GuestState == GuestStateEnum.Normal)
{
decimal NoFinishHours = 0;
//获取以前所有签到列表【倒叙】
......@@ -633,14 +635,12 @@ namespace Edu.Repository.EduTask
//缺勤课时超过12课时更新学员状态为【停课】
if (NoFinishHours >= Common.Config.AbsentHours)
{
fileds.Add(nameof(RB_Order_Guest_ViewModel.GuestState), 5);
fileds.Add(nameof(RB_Order_Guest_ViewModel.GuestState), (int)GuestStateEnum.StopClasses);
checkFileds.Add(nameof(RB_Class_Check_ViewModel.IsAbsentHours), 1);
checkFileds.Add(nameof(RB_Class_Check_ViewModel.MakeUpStatus), 4);
// var orderModel = orderRepository.GetEntity(guestModel.OrderId);
var shengyuMoney = orderModel.PreferPrice - orderModel.Income + orderModel.Refund - orderModel.PlatformTax - orderModel.DiscountMoney - orderModel.LessPrice;
// var classModel = classRepository.GetEntity<RB_Class_ViewModel>(guestModel.ClassId);
// var sellerInfo = UserReidsCache.GetUserLoginInfo(orderModel.EnterID);
#region 欠费提醒(销售)
var queryTargetWorkId = accountRepository.GetWorkUserIdRepository(orderModel.EnterID);
if (!string.IsNullOrEmpty(queryTargetWorkId))
......
......@@ -24,6 +24,7 @@ namespace Edu.Repository.Exam
/// <returns></returns>
public List<RB_Examination_Paper_ViewModel> GetExaminationPaperPageRepository(int pageIndex, int pageSize, out long rowsCount, RB_Examination_Paper_ViewModel query)
{
string tempSql = string.Format(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), 0);
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
......@@ -31,95 +32,78 @@ SELECT A.*
FROM RB_Examination_Paper AS A
WHERE 1=1
");
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.Group_Id), query.Group_Id);
}
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(" AND A.{0} LIKE @PaperName ", nameof(RB_Examination_Paper_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
}
if (query.PaperId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.PaperId), query.PaperId);
}
if (!string.IsNullOrEmpty(query.QPaperIds))
else if (!string.IsNullOrEmpty(query.QPaperIds))
{
builder.AppendFormat(@" AND A.{0} IN({1}) ", nameof(RB_Examination_Paper_ViewModel.PaperId), query.QPaperIds);
}
if (!string.IsNullOrEmpty(query.QStartTime))
{
builder.AppendFormat(@" AND A.{0}>='{1}' ", nameof(RB_Examination_Paper_ViewModel.CreateTime), query.QStartTime);
}
if (!string.IsNullOrEmpty(query.QEndTime))
{
builder.AppendFormat(@" AND A.{0}>='{1} 23:59:59' ", nameof(RB_Examination_Paper_ViewModel.CreateTime), query.QEndTime);
}
if (query.QExamineStatus > -1)
else
{
//正常
if (query.QExamineStatus == 2)
if (!string.IsNullOrEmpty(query.QStartTime))
{
builder.AppendFormat(@" AND A.{0} IN(2,5) AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus));
builder.AppendFormat(@" AND A.{0}>='{1}' ", nameof(RB_Examination_Paper_ViewModel.CreateTime), query.QStartTime);
}
//驳回
else if (query.QExamineStatus == 3)
if (!string.IsNullOrEmpty(query.QEndTime))
{
builder.AppendFormat(@" AND A.{0} IN(3,4) AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus));
builder.AppendFormat(@" AND A.{0}<='{1} 23:59:59' ", nameof(RB_Examination_Paper_ViewModel.CreateTime), query.QEndTime);
}
else
if (!string.IsNullOrEmpty(query.PaperName))
{
builder.AppendFormat(@" AND A.{0}={1} AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus), query.QExamineStatus);
builder.AppendFormat(" AND A.{0} LIKE @PaperName ", nameof(RB_Examination_Paper_ViewModel.PaperName));
parameters.Add("PaperName", "%" + query.PaperName.Trim() + "%");
tempSql = "";
}
if (query.ParentId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), query.ParentId);
tempSql = "";
}
//没有权限的时候查询
if (query.CreateBy > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.CreateBy), query.CreateBy);
builder.AppendFormat(@" AND
(
(A.{0}={1} AND A.ParentId=0)
OR (A.{0}<>{1} AND A.IsOpen=2 )
) ", nameof(RB_Examination_Paper_ViewModel.CreateBy), query.CreateBy);
tempSql = "";
}
//查询条件中的创建人
if (query.QCreateBy > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.CreateBy), query.QCreateBy);
}
}
else
{
//试卷管理员
if (query.IsPaperManager == 1)
if (query.QExamineStatus > -1)
{
if (query.ParentId > 0)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), query.ParentId);
}
else
tempSql = "";
//正常
if (query.QExamineStatus == 2)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), 0);
builder.AppendFormat(@" AND A.{0} IN(2,5) AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus));
}
}
else
{
if (query.ParentId > 0)
//驳回
else if (query.QExamineStatus == 3)
{
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_Paper_ViewModel.ParentId), query.ParentId);
builder.AppendFormat(@" AND A.{0} IN(3,4) AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus));
}
else
{
if (query.CreateBy > 0)
{
builder.AppendFormat(@" AND
(
(A.{0}={1} AND A.ParentId=0)
OR (A.{0}<>{1} AND A.IsOpen=2 )
) ", nameof(RB_Examination_Paper_ViewModel.CreateBy), query.CreateBy);
}
builder.AppendFormat(@" AND A.{0}={1} AND A.PaperType=2 ", nameof(RB_Examination_Paper_ViewModel.ExamineStatus), query.QExamineStatus);
}
}
builder.AppendFormat(tempSql);
}
}
builder.AppendFormat(" ORDER BY A.{0} DESC ", nameof(RB_Examination_Paper_ViewModel.PaperId));
builder.AppendFormat(" ORDER BY A.{0} ASC,A.{0} DESC ", nameof(RB_Examination_Paper_ViewModel.PaperType),nameof(RB_Examination_Paper_ViewModel.PaperId));
return GetPage<RB_Examination_Paper_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
......
......@@ -23,16 +23,14 @@ namespace Edu.Repository.Exam
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@"
SELECT A.*,IFNULL(B.GuestName,'') AS GuestName
FROM RB_Examination_StudentDetails AS A
LEFT JOIN RB_Examination_Student AS c ON C.GuestId=a.GuestId
LEFT JOIN rb_order_guest AS B ON c.GuestId=B.Id
FROM RB_Examination_StudentDetails AS A
LEFT JOIN RB_Examination_Student AS c ON C.GuestId=a.GuestId
LEFT JOIN rb_order_guest AS B ON c.GuestId=B.Id
WHERE 1=1
");
builder.AppendFormat(@" AND A.{0}={1} ", nameof(RB_Examination_StudentDetails_ViewModel.Status), 0);
if (query != null)
{
if (query.GuestId > 0)
{
builder.AppendFormat(" AND c.{0}={1} ", nameof(RB_Examination_Student.GuestId), query.GuestId);
......
......@@ -197,7 +197,6 @@ GROUP BY A.ClassId
return Get<GuestFinishMinute_ViewModel>(builder.ToString()).ToList();
}
/// <summary>
/// 获取班级签到列表
/// </summary>
......@@ -237,8 +236,6 @@ GROUP BY A.ClassId
{
builder.AppendFormat(" AND A.{0} in({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.Q_ClassTimeIds);
}
if (!string.IsNullOrWhiteSpace(query.StartDate))
{
builder.AppendFormat(" AND DATE_FORMAT(A.{0},'%Y-%m-%d')>=DATE_FORMAT('{1}','%Y-%m-%d') ", nameof(RB_Class_Check_ViewModel.ClassDate), query.StartDate);
......@@ -256,7 +253,6 @@ GROUP BY A.ClassId
builder.AppendFormat(" AND A.{0} in ({1}) ", nameof(RB_Class_Check_ViewModel.ClassTimeId), query.ClassTimeIds);
}
}
return Get<RB_Class_Check_ViewModel>(builder.ToString()).ToList();
}
......@@ -282,33 +278,6 @@ GROUP BY A.ClassId
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取学生的上课课时
/// </summary>
/// <param name="groupId"></param>
/// <param name="guestIds"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassStudentDeductionHoursList(int groupId, string guestIds)
{
string sql = $@"SELECT OrderGuestId, SUM(CurrentDeductionHours) as CurrentDeductionHours FROM rb_class_check where `Status`=0 and Group_Id ={groupId} and OrderGuestId in ({guestIds}) group by OrderGuestId";
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取学生的上课课时
/// </summary>
/// <param name="groupId"></param>
/// <param name="orderIds"></param>
/// <returns></returns>
public List<RB_Class_Check_ViewModel> GetClassStudentHoursListForOrder(int groupId, string orderIds)
{
string sql = $@"SELECT g.Id as OrderGuestId,g.OrderId,SUM(c.CurrentDeductionHours) CurrentDeductionHours FROM rb_order_guest g
left join rb_class_check c on g.Id = c.OrderGuestId
WHERE g.Group_Id ={groupId} and g.`Status`=0 and g.GuestState <>2 and c.`Status` =0 and g.OrderId in({orderIds})
group by g.Id;";
return Get<RB_Class_Check_ViewModel>(sql).ToList();
}
/// <summary>
/// 获取订单每月 消费课时
/// </summary>
......@@ -739,9 +708,6 @@ GROUP BY tt.ClassId,tt.OrderGuestId
/// <summary>
/// 获取时间范围内的班级
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="count"></param>
/// <param name="startTime"></param>
/// <param name="endTime"></param>
/// <param name="classId"></param>
......@@ -777,7 +743,6 @@ LEFT JOIN rb_class c on cc.ClassId = c.ClassId
#region 学生可补课时/缺勤次数,请假次数
#region
/// <summary>
/// 获取签到状态记录
/// </summary>
......@@ -825,6 +790,5 @@ WHERE 1=1 AND A.Status=0 {1} ", builderMakeUp.ToString(), builderWhere.ToString
}
#endregion
#endregion
}
}
......@@ -40,6 +40,10 @@ WHERE 1=1
{
builder.AppendFormat(" AND {0}={1} ", nameof(RB_Question_ViewModel.CourseId), query.CourseId);
}
if (!string.IsNullOrEmpty(query.Q_QuestionTypeIds))
{
builder.AppendFormat(" AND {0} IN({1}) ", nameof(RB_Question_ViewModel.QuestionTypeId), query.Q_QuestionTypeIds);
}
return Get<RB_Question_ViewModel>(builder.ToString()).ToList();
}
}
......
......@@ -51,48 +51,5 @@ namespace Edu.Repository.User
builder.AppendFormat(" order by t.{0} desc ", nameof(RB_Student_EventLog_ViewModel.CreateTime));
return GetPage<RB_Student_EventLog_ViewModel>(pageIndex, pageSize, out rowsCount, builder.ToString(), parameters).ToList();
}
/// <summary>
/// 获取学员事件记录列表
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
/// <param name="rowsCount"></param>
/// <param name="query"></param>
/// <returns></returns>
public List<RB_Student_EventLog_ViewModel> GetStudentEventLogList(RB_Student_EventLog_ViewModel query)
{
var parameters = new DynamicParameters();
StringBuilder builder = new StringBuilder();
builder.AppendFormat(@" SELECT t.* FROM RB_Student_EventLog AS t WHERE 1=1 ");
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.Status), (int)DateStateEnum.Normal);
if (query != null)
{
if (query.Group_Id > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.Group_Id), query.Group_Id);
}
if (query.School_Id > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.School_Id), query.School_Id);
}
if (query.StuId > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.StuId), query.StuId);
}
if (query.Id > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.Id), query.Id);
}
if (query.EventType > 0)
{
builder.AppendFormat(" AND t.{0}={1} ", nameof(RB_Student_EventLog_ViewModel.EventType), query.EventType);
}
}
return Get<RB_Student_EventLog_ViewModel>(builder.ToString(), parameters).ToList();
}
}
}
......@@ -554,11 +554,8 @@ namespace Edu.WebApi.Controllers.Applet
var PaperId = base.ParmJObj.GetInt("PaperId");
var Id = base.ParmJObj.GetInt("Id");
var GuestId = base.ParmJObj.GetInt("GuestId", 0);
var modelPublish = paperModule.GetExaminationPublishModule(Id);
var modelPaper = paperModule.GetExaminationPaperModule(PaperId, isShowAnswer: false, GuestId: GuestId, PublishId: Id);
modelPublish.GuestId = GuestId;
modelPaper.GuestId = GuestId;
return ApiResult.Success(data: new { Publish = modelPublish, Paper = modelPaper });
var data = paperModule.AppGetExamPaperInfoModule(PaperId, isShowAnswer: false, GuestId: GuestId, PublishId: Id);
return ApiResult.Success(data: data);
}
......
......@@ -984,7 +984,7 @@ namespace Edu.WebApi.Controllers.Course
List<object> guestList = new List<object>();
//|| x.GuestState == 6[去掉退课申请中的]
foreach (var item in orderGuestList.Where(x => x.GuestState == 1 || ((x.GuestState == 5 || x.GuestState == 7) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= data.ClassDate)))
foreach (var item in orderGuestList.Where(x => x.GuestState == GuestStateEnum.Normal || ((x.GuestState == GuestStateEnum.StopClasses || x.GuestState == GuestStateEnum.Graduate) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= data.ClassDate)))
{
if (item.JoinType == Common.Enum.Sale.OrderJoinTypeEnum.InsertClass && data.ClassDate >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.EffectTime)))
{
......@@ -1053,7 +1053,7 @@ namespace Edu.WebApi.Controllers.Course
}
foreach (var item in tempGuestList)
{
if (item.GuestState == 1 || item.GuestState == 6 || ((item.GuestState == 5 || item.GuestState == 7) && item.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.ChangeEffectTime)) >= data.ClassDate))
if (item.GuestState == GuestStateEnum.Normal || item.GuestState == GuestStateEnum.StopClassesApplyIng || ((item.GuestState == GuestStateEnum.StopClasses || item.GuestState == GuestStateEnum.Graduate) && item.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(item.ChangeEffectTime)) >= data.ClassDate))
{
guestList.Add(new
{
......@@ -1128,7 +1128,7 @@ namespace Edu.WebApi.Controllers.Course
{
model.Age = System.DateTime.Now.Year - Convert.ToDateTime(model.BirthDay).Year;
}
model.GuestState = 1;
model.GuestState = GuestStateEnum.Normal;
model.GuestSource = OrderSourceEnum.Employee;
model.CreateBy = base.UserInfo.Id;
model.UpdateBy = base.UserInfo.Id;
......@@ -1203,10 +1203,6 @@ namespace Edu.WebApi.Controllers.Course
//获取班级的学员信息
var orderGuestList = classModule.GetOrderGuestListModule(new RB_Order_Guest_ViewModel { Group_Id = base.UserInfo.Group_Id, ClassId = list.FirstOrDefault().ClassId, QEffectStatus = 1 });
if (list.Count() != orderGuestList.Where(x => x.GuestState == 1).Count())
{
// return ApiResult.Failed("签到总人数错误,请先检查信息");
}
//判断今天有课没有
var planList = classModule.GetClassPlanEntityModule(new RB_Class_Plan_ViewModel
......
......@@ -5,6 +5,7 @@ using System.Threading.Tasks;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum;
using Edu.Common.Enum.Course;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
using Edu.Model.ViewModel.Grade;
......@@ -506,12 +507,12 @@ namespace Edu.WebApi.Controllers.Course
var tempOrderGuestList = classModule.GetTempInvitationGuest(new Model.ViewModel.EduTask.RB_Temporary_Invitation_ViewModel {ClassTimeId=ID ,ClassId=classModel.ClassId});
var allOrderGuestList = new List<RB_Order_Guest_ViewModel>();
allOrderGuestList.AddRange(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)))));
allOrderGuestList.AddRange(orderGuestList.Where(x => x.GuestState ==GuestStateEnum.Normal || x.GuestState == GuestStateEnum.StopClassesApplyIng || ((x.GuestState == GuestStateEnum.StopClasses || x.GuestState == GuestStateEnum.Graduate) && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(timeModel.NewPlanDateTime)))));
var checkLogList = classModule.GetClassCheckList(new RB_Class_Check_ViewModel { ClassTimeId = ID, Group_Id = base.UserInfo.Group_Id, School_Id = -1, ClassId = classModel.ClassId });
if (tempOrderGuestList != null&& tempOrderGuestList.Any())
{
allOrderGuestList.AddRange(tempOrderGuestList.Where(x => x.GuestState == 1 || x.GuestState == 6 || ((x.GuestState == 5 || x.GuestState == 7) &&x.ClassTimeId==ID&&x.ClassId==classModel.ClassId && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(timeModel.NewPlanDateTime)))));
allOrderGuestList.AddRange(tempOrderGuestList.Where(x => x.GuestState == GuestStateEnum.Normal || x.GuestState == GuestStateEnum.StopClassesApplyIng || ((x.GuestState == GuestStateEnum.StopClasses || x.GuestState == GuestStateEnum.Graduate) &&x.ClassTimeId==ID&&x.ClassId==classModel.ClassId && x.ChangeEffectTime.HasValue && Convert.ToDateTime(Common.ConvertHelper.FormatDate(x.ChangeEffectTime)) >= Convert.ToDateTime(Common.ConvertHelper.FormatDate(timeModel.NewPlanDateTime)))));
}
foreach (var item in allOrderGuestList)
......
......@@ -281,7 +281,8 @@ namespace Edu.WebApi.Controllers.Course
RenewSlPrice = base.ParmJObj.GetDecimal("RenewSlPrice"),
Saleplat = base.ParmJObj.GetStringValue("Saleplat"),
IsKCourse = base.ParmJObj.GetInt("IsKCourse"),
ClassHours = base.ParmJObj.GetDecimal("ClassHours")
ClassHours = base.ParmJObj.GetDecimal("ClassHours"),
CourseRate = (CourseRateEnum)base.ParmJObj.GetInt("CourseRate"),
};
try
{
......@@ -296,7 +297,7 @@ namespace Edu.WebApi.Controllers.Course
}
catch (Exception ex)
{
Common.Plugin.LogHelper.Write(ex, "SetCourse");
}
extModel.CreateTime = DateTime.Now;
extModel.CreateBy = base.UserInfo.Id;
......
......@@ -4,6 +4,7 @@ using System.Linq;
using Edu.Cache.User;
using Edu.Common.API;
using Edu.Common.Enum.Course;
using Edu.Common.Enum.Finance;
using Edu.Common.Enum.Sale;
using Edu.Common.Plugin;
using Edu.Model.ViewModel.Course;
......@@ -1038,7 +1039,7 @@ namespace Edu.WebApi.Controllers.Course
{
OrderId = base.ParmJObj.GetInt("OrderId"),
ClassId = base.ParmJObj.GetInt("ClassId"),
GuestState = base.ParmJObj.GetInt("GuestState"),
GuestState =(GuestStateEnum)base.ParmJObj.GetInt("GuestState"),
GuestName = base.ParmJObj.GetStringValue("GuestName"),
SourceId = base.ParmJObj.GetInt("SourceId"),
};
......@@ -1049,15 +1050,12 @@ namespace Edu.WebApi.Controllers.Course
{
x.Id,
x.GuestName,
x.GuestState,
x.OrderId,
x.GuestStateStr,
x.Profession,
x.Sex,
SexStr = x.Sex == 1 ? "男" : "女",
x.Age,
BirthDate = Common.ConvertHelper.FormatDate(x.BirthDate),
x.TotalHours,
x.Mobile,
x.Basics,
x.Education,
......@@ -1098,6 +1096,19 @@ namespace Edu.WebApi.Controllers.Course
x.ContractType,
x.ContractUrl,
x.ContractUrlList,
x.TotalHours,
x.ValidClassHours,
x.CompleteHours,
x.MakeUpHours,
SurplusHours=x.TotalHours-x.CompleteHours,
x.GuestState,
x.GuestStateStr,
GraduationTime = Common.ConvertHelper.FormatDate(x.GraduationTime),
BackClassList = x?.GuestEduReceiptList?.Where(qitem => qitem.ReceiptType == ReceiptTypeEnum.BackClass)?.ToList(),
StopClassList = x?.GuestEduReceiptList?.Where(qitem => qitem.ReceiptType == ReceiptTypeEnum.StopClass)?.ToList(),
InvitationClassList = x?.GuestEduReceiptList?.Where(qitem => qitem.ReceiptType == ReceiptTypeEnum.InvitationClass)?.ToList(),
OrderTransClassList = x?.GuestEduReceiptList?.Where(qitem => qitem.ReceiptType == ReceiptTypeEnum.OrderTransClass)?.ToList(),
OrderSplitClassList = x?.GuestEduReceiptList?.Where(qitem => qitem.ReceiptType == ReceiptTypeEnum.OrderSplitClass)?.ToList(),
});
return ApiResult.Success("", pageModel);
}
......@@ -1159,7 +1170,7 @@ namespace Edu.WebApi.Controllers.Course
contractList = Common.Plugin.JsonHelper.DeserializeObject<List<string>>(contract);
}
dmodel.ContractUrl = Common.Plugin.JsonHelper.Serialize(contractList);
dmodel.GuestState = 1;
dmodel.GuestState = GuestStateEnum.Normal;
dmodel.Status = 0;
dmodel.Group_Id = userInfo.Group_Id;
dmodel.School_Id = userInfo.School_Id;
......
......@@ -377,10 +377,13 @@ namespace Edu.WebApi.Controllers.Course
item.EventlogNum,
item.GuestState,
item.GuestStateStr,
GraduationTime = Common.ConvertHelper.FormatDate(item.GraduationTime),
item.School_Id,
item.JoinType,
item.JoinTypeStr,
item.Student_Id
item.Student_Id,
item.CourseRate,
CourseRateName=item.CourseRate.ToName().Replace("课程",""),
});
}
pageModel.Count = rowsCount;
......
......@@ -93,7 +93,10 @@ namespace Edu.WebApi.Controllers.EduTask
var timeList = model.ClassTimeIds.Split(",");
var orderGuestList = model.OrderGuestIds.Split(",");
var receiptList = educationReceiptModule.GetEducationReceiptList(string.Join(",", studentTempIvvitationList.Select(x => x.Id)));
var receiptList = educationReceiptModule.GetEducationReceiptListModule(new EducationReceiptQuery()
{
QRelationIds = string.Join(",", studentTempIvvitationList.Select(x => x.Id))
});
foreach (var item in studentTempIvvitationList)
{
var receiptModel = receiptList.Where(x => x.RelationId == item.Id).FirstOrDefault();
......
......@@ -60,6 +60,7 @@ namespace Edu.WebApi.Controllers.Exam
QStartTime = base.ParmJObj.GetStringValue("QStartTime"),
QEndTime=base.ParmJObj.GetStringValue("QEndTime"),
QExamineStatus=-1,
QCreateBy=base.ParmJObj.GetInt("QCreateBy"),
};
if (!string.IsNullOrEmpty(base.ParmJObj.GetStringValue("QExamineStatus")))
{
......
......@@ -51,25 +51,27 @@ namespace Edu.WebApi.Timers
static System.Timers.Timer examTimer;//考卷定时处理
static System.Timers.Timer finishGuest;//处理学生毕业状态
public static void RunTimer()
{
timer1 = new System.Timers.Timer
{
Interval = 1000 * (60 * 60) * 3 //60分钟
Interval = (1000 * 60) * (60 * 3) //3销售
};
timer1.Elapsed += new System.Timers.ElapsedEventHandler(ClearFile);
timer1.Enabled = true;
timer2 = new System.Timers.Timer
{
Interval = (1000 * 60) * (1 * 60) //1小时执行一次
Interval = (1000 * 60) * (60 * 1) //1小时执行一次
};
timer2.Elapsed += new System.Timers.ElapsedEventHandler(DealDuty);
timer2.Enabled = true;
timer3 = new System.Timers.Timer()
{
Interval = (1000 * 60) * (1 * 60 * 6) //6小时执行一次
Interval = (1000 * 60) * (60 * 6) //6小时执行一次
};
timer3.Elapsed += new System.Timers.ElapsedEventHandler(DealOrderEffectStatus);
timer3.Enabled = true;
......@@ -77,24 +79,31 @@ namespace Edu.WebApi.Timers
timer4 = new System.Timers.Timer()
{
Interval = (1000 * 60) * (1 * 10 ) //1小时执行一次
Interval = (1000 * 60) * (1 * 10 ) //10分中执行一次
};
timer4.Elapsed += new System.Timers.ElapsedEventHandler(UpdateAuditThroughStudent);
timer4.Enabled = true;
changeOrder = new System.Timers.Timer()
{
Interval = (1000 * 60) * (1 * 10) //10分钟执行一次
Interval = (1000 * 60) * (1 * 20) //20分钟执行一次
};
changeOrder.Elapsed += new System.Timers.ElapsedEventHandler(BatchDealChangeOrder);
changeOrder.Enabled = true;
examTimer = new System.Timers.Timer()
{
Interval = (1000 * 60) * (1 * 5) //5分钟执行一次
Interval = (1000 * 60) * (1 * 30) //30分钟执行一次
};
examTimer.Elapsed += new System.Timers.ElapsedEventHandler(DealExamPublich);
examTimer.Enabled = true;
finishGuest = new System.Timers.Timer()
{
Interval = (1000 * 60) * (60 * 23) //23小时执行一次
};
finishGuest.Elapsed += new System.Timers.ElapsedEventHandler(DealGuestFinish);
finishGuest.Enabled = true;
}
public static void RunStop()
......@@ -105,6 +114,7 @@ namespace Edu.WebApi.Timers
timer4.Enabled = false;
changeOrder.Enabled = false;
examTimer.Enabled = false;
finishGuest.Enabled = false;
}
/// <summary>
......@@ -116,6 +126,21 @@ namespace Edu.WebApi.Timers
private static int inTimer4 = 0;
private static int changeOrder_Timer = 0;
private static int examPublish_Timer = 0;
private static int guestfinish_Timer = 0;
/// <summary>
/// 处理学员毕业状态
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public static void DealGuestFinish(object sender, System.Timers.ElapsedEventArgs e)
{
if (Interlocked.Exchange(ref guestfinish_Timer, 1) == 0)
{
orderModule.DealGuestStateModule();
Interlocked.Exchange(ref guestfinish_Timer, 0);
}
}
/// <summary>
/// 处理值班数据
......@@ -209,7 +234,7 @@ namespace Edu.WebApi.Timers
}
// <summary>
/// <summary>
/// 定时处理停课申请生效日期以及学员的上课状态
/// </summary>
/// <param name="sender"></param>
......
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