/// <summary> /// /// </summary> /// <param name="LearnVideoInforId"></param> /// <param name="allallduration">视频总时长</param> /// <param name="Co_CourseResourceId"></param> /// <param name="tt">视频当前播放进度</param> /// <returns></returns> public JsonResult FUpdateProgress(int LearnId, string allallduration, string tt, int ResourseId, int UserId) { double Progress = Convert.ToDouble(tt) / Convert.ToDouble(allallduration) * 100; var CpaLearnStatus = ICpaLearnStatusBL.GetCl_CpaLearnStatusByLearnId(LearnId, UserId); var course = CoCourseBL.GetCo_Course(CpaLearnStatus.CourseID); //var Sys_ParamConfig = AllSystemConfigs.Find(p => p.ConfigType == 25);//读取参数配置 观看课程时长达到视频总时长的 var learn = IClLearnVideoInforBL.Get(LearnId, ResourseId); if (learn.Progress < Convert.ToDecimal(Progress)) { IClLearnVideoInforBL.UpdateProgress(Convert.ToDecimal(Progress), LearnId, ResourseId); } var courseResource = ICoCourseResourceBL.GetVedioList(CpaLearnStatus.CourseID, UserId); //var hege = courseResource.Where(p => p.Progress >= Convert.ToDecimal(Sys_ParamConfig.ConfigValue)).ToList(); var hege = courseResource.Where(p => p.Progress >= Convert.ToDecimal(course.ReturnTimes)).ToList(); if (courseResource.Count == hege.Count) { if (course.IsPing == 0 && course.IsTest == 0) { if (CpaLearnStatus.Progress == 0) { ICpaLearnStatusBL.UpdateGetCl_CpaLearnStatusByCourseId(CpaLearnStatus.CourseID, UserId, course.CourseLength, 1); if (course.IsCPA == 1) { Cl_CpaLearnStatus cls = new Cl_CpaLearnStatus(); cls.CourseID = course.Id; cls.UserID = UserId; cls.IsAttFlag = 0; cls.Progress = 0; cls.LearnTimes = 0; if (course.IsMust == 1) { cls.GetLength = course.CourseLength * Convert.ToDecimal(0.5); } if (course.IsMust == 0) { cls.GetLength = course.CourseLength; } cls.CpaFlag = 2; cls.GradeStatus = 1; cls.IsPass = 1; ICpaLearnStatusBL.SubscribeCPALearnStatus(cls); } } } } return(Json(new { result = 1 }, JsonRequestBehavior.AllowGet)); }
public void SubscribeCPA(Cl_CpaLearnStatus model) { using (IDbConnection conn = OpenConnection()) { const string sqlwhere = @"insert into Cl_CpaLearnStatus( CourseId,UserId,CpaFlag,LastUpdateTime) values (@CourseId,@UserId,1,getdate())"; var param = new { model.CourseID, model.UserID, }; decimal id = conn.Query <decimal>(sqlwhere, param).FirstOrDefault(); model.Id = decimal.ToInt32(id); } }
/// <summary> /// 修复数据 /// </summary> public void FInsertNewListCpa() { var list = _cpaLearnStatusDb.NewGetList(@" select Cl_CpaLearnStatus.Id ,Cl_CpaLearnStatus.CourseID ,Cl_CpaLearnStatus.UserID ,Cl_CpaLearnStatus.IsAttFlag ,Cl_CpaLearnStatus.IsPass ,Cl_CpaLearnStatus.Progress ,Cl_CpaLearnStatus.LearnTimes ,Cl_CpaLearnStatus.GetLength ,Cl_CpaLearnStatus.LastUpdateTime ,Cl_CpaLearnStatus.CpaFlag ,Cl_CpaLearnStatus.GradeStatus from Cl_CpaLearnStatus left join dbo.Co_Course on Cl_CpaLearnStatus.CourseId=Co_Course.Id where Co_Course.Way=2 and Co_Course.IsCPA=1 and Cl_CpaLearnStatus.[CpaFlag] in(0,2) and Co_Course.CourseFrom=2 order by Cl_CpaLearnStatus.UserId "); var iscpa = list.Where(p => p.CpaFlag == 2).ToList(); foreach (var item in list) { Cl_CpaLearnStatus t = null; var a = list.Where(p => p.CourseID == item.CourseID && p.UserID == item.UserID).ToList(); if (a.Count < 2) { if (a.Any(p => p.CpaFlag == 2)) { t = new Cl_CpaLearnStatus(); item.CpaFlag = 0; _cpaLearnStatusDb.UpdateCPALearnStatus(item); Cl_CpaLearnStatus model = item; model.CpaFlag = 2; _cpaLearnStatusDb.SubscribeCPALearnStatus(model); } } } }
/// <summary> /// 修改 /// </summary> /// <param name="model">实体</param> /// <returns>执行结果</returns> public bool UpdateCPALearnStatus(Cl_CpaLearnStatus model) { using (IDbConnection conn = OpenConnection()) { const string sqlwhere = @"Update Cl_CpaLearnStatus SET IsAttFlag=@IsAttFlag,IsPass = @IsPass,Progress = @Progress,LearnTimes = @LearnTimes,GetLength = @GetLength,LastUpdateTime = @LastUpdateTime,CpaFlag = @CpaFlag,GradeStatus = @GradeStatus WHERE Id=@Id"; var param = new { model.IsAttFlag, model.IsPass, model.Progress, model.LearnTimes, model.GetLength, LastUpdateTime = DateTime.Now, model.CpaFlag, model.GradeStatus, model.Id }; int result = conn.Execute(sqlwhere, param); return(result > 0); } }
public void SubscribeCPALearnStatus(Cl_CpaLearnStatus model) { using (IDbConnection conn = OpenConnection()) { const string sqlwhere = @"insert into Cl_CpaLearnStatus( CourseId,UserId,IsAttFlag,IsPass,Progress,LearnTimes,GetLength,LastUpdateTime,CpaFlag,GradeStatus) values (@CourseId,@UserId,@IsAttFlag,@IsPass,@Progress,@LearnTimes,@GetLength,getdate(),@CpaFlag,@GradeStatus);SELECT @@IDENTITY AS ID"; var param = new { model.CourseID, model.UserID, model.IsAttFlag, model.IsPass, model.Progress, model.LearnTimes, model.GetLength, model.CpaFlag, model.GradeStatus }; dynamic list = conn.Query <dynamic>(sqlwhere, param).FirstOrDefault(); model.Id = decimal.ToInt32(list.ID); } }
/// <summary> /// 考勤结束计算学时 /// </summary> /// <param name="CourseId"></param> /// <param name="userid"></param> public void UpScore(int CourseId, int userid, DateTime starttime, DateTime endtime) { decimal GetScore = 0; decimal AttLessLength = 0; decimal LessLength = 0; Co_Course coUser = AttDB.GetCoAndUser(CourseId, userid); Cl_Attendce attmodel = clAttDB.GetCl_Attendce(CourseId, userid); Sys_ParamConfig param = paramConfigDB.GetSys_ParamConfig(5); //Sys_ParamConfig param1 = paramConfigDB.GetSys_ParamConfig(24); //违纪学时配置 var configstr = param.ConfigValue.ToString(); //课程学时比例配置 var configstr1 = coUser.CourseLengthDistribute; var cstr1 = configstr1.Split(';'); //违纪学时组装配置集合 var configList = new List <TempConfig>(); foreach (var constr in configstr.Split(';')) { if (constr != "") { var str = constr.Split(','); configList.Add(new TempConfig { EndMinite = Convert.ToInt32(str[2]), Percent = Convert.ToInt32(str[3]), StartMinite = Convert.ToInt32(str[1]), Type = Convert.ToInt32(str[0]) }); } } //计算违纪学时 if (coUser.AttFlag == 1 && starttime.Year != 2050) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } else if (coUser.AttFlag == 2 && endtime.Year != 2000) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } else if (coUser.AttFlag == 3 && (starttime.Year != 2050 || endtime.Year != 2000)) { LessLength = GetLessLength(configList, coUser.AttFlag, coUser.StartTime, coUser.EndTime, starttime, endtime, coUser.CourseLength); } string whereStr = string.Format(" where CourseId={0} and UserId={1}", CourseId, userid); Cl_CourseOrder Comodel = CoDB.Getmodel(whereStr); //计算课程总学时,违纪学时 //根据课程编号判断是否第一次学习 if (AttDB.ExistAtts(CourseId, userid)) { if (coUser.AttFlag == 1 && starttime.Year == 2050) { GetScore = 0; AttLessLength = 0; } else if (coUser.AttFlag == 2 && endtime.Year == 2000) { GetScore = 0; AttLessLength = 0; } else if (coUser.AttFlag == 3 && starttime.Year == 2050 && endtime.Year == 2000) { GetScore = 0; AttLessLength = 0; } else { //判断是否有课后评估 if (coUser.IsTest == 0 && coUser.IsPing == 0) { GetScore = coUser.CourseLength - LessLength; AttLessLength = 0 - LessLength; } else { decimal attLength = coUser.CourseLength * (Convert.ToDecimal(cstr1[0])) / 100; GetScore = attLength - LessLength; GetScore = Math.Round(GetScore, 2, MidpointRounding.AwayFromZero); AttLessLength = 0 - LessLength; } } //折算CPA学时 if (coUser.Way == 1 && coUser.IsCPA == 1) { if (Comodel != null && Comodel.AttFlag == 0) { Cl_CpaLearnStatus CPAmodel = cpastatDB.GetCl_CpaLearnStatusByCourseId(CourseId, userid); if (CPAmodel == null) { CPAmodel = new Cl_CpaLearnStatus(); CPAmodel.CourseID = CourseId; CPAmodel.UserID = userid; CPAmodel.IsAttFlag = 0; CPAmodel.IsPass = 1; CPAmodel.Progress = 0; CPAmodel.LearnTimes = 0; if (coUser.IsMust == 1) { CPAmodel.GetLength = Math.Round((GetScore * 50 / 100), 2, MidpointRounding.AwayFromZero); } else { CPAmodel.GetLength = GetScore; } CPAmodel.CpaFlag = 2; CPAmodel.GradeStatus = 1; cpastatDB.SubscribeCPALearnStatus(CPAmodel); } else { CPAmodel.IsAttFlag = 0; CPAmodel.IsPass = 1; CPAmodel.Progress = 0; CPAmodel.LearnTimes = 0; if (coUser.IsMust == 1) { decimal linshi = Convert.ToDecimal((CPAmodel.GetLength * 2) - Comodel.AttScore + GetScore); CPAmodel.GetLength = Math.Round((linshi * 50 / 100), 2, MidpointRounding.AwayFromZero); } else { CPAmodel.GetLength = (CPAmodel.GetLength - Comodel.AttScore) + GetScore; } CPAmodel.CpaFlag = 2; CPAmodel.GradeStatus = 1; cpastatDB.UpdateCPALearnStatus(CPAmodel); } } } } else { GetScore = 0; AttLessLength = 0; } if (Comodel != null && Comodel.AttFlag == 0) { Comodel.GetScore = GetScore + (Comodel.GetScore - Comodel.AttScore); Comodel.AttScore = GetScore; CoDB.Update(Comodel); } if (attmodel != null) { if (Comodel != null && Comodel.AttFlag == 0) { attmodel.LessLength = AttLessLength; clAttDB.UpdateAttendce(attmodel); } } }
public void SubscribeCPALearnStatus(Cl_CpaLearnStatus model) { _cpaLearnStatusDb.SubscribeCPALearnStatus(model); }
public bool UpdateCPALearnStatusByModel(Cl_CpaLearnStatus model) { return(_cpaLearnStatusDb.UpdateCPALearnStatus(model)); }
/// <summary> /// 保存学员答案 /// </summary> /// <param name="form">答案</param> /// <param name="euid">学员考试ID</param> /// <param name="submitType">1:暂存;2:提交</param> /// <param name="pecent">是否百分制(0:是;1:否)</param> /// <param name="passScore">及格线</param> /// 0为考试试卷1为课程下试卷 /// <returns></returns> public JsonResult SubmitStudentAnswer(FormCollection form, int euid = 0, int submitType = 1, int pecent = 0, int passScore = 0, int courseType = 0) { string answer = form["userAnswer"]; //答案 string quScore = form["questionScore"]; //试题分值 string quOrder = form["questionOrder"]; //试题题序 if (answer == "" || quScore == "" || quOrder == "") { return(Json(new { result = 0 }, JsonRequestBehavior.AllowGet)); } //tbExamSendStudent examUser = ExamTestBL.GetExamUser(euid); tbExamSendStudent examUser = null; tbExamSendStudent student = null; if (courseType == 0) { examUser = ExamTestBL.GetExamUser(euid); } else { //var student= ExamTestBL.GetExamUser(euid); student = ExamTestBL.GetExamUser(euid); examUser = ExaminationBL.GetSingletbExamSendStudentByCourseIdAndUserId(student.RelationID, CurrentUser.UserId, student.SourceType); //if (student.SourceType == 1) //{ // examUser = ExaminationBL.GetSingletbExamSendStudentByCourseIdAndUserId(student.RelationID, CurrentUser.UserId,1); //} //else //{ // examUser = ExaminationBL.GetSingletbExamSendStudentByCourseIdAndUserId(student.RelationID, CurrentUser.UserId, 2); //} } var oldPaperScore = examUser.StudentAnswerList; //.Sum(p => p.GetScore); var pass = 0; //0没通过,1通过 var nopassnumber = 0; var dicAnswer = new Dictionary <int, string>(); answer.Split(new[] { "**!!!**" }, StringSplitOptions.None).ToList().ForEach(p => { string[] arr = p.Split(new[] { "!!***!!" }, StringSplitOptions.None); dicAnswer.Add(arr[0].StringToInt32(), arr[1]); }); var dicScore = new Dictionary <int, int>(); quScore.Split(';').ToList().ForEach(p => { string[] arr = p.Split(','); dicScore.Add(arr[0].StringToInt32(), arr[1].StringToInt32()); }); var dicOrder = new Dictionary <int, int>(); quOrder.Split(';').ToList().ForEach(p => { string[] arr = p.Split(','); dicOrder.Add(arr[0].StringToInt32(), arr[1].StringToInt32()); }); List <tbQuestion> qulist = ExamTestBL.GetQuestionList(dicAnswer.Keys.ToList()); examUser.StudentAnswerList = new List <ReStudentExamAnswer>(); //int NowSum = 0;//记录当前分数 //循环学员答案 foreach (var o in dicAnswer) { tbQuestion qu = qulist.FirstOrDefault(p => p._id == o.Key); //试题 if (qu != null) { int score = submitType == 2 ? GetScore(qu, o.Value, dicScore[o.Key]) : 0; examUser.StudentAnswerList.Add(new ReStudentExamAnswer { DoneFlag = o.Value == "" ? 0 : 1, Evlution = "", GetScore = score, Answer = o.Value, Qid = o.Key, QType = qu.QuestionType, Order = dicOrder[o.Key], Score = dicScore[o.Key] }); // NowSum += score; } } if (submitType == 2) { examUser.DoExamStatus = 2; int totalScore = dicScore.Values.Sum(); //总分 examUser.PaperScore = pecent == 1 ? passScore : totalScore * passScore / 100; //考试通过的基线 int userScore = examUser.StudentAnswerList.Sum(p => p.GetScore); //考生得分 if (pecent == 0) { examUser.IsPass = userScore * 100 / totalScore >= passScore ? 1 : 0; } else { examUser.IsPass = userScore >= passScore ? 1 : 0; } } //当1的时候是课程下的考试 if (examUser.SourceType == 1) //if(courseType==1) { //var student = ExamTestBL.GetExamUser(euid); //查找这门课程对应的通过线和考试次数 var CoCoursePaper = ICoCoursePaperBL.GetCo_CourseMainPaper(student.RelationID); //查找课程信息 用于查找该课程的学时 var course = ICourseBl.GetCo_Course(student.RelationID); //查找试卷总分 var exampaper = ExampaperBL.GetExampaper(CoCoursePaper.PaperId); if (IAttendceBL.ExistAtts(course.Id, CurrentUser.UserId)) { //获取这个人预定信息 因为集中课程学时是走一步算一步 获取已经获得的学时 var courseorder = CourseOrderBL.GetCourseById(student.RelationID, CurrentUser.UserId); //如果当前考试分数大于上一次考的分数则修改, 如果小则还是记录以前的分数 int fenshju = examUser.StudentAnswerList.Sum(p => p.GetScore); //int olderfenshuju= if (fenshju > oldPaperScore.Sum(p => p.GetScore)) { //examUser.PaperScore = fenshju; ExamTestBL.SaveExamUser(examUser); } else { if (oldPaperScore.Count != 0) // 如果第一次没过就记录当前选项 { examUser.StudentAnswerList = oldPaperScore; } ExamTestBL.SaveExamUser(examUser); } //var xueshi = AllSystemConfigs.Find(p => p.ConfigType == 24); var xueshi = course.CourseLengthDistribute; var aa = examUser.StudentAnswerList.Sum(p => p.GetScore); var tongguofen = (exampaper.ExampaperScore * CoCoursePaper.LevelScore) / 100; //var aa = ((double)examUser.StudentAnswerList.Sum(p => p.GetScore) / (double)exampaper.ExampaperScore)*100; //考试没有超过通线 记录课后评估 //if ((int)aa < CoCoursePaper.LevelScore) nopassnumber = Convert.ToInt32(CoCoursePaper.TestTimes) - student.TestTimes; if ((int)aa < (int)tongguofen) { pass = 0; //考试不过则不做任何操作 if (examUser.Number == 0) { //double afterlenght = (double) Convert.ToInt32(xueshi.ConfigValue.Split(';')[0])/100 + // (double) Convert.ToInt32(xueshi.ConfigValue.Split(';')[2])/100; ////获取考试不过的百分比 //decimal forlenght = course.CourseLength*Convert.ToDecimal(afterlenght); ////加上已得分数 //decimal tt = courseorder.GetScore + forlenght; ////PassStatus;1:通过;2:不通过;LearnStatus: 1:进行中;2:已完成 //CourseOrderBL.UpdateGetScore(course.Id, CurrentUser.UserId, tt, 2, 1); } } else //考试通过 { pass = 1; //当Number为1的时候 则不在记录学时 if (examUser.Number == 0) { //只有考勤和考试 没有评估 考试通过后则把考试和评估的部分都加上去 if (course.IsPing == 0 && course.IsTest == 1) { double afterlenght = (double)Convert.ToInt32(xueshi.Split(';')[1]) / 100 + (double)Convert.ToInt32(xueshi.Split(';')[2]) / 100; decimal fortestlenght = (Convert.ToDecimal(afterlenght) * course.CourseLength) + courseorder.GetScore; #region 折算CPA学时 if (course.IsCPA == 1) { Cl_CpaLearnStatus cls = ICpaLearnStatusBL.GetCl_CpaLearnStatusByCourseId(course.Id, CurrentUser.UserId); if (cls == null) { cls = new Cl_CpaLearnStatus(); cls.CourseID = course.Id; cls.UserID = CurrentUser.UserId; cls.IsAttFlag = 0; cls.Progress = 0; cls.LearnTimes = 0; if (course.IsMust == 1) { cls.GetLength = fortestlenght * Convert.ToDecimal(0.5); } if (course.IsMust == 0) { cls.GetLength = fortestlenght; } cls.CpaFlag = 2; cls.GradeStatus = 1; ICpaLearnStatusBL.SubscribeCPALearnStatus(cls); } else { cls.IsAttFlag = 0; cls.IsPass = 1; cls.Progress = 0; cls.LearnTimes = 0; //cls.GetLength = fortestlenght; if (course.IsMust == 1) { cls.GetLength = fortestlenght * Convert.ToDecimal(0.5); } if (course.IsMust == 0) { cls.GetLength = fortestlenght; } cls.CpaFlag = 2; cls.GradeStatus = 1; ICpaLearnStatusBL.UpdateCPALearnStatusByModel(cls); } } #endregion CourseOrderBL.UpdateGetScore(course.Id, CurrentUser.UserId, fortestlenght, 1, 2); //考试通过后就把Number标志位改成1 以后在考试则不记学时 ExaminationBL.UpdateNumber(student._id, 1); } else //有考勤 评估 考试。考试通过则把考试那部分加上去 { //考过后 已得到的分数+考试所占的比例 decimal fortestlenght = (course.CourseLength * Convert.ToDecimal((double)Convert.ToInt32(xueshi.Split(';')[1]) / 100)) + courseorder.GetScore; CourseOrderBL.UpdateGetScore(course.Id, CurrentUser.UserId, fortestlenght, 1, 2); //考试通过后就把Number标志位改成1 以后在考试则不记学时 ExaminationBL.UpdateNumber(student._id, 1); #region 折算CPA学时 if (course.IsCPA == 1) { Cl_CpaLearnStatus cls = ICpaLearnStatusBL.GetCl_CpaLearnStatusByCourseId(course.Id, CurrentUser.UserId); if (cls == null) { cls = new Cl_CpaLearnStatus(); cls.CourseID = course.Id; cls.UserID = CurrentUser.UserId; cls.IsAttFlag = 0; cls.Progress = 0; cls.LearnTimes = 0; if (course.IsMust == 1) { cls.GetLength = fortestlenght * Convert.ToDecimal(0.5); } if (course.IsMust == 0) { cls.GetLength = fortestlenght; } cls.CpaFlag = 2; cls.GradeStatus = 1; ICpaLearnStatusBL.SubscribeCPALearnStatus(cls); } else { cls.IsAttFlag = 0; cls.IsPass = 1; cls.Progress = 0; cls.LearnTimes = 0; //cls.GetLength = fortestlenght; if (course.IsMust == 1) { cls.GetLength = fortestlenght * Convert.ToDecimal(0.5); } if (course.IsMust == 0) { cls.GetLength = fortestlenght; } cls.CpaFlag = 2; cls.GradeStatus = 1; ICpaLearnStatusBL.UpdateCPALearnStatusByModel(cls); } } #endregion } } } //如果当前考试次数等于考试总次数后 改变考试通过LearnStatus if (CoCoursePaper.TestTimes == examUser.TestTimes) { CourseOrderBL.UpdateLearnStatus(course.Id, CurrentUser.UserId, 2); } } } else if (examUser.SourceType == 2)//2为视频下的考试 { //var student = ExamTestBL.GetExamUser(euid); var CoCoursePaper = ICoCoursePaperBL.GetCo_CourseMainPaper(student.RelationID); var course = ICourseBl.GetCo_Course(student.RelationID); var exampaper = ExampaperBL.GetExampaper(CoCoursePaper.PaperId); //var courseorder = CourseOrderBL.GetCourseById(student.RelationID); //如果当前考试分数大于上一次考的分数则修改, 如果小则还是记录以前的分数 if (examUser.StudentAnswerList.Sum(p => p.GetScore) > oldPaperScore.Sum(p => p.GetScore)) { ExamTestBL.SaveExamUser(examUser); } else { if (oldPaperScore.Count != 0) { examUser.StudentAnswerList = oldPaperScore; } ExamTestBL.SaveExamUser(examUser); } var aa = examUser.StudentAnswerList.Sum(p => p.GetScore); var tongguofen = (exampaper.ExampaperScore * CoCoursePaper.LevelScore) / 100; //var aa = ((double)examUser.StudentAnswerList.Sum(p => p.GetScore) / (double)exampaper.ExampaperScore) * 100; nopassnumber = Convert.ToInt32(CoCoursePaper.TestTimes) - student.TestTimes; //考试没有超过通线 记录课后评估 if (aa < tongguofen) { pass = 0; //考试没过的话 if (student.TestTimes == 1) { ICpaLearnStatusBL.UpdateGetCl_CpaLearnStatusByCourseId(course.Id, CurrentUser.UserId, 0, 0); } //关键 如果考试次数达到考试次数还没过 则清空他学习记录 重新在读 } else { pass = 1; if (examUser.Number == 0) { ICpaLearnStatusBL.UpdateGetCl_CpaLearnStatusByCourseId(course.Id, CurrentUser.UserId, course.CourseLength, 1); ExaminationBL.UpdateNumber(student._id, 1); #region 折算cpa学时 if (course.IsCPA == 1) { Cl_CpaLearnStatus cls = new Cl_CpaLearnStatus(); cls.CourseID = course.Id; cls.UserID = CurrentUser.UserId; cls.IsAttFlag = 0; cls.Progress = 0; cls.LearnTimes = 0; if (course.IsMust == 1) { cls.GetLength = course.CourseLength * (Convert.ToDecimal(0.5)); } if (course.IsMust == 0) { cls.GetLength = course.CourseLength; } cls.CpaFlag = 2; cls.GradeStatus = 1; cls.IsPass = 1; ICpaLearnStatusBL.SubscribeCPALearnStatus(cls); } #endregion } } //通过了之后 达到考试次数就不在清数据..如果达到次数都没过就清次数 if (examUser.Number == 0 && examUser.TestTimes == CoCoursePaper.TestTimes) { var examUserSecond = ExaminationBL.GetSingletbExamSendStudentByCourseIdAndUserId(student.RelationID, CurrentUser.UserId, 2); if (examUser.TestTimes == CoCoursePaper.TestTimes && aa < CoCoursePaper.LevelScore) { var cpa = ICpaLearnStatusBL.GetCl_CpaLearnStatusByCourseId(examUserSecond.RelationID, CurrentUser.UserId); ICpaLearnStatusBL.DeleteLearn(cpa.Id); ExaminationBL.DeleteExamSendStudentWithByCourseIdAndUserId(course.Id, CurrentUser.UserId, 2); } } } else { ExamTestBL.SaveExamUser(examUser); return(Json(new { result = 1 }, JsonRequestBehavior.AllowGet)); } return(Json(new { result = 0, courseid = examUser.RelationID, way = examUser.SourceType, pass = pass, nopassnumber = nopassnumber }, JsonRequestBehavior.AllowGet)); }