Exemple #1
0
        /// <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());
        }
Exemple #2
0
        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);
        }
Exemple #3
0
        /// <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());
        }
Exemple #5
0
        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());
        }
Exemple #6
0
        /// <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);
        }
Exemple #9
0
        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));
        }
Exemple #12
0
        /// <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());
        }
Exemple #13
0
        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));
                }
            }
        }
Exemple #15
0
        /// <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());
        }
Exemple #17
0
        /// <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());
        }
Exemple #18
0
        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);
        }
Exemple #19
0
        /// <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());
        }
Exemple #20
0
        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());
        }
Exemple #22
0
        //[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)));
        }
Exemple #25
0
        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());
        }
Exemple #28
0
        public static T_Answer GetAnswer(long paperId, int studentId)
        {
            int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId);

            return(D_Paper.GetAnswer(id, studentId));
        }
Exemple #29
0
        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 ? "" : "入库失败!");
        }
Exemple #30
0
        public static bool IsPaperSubmited(long paperId, int studentId)
        {
            int id = IdNamingHelper.Decrypt(IdNamingHelper.IdTypeEnum.Paper, paperId);

            return(D_Paper.IsPaperSubmited(studentId, id));
        }