Commit 5b895040 authored by 黄奎's avatar 黄奎

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

parents 99f9ec08 733c02d8
......@@ -4803,12 +4803,24 @@ namespace Edu.Module.Course
{
List<object> RList = new List<object>();
//先获取最近7天上课计划
var planList = class_PlanRepository.GetStudyCourseReview(classId, day, group_Id);
var planList = class_PlanRepository.GetStudyCourseReview(classId, day + 1, group_Id);
if (planList.Any()) {
//获取上课时间
string planIds = string.Join(",", planList.Select(x => x.ClassPlanId));
var timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = group_Id, QClassPlanIds = planIds });
var MaxPlan = planList.OrderByDescending(x => x.ClassDate).FirstOrDefault();
if (MaxPlan.ClassDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
{
//查询上课时间 看这节课到底上没有上
var tlist = timeList.Where(x => x.ClassPlanId == MaxPlan.ClassPlanId).ToList();
string MaxTime = tlist.Max(x => x.EndTime);
if (DateTime.Now < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + MaxTime))
{
//当日课未结束 排除当天的
planList = planList.Where(x => x.ClassPlanId != MaxPlan.ClassPlanId).ToList();
}
}
planList = planList.OrderByDescending(x => x.ClassDate).Take(day).ToList();
foreach (var item in planList) {
var tlist = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
int Num = 1;
......@@ -4894,6 +4906,38 @@ namespace Edu.Module.Course
ReviewWord = ReviewNum
};
}
/// <summary>
/// 获取我已学习的课程计划
/// </summary>
/// <param name="classId"></param>
/// <param name="group_Id"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetMyStudyCourseList(int classId, int group_Id)
{
var planList = class_PlanRepository.GetStudyClassPlanList(classId, group_Id);
if (planList.Any()) {
string planIds = string.Join(",", planList.Select(x => x.ClassPlanId));
var timeList = class_TimeRepository.GetClassTimeListRepository(new RB_Class_Time_ViewModel() { Group_Id = group_Id, QClassPlanIds = planIds });
var MaxPlan = planList.OrderByDescending(x => x.ClassDate).FirstOrDefault();
if (MaxPlan.ClassDate.ToString("yyyy-MM-dd") == DateTime.Now.ToString("yyyy-MM-dd"))
{
//查询上课时间 看这节课到底上没有上
var tlist = timeList.Where(x => x.ClassPlanId == MaxPlan.ClassPlanId).ToList();
string MaxTime = tlist.Max(x => x.EndTime);
if (DateTime.Now < Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM-dd") + " " + MaxTime))
{
//当日课未结束 排除当天的
planList = planList.Where(x => x.ClassPlanId != MaxPlan.ClassPlanId).ToList();
}
}
planList = planList.OrderByDescending(x => x.ClassDate).ToList();
foreach (var item in planList) {
item.PlanTimeList = timeList.Where(x => x.ClassPlanId == item.ClassPlanId).ToList();
}
}
return planList;
}
#endregion
#region 上课反馈记录
......
......@@ -693,6 +693,23 @@ namespace Edu.Module.Course
return treeList;
}
/// <summary>
/// 获取课程章节树形列表
/// </summary>
/// <param name="query"></param>
/// <returns></returns>
public List<ChapterTree_ViewModel> GetChapterTreeListModule_V2(RB_Course_Chapter_ViewModel query)
{
var list = GetChapterListModule(query);
list.ForEach(x =>
{
Int32.TryParse(x.ChapterNo.Replace(".", ""), out int ChapterNo);
x.SerialNumber = ChapterNo;
});
List<ChapterTree_ViewModel> treeList = GetChapterChild_V2(list, 0);
return treeList;
}
public List<ChapterTree_ViewModel> GetMatchHoursChapterModule(int courseId, double currentHours)
{
var list = chapterRepository.GetMatchHoursChapterRepository(courseId, currentHours);
......@@ -764,6 +781,40 @@ namespace Edu.Module.Course
return resultList;
}
/// <summary>
/// 递归遍历所有章节
/// </summary>
/// <param name="sourceList">源数据</param>
/// <param name="parentId">父节点编号</param>
/// <returns></returns>
public List<ChapterTree_ViewModel> GetChapterChild_V2(List<RB_Course_Chapter_ViewModel> sourceList, int parentId)
{
List<ChapterTree_ViewModel> resultList = new List<ChapterTree_ViewModel>();
//获取下级节点
var subList = sourceList?.Where(qItem => qItem.ParentId == parentId).OrderBy(qitem => qitem.SerialNumber).ToList();
//如果存在下级节点
if (subList != null && subList.Count > 0)
{
foreach (var childItem in subList)
{
var childModel = new ChapterTree_ViewModel()
{
ChapterId = childItem.ChapterId,
ParentId = childItem.ParentId,
ChapterName = childItem.ChapterName,
ChapterNo = childItem.ChapterNo,
CourseId = childItem.CourseId,
ChildList = new List<ChapterTree_ViewModel>(),
OpenStatus = childItem.OpenStatus,
Progress = childItem.Progress
};
childModel.ChildList.AddRange(GetChapterChild_V2(sourceList, childItem.ChapterId));
resultList.Add(childModel);
}
}
return resultList;
}
/// <summary>
/// 批量导入课程章节信息
/// </summary>
......@@ -1031,7 +1082,6 @@ namespace Edu.Module.Course
bool flag = chapterRepository.Update(fileds, new WhereHelper(nameof(RB_Course_Chapter_ViewModel.ChapterId), ChapterId));
return flag;
}
#endregion
#region 课程讨论管理
......
......@@ -1207,5 +1207,21 @@ and a.ClassDate <='{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59'
order by a.ClassDate desc limit 1";
return Get<RB_Class_Plan_ViewModel>(sql).FirstOrDefault();
}
/// <summary>
/// 获取最近的上课计划
/// </summary>
/// <param name="classId"></param>
/// <param name="groupId"></param>
/// <returns></returns>
public List<RB_Class_Plan_ViewModel> GetStudyClassPlanList(int classId, int groupId)
{
string sql = $@"SELECT a.*,(select count(0) from rb_class_plan p where p.`Status`=0 and p.Group_Id ={groupId} and p.ClassId ={classId} and p.ClassDate < a.ClassDate) as LessonPlanNum
FROM rb_class_plan as a
WHERE a.`Status`=0 and a.Group_Id ={groupId} and a.ClassId ={classId}
and a.ClassDate <='{DateTime.Now.ToString("yyyy-MM-dd")} 23:59:59'
order by a.ClassDate desc";
return Get<RB_Class_Plan_ViewModel>(sql).ToList();
}
}
}
......@@ -501,6 +501,58 @@ namespace Edu.WebApi.Controllers.Applet
Words
});
}
/// <summary>
/// 获取学习课程章节列表
/// </summary>
/// <returns></returns>
[HttpPost]
public ApiResult GetMyStudyCourseChapterList() {
var appletUserInfo = base.AppletUserInfo;
JObject parms = JObject.Parse(base.RequestParm.Msg.ToString());
int ClassId = parms.GetInt("ClassId", 0);//班级ID
int CourseId = parms.GetInt("CourseId", 0);//课程ID
if (ClassId <= 0)
{
return ApiResult.ParamIsNull("请传递班级ID");
}
if (CourseId <= 0) {
return ApiResult.ParamIsNull("请传递课程ID");
}
//先获取计划列表
var planList = classModule.GetMyStudyCourseList(ClassId, appletUserInfo.Group_Id);
//查询章节列表 + 完成度 + 单词测试得分
var MaxChapterNo = planList.Max(x => x.LessonPlanNum);
//查询所有的章节
var chapterTreeList = courseModule.GetChapterTreeListModule_V2(new Model.ViewModel.Course.RB_Course_Chapter_ViewModel() { Group_Id = appletUserInfo.Group_Id, CourseId = CourseId });
var ctList = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) <= MaxChapterNo).ToList();
//章节单词得分
//组装数据
var RList = new List<object>();
foreach (var item in ctList)
{
//判断是否已经学习
var planModel = planList.Where(x => item.ChapterNo == x.LessonPlanNum.ToString()).FirstOrDefault();
int Num = 1;
RList.Add(new
{
planModel?.ClassPlanId,
ClassDate = planModel?.ClassDate.ToString("yyyy-MM-dd"),
CourseReview = planModel?.PlanTimeList.OrderBy(x => x.StartTime).Select(x => new
{
x.ClassTimeId,
Num = Num++,
x.SuiPai,
x.VideoUrl
}),
ChapterTree = item,
NextChapterNo = chapterTreeList.Where(x => Convert.ToInt32(x.ChapterNo) > Convert.ToInt32(item.ChapterNo)).OrderBy(x => Convert.ToInt32(x.ChapterNo)).FirstOrDefault()?.ChapterNo ?? ""
});
}
return ApiResult.Success("", RList);
}
#endregion
#region 我的课表
......
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