/// <summary> /// 获取关注老师的作业 /// </summary> /// <param name="lastId"></param> /// <param name="count"></param> /// <returns></returns> public ActionResult GetRelatedUserZy(long lastId, int count) { int last = lastId == 0 ? 99999999 : IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, lastId); int[] RUsers = B_User.GetRelatedUser(UserId); List <dto_Zy> list = B_Zy.GetZyList(RUsers, last, count); if (list != null) { List <int> ids = B_Answer.GetSubmitedZyIds(UserId, list.Select(a => a.Id).ToArray()); foreach (var l in list) { l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Zy, l.Id); string subName = ""; Const.Subjects.TryGetValue(l.SubjectId, out subName); l.SubjectName = subName; l.TypeName = l.Type == 0 ? "题库" : "自传"; dto_User u = B_UserRedis.GetUser(l.UserId); l.UserName = u.UserName; l.TrueName = u.TrueName; l.Submited = ids == null ? false : ids.Exists(a => a == l.Id); //隐藏真实Id l.Id = 0; } } ViewBag.RelateUserCount = RUsers == null ? 0 : RUsers.Length; ViewBag.ZyList = list; return(PartialView()); }
public static List <dto_Question> GetPaperQuestions(int courseId, long paperId) { List <dto_Question> list = new List <dto_Question>(); int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId); int[] qids = GetPaperQuesIds(id); foreach (var q in qids) { dto_Question dq = D_QuesRedis.GetQuestion(courseId, q); if (dq != null) { //dq.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, dq.id); //dq.id = 0; //if (dq.Children != null && dq.Children.Count > 0) //{ // dq.Children.ForEach(a => { // a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); // a.id = 0; // }); //} list.Add(dq); } } return(list); }
/// <summary> /// 获取已提交作业 /// </summary> /// <param name="lastId"></param> /// <param name="count"></param> /// <returns></returns> public ActionResult GetSubmitedZy(long lastId, int count) { int last = lastId == 0 ? 99999999 : IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, lastId); List <dto_Zy> list = null; List <int> ids = B_Answer.GetSubmitedZyIds(UserId, last, count); if (ids != null) { list = new List <dto_Zy>(); ids.ForEach(a => { list.Add(B_ZyRedis.GetZy(a)); }); } if (list != null) { foreach (var l in list) { //隐藏真实Id l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Zy, l.Id); dto_User u = B_UserRedis.GetUser(l.UserId); l.UserName = u.UserName; l.TrueName = u.TrueName; l.Id = 0; } } ViewBag.ZyList = list; return(PartialView()); }
public ActionResult GetSubmitedZy(int pageIndex, int pageSize) { int totalCount = 0; List <dto_Zy> list = null; List <int> ids = B_Answer.GetSubmitedZyIds(UserId, pageIndex, pageSize, out totalCount); if (ids != null) { list = new List <dto_Zy>(); ids.ForEach(a => { list.Add(B_ZyRedis.GetZy(a)); }); } if (list != null) { foreach (var l in list) { //隐藏真实Id l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Zy, l.Id); dto_User u = B_UserRedis.GetUser(l.UserId); l.UserName = u.UserName; l.TrueName = u.TrueName; l.Id = 0; } } ViewBag.ZyList = list; ViewBag.PageCount = Util.GetTotalPageCount(totalCount, pageSize); return(PartialView()); }
public ActionResult GetSubmitDetails(long zyId, int schoolId, int gradeId, int classId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); List <dto_StudentPoint> list = B_Analyze.GetStudentPoint2(id, schoolId, gradeId, classId); List <T_User> list2 = B_User.GetClassmates(schoolId, gradeId, classId); if (list != null) { foreach (var l in list) { T_User u = list2.Find(a => a.Id == l.StudentId); if (u == null) { l.UserName = ""; l.TrueName = "试用学生"; } else { l.UserName = u.UserName; l.TrueName = u.TrueName; } l.NewId = zyId; l.ZyId = 0; list2.RemoveAll(a => a.Id == l.StudentId); } } ViewBag.List = list; ViewBag.List2 = list2.Select(a => a.UserName + "【" + a.TrueName + "】").ToList(); return(PartialView()); }
/// <summary> /// 各班级提交详情 /// </summary> /// <param name="zyId"></param> /// <returns></returns> public ActionResult SubmitDetail(long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); List <dto_ClassSubmitCount> Classes = B_Analyze.GetSubmitClasses(id); if (Classes != null) { Classes.ForEach(a => { if (a.SchoolId == 0 && a.GradeId == 0 && a.ClassId == 0) { a.SchoolName = "试用学校"; a.GradeName = "试用年级"; a.ClassName = "试用班"; } else { a.SchoolName = B_BaseRedis.GetSchool(a.SchoolId).SchoolName; a.GradeName = Const.Grades[a.GradeId]; a.ClassName = a.ClassId + "班"; } }); } ViewBag.Classes = Classes; ViewBag.ZyId = zyId; return(View()); }
/// <summary> /// 随机出题(因功能废弃暂未实现主客观题2:1比例) /// </summary> /// <param name="courseId"></param> /// <param name="kpointId"></param> /// <param name="cpointId"></param> /// <param name="count"></param> /// <returns></returns> public ActionResult RandomQuestions(int courseId, int kpointId, int cpointId, int count) { List <dto_Question> list = null; if (count <= 20) { int[] qids = B_Ques.GetQuesIds(courseId, kpointId, cpointId, count); if (qids != null && qids.Length > 0) { list = new List <dto_Question>(); foreach (var q in qids) { dto_Question ques = B_QuesRedis.GetQuestion(courseId, q); if (ques != null) { //暴露的qid重写 ques.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, ques.id); ques.id = 0; if (ques.Children != null && ques.Children.Count > 0) { ques.Children.ForEach(a => { a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } list.Add(ques); } } } } ViewBag.QuesList = list; return(PartialView()); }
/// <summary> /// 试题使用次数加一 /// </summary> /// <param name="courseId"></param> /// <param name="questions"></param> private void IncreaseQuesUsageTimes(int courseId, string[] questions) { foreach (var q in questions) { B_QuesRedis.IncreaseUsageTimes(IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Ques, long.Parse(q))); } B_Ques.IncreaseUsageTimes(courseId, questions); }
public JsonResult GetZyInfo(long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Zy zy = B_ZyRedis.GetZy(id); zy.Id = 0; //隐藏真实Id dto_AjaxJsonResult <dto_Zy> r = AccessJudge(UserId, zy); return(Json(r)); }
public ActionResult GetQuestionAndAnswers(int courseId, long zyId, int studentId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Zy zy = B_ZyRedis.GetZy(id); T_Answer answer = null; if (zy.UserId == 0) { return(PartialView()); } else { answer = B_Answer.GetAnswer(id, (studentId == 0 ? UserId : studentId)); } List <dto_UserAnswer> ansl = null; if (answer != null) { ViewBag.PicPrefix = Util.GetAppSetting("UploadUrlPrefix") + "/"; ViewBag.AnswerImg = answer.AnswerImg; ansl = JsonConvert.DeserializeObject <List <dto_UserAnswer> >(answer.AnswerJson); } List <dto_Question> ql = B_ZyRedis.GetQdbZyQuestions(courseId, id); if (ql != null) { foreach (dto_Question q in ql) { if (!q.haschildren && Const.OBJECTIVE_QUES_TYPES.Contains(q.ptypeid)) { q.SAnswer = ansl == null ? "" : ansl.Find(b => b.QId == q.id).Answer; } //隐藏真实Id q.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, q.id); q.id = 0; if (q.Children != null && q.Children.Count > 0) { q.Children.ForEach(a => { if (Const.OBJECTIVE_QUES_TYPES.Contains(a.ptypeid)) { a.SAnswer = ansl == null ? "" : ansl.Find(b => b.QId == a.id).Answer; } a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } } } ViewBag.QuesList = ql; return(PartialView()); }
public JsonResult GetZyInfo(long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Zy zy = B_ZyRedis.GetZy(id); zy.Id = 0; //隐藏真实Id dto_AjaxJsonResult <dto_Zy> r = new dto_AjaxJsonResult <dto_Zy>(); r.code = AjaxResultCodeEnum.Success; r.message = ""; r.data = zy; return(Json(r)); }
/// <summary> /// 选项统计 /// </summary> /// <param name="zyId"></param> /// <param name="schoolId"></param> /// <param name="gradeId"></param> /// <param name="classId"></param> /// <returns></returns> public ActionResult GetOptionBar(long zyId, int schoolId, int gradeId, int classId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Echart_Bar2 deb = B_Analyze.GetOptionSelectCount(id, schoolId, gradeId, classId); if (deb != null) { ViewBag.Category = string.Join(",", deb.category); ViewBag.AData = string.Join(",", deb.optiona); ViewBag.BData = string.Join(",", deb.optionb); ViewBag.CData = string.Join(",", deb.optionc); ViewBag.DData = string.Join(",", deb.optiond); } ViewBag.SubmitCount = B_Analyze.GetZySubmitCount(id, schoolId, gradeId, classId); return(PartialView()); }
public static List <dto_Paper> ResetPaperId(List <dto_Paper> list) { if (list != null) { foreach (var l in list) { l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Paper, l.PaperId); string gName = ""; Const.Grades.TryGetValue(l.GradeId, out gName); l.GradeName = gName; l.PaperId = 0; } } return(list); }
/// <summary> /// 关闭作业 /// </summary> /// <param name="zyId"></param> /// <returns></returns> public JsonResult CloseZy(long zyId) { dto_AjaxJsonResult <string> r = new dto_AjaxJsonResult <string>(); int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Zy zy = B_ZyRedis.GetZy(id); if (zy.UserId == 0) { r.code = AjaxResultCodeEnum.Error; r.message = "试用作业仅用于数据展示,不允许进行操作!"; r.data = ""; return(Json(r)); } if (zy.Status == 2) { r.code = AjaxResultCodeEnum.Error; r.message = "作业已删除,不能关闭!"; r.data = ""; return(Json(r)); } else if (zy.Status == 1) { r.code = AjaxResultCodeEnum.Success; r.message = ""; r.data = ""; return(Json(r)); } else { bool isok = B_Zy.UpdateZyStatus(id, 1); if (isok) { B_ZyRedis.UpdateZyStatus(id, 1); r.code = AjaxResultCodeEnum.Success; r.message = ""; r.data = ""; return(Json(r)); } else { r.code = AjaxResultCodeEnum.Error; r.message = "关闭失败!"; r.data = ""; return(Json(r)); } } }
/// <summary> /// 试题统计 /// </summary> /// <param name="zyId"></param> /// <returns></returns> public ActionResult GetQuesBar(long zyId, int schoolId, int gradeId, int classId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Echart_Bar deb = B_Analyze.GetQuesCorrectCount(id, schoolId, gradeId, classId); if (deb != null) { ViewBag.xData = string.Join(",", deb.x); ViewBag.yData = string.Join(",", deb.y); } ViewBag.ObjectiveCount = deb == null ? 0 : deb.x.Count; ViewBag.SubmitCount = B_Analyze.GetZySubmitCount(id, schoolId, gradeId, classId); ViewBag.Worst = deb == null ? "" : deb.x[deb.y.IndexOf(deb.y.Min(a => a))]; return(PartialView()); }
public ActionResult GetBasketQues(int courseId, string qid) { List <dto_Question> dql = null; if (!string.IsNullOrEmpty(qid)) { dql = new List <dto_Question>(); string[] ql = qid.Split(','); foreach (string q in ql) { dto_Question dq = B_QuesRedis.GetQuestion(courseId, IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Ques, long.Parse(q))); dq.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, dq.id); dq.id = 0; dql.Add(dq); } //因为二级题型是6位的,int型比1级题型大排序会排到后面,所以转化为字符型排序 dql = dql.OrderBy(a => a.typeid.ToString()).ToList(); } ViewBag.QuesList = dql; return(PartialView()); }
/// <summary> /// 提交统计 /// </summary> /// <param name="zyId"></param> /// <returns></returns> public ActionResult GetSubmitBar(long zyId, int schoolId, int gradeId, int classId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Echart_Bar deb = B_Analyze.GetStudentPoint(id, schoolId, gradeId, classId); if (deb != null) { for (int i = 0; i < deb.x.Count; i++) { if (deb.x[i] == "0") { deb.x[i] = "试用学生"; } else { string tname = B_UserRedis.GetUser(int.Parse(deb.x[i])).TrueName; deb.x[i] = string.IsNullOrEmpty(tname) ? "未设姓名" : tname; } } ViewBag.xData = string.Join(",", deb.x); ViewBag.yData = string.Join(",", deb.y); } int ObjectiveCount = JsonConvert.DeserializeObject <List <dto_ZyQuestion> >(B_ZyRedis.GetQdbZyQuesJson(id)).Count(a => Const.OBJECTIVE_QUES_TYPES.Contains(a.PTypeId)); ViewBag.ObjectiveCount = ObjectiveCount; int SubmitCount = deb == null ? 0 : deb.x.Count; ViewBag.SubmitCount = SubmitCount; double ScoreRate = 0; ScoreRate = (SubmitCount == 0 || ObjectiveCount == 0 || deb == null) ? 0 : Math.Round((deb.y.Sum(a => int.Parse(a)) * 1.0 / (ObjectiveCount * SubmitCount)), 4) * 100; ViewBag.ScoreRate = ScoreRate; dto_Zy zy = B_ZyRedis.GetZy(id); ViewBag.InTime = deb == null ? 0 : deb.o.Count(a => a <= zy.DueDate); ViewBag.OverTime = deb == null ? 0 : deb.o.Count(a => a > zy.DueDate); return(PartialView()); }
public static List <dto_Question> GetPaperAnswer(int courseId, long paperId, int studentId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId); var answer = D_Paper.GetAnswer(id, studentId); List <dto_UserAnswer> ansl = null; if (answer != null) { ansl = JsonConvert.DeserializeObject <List <dto_UserAnswer> >(answer.AnswerJson); } List <dto_Question> ql = B_Paper.GetPaperQuestions(courseId, paperId); if (ql != null) { foreach (dto_Question q in ql) { if (!q.haschildren && Const.OBJECTIVE_QUES_TYPES.Contains(q.ptypeid)) { q.SAnswer = ansl == null ? "" : ansl.Find(b => b.QId == q.id).Answer; } //隐藏真实Id q.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, q.id); q.id = 0; if (q.Children != null && q.Children.Count > 0) { q.Children.ForEach(a => { if (Const.OBJECTIVE_QUES_TYPES.Contains(a.ptypeid)) { a.SAnswer = ansl == null ? "" : ansl.Find(b => b.QId == a.id).Answer; } a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } } } return(ql); }
/// <summary> /// 获取我新建的作业 /// </summary> /// <param name="lastId"></param> /// <param name="count"></param> /// <returns></returns> public ActionResult GetMyZy(long lastId, int count) { int last = lastId == 0 ? 99999999 : IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, lastId); List <dto_Zy> list = B_Zy.GetZyList(UserId, last, count); if (list != null) { foreach (var l in list) { //隐藏真实Id l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Zy, l.Id); string subName = ""; Const.Subjects.TryGetValue(l.SubjectId, out subName); l.SubjectName = subName; l.TypeName = l.Type == 0 ? "题库" : "自传"; l.Id = 0; } } ViewBag.ZyList = list; return(PartialView()); }
public JsonResult GetAnswerPicList(long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); T_Answer ans = B_Answer.GetAnswer(id, UserId); string[] imglist2 = null; if (ans != null && !string.IsNullOrEmpty(ans.AnswerImg)) { string[] imglist = ans.AnswerImg.Split(','); imglist2 = new string[imglist.Length]; for (int i = 0; i < imglist.Length; i++) { imglist2[i] = Util.GetAppSetting("UploadUrlPrefix") + "/" + imglist[i]; } } dto_AjaxJsonResult <string> r = new dto_AjaxJsonResult <string>(); r.code = AjaxResultCodeEnum.Success; r.message = ""; r.data = ((ans == null || string.IsNullOrEmpty(ans.AnswerImg)) ? "" : string.Join(",", imglist2)); return(Json(r)); }
public ActionResult GetMyZy(int pageIndex, int pageSize) { int totalCount = 0; List <dto_Zy> list = B_Zy.GetZyList(UserId, pageIndex, pageSize, out totalCount); if (list != null) { foreach (var l in list) { //隐藏真实Id l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Zy, l.Id); string subName = ""; Const.Subjects.TryGetValue(l.SubjectId, out subName); l.SubjectName = subName; l.TypeName = l.Type == 0 ? "题库" : "自传"; l.Id = 0; } } ViewBag.ZyList = list; ViewBag.PageCount = Util.GetTotalPageCount(totalCount, pageSize); return(PartialView()); }
//[LoginFilterAttribute] public ActionResult GetQuestions(int courseId, long paperId) { List <dto_Question> list = B_Paper.GetPaperQuestions(courseId, paperId); if (list != null) { foreach (var l in list) { l.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, l.id); l.id = 0; if (l.Children != null && l.Children.Count > 0) { l.Children.ForEach(a => { a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } } } ViewBag.QuesList = list; return(PartialView()); }
public ActionResult add(long quesId = 0, int courseId = 0) { if (quesId != 0) { int qid = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Ques, quesId); dto_Question q = B_QuesRedis.GetQuestion(courseId, qid); string cont = ""; if (q != null) { cont = q.quesbody + "\n\r"; if (Const.OBJECTIVE_QUES_TYPES.Contains(q.ptypeid) && q.Options != null) { cont = string.Concat(cont, "<p>A. ", q.Options.optiona, "</p><p>B. ", q.Options.optionb, "</p><p>C. ", q.Options.optionc, "</p><p>D. ", q.Options.optiond, "</p>"); if (!string.IsNullOrEmpty(q.Options.optione)) { cont = string.Concat(cont, "<p>E.", q.Options.optione, "</p>"); } if (!string.IsNullOrEmpty(q.Options.optionf)) { cont = string.Concat(cont, "<p>F.", q.Options.optionf, "</p>"); } if (!string.IsNullOrEmpty(q.Options.optiong)) { cont = string.Concat(cont, "<p>G.", q.Options.optiong, "</p>"); } } } ViewBag.TopicContent = cont; int subjectId = Const.CourseSubjectMapping[courseId]; ViewBag.SubjectId = subjectId; } ViewBag.Grades = Const.Grades; ViewBag.Subjects = Const.Subjects; return(View()); }
/// <summary> /// 保存作业试题 /// </summary> /// <param name="courseId"></param> /// <param name="zyId"></param> /// <param name="questions"></param> /// <returns></returns> private bool SaveZyQuestions(int courseId, int zyId, string[] questions) { int OrderIndex = 0; List <dto_ZyQuestion> ql = new List <dto_ZyQuestion>(); foreach (var qid in questions) { dto_ZyQuestion q = null; dto_Question dq = B_QuesRedis.GetQuestion(courseId, IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Ques, long.Parse(qid))); if (dq.haschildren && dq.Children != null) { foreach (var cq in dq.Children) { q = new dto_ZyQuestion(); OrderIndex += 1; q.PQId = dq.id; q.QId = cq.id; q.PTypeId = cq.ptypeid; q.OrderIndex = OrderIndex; q.Score = 0; ql.Add(q); } } else { q = new dto_ZyQuestion(); OrderIndex += 1; q.PQId = dq.id; q.QId = dq.id; q.PTypeId = dq.ptypeid; q.OrderIndex = OrderIndex; q.Score = 0; ql.Add(q); } } return(B_Zy.AddQdbZyQues(zyId, JsonConvert.SerializeObject(ql))); }
public ActionResult GetClassBar(long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); dto_Echart_Bar3 deb = null; List <dto_ClassSubmitCount> Classes = B_Analyze.GetSubmitClasses(id); if (Classes != null) { deb = new dto_Echart_Bar3(); deb.data = new List <dto_Echart_Bar3_Data>(); dto_Echart_Bar3_Data debd = null; foreach (var c in Classes) { debd = new dto_Echart_Bar3_Data(); string cname = ""; if (c.SchoolId == 0 && c.GradeId == 0 && c.ClassId == 0) { cname = "试用学校试用班"; } else { cname = Const.Grades[c.GradeId] + c.ClassId + "班"; } debd.name = cname; debd.value = c.SubmitCount; deb.data.Add(debd); } } ViewBag.xData = string.Join(",", deb.data.Select(a => a.name).ToArray()); ViewBag.yData = JsonConvert.SerializeObject(deb.data); ViewBag.ClassCount = Classes.Count; ViewBag.StuCount = Classes.Sum(a => a.SubmitCount); ViewBag.ZyId = zyId; return(PartialView()); }
public ActionResult GetQuestions(int courseId, long zyId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Zy, zyId); List <dto_Question> ql = B_ZyRedis.GetQdbZyQuestions(courseId, id); if (ql != null) { foreach (dto_Question q in ql) { //隐藏真实Id q.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, q.id); q.id = 0; if (q.Children != null && q.Children.Count > 0) { q.Children.ForEach(a => { a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } } } ViewBag.QuesList = ql; return(PartialView()); }
/// <summary> /// 筛题 /// </summary> /// <param name="courseId"></param> /// <param name="kpointId"></param> /// <param name="cpointId"></param> /// <param name="typeId"></param> /// <param name="diffType"></param> /// <param name="paperYear"></param> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> /// <returns></returns> public ActionResult GetQuestions(int courseId, int kpointId, int cpointId, int typeId, int diffType, int paperYear, int pageIndex, int pageSize) { int totalCount = 0; //int[] qids = B_Ques.GetQuesIds(courseId, kpointId, cpointId, typeId, diffType, paperYear, pageIndex, pageSize, out totalCount); int[] qids = B_QuesSolr.GetQuesIds(courseId, kpointId, cpointId, typeId, diffType, paperYear, pageIndex, pageSize, out totalCount); int totalPage = Util.GetTotalPageCount(totalCount, pageSize); List <dto_Question> list = null; if (qids != null && qids.Length > 0) { list = new List <dto_Question>(); foreach (var q in qids) { dto_Question ques = B_QuesRedis.GetQuestion(courseId, q); if (ques != null) { //暴露的qid重写 ques.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, ques.id); ques.id = 0; if (ques.Children != null && ques.Children.Count > 0) { ques.Children.ForEach(a => { a.NewId = IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id); a.id = 0; }); } list.Add(ques); } } } ViewBag.PageCount = totalPage; ViewBag.QuesList = list; return(PartialView()); }
public static T_Answer GetAnswer(long paperId, int studentId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId); return(D_Paper.GetAnswer(id, studentId)); }
public static string SubmitAnswer(int courseId, long paperId, int studentId, string questions, string answers, string systemType, string browser) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId); //作业提交验证 T_Answer ans = D_Paper.GetAnswer(id, studentId); if (ans != null && ans.Submited) { return("不能重复提交!"); } //todo submit List <string> submitQlist = questions.Split(',').ToList(); List <string> submitAlist = string.IsNullOrEmpty(answers) ? new List <string>() : answers.Split(',').ToList(); if (submitQlist.Count != submitAlist.Count) { return("试题信息有误,提交失败!"); } List <dto_Question> ql = GetPaperQuestions(courseId, paperId); List <dto_UserAnswer> al = new List <dto_UserAnswer>(); ql.ForEach(a => { if (a.haschildren && a.Children != null) { foreach (var c in a.Children) { if (Const.OBJECTIVE_QUES_TYPES.Contains(c.ptypeid)) { int i = submitQlist.IndexOf(IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, c.id).ToString()); al.Add(new dto_UserAnswer() { QId = c.id, PTypeId = c.ptypeid, Score = 0, Answer = (i == -1 ? "" : submitAlist[i]), CAnswer = c.quesanswer, Point = 0 }); } else { al.Add(new dto_UserAnswer() { QId = c.id, PTypeId = c.ptypeid, Score = 0, Answer = "", CAnswer = "", Point = 0 }); } } } else { if (Const.OBJECTIVE_QUES_TYPES.Contains(a.ptypeid)) { int i = submitQlist.IndexOf(IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.id).ToString()); al.Add(new dto_UserAnswer() { QId = a.id, PTypeId = a.ptypeid, Score = 0, Answer = (i == -1 ? "" : submitAlist[i]), CAnswer = a.quesanswer, Point = 0 }); } else { al.Add(new dto_UserAnswer() { QId = a.id, PTypeId = a.ptypeid, Score = 0, Answer = "", CAnswer = "", Point = 0 }); } } }); bool isok = false; T_Answer answer = new T_Answer() { PaperId = id, StudentId = studentId, Submited = true, CreateDate = DateTime.Now, AnswerJson = JsonConvert.SerializeObject(al), AnswerImg = "", Ip = ClientUtil.Ip, IMEI = ClientUtil.IMEI, MobileBrand = ClientUtil.MobileBrand, SystemType = systemType, Browser = browser }; if (ans != null) { isok = D_Paper.UpdateAnswerJson(id, studentId, answer.AnswerJson); } else { isok = D_Paper.InsertZyAnswer(answer); } return(isok ? "" : "入库失败!"); }
public static bool IsPaperSubmited(long paperId, int studentId) { int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId); return(D_Paper.IsPaperSubmited(studentId, id)); }