public ActionResult AddCourseAtivity(Course_UnitContent model) { Course_UnitContentBLL bll = new Course_UnitContentBLL(); int id = bll.Add(model); if (id > 0) { return Json(new { Result = true, UnitContent = id, Msg = "新增成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, UnitContent = id, Msg = "新增失败!" }, JsonRequestBehavior.AllowGet); } }
/// <summary> /// 分页查询所有的活动信息 /// </summary> /// <param name="iUnitContentId"></param> /// <returns></returns> private List<Course_UnitContent> GetCourseUnitContentActivities(int iTrainingId = 0) { var List_Course_UnitContent = new List<Course_UnitContent>(); var unitContentbll = new Course_UnitContentBLL(); var stbSqlWhere = new StringBuilder(); var strOrderBy = "Course_UnitDetail.Id,Course_UnitContent.Sort"; if (iTrainingId > 0) stbSqlWhere.AppendFormat("Course_UnitDetail.TrainingId = {0}", iTrainingId); List_Course_UnitContent = unitContentbll.GetListOther(stbSqlWhere.ToString(), strOrderBy); //按照页面排列 章-节-活动 return List_Course_UnitContent; }
/// <summary> /// 获取当前[章]的进度是否已完成 /// </summary> /// <param name="iUnitId">当前节ID</param> /// <param name="iClassId">当前登录用户的班级ID</param> /// <param name="iTrainingId">当前课程ID</param> /// <param name="iAccountId">当前登录用户ID</param> /// <param name="iPartOverCount">已完成的[节]的数量</param> /// <returns></returns> private bool GetChapterProgress(int iUnitId, int iClassId, int iTrainingId, int iAccountId) { var UnitContentBll = new Course_UnitContentBLL(); var Member_ClassUnitContentSchedulebll = new Member_ClassUnitContentScheduleBLL(); int iActivityTotalCount = 0; var strActitityId = string.Empty;//活动的Id //获取最外层的章的ID,得到该章下面所有的节 var Molde_Course_UnitDetail = this.GetCourse_UnitDetail(iUnitId, iTrainingId); if (Molde_Course_UnitDetail != null) { //根据课程ID和最外层的章的ID, 获取该[章]下面所有的活动 string strWhere = string.Format(@" UnitId IN (Select Course_UnitDetail.Id from Course_UnitDetail where (Id = {0} OR parentId = {0}) AND TrainingId = {1} AND Display = 1 AND Delflag = 0) AND Display=1 AND Delflag=0", Molde_Course_UnitDetail.Id, iTrainingId); List<Course_UnitContent> List_Course_UnitContent = UnitContentBll.GetList(strWhere, "Sort"); iActivityTotalCount = List_Course_UnitContent.Count;//得到该[章],[节]下面所有的活动数 if (iActivityTotalCount <= 0)//当[章],[节]下面没有活动时,默认该章未完成 return false; //获取活动的Id foreach (var item in List_Course_UnitContent) { strActitityId += item.Id + ","; } strActitityId = strActitityId.Substring(0, strActitityId.LastIndexOf(',')); //联合Member_ClassUnitContentSchedule 查看当前用户有没有将当前小章节的课程学习完 var strWhere_Activity = string.Format(@" Status = 1 AND Delflag = 0 AND ClassId = {0} AND TrainingId = {1} AND AccountId = {2} AND UnitContent IN ({3})", iClassId, iTrainingId, iAccountId, strActitityId); //已完成的[章],[节]下面的活动数 var iOutPartOverCount = Member_ClassUnitContentSchedulebll.GetList(strWhere_Activity, "Id").Count; return iActivityTotalCount == iOutPartOverCount;//当前章节下所有活动已完成学习,若相等,该[章]完成 } else { return false; } }
/// <summary> /// 刷新活动时间记录 /// </summary> /// <param name="ClassId"></param> /// <param name="TrainingId"></param> /// <param name="UnitContent"></param> /// <returns></returns> public ActionResult RefashTimeRecord(int ClassId, int TrainingId, int UnitContent, int RecordId) { int iUnitId = 0, iUnitType = 0, iAccountId = 0; double dblContentTimeLength = 0; var TimeRecordBll = new Member_ClassContentTimeRecordBLL(); var UnitContentBll = new Course_UnitContentBLL(); var Model_UnitContent = UnitContentBll.GetModel(UnitContent, string.Empty); if (Model_UnitContent == null) return View(); iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; iUnitId = Model_UnitContent.UnitId == null ? 0 : Model_UnitContent.UnitId.Value; iUnitType = Model_UnitContent.UnitType; dblContentTimeLength = Model_UnitContent.TimeLength == null ? 0 : Model_UnitContent.TimeLength.Value; var Model_TimeRecord = TimeRecordBll.GetModel(RecordId, string.Empty); if (Model_TimeRecord != null) { Model_TimeRecord.EndTime = DateTime.Now; TimeRecordBll.Update(Model_TimeRecord); var startDateTime = Model_TimeRecord.StartTime.Value.AddMinutes(dblContentTimeLength); var dtCompare = DateTime.Compare(Model_TimeRecord.EndTime.Value, startDateTime); if (dtCompare >= 0)//若结束时间 >= 开始时间 + 活动限时,即完成该活动 { //更新活动进度 this.UpdateOverallProgress(iUnitId, ClassId, TrainingId, iAccountId, UnitContent); //若活动是阅读或者视频[1文本,2影音教材,3讨论,4作业,5测试,6结业考试] if (iUnitType == 1 || iUnitType == 2) { this.ScoreSet(1, UnitContent, ClassId, TrainingId);//设置分数 } } } return View(); }
/// <summary> /// 讨论新增 /// </summary> /// <param name="model"></param> /// <returns></returns> public ActionResult EditCourseUnitReply(Course_UnitReplyDetail model) { //此处借用model.AttList传递TrainingId if (this.GetCourseIsOver(model.ClassId, int.Parse(model.AttList), model.AccountId)) return Json(new { Result = false, Msg = "提交失败.当前课程已结束,不能执行该操作!" }, JsonRequestBehavior.AllowGet); model.AttList = string.Empty; var UnitContentBll = new Course_UnitContentBLL(); var ReplyBll = new Course_UnitReplyDetailBLL(); var Model_UnitContent = UnitContentBll.GetModel(model.UnitContent, string.Empty); var iUnitType = Model_UnitContent.UnitType;//[1文本,2影音教材,3讨论,4作业,5测试,6结业考试] if (model.Id == 0)//新增 { model.Delflag = false; model.Display = true; model.CreateDate = DateTime.Now; if (iUnitType == 3)//仅当活动为讨论时,计分(视频下的讨论不再记分) this.ScoreSet(2, 0, 0, 0, true, model);//设置分数并更新讨论的进度 if (ReplyBll.Add(model)) { return Json(new { Result = true, Msg = "提交成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = true, Msg = "提交失败!" }, JsonRequestBehavior.AllowGet); } } else//[删除] 修改DelFlag = 1 { if (model.ParentReplyId == 0) { if (ReplyBll.Update(model.Id)) { if (iUnitType == 3)//仅当活动为讨论时,计分(视频下的讨论不再记分) this.ScoreSet(2, 0, 0, 0, false, model);//设置分数并更新讨论的进度 return Json(new { Result = true, Msg = "话题删除成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "话题删除失败!" }, JsonRequestBehavior.AllowGet); } } else { if (ReplyBll.Update(model.Id)) { if (iUnitType == 3)//仅当活动为讨论时,计分(视频下的讨论不再记分) this.ScoreSet(2, 0, 0, 0, false, model);//设置分数并更新讨论的进度 return Json(new { Result = true, Msg = "回复删除成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "回复删除失败!" }, JsonRequestBehavior.AllowGet); } } } }
/// <summary> /// 设置分数 /// </summary> /// <param name="iUnitType">//1阅读,2讨论 /// <param name="IsAdd">True:新增 False:删除</param> /// <param name="obj">数据对象</param> private void ScoreSet(int iUnitType, int? iUnitContent = 0, int iClassId = 0, int iTrainingId = 0, bool IsAdd = false, Object obj = null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); var replyBll = new Course_UnitReplyDetailBLL(); int iPlanId = 0, iAccountId = 0, iUnitId = 0; double dblScore = 0; var stbSqlWhere = new StringBuilder(); if (iUnitType == 1) { iPlanId = Code.SiteCache.Instance.PlanId; iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; stbSqlWhere.AppendFormat(" ClassId = {0} AND TrainingId = {1} AND AccountId = {2} AND UnitContent = {3} AND Status = 1 AND Delflag = 0", iClassId, iTrainingId, iAccountId, iUnitContent); var List_Schedule = scheduleBll.GetList(stbSqlWhere.ToString(), string.Empty); if (List_Schedule != null && List_Schedule.Count > 0 && List_Schedule[0].score == null)//当存在记录,并且Score=null时记录分数 { Web.Code.ScoreSetHelper.ScoreSet(iUnitContent, iUnitType, iClassId, iPlanId, iAccountId, dblScore); } } else if (iUnitType == 2)//讨论 参与次数要 >=1 { var model = obj as Course_UnitReplyDetail; iUnitContent = model.UnitContent; iClassId = model.ClassId; iPlanId = Code.SiteCache.Instance.PlanId; iAccountId = model.AccountId; stbSqlWhere.AppendFormat(" ClassId = {0} AND AccountId = {1} AND UnitContent = {2} AND Display = 1 AND Delflag = 0", iClassId, iAccountId, iUnitContent); var List_ReplyDetail = replyBll.GetList(stbSqlWhere.ToString(), string.Empty); if (List_ReplyDetail != null) { if (IsAdd) { if (List_ReplyDetail.Count <= 0) { Web.Code.ScoreSetHelper.ScoreSet(iUnitContent, iUnitType, iClassId, iPlanId, iAccountId, dblScore, true); } } else { Web.Code.ScoreSetHelper.ScoreSet(iUnitContent, iUnitType, iClassId, iPlanId, iAccountId, dblScore, false); } } //获取当前活动的UnitId var unitContentBll = new Course_UnitContentBLL(); var Model_UnitContent = unitContentBll.GetModel(iUnitContent.Value, string.Empty); iUnitId = Model_UnitContent.UnitId == null ? 0 : Model_UnitContent.UnitId.Value; //获取TrainingId var unitDetailBll = new Course_UnitDetailBLL(); var Model_UnitDetail = unitDetailBll.GetModel(iUnitId, string.Empty); iTrainingId = Model_UnitDetail.TrainingId == null ? 0 : Model_UnitDetail.TrainingId.Value; //更新总进度 this.UpdateOverallProgress(iUnitId, iClassId, iTrainingId, iAccountId, iUnitContent.Value);//分数添加之后更新总进度 } }
/// <summary> /// 在线学习-结业考试提交 /// </summary> /// <returns></returns> public ActionResult LearnOnLineExamEdit(List<Member_CourseContentTestAnswerOther> listOther) { var TestAnswerResultBll = new Member_CourseContentTestAnswerResultBLL(); var unitBll = new Course_UnitContentBLL(); var stbSqlWhere = new StringBuilder(); var strOrderBy = "CreateDate"; int iTrainingId = 0, iId = 0; var Model_ExamAnswerResult = this.GetLearnOnLineExamResult(listOther, out iTrainingId); if (Model_ExamAnswerResult == null) { return Json(new { Result = true, Msg = "试题提交异常!" }, JsonRequestBehavior.AllowGet); } //若课程已结束禁止操作 if (this.GetCourseIsOver(Model_ExamAnswerResult.ClassId, iTrainingId, Model_ExamAnswerResult.AccountId)) return Json(new { Result = true, Msg = "提交失败.当前课程已结束,不能执行该操作!" }, JsonRequestBehavior.AllowGet); //查看当前活动是否已打分,若已打分则禁止操作 if (this.GetActivityScore(Model_ExamAnswerResult.ClassId, iTrainingId, Model_ExamAnswerResult.AccountId, Model_ExamAnswerResult.UnitContent)) return Json(new { Result = false, Msg = "提交失败.当前活动已打分,不能执行该操作!" }, JsonRequestBehavior.AllowGet); //提交时,判断其剩余考试次数 var model = unitBll.GetModel(Model_ExamAnswerResult.UnitContent, string.Empty); stbSqlWhere.AppendFormat(@" UnitContent = {0} and AccountId = {1} and Delflag = 0", Model_ExamAnswerResult.UnitContent, Model_ExamAnswerResult.AccountId); var List_Result = TestAnswerResultBll.GetList(stbSqlWhere.ToString(), strOrderBy); if (List_Result.Count >= model.TestCnt && model.TestCnt != -1) { return Json(new { Result = true, Msg = "试题提交失败。你的结业考试 - [ " + model.Title + " ] 剩余答题次数不足!" }, JsonRequestBehavior.AllowGet); } //提交总分到表 Member_CourseContentTestAnswerResult bool bolResult = TestAnswerResultBll.Add(Model_ExamAnswerResult) > 0; iId = Model_ExamAnswerResult.Id; //提交数据到用户答案表 Member_CourseContentTestAnswer if (bolResult) { bolResult = this.SaveMember_CourseContentTestAnswer(listOther, iId); } if (bolResult) { SessionHelper sess = new SessionHelper(); sess.Remove("LearnOnLineExam"); int iUnitContent = Model_ExamAnswerResult.UnitContent; //更新总进度 this.UpdateOverallProgress(model.UnitId.Value, Model_ExamAnswerResult.ClassId, iTrainingId, Model_ExamAnswerResult.AccountId, iUnitContent); return Json(new { Result = true, Msg = "试题提交成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = true, Msg = "试题提交失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult IsSectionEditRename(int ParentId, string tilte, int CourseId) { bool IsSectionEditRename = new Course_UnitContentBLL().IsSectionEditRename(ParentId, tilte, CourseId); return Json(new { Data = IsSectionEditRename }, JsonRequestBehavior.AllowGet); }
public ActionResult CourseActivityQuizEdit(int TrainingId, int UnitId) { //ViewBag.Title = "测试编辑"; Course_DetailBLL bll_CourseDetail = new Course_DetailBLL(); Course_UnitContentBLL bll = new Course_UnitContentBLL(); Course_UnitQuestionBLL bll_UnitQuestion = new Course_UnitQuestionBLL(); //指定课程的课程ID ViewBag.TrainingId = TrainingId; //获取指定课程ID对应的课程单元信息 ViewBag.TrainingInfo = bll_CourseDetail.GetTrainingInfoById(Convert.ToInt32(TrainingId)); //获取测试Model ViewBag.ActivityQuizModel = bll.GetModel(Convert.ToInt32(UnitId), "Delflag = 0"); //指定单元活动是否已经添加试题 ViewBag.IsExistsQuizQues = bll_UnitQuestion.IsExistsQuizQues(Convert.ToInt32(UnitId)); return View(); }
public ActionResult IsActivityEditRename(int UnitId, int UnitType, string tilte, int UnitContent) { bool IsActivityEditRename = new Course_UnitContentBLL().IsActivityEditRename(UnitId, UnitType, tilte, UnitContent); return Json(new { Data = IsActivityEditRename }, JsonRequestBehavior.AllowGet); }
public ActionResult IsChapterAddRename(int TrainingId, string tilte) { bool IsChapterAddRename = new Course_UnitContentBLL().IsChapterAddRename(TrainingId, tilte); return Json(new { Data = IsChapterAddRename }, JsonRequestBehavior.AllowGet); }
public ActionResult GetUnitContentMaxOrder(int UnitId, int UnitType) { Course_UnitContentBLL bll = new Course_UnitContentBLL(); int Order = bll.GetUnitContentMaxOrder(UnitId, UnitType); return Json(new { MaxOrder = Order }, JsonRequestBehavior.AllowGet); }
/// <summary> /// 重新打分 /// </summary> /// <param name="classId"></param> /// <param name="planId"></param> /// <param name="accountId"></param> public static void resetScore(int classId, int planId) { var member_classBll = new Member_ClassRegisterBLL(); var classDetail = new Class_DetailBLL().GetModel(classId); var traningBll = new Traning_DetailBLL(); var traning_detail = traningBll.GetModel(classDetail.TraningId, ""); if (traning_detail == null) return; var courseBll = new Course_DetailBLL(); var cousre_detail = courseBll.GetList(" TrainingId=" + traning_detail.Id, ""); if (cousre_detail == null || cousre_detail.Count == 0) return; var unitContentBll = new Course_UnitContentBLL(); var memberList = member_classBll.GetList("Delflag=0 and ClassId=" + classId + " and PlanId=" + planId, ""); foreach (var memberModel in memberList) { var accountId = memberModel.AccountId; int total = 1; IList<Course_UnitContent> contentList = new List<Course_UnitContent>(); #region //重新计算阅读分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "1,2"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "1,2")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); int scoreCount = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue)//如果有值说明打过分 { scoreCount++; } } } if (scoreCount == total)//全部阅读过,给满分 { memberModel.ReadingScore = cousre_detail[0].ReadingRate; } else { memberModel.ReadingScore = cousre_detail[0].ReadingRate * scoreCount / total;//阅读数与总数折算 } } //重新计算讨论分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "3"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "3")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); int scoreCount = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue)//如果有值说明打过分 { scoreCount++; } } } if (scoreCount == total)//全部讨论过,给满分 { memberModel.DiscussScore = cousre_detail[0].DisscusRate; } else { memberModel.DiscussScore = cousre_detail[0].DisscusRate * scoreCount / total;//讨论数与总数折算 } } //如有分值,重新计算作业分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "4"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "4")); if (contentList != null) { var homeworkBll = new Course_UnitHomeWorkBLL(); double homeworkscore = 0; foreach (var item in contentList) { var scheduleModel = homeworkBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().Score.HasValue)//如果有值说明打过分 { homeworkscore += (scheduleModel.First().Score.Value * (cousre_detail[0].HomeWorkRate) / (total * 100)).ToDouble();//已打分数与总数折算 } } } memberModel.HomeWorkScore = homeworkscore; } //重新计算测试分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "5"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "5")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); double testscore = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue) { testscore += (scheduleModel.First().score.Value * (cousre_detail[0].QuestionRate) / (total * 100)).ToDouble(); } } } memberModel.TestingScore = testscore; } //重新计算考试分数 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "6"); contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "6")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); double examcore = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue) { examcore += (scheduleModel.First().score.Value * (cousre_detail[0].TestingRate) / (total * 100)).ToDouble(); } } } memberModel.ExaminationScore = examcore; } #endregion member_classBll.Update(memberModel); } }
/// <summary> /// /// </summary> /// <param name="objectId">单元ID</param> /// <param name="objectType">单元类型</param> /// <param name="classId">班级ID</param> /// <param name="planId">计划ID</param> /// <param name="accountId">成员ID</param> /// <param name="score">分值</param> public static void ScoreSet(int? objectId, int objectType, int classId, int planId, int accountId, double score, bool add = true) { dynamic objectBll; dynamic model; Member_ClassRegister memberModel; int total = 1; var member_classBll = new Member_ClassRegisterBLL(); var member_class = member_classBll.GetList(" Delflag=0 and ClassId=" + classId + " and PlanId=" + planId + " and AccountId=" + accountId, ""); if (member_class == null || member_class.Count == 0) return; memberModel = member_class.FirstOrDefault(); var traningBll = new Traning_DetailBLL(); var traning_detail = traningBll.GetModel(memberModel.TrainingId.Value, ""); if (traning_detail == null) return; var courseBll = new Course_DetailBLL(); var cousre_detail = courseBll.GetList(" Delflag=0 and TrainingId=" + traning_detail.Id, ""); if (cousre_detail == null || cousre_detail.Count == 0) return; var unitContentBll = new Course_UnitContentBLL(); var oldScore = 0.0; switch (objectType) { case 1://read objectBll = new Member_ClassUnitContentScheduleBLL(); model = objectBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + objectId, ""); if (model.Count > 0) { if (add) model[0].score = 1; else model[0].score = 0; objectBll.Update(model[0]);// } total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "1,2");//阅读视频类的单元活动数 if (total > 1) { if (add) memberModel.ReadingScore = (memberModel.ReadingScore.HasValue ? memberModel.ReadingScore.Value : 0) + (cousre_detail[0].ReadingRate / (total)).ToDouble(); else { if (memberModel.ReadingScore.HasValue && memberModel.ReadingScore.Value.ToInt() > 0) memberModel.ReadingScore = memberModel.ReadingScore.Value - (cousre_detail[0].ReadingRate / (total)).ToDouble(); } } else { if (add) memberModel.ReadingScore = cousre_detail[0].ReadingRate; else memberModel.ReadingScore = 0.0; } if (memberModel.ReadingScore > cousre_detail[0].ReadingRate) { memberModel.ReadingScore = cousre_detail[0].ReadingRate; } if (memberModel.ReadingScore < 0) { memberModel.ReadingScore = 0; } member_classBll.Update(memberModel);//更新班级成员考试分数总值 break; case 2://discuss objectBll = new Member_ClassUnitContentScheduleBLL(); model = objectBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " and UnitContent=" + objectId, ""); if (model.Count > 0) { if (add) model[0].score = 1; else model[0].score = 0; objectBll.Update(model[0]);// } total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "3");//讨论类的单元活动数 if (total > 1) { if (add) memberModel.DiscussScore = (memberModel.DiscussScore.HasValue ? memberModel.DiscussScore.Value : 0) + (cousre_detail[0].DisscusRate / (total)).ToDouble(); else { if (memberModel.ReadingScore.HasValue && memberModel.ReadingScore.Value.ToInt() > 0) memberModel.DiscussScore = memberModel.DiscussScore.Value - (cousre_detail[0].DisscusRate / (total)).ToDouble(); } } else { if (add) memberModel.DiscussScore = cousre_detail[0].DisscusRate; else memberModel.DiscussScore = 0.0; } if (memberModel.DiscussScore > cousre_detail[0].DisscusRate) { memberModel.DiscussScore = cousre_detail[0].DisscusRate; } if (memberModel.DiscussScore < 0) { memberModel.DiscussScore = 0; } member_classBll.Update(memberModel);//更新班级成员考试分数总值 break; case 3://homework #region objectBll = new Course_UnitHomeWorkBLL(); model = objectBll.GetModel(objectId.Value, ""); model.Score = score; model.ScoreCreater = SiteCache.Instance.ManagerId; objectBll.Update(model);//更新结果表 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "4");//作业类的单元活动数 if (total > 1) { memberModel.HomeWorkScore = (memberModel.HomeWorkScore.HasValue ? memberModel.HomeWorkScore.Value : 0) + (score * (cousre_detail[0].HomeWorkRate) / (total * 100)).ToDouble(); } else { memberModel.HomeWorkScore = (score * (cousre_detail[0].HomeWorkRate) / (100)).ToDouble(); } if (memberModel.HomeWorkScore > cousre_detail[0].HomeWorkRate) { memberModel.HomeWorkScore = cousre_detail[0].HomeWorkRate; } member_classBll.Update(memberModel);//更新班级成员作业分数总值 #endregion break; case 4://question #region objectBll = new Member_ClassUnitContentScheduleBLL(); model = objectBll.GetModel(objectId.Value, ""); oldScore = model.score == null ? 0 : model.score; model.score = score; objectBll.Update(model);//更新班级成员测试分数总值 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "5");//测试类的单元活动数 if (add)//第一次打分 { if (total > 1) { memberModel.TestingScore = (memberModel.TestingScore.HasValue ? memberModel.TestingScore.Value : 0) + (score * (cousre_detail[0].QuestionRate) / (total * 100)).ToDouble(); } else { memberModel.TestingScore = (score * (cousre_detail[0].QuestionRate) / (100)).ToDouble(); } } else//多次打分,重新计算 { var contentList = DataTableToListHelper<Course_UnitContent>.ConvertToModel(unitContentBll.GetUnitByClassAndUnitType(classId, "5")); if (contentList != null) { var scheduleBll = new Member_ClassUnitContentScheduleBLL(); double testscore = 0; foreach (var item in contentList) { var scheduleModel = scheduleBll.GetList("Delflag=0 and ClassId=" + classId + " and AccountId=" + accountId + " AND UnitContent=" + item.Id, ""); if (scheduleModel != null && scheduleModel.Count > 0) { if (scheduleModel.First().score.HasValue) { testscore += (scheduleModel.First().score.Value * (cousre_detail[0].QuestionRate) / (total * 100)).ToDouble(); } } } memberModel.TestingScore = testscore; } } if (memberModel.TestingScore > cousre_detail[0].QuestionRate) { memberModel.TestingScore = cousre_detail[0].QuestionRate; } member_classBll.Update(memberModel);//更新班级成员测试分数总值 #endregion break; case 5://examnation #region objectBll = new Member_ClassUnitContentScheduleBLL(); model = objectBll.GetModel(objectId.Value, ""); oldScore = model.score == null ? 0 : model.score; model.score = score; if (score >= 60)//考试大于等于60分算通过 memberModel.IsPass = true; objectBll.Update(model);//更新班级成员考试分数总值 total = unitContentBll.GetUnitCountByClassAndUnitType(classId, "6");//考试类的单元活动数 if (total > 1) { memberModel.ExaminationScore = (memberModel.ExaminationScore.HasValue ? memberModel.ExaminationScore.Value : 0) + (score * (cousre_detail[0].TestingRate) / (total * 100)).ToDouble(); } else { memberModel.ExaminationScore = (score * (cousre_detail[0].TestingRate) / (100)).ToDouble(); } if (memberModel.ExaminationScore > cousre_detail[0].TestingRate) { memberModel.ExaminationScore = cousre_detail[0].TestingRate; } member_classBll.Update(memberModel);//更新班级成员考试分数总值 #endregion break; case 6://comment #region objectBll = new Member_ClassRegisterBLL(); model = objectBll.GetList(" Delflag=0 and ClassId=" + classId + " and PlanId=" + planId + " and AccountId=" + accountId, "")[0]; model.CommentScore = (score * (cousre_detail[0].CommentRate) / (total * 100)).ToDouble(); objectBll.Update(model);//更新班级成员评价分数总值 #endregion break; default: break; } }
/// <summary> /// 获取页面活动的公共方法 /// </summary> /// <param name="bolNeedUpdateProgress">是否需要更新总进度</param> /// <returns></returns> private Course_UnitContent GetCourseUnitContentActivity(int TrainingId, int UnitContent, int ClassId, bool bolNeedUpdateProgress = true) { //获取所有的阅读信息 var courseBll = new Course_UnitContentBLL(); var DetailBll = new Traning_DetailBLL(); var List_Course_UnitContent = new List<Course_UnitContent>(); var Model_Course_UnitContent = new Course_UnitContent(); var stbSqlWhere = new StringBuilder(); var strOrderBy = "Sort"; int iAccountId = 0, iUnitId = 0; iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; stbSqlWhere.Append(" 1 = 1"); if (TrainingId > 0) stbSqlWhere.AppendFormat(" AND Course_UnitDetail.TrainingId = {0}", TrainingId); if (UnitContent > 0) stbSqlWhere.AppendFormat(" AND Course_UnitContent.Id = {0}", UnitContent); List_Course_UnitContent = courseBll.GetListOther(stbSqlWhere.ToString(), strOrderBy); if (List_Course_UnitContent != null && List_Course_UnitContent.Count == 1) Model_Course_UnitContent = List_Course_UnitContent[0]; //根据 TrainingId 获取 Title var Model_Traning_Detail = DetailBll.GetModel(TrainingId, string.Empty); ViewBag.TraningDetailTitle = Model_Traning_Detail.Title; ViewBag.UnitId = iUnitId = Model_Course_UnitContent.UnitId.Value; ViewBag.AccountId = iAccountId; ViewBag.ClassId = ClassId; ViewBag.TrainingId = TrainingId; ViewBag.UnitContent = UnitContent = Model_Course_UnitContent.Id; ViewBag.Model_Course_UnitContent = Model_Course_UnitContent; if (bolNeedUpdateProgress && List_Course_UnitContent != null && List_Course_UnitContent.Count > 0) { //更新总体进度 this.UpdateOverallProgress(iUnitId, ClassId, TrainingId, iAccountId, UnitContent); } return Model_Course_UnitContent; }
public ActionResult CourseActivityVideoEdit(int TrainingId, int UnitId) { //ViewBag.Title = "影音教材编辑"; Course_DetailBLL bll_CourseDetail = new Course_DetailBLL(); Course_UnitContentBLL bll = new Course_UnitContentBLL(); //指定课程的课程ID ViewBag.TrainingId = TrainingId; //获取指定课程ID对应的课程单元信息 ViewBag.TrainingInfo = bll_CourseDetail.GetTrainingInfoById(Convert.ToInt32(TrainingId)); //获取影音教材Model ViewBag.ActivityVideoModel = bll.GetModel(Convert.ToInt32(UnitId), "Delflag = 0"); return View(); }
/// <summary> /// 获取[结业考试]结果 /// </summary> /// <param name="listOther"></param> /// <returns></returns> private Member_CourseContentTestAnswerResult GetLearnOnLineExamResult(List<Member_CourseContentTestAnswerOther> listResultOther, out int TrainingId) { var strVerson = string.Empty; int iUnitContent = 0, iClassId = 0, iAccountId = 0, iQuestionCnt = 0, iRightAnswer = 0, iWrongAnswer = 0, iTrainingId = 0; double dblScore = 0, dblTestTotalScore = 0; var bolResult = false; var unitContentBll = new Course_UnitContentBLL(); var Model_ExamResult = new Member_CourseContentTestAnswerResult();//保存总分 var Model_ExamAnswer = new Member_CourseContentTestAnswer(); if (listResultOther.Count > 0) { iTrainingId = listResultOther[0].TrainingId; iClassId = listResultOther[0].ClassId; iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; iUnitContent = listResultOther[0].UnitContentId;//一批题目的UnitContentId相同 } TrainingId = iTrainingId; var List_Course_UnitTest = this.GetExamCourseUnitTest(iTrainingId); iQuestionCnt = List_Course_UnitTest.Count;//总题数 strVerson = List_Course_UnitTest[0].Verson; foreach (var item in listResultOther) { var modelUnitTest = List_Course_UnitTest.Find(x => x.Id == item.Id); if (modelUnitTest.QTtype == 4)//问答题 { iRightAnswer++; } else { if (item.Answer.Trim() == modelUnitTest.Answer.Trim())//答案正确 { iRightAnswer++; dblScore += modelUnitTest.Credit.Value;//用户得分 } else//答案错误 { iWrongAnswer++; } dblTestTotalScore += modelUnitTest.Credit.Value;//所有题目的总分数 } } //获取学员是否过关 var Model_Content = unitContentBll.GetModel(iUnitContent, string.Empty); bolResult = iRightAnswer >= Model_Content.PassLine; Model_ExamResult.Verson = strVerson; Model_ExamResult.UnitContent = iUnitContent; Model_ExamResult.ClassId = iClassId; Model_ExamResult.Score = dblScore; Model_ExamResult.QuestionCnt = iQuestionCnt; Model_ExamResult.RightAnswer = iRightAnswer; Model_ExamResult.WrongAnswer = iWrongAnswer; Model_ExamResult.Result = bolResult; Model_ExamResult.AccountId = iAccountId; Model_ExamResult.Delflag = false; Model_ExamResult.CreateDate = DateTime.Now; return Model_ExamResult; }
public ActionResult DeleteCourseAtivity(int id) { Course_UnitContentBLL bll = new Course_UnitContentBLL(); Member_ClassUnitContentScheduleBLL bll_Sch = new Member_ClassUnitContentScheduleBLL(); if (bll.Delete(id) && bll_Sch.Delete(id)) { return Json(new { Result = true, Msg = "删除成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "删除失败!" }, JsonRequestBehavior.AllowGet); } }
/* * 进度汇总逻辑: * * 1.用户每次学习课程时需要往 Member_ClassUnitContentSchedule 中插入数据,作为当前的章节小进度. * 2.当当前章节所有的课程学习结束,需要判断当前在章节是否学习结束; * 3.在修改章节进度和总进度时,需要重新验证所有的章节进度是否已完成(可能存在章节追加的情况). * 4.若当前章节全部学习结束,需要在总进度表中 Member_ClassRegister 更改CurrentSchedule(当前章节进度),TotalSchedule(总课程进度). * * 所用表: select * from Member_ClassRegister select * from Course_UnitContent --1文本,2影音教材,3讨论,4作业 5测试,6结业考试 select * from Member_ClassUnitContentSchedule select * from Course_Detail select * from Course_UnitDetail * * [课程]下 分 [章]下 分 [节]下 分 [活动] * 同时也可以在[章]下面没有节,只有[活动],所以需要获取章下面所有的活动 */ /// <summary> /// 更新总体进度 /// </summary> /// <param name="iUnitId">当前[活动]所在[节]的ID</param> /// <param name="iClassId"></param> /// <param name="iTrainingId"></param> /// <param name="iAccountId"></param> /// <param name="iUnitContent"></param> private void UpdateOverallProgress(int iUnitId, int iClassId, int iTrainingId, int iAccountId, int iUnitContent) { var unitBll = new Course_UnitContentBLL(); var detailBll = new Class_DetailBLL(); var UnitDetailBll = new Course_UnitDetailBLL(); var ClassRegisterBll = new Member_ClassRegisterBLL(); var Member_ClassUnitContentSchedulebll = new Member_ClassUnitContentScheduleBLL(); int iOverChapterCount = 0, iChapterTotalCount = 0;//完成的[章]的数量,当前课程需要学习的[章]总数,该[章]已完成的[节]的数量(该章的进度) //用户的在线学习模块都要插入一条数据到Member_ClassUnitContentSchedule,作为当前小章节的学习进度 if (this.InsertMember_ClassUnitContentSchedule(iClassId, iTrainingId, iAccountId, iUnitContent)) { var List_Course_UnitDetail = UnitDetailBll.GetList(" ParentId = 0 AND Display = 1 AND Delflag = 0 AND TrainingId = " + iTrainingId, string.Empty); iChapterTotalCount = List_Course_UnitDetail.Count;//当前课程学员需要完成学习的总章数 foreach (var ChapterItem in List_Course_UnitDetail) { bool bolResult = this.GetChapterProgress(ChapterItem.Id, iClassId, ChapterItem.TrainingId.Value, iAccountId); if (bolResult)//当前[章]的进度 { iOverChapterCount++; } } //[Status] 1等待学校审核 2学校审核通过 3学校审核不通过 4开班机构审核通过 5开班机构审核不通过 int iPlanId = Code.SiteCache.Instance.PlanId; string strWhere = string.Format(@" AccountId = {0} AND ClassId = {1} AND PlanId = {2} and TrainingId = {3} and Delflag = 0 AND Status = 4", iAccountId, iClassId, iPlanId, iTrainingId); var List_Member_ClassRegister = ClassRegisterBll.GetList(strWhere, "CreateDate"); if (List_Member_ClassRegister != null && List_Member_ClassRegister.Count == 1) { var Model_Member_ClassRegister = List_Member_ClassRegister[0]; Model_Member_ClassRegister.CurrentSchedule = iOverChapterCount;//[章,节]完成数 Model_Member_ClassRegister.TotalSchedule = iChapterTotalCount;//课程总章,节数 Model_Member_ClassRegister.CreateDate = DateTime.Now; bool bolResult = ClassRegisterBll.Update(Model_Member_ClassRegister); } } }
public ActionResult DisplayCourseAtivity(int id) { Course_UnitContentBLL bll = new Course_UnitContentBLL(); Course_UnitContent model = bll.GetModel(id, "Delflag = 0"); //设置是否显示 if (model.Display) { model.Display = false; } else { model.Display = true; } if (bll.Update(model)) { return Json(new { Result = true, Display = model.Display }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Display = model.Display }, JsonRequestBehavior.AllowGet); } }
/// <summary> /// 在线学习-[单元测试]提交 /// </summary> /// <returns></returns> public ActionResult LearnOnLineQuizEdit(List<Member_CourseContentAnswerOther> listOther) { string strVerson = string.Empty; int iClassId = 0, iAccountId = 0, iPlanId = 0, iResultId = 0, iUnitContent = 0, iTrainingId = 0, iQuestionCnt = 0, iRightCount = 0, iWrongCount = 0; double dblScoreTotal = 0, dblGetScore = 0, dblResultScore = 0; var stbSqlWhere = new StringBuilder(); //获取 答题总数,答题正确的个数,答题错误的个数,结果 iQuestionCnt = listOther.Count;//总题数 bool bolResult = false; var unitQuesBll = new Course_UnitQuestionBLL(); var CourseContentAnswerBll = new Member_CourseContentAnswerBLL(); var unitBll = new Course_UnitContentBLL(); var Member_ClassUnitContentSchedulebll = new Member_ClassUnitContentScheduleBLL(); iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; iPlanId = Code.SiteCache.Instance.PlanId; //获取[单元测试]总得分 foreach (var item in listOther) { //获取该题目的正确答案 var Model_Ques = unitQuesBll.GetModel(item.Id, string.Empty); if (!string.IsNullOrEmpty(item.Credits)) { double dblCre = 0; double.TryParse(item.Credits, out dblCre); dblScoreTotal += dblCre;//获取所有题目的答案的总得分 if (item.Answer == Model_Ques.Answer) { iRightCount++;//正确答题数 dblResultScore += dblCre;//用户得分 } else iWrongCount++;//错误答题数 strVerson = item.Verson;//题目版本号,一批题目的版本号都一样 iUnitContent = item.UnitContentId;//一批题目的UnitContentId都一样 iClassId = item.ClassId;//一批题目的ClassId都一样 iTrainingId = item.TrainingId;//一批题目的TrainingId都一样 } } //若课程已结束禁止操作 if (this.GetCourseIsOver(iClassId, iTrainingId, iAccountId)) return Json(new { Result = true, Msg = "提交失败.当前课程已结束,不能执行该操作!" }, JsonRequestBehavior.AllowGet); ////查看当前活动是否已打分,若已打分则禁止操作[待删除.打分操作为自动打分,不作为判断条件] //if (this.GetActivityScore(iClassId, iTrainingId, iAccountId, iUnitContent)) // return Json(new { Result = false, Msg = "提交失败.当前活动已打分,不能执行该操作!" }, JsonRequestBehavior.AllowGet); //提交时,判断其剩余考试次数 stbSqlWhere.AppendFormat(@"UnitContent = {0} AND ClassId = {1} AND AccountId = {2} AND Delflag = 0", iUnitContent, iClassId, iAccountId); var ResultBll = new Member_ContentAnswerResultBLL(); var List_Member_ContentAnswerResult = ResultBll.GetList(stbSqlWhere.ToString()); int iRowsCount = List_Member_ContentAnswerResult.Tables[0].Rows.Count;//获取已考试的次数 var model = unitBll.GetModel(iUnitContent, string.Empty); if (iRowsCount >= model.TestCnt && model.TestCnt != -1) { return Json(new { Result = false, Msg = "试题提交失败。你的单元测试 - [ " + model.Title + " ] 剩余答题次数不足!" }, JsonRequestBehavior.AllowGet); } var ResultModel = new Member_ContentAnswerResult(); ResultModel.Verson = strVerson; ResultModel.UnitContent = iUnitContent; ResultModel.ClassId = iClassId; ResultModel.Score = decimal.Parse(dblResultScore.ToString());//用户的答题得分 ResultModel.QuestionCnt = iQuestionCnt; ResultModel.RightAnswer = iRightCount; ResultModel.WrongAnswer = iWrongCount; ResultModel.Result = bolResult; ResultModel.AccountId = iAccountId; ResultModel.Delflag = false; ResultModel.CreateDate = DateTime.Now; //将数据插入到总分表 bool bolRes = this.InsertMember_ContentAnswerResult(ResultModel, out iResultId); if (bolRes) { foreach (var itemQues in listOther) { //获取该题目的正确答案 var Model_Ques = unitQuesBll.GetModel(itemQues.Id, string.Empty); double dblGetCreTmp = 0; double.TryParse(itemQues.Credits, out dblGetCreTmp); //将用户的[单元测试]答案保存 Member_CourseContentAnswer Model_Answer = new Member_CourseContentAnswer(); Model_Answer.AnswerResult = iResultId; Model_Answer.Question = itemQues.Id; Model_Answer.Answer = itemQues.Answer; Model_Answer.Result = Model_Ques.Answer == itemQues.Answer;//比对正确答案 dblGetScore += Model_Ques.Answer == itemQues.Answer ? dblGetCreTmp : 0;//当前学员答题得分 Model_Answer.AccountId = iAccountId; Model_Answer.Delflag = false; Model_Answer.CreateDate = DateTime.Now; //将数据插入到学员答题内容表,用户的[课程评价]答案保存 bolRes = CourseContentAnswerBll.Add(Model_Answer); } } if (bolRes) { //更新总进度 this.UpdateOverallProgress(model.UnitId.Value, iClassId, iTrainingId, iAccountId, iUnitContent); //查询该学员的[单元测试]的成绩中最大分数的数据对象 var Model_ActivityMaxScore = this.GetActivityMaxScore(iClassId, iTrainingId, iAccountId, iUnitContent); if (Model_ActivityMaxScore != null) { var strWhere_Activity = string.Format(@" Status = 1 AND Delflag = 0 AND ClassId = {0} AND TrainingId = {1} AND AccountId = {2} AND UnitContent IN ({3})", iClassId, iTrainingId, iAccountId, iUnitContent); var List_ClassUnitContentSchedule = Member_ClassUnitContentSchedulebll.GetList(strWhere_Activity, "Id"); if (List_ClassUnitContentSchedule != null && List_ClassUnitContentSchedule.Count == 1) { var Model_ClassUnitContentSchedule = List_ClassUnitContentSchedule[0]; ScoreSetHelper.ScoreSet(Model_ClassUnitContentSchedule.Id, 4, iClassId, iPlanId, iAccountId, Model_ActivityMaxScore.Score.ToDouble(), Model_ClassUnitContentSchedule.score == null); } } return Json(new { Result = true, Msg = "单元测试提交成功!", TotalScore = dblGetScore }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, Msg = "单元测试提交失败!" }, JsonRequestBehavior.AllowGet); } }
public ActionResult EditCourseAtivity(Course_UnitContent model) { Course_UnitContentBLL bll = new Course_UnitContentBLL(); model.Display = true; if (bll.Update(model)) { return Json(new { Result = true, UnitContent = model.Id, Msg = "修改成功!" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Result = false, UnitContent = model.Id, Msg = "修改失败!" }, JsonRequestBehavior.AllowGet); } }
//作业列表 public ActionResult ClassTask(string classId, string unit, string status, int pageIndex = 1) { var param_classId = Dianda.Common.QueryString.Decrypt(classId).ToInt(); IList<Member_ClassRegister> list = new List<Member_ClassRegister> { }; var TrainingId = new Class_DetailBLL().GetModel(param_classId).TraningId; //作业单元 var classUnit = new Course_UnitContentBLL().GetList(" Display=1 and UnitType=4 and delflag=0 AND UnitId IN (SELECT id FROM dbo.Course_UnitDetail WHERE TrainingId=" + TrainingId + ")", "") ; var unitList = from c in classUnit select c; ViewBag.UnitList = unitList; int totalPage = 0; string param_status = "";//状态 switch (status) { case "-1"://未提交 param_status = @" and not EXISTS ( SELECT 1 FROM dbo.Course_UnitHomeWork cw JOIN dbo.Course_UnitContent cu ON cw.UnitContent = cu.Id WHERE m.AccountId = cw.AccountId AND cw.ClassId = m.ClassId AND cu.Id= {1} and cw.Delflag=0)"; break; case "0"://单元未得分 param_status = @" AND EXISTS ( SELECT 1 FROM dbo.Course_UnitHomeWork cw JOIN dbo.Course_UnitContent cu ON cw.UnitContent = cu.Id WHERE m.AccountId = cw.AccountId AND cw.ClassId = m.ClassId AND cu.Id= {1} AND isnull(cw.Score,0)=0 and cw.Delflag=0) AND not EXISTS ( SELECT 1 FROM dbo.Course_UnitHomeWork cw JOIN dbo.Course_UnitContent cu ON cw.UnitContent = cu.Id WHERE m.AccountId = cw.AccountId AND cw.ClassId = m.ClassId AND cu.Id= {1} AND isnull(cw.Score,0)!=0 and cw.Delflag=0)"; break; case "1"://单元已得分 param_status = @" AND EXISTS ( SELECT 1 FROM dbo.Course_UnitHomeWork cw JOIN dbo.Course_UnitContent cu ON cw.UnitContent = cu.Id WHERE m.AccountId = cw.AccountId AND cw.ClassId = m.ClassId AND cu.Id= {1} AND isnull(cw.Score,0)!=0 and cw.Delflag=0)"; break; default://全部 break; } var Course_UnitContentBLL = new Course_UnitContentBLL(); StringBuilder sbSql = new StringBuilder(); if (string.IsNullOrEmpty(unit)) { foreach (var item in unitList) { sbSql.AppendFormat(@"SELECT m.* , '{1}' as cqId, homeworkId = ( SELECT hw.id FROM dbo.Course_UnitHomeWork hw WHERE hw.AccountId = m.AccountId AND hw.ClassId = {0} AND hw.UnitContent = {1} and hw.Delflag=0 ) FROM dbo.Member_ClassRegister m LEFT JOIN dbo.Class_Detail d ON m.ClassId = d.Id LEFT JOIN dbo.Course_UnitDetail ud ON ud.TrainingId = d.TraningId LEFT JOIN Course_UnitContent uc ON uc.UnitId = ud.Id LEFT JOIN dbo.Member_Account ma ON m.AccountId = ma.Id WHERE m.status=4 AND m.Delflag=0 and m.ClassId = {0} AND uc.id = {1} " + param_status, param_classId, item.Id); sbSql.Append(" union "); } } else { sbSql.AppendFormat(@"SELECT m.* , '{1}' as cqId, homeworkId = ( SELECT hw.id FROM dbo.Course_UnitHomeWork hw WHERE hw.AccountId = m.AccountId AND hw.ClassId = {0} AND hw.UnitContent = {1} and hw.Delflag=0 ) FROM dbo.Member_ClassRegister m LEFT JOIN dbo.Class_Detail d ON m.ClassId = d.Id LEFT JOIN dbo.Course_UnitDetail ud ON ud.TrainingId = d.TraningId LEFT JOIN Course_UnitContent uc ON uc.UnitId = ud.Id LEFT JOIN dbo.Member_Account ma ON m.AccountId = ma.Id WHERE m.status=4 AND m.Delflag=0 and m.ClassId = {0} AND uc.id = {1}" + param_status, param_classId, unit); } if (sbSql.Length > 0) { if (sbSql.ToString().Contains("union")) { sbSql = sbSql.Remove(sbSql.ToString().LastIndexOf("union"), 5); } list = DataTableToListHelper<Dianda.AP.Model.Member_ClassRegister> .ConvertToModel(PagingQueryBll.GetPagingDataTable("(" + sbSql.ToString() + ") as tmp", " 1=1 ", "CreateDate", pageIndex, out totalPage, @"*")); } ViewBag.classId = classId; ViewBag.param_classId = param_classId; //分页 ViewBag.pageIndex = pageIndex; ViewBag.totalPage = totalPage; ViewBag.basecount = 10; var classModel = new Class_DetailBLL().GetModel(param_classId); if (classModel != null) { ViewBag.CourseName = new Traning_DetailBLL().GetModel(classModel.TraningId, "").Title; ViewBag.ClassName = classModel.Title; ViewBag.planId = classModel.PlanId; } return View(list); }
/// <summary> /// 获取页面活动的公共方法 /// </summary> /// <returns></returns> private Course_UnitContent GetCourseUnitContentActivity() { //获取所有的阅读信息 var courseBll = new Course_UnitContentBLL(); var DetailBll = new Traning_DetailBLL(); var List_Course_UnitContent = new List<Course_UnitContent>(); var Model_Course_UnitContent = new Course_UnitContent(); var stbSqlWhere = new StringBuilder(); var strOrderBy = "Sort"; int iClassId = 0, iTrainingId = 0, iAccountId = 0, iUnitContent = 0, iUnitId = 0; int.TryParse(Convert.ToString(Request["TrainingId"]) == "" ? "0" : QueryString.Decrypt(Request["TrainingId"]), out iTrainingId); int.TryParse(Convert.ToString(Request["UnitContent"]) == "" ? "0" : QueryString.Decrypt(Request["UnitContent"]), out iUnitContent); stbSqlWhere.Append(" 1 = 1 "); if (iTrainingId > 0) stbSqlWhere.AppendFormat("AND Course_UnitDetail.TrainingId = {0}", iTrainingId); if (iTrainingId > 0) stbSqlWhere.AppendFormat("AND Course_UnitContent.Id = {0}", iUnitContent); List_Course_UnitContent = courseBll.GetListOther(stbSqlWhere.ToString(), strOrderBy); if (List_Course_UnitContent != null && List_Course_UnitContent.Count == 1) Model_Course_UnitContent = List_Course_UnitContent[0]; //获取当前登录用户的班级和ID iAccountId = Code.SiteCache.Instance.LoginInfo.UserId; //根据 TrainingId 获取 Title var Model_Traning_Detail = DetailBll.GetModel(iTrainingId, string.Empty); ViewBag.TraningDetailTitle = Model_Traning_Detail.Title; ViewBag.AccountId = iAccountId; ViewBag.TrainingId = iTrainingId; ViewBag.UnitContent = iUnitContent = Model_Course_UnitContent.Id; ViewBag.Model_Course_UnitContent = Model_Course_UnitContent; return Model_Course_UnitContent; }