/// <summary> /// 根据学生id课程id及课时id,分页查询课时单元信息 /// </summary> /// <param name="search"></param> /// <returns></returns> public List <DtoLessonUnit> SelectUnitByNext(DtoLessonUnitSearch search) { StudentStudyBll bll = new StudentStudyBll(); //如果学生有这个课程进度 if (bll.GetProgressByStudentCourse(search.StudentID, search.CourseID) != null) { //获取课时单元信息数据并转换成动作对象 var list = UnitServer.SelectUnitsByNext(search).Select(u => (Yw_LessonUnitStepActions)UnitStepFactory.Create(u)).ToList(); //将数据转换成为dto模型 return(list.Select(u => new DtoLessonUnit() { CourseId = u.Yls_CourseId, LessonId = u.Yls_LessonId, Id = u.Yls_UnitId, Index = u.Yls_UnitIndex, Coins = u.Yls_Coins, Steps = u.Steps, Status = u.Yls_Status, CreateTime = u.Yls_CreateTime, UpdateTime = u.Yls_UpdateTime }).ToList()); } return(new List <DtoLessonUnit>()); }
/// <summary> /// 根据课时id获取后几条的单元(讲义) /// </summary> /// <param name="search">条件</param> /// <returns></returns> public List <Yw_LessonUnitStep> SelectUnitsByNext(DtoLessonUnitSearch search) { string countSql = "select max([Yls_UnitIndex]) from [Yw_LessonUnitStep] where [Yls_LessonId]=@lessonid and [Yls_CourseId]=@courseid and Yls_Status = 1"; string sql = $"select top({search.Pagination.PageSize})* from [Yw_LessonUnitStep] where [Yls_LessonId]=@lessonid and [Yls_CourseId]=@courseid and Yls_Status = 1 and Yls_UnitIndex >= {search.Pagination.PageIndex} order by [Yls_UnitIndex] asc "; var paras = new { courseid = search.CourseID, lessonid = search.LessonID }; search.Pagination.TotalCount = Query <int>(countSql, paras).FirstOrDefault(); return(Query(sql, paras).ToList()); }
public JsonResult GetLessonPage(DtoLessonUnitSearch search, bool isApprove = false) { LessonUnitBll bll = new LessonUnitBll(); search.StudentID = GetCurrentUser().StudentId;//设置当前学生id if (isApprove) { search.Pagination.PageSize = 1; } //如果是审批的情况,只返回一条数据 var pages = bll.SelectUnitByNext(search); List <int> mediaIDs = new List <int>(); List <int> textIDs = new List <int>(); var list = pages.Select(p => new Page() { pageId = p.Id, pageNum = p.Index, pageName = p.Name, coinsKey = Encrypt.EncryptQueryString($"{p.Coins}_{p.Id}_{p.LessonId}_{p.CourseId}"),//金币加密串(加密内容为"单元金币数_单元id_课时id_课程id")//Remark1 steps = p.Steps.Select(s => new Step() { stepNum = s.StepNum, actions = s.Actions.Select(a => ActionTranslator.DataToViewData(a, mediaIDs, textIDs)).ToList() }).ToList() }).ToList(); //如果媒体id或文本id有值的话 if (mediaIDs.Count > 0 || textIDs.Count > 0) { ResourceBll rbll = new ResourceBll(); var medias = rbll.GetMediaObjectByIdList(mediaIDs.Distinct().ToList(), true); //获取所有的媒体对象字典 var texts = rbll.GetTextObjectByIdList(textIDs.Distinct().ToList()); //获取文本对象字典 list.ForEach(p => { p.steps.ForEach(s => { s.actions.ForEach(a => { ActionTranslator.SetViewDataMedia(a, medias, texts); }); }); }); } return(Json(new JsonResponse <List <Page> > { State = true, ErrorCode = 0, ErrorMsg = "", Data = list })); }