Exemplo n.º 1
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());
        }
Exemplo n.º 2
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());
        }
Exemplo n.º 3
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());
        }
Exemplo n.º 4
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());
        }
Exemplo n.º 5
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());
        }
Exemplo n.º 6
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());
        }
Exemplo n.º 7
0
        /// <summary>
        /// 提交答案
        /// 仍然做各种状态判断
        /// </summary>
        /// <param name="zyId"></param>
        /// <param name="questions"></param>
        /// <param name="answers"></param>
        /// <returns></returns>
        public JsonResult SubmitAnswer(long zyId, string questions, string answers)
        {
            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 = "试用作业仅用于数据展示,不允许进行操作!<br/>注册成为正式用户后即可体验所有功能!";
                r.data    = "";
                return(Json(r));
            }
            #region 访问权限验证
            dto_AjaxJsonResult <dto_Zy> r1 = AccessJudge(UserId, zy);
            if (r1.code == AjaxResultCodeEnum.Error)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = r1.message;
                r.data    = "";
                return(Json(r));
            }
            #endregion

            //作业提交验证
            T_Answer ans = B_Answer.GetAnswer(id, UserId);
            if (ans != null && ans.Submited)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "作业已提交,不能重复提交!";
                r.data    = "";
                return(Json(r));
            }

            //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)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "试题信息有误,提交失败!";
                r.data    = "";
                return(Json(r));
            }
            string qjson             = B_ZyRedis.GetQdbZyQuesJson(id);
            List <dto_ZyQuestion> ql = JsonConvert.DeserializeObject <List <dto_ZyQuestion> >(qjson);
            List <dto_UserAnswer> al = new List <dto_UserAnswer>();
            ql.ForEach(a => {
                string CAnswer = "";
                if (Const.OBJECTIVE_QUES_TYPES.Contains(a.PTypeId))
                {
                    if (a.QId == a.PQId)
                    {
                        CAnswer = B_QuesRedis.GetQuestion(zy.CourseId, a.QId).quesanswer;
                    }
                    else
                    {
                        CAnswer = B_QuesRedis.GetQuestion(zy.CourseId, a.PQId).Children.Find(b => b.id == a.QId).quesanswer;
                    }
                }
                int i = submitQlist.IndexOf(IdNamingHelper.Encrypt(IdNamingHelper.IdTypeEnum.Ques, a.QId).ToString());
                al.Add(new dto_UserAnswer()
                {
                    QId = a.QId, PTypeId = a.PTypeId, Score = a.Score, Answer = (i == -1 ? "" : submitAlist[i]), CAnswer = CAnswer, Point = 0
                });
            });
            bool isok = false;

            T_Answer answer = new T_Answer()
            {
                ZyId        = id,
                ZyType      = zy.Type,
                StudentId   = UserId,
                Submited    = true,
                CreateDate  = DateTime.Now,
                AnswerJson  = JsonConvert.SerializeObject(al),
                AnswerImg   = "",
                Ip          = ClientUtil.Ip,
                IMEI        = ClientUtil.IMEI,
                MobileBrand = ClientUtil.MobileBrand,
                SystemType  = Request.Browser.Platform.ToString(),
                Browser     = Request.Browser.Browser.ToString()
            };

            if (ans != null)
            {
                isok = B_Answer.UpdateAnswerJson(id, UserId, answer.AnswerJson);
            }
            else
            {
                isok = B_Answer.InsertZyAnswer(answer);
            }

            if (isok)
            {
                //写统计表
                B_Analyze.GenerateAnalyze(answer);

                r.code    = AjaxResultCodeEnum.Success;
                r.message = "";
                r.data    = "";
                return(Json(r));
            }
            else
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "提交入库失败!";
                r.data    = "";
                return(Json(r));
            }
        }