/// <summary> /// 检测是否能报名 /// </summary> /// <param name="ClassId"></param> /// <returns></returns> public static bool CheckCanEnroll(int ClassId) { Class_Detail class_Detail = new Class_Detail(); Member_ClassRegisterBLL member_ClassRegisterBLL = new Member_ClassRegisterBLL(); Member_ClassRegister member_ClassRegister = new Member_ClassRegister(); member_ClassRegister.ClassId = ClassId; member_ClassRegister.PlanId = Code.SiteCache.Instance.PlanId; Class_DetailBLL class_DetailBLL = new Class_DetailBLL(); member_ClassRegister.TrainingId = class_DetailBLL.GetModel(ClassId).TraningId; member_ClassRegister.AccountId = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegister.Status = 1; member_ClassRegister.ManagerId = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegister.Delflag = false; member_ClassRegister.CreateDate = DateTime.Now; Course_UnitDetailBLL course_UnitDetailBLL = new Course_UnitDetailBLL(); member_ClassRegister.TotalSchedule = course_UnitDetailBLL.GetList(" TrainingId='" + class_DetailBLL.GetModel(ClassId).TraningId + "' and ParentId=0 and Display=1 and Delflag='false'", "").Count; List<Member_ClassRegister> listno = member_ClassRegisterBLL.GetList(" ClassId='" + ClassId + "' and AccountId='" + Code.SiteCache.Instance.LoginInfo.UserId + "' and delflag='false' and Status in (1,2,4)", ""); if (listno.Count > 0) { return false; } //List<Member_ClassRegister> listpass = member_ClassRegisterBLL.GetList(" TrainingId='" + member_ClassRegister.TrainingId + "' and AccountId='" + Code.SiteCache.Instance.LoginInfo.UserId + "' and delflag='false' and (Result=1 or (Result is NULL and Status=4))", ""); //if (listpass.Count > 0) //{ // return false; //} return true; }
/* * 进度汇总逻辑: * * 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 JsonResult ClassRegisterAll(int ClassId, string Members, string MembersNames) { Class_DetailBLL class_DetailBLL = new Class_DetailBLL(); string[] members = Members.Trim().Substring(1, Members.Length - 2).Split(','); string[] membersNames = MembersNames.Trim().Substring(1, MembersNames.Length - 2).Split(','); string names = ""; string namespass = ""; string namescannotmessage = ""; string message = ""; for (int i = 0; i < members.Length; i++) { Member_ClassRegisterBLL member_ClassRegisterBLL = new Member_ClassRegisterBLL(); Member_ClassRegister member_ClassRegister = new Member_ClassRegister(); List<Member_ClassRegister> listno = member_ClassRegisterBLL.GetList(" ClassId='" + ClassId + "' and AccountId='" + members[i] + "' and delflag='false' and Status in (1,2,4)", ""); if (listno.Count > 0) { names += membersNames[i] + ","; } List<Member_ClassRegister> listpass = member_ClassRegisterBLL.GetList(" TrainingId='" + member_ClassRegister.TrainingId + "' and AccountId='" + members[i] + "' and delflag='false' and (Result=1 or (Result is NULL and Status in(1,2,4)))", ""); if (listpass.Count > 0) { namespass += membersNames[i] + ","; } string checkmessage = IsCanRegisterAll(ClassId, false, Convert.ToInt32(members[i])); if (checkmessage != "") { namescannotmessage += membersNames[i] + checkmessage; } } if (names != "") { message += names.Trim(',') + "已报名该课程;"; } if (namespass != "") { message += namespass.Trim(',') + "已学过该课程;"; } if (namescannotmessage != "") { message += namescannotmessage; } if (message != "") { return Json(new { Code = -1, Msg = message }, JsonRequestBehavior.AllowGet); } else { Class_Detail class_Detail = new Class_Detail(); class_Detail = class_DetailBLL.GetModel(ClassId); class_Detail.People += members.Length; class_DetailBLL.Update(class_Detail); for (int i = 0; i < members.Length; i++) { Member_ClassRegisterBLL member_ClassRegisterBLL = new Member_ClassRegisterBLL(); Member_ClassRegister member_ClassRegister = new Member_ClassRegister(); member_ClassRegister.ClassId = ClassId; member_ClassRegister.PlanId = Code.SiteCache.Instance.PlanId; member_ClassRegister.TrainingId = class_DetailBLL.GetModel(ClassId).TraningId; member_ClassRegister.AccountId = Convert.ToInt32(members[i]); member_ClassRegister.Status = 2; member_ClassRegister.BatchCode = Guid.NewGuid(); member_ClassRegister.ManagerId = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegister.Delflag = false; member_ClassRegister.CreateDate = DateTime.Now; Course_UnitDetailBLL course_UnitDetailBLL = new Course_UnitDetailBLL(); member_ClassRegister.TotalSchedule = course_UnitDetailBLL.GetList(" TrainingId='" + class_DetailBLL.GetModel(ClassId).TraningId + "' and ParentId=0 and Display=1 and Delflag='false'", "").Count; List<Member_ClassRegister> listup = member_ClassRegisterBLL.GetList(" ClassId='" + ClassId + "' and AccountId='" + members[i] + "' and delflag='false' and Status in (3,5)", ""); if (listup.Count > 0) { member_ClassRegister.Id = listup[0].Id; member_ClassRegister.Status = 2; member_ClassRegisterBLL.Update(member_ClassRegister); if (member_ClassRegister.Id > 0) { Member_ClassRegisterApplicationBLL member_ClassRegisterApplicationBLL = new Member_ClassRegisterApplicationBLL(); Member_ClassRegisterApplication member_ClassRegisterApplication = new Member_ClassRegisterApplication(); member_ClassRegisterApplication.ClassRegisterId = member_ClassRegister.Id; member_ClassRegisterApplication.Status = 2; member_ClassRegisterApplication.Creater = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegisterApplication.CreateDate = DateTime.Now; member_ClassRegisterApplication.Delflag = false; member_ClassRegisterApplicationBLL.Add(member_ClassRegisterApplication); } else { return Json(new { Code = -1, Msg = "提交失败" }, JsonRequestBehavior.AllowGet); } } else { int RegisterId = member_ClassRegisterBLL.Add(member_ClassRegister); if (RegisterId > 0) { Member_ClassRegisterApplicationBLL member_ClassRegisterApplicationBLL = new Member_ClassRegisterApplicationBLL(); Member_ClassRegisterApplication member_ClassRegisterApplication = new Member_ClassRegisterApplication(); member_ClassRegisterApplication.ClassRegisterId = RegisterId; member_ClassRegisterApplication.Status = 2; member_ClassRegisterApplication.Creater = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegisterApplication.CreateDate = DateTime.Now; member_ClassRegisterApplication.Delflag = false; member_ClassRegisterApplicationBLL.Add(member_ClassRegisterApplication); } else { return Json(new { Code = -1, Msg = "提交失败" }, JsonRequestBehavior.AllowGet); } } } } return Json(new { Code = 0, Msg = "提交成功" }, JsonRequestBehavior.AllowGet); }
public JsonResult ClassRegister(int ClassId) { Class_Detail class_Detail = new Class_Detail(); Member_ClassRegisterBLL member_ClassRegisterBLL = new Member_ClassRegisterBLL(); Member_ClassRegister member_ClassRegister = new Member_ClassRegister(); member_ClassRegister.ClassId = ClassId; member_ClassRegister.PlanId = Code.SiteCache.Instance.PlanId; Class_DetailBLL class_DetailBLL = new Class_DetailBLL(); member_ClassRegister.TrainingId = class_DetailBLL.GetModel(ClassId).TraningId; member_ClassRegister.AccountId = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegister.Status = 1; member_ClassRegister.ManagerId = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegister.Delflag = false; member_ClassRegister.CreateDate = DateTime.Now; Course_UnitDetailBLL course_UnitDetailBLL = new Course_UnitDetailBLL(); member_ClassRegister.TotalSchedule = course_UnitDetailBLL.GetList(" TrainingId='" + class_DetailBLL.GetModel(ClassId).TraningId + "' and ParentId=0 and Display=1 and Delflag='false'", "").Count; //if (!IsCanRegister(ClassId, true, Code.SiteCache.Instance.LoginInfo.UserId)) string checkmessage = IsCanRegisterAll(ClassId, true, Code.SiteCache.Instance.LoginInfo.UserId); if (checkmessage != "") { return Json(new { Code = -1, Msg = checkmessage }, JsonRequestBehavior.AllowGet); } List<Member_ClassRegister> listno = member_ClassRegisterBLL.GetList(" ClassId='" + ClassId + "' and AccountId='" + Code.SiteCache.Instance.LoginInfo.UserId + "' and delflag='false' and Status in (1,2,4)", ""); if (listno.Count > 0) { return Json(new { Code = -1, Msg = "您已经提交了报名申请" }, JsonRequestBehavior.AllowGet); } List<Member_ClassRegister> listpass = member_ClassRegisterBLL.GetList(" TrainingId='" + member_ClassRegister.TrainingId + "' and AccountId='" + Code.SiteCache.Instance.LoginInfo.UserId + "' and delflag='false' and (Result=1 or (Result is NULL and Status in(1,2,4)))", ""); if (listpass.Count > 0) { return Json(new { Code = -1, Msg = "您已经学过该课程或已报名该课程下的其他班级" }, JsonRequestBehavior.AllowGet); } List<Member_ClassRegister> listup = member_ClassRegisterBLL.GetList(" ClassId='" + ClassId + "' and AccountId='" + Code.SiteCache.Instance.LoginInfo.UserId + "' and delflag='false' and Status in (3,5)", ""); if (listup.Count > 0) { member_ClassRegister.Id = listup[0].Id; member_ClassRegister.Status = 1; member_ClassRegisterBLL.Update(member_ClassRegister); if (member_ClassRegister.Id > 0) { class_Detail = class_DetailBLL.GetModel(member_ClassRegister.ClassId); class_Detail.People += 1; class_DetailBLL.Update(class_Detail); Member_ClassRegisterApplicationBLL member_ClassRegisterApplicationBLL = new Member_ClassRegisterApplicationBLL(); Member_ClassRegisterApplication member_ClassRegisterApplication = new Member_ClassRegisterApplication(); member_ClassRegisterApplication.ClassRegisterId = member_ClassRegister.Id; member_ClassRegisterApplication.Status = 1; member_ClassRegisterApplication.Creater = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegisterApplication.CreateDate = DateTime.Now; member_ClassRegisterApplication.Delflag = false; member_ClassRegisterApplicationBLL.Add(member_ClassRegisterApplication); return Json(new { Code = 0, Msg = "提交成功" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Code = -1, Msg = "提交失败" }, JsonRequestBehavior.AllowGet); } } else { int RegisterId = member_ClassRegisterBLL.Add(member_ClassRegister); class_Detail = class_DetailBLL.GetModel(member_ClassRegister.ClassId); class_Detail.People += 1; class_DetailBLL.Update(class_Detail); if (RegisterId > 0) { Member_ClassRegisterApplicationBLL member_ClassRegisterApplicationBLL = new Member_ClassRegisterApplicationBLL(); Member_ClassRegisterApplication member_ClassRegisterApplication = new Member_ClassRegisterApplication(); member_ClassRegisterApplication.ClassRegisterId = RegisterId; member_ClassRegisterApplication.Status = 1; member_ClassRegisterApplication.Creater = Code.SiteCache.Instance.LoginInfo.UserId; member_ClassRegisterApplication.CreateDate = DateTime.Now; member_ClassRegisterApplication.Delflag = false; member_ClassRegisterApplicationBLL.Add(member_ClassRegisterApplication); return Json(new { Code = 0, Msg = "提交成功" }, JsonRequestBehavior.AllowGet); } else { return Json(new { Code = -1, Msg = "提交失败" }, JsonRequestBehavior.AllowGet); } } }