示例#1
0
        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());
        }
示例#2
0
        public ActionResult GetRelatedUserZy(int pageIndex, int pageSize)
        {
            int totalCount = 0;

            int[]         RUsers = B_User.GetRelatedUser(UserId);
            List <dto_Zy> list   = B_Zy.GetZyList(RUsers, pageIndex, pageSize, out totalCount);

            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;
            ViewBag.PageCount       = Util.GetTotalPageCount(totalCount, pageSize);
            return(PartialView());
        }
示例#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 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());
        }
示例#5
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));
        }
        protected void Page_Load(object sender, EventArgs e)
        {
            B_User.CheckIsLogged();
            if (!IsPostBack)
            {
                int SID = string.IsNullOrEmpty(Request.QueryString["SID"]) ? 0 : DataConverter.CLng(Request.QueryString["SID"]);

                int      uid = buser.GetLogin().UserID;
                B_Answer ban = new B_Answer();
                //if (SID > 0)
                //{
                //    tblAnswers = ban.Sel("Surveyid=" + SID + " And UserID=" + uid, "");
                //    dt = bans.Sel("Userid=" + uid + " And Sid=" + SID, "");
                //    int sta = Convert.ToInt32(dt.Rows[0]["Status"].ToString());
                //    string str = "";
                //    switch (sta)
                //    {
                //        case 0:
                //            str = "未审核";
                //            break;
                //        case 1:
                //            str = "已审核";
                //            break;
                //        case 2:
                //            str = "已录取";
                //            break;
                //        case -1:
                //            str = "未提交";
                //            break;
                //        case -2:
                //            str = "已解锁";
                //            break;
                //        default:
                //            break;
                //    }
                //    lbStatus.Text = str;
                //}
            }
        }
示例#7
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         M_UserInfo mu   = buser.GetLogin();
         M_Survey   info = surBll.GetSurveyBySid(Sid);
         if (Sid <= 0)
         {
             function.WriteErrMsg("缺少问卷投票的ID参数!", Request.UrlReferrer.ToString());
         }
         if (info == null || info.IsNull)
         {
             function.WriteErrMsg("缺少问卷!!");
         }
         if (!B_Survey.HasQuestion(Sid))
         {
             function.WriteErrMsg("该投票没有设定投票问题!");
         }
         if (info.NeedLogin)
         {
             B_User.CheckIsLogged(Request.RawUrl);
         }
         if (info.IsCheck)
         {
             regVcodeRegister.Visible = true;
         }
         if (!info.IsOpen)
         {
             function.WriteErrMsg("对不起,该问卷尚未启用!!", Request.UrlReferrer.ToString());
         }
         if (info.StartTime > DateTime.Now || info.EndTime < DateTime.Now)
         {
             function.WriteErrMsg("对不起,每年填写或报名时间是" + info.StartTime.ToLongDateString() + "到" + info.EndTime.ToLongDateString());
         }
         //判断是否已参与了该问卷
         if (B_Survey.HasAnswerBySID(Sid, mu.UserID))
         {
             function.WriteErrMsg("您已提交过该问卷!");
         }
         CheckIP(info);
         Random_Hid.Value = GetRandomID().ToString();
         DataTable tblAnswers = new DataTable();
         if (Request.QueryString["UID"] != null && Request.QueryString["PTime"] != null)
         {
             int    uid  = DataConverter.CLng(Request.QueryString["UID"]);
             string time = Server.UrlDecode(Request.QueryString["PTime"]);
             tblAnswers = B_Answer.GetUserAnswers(Sid, uid, time);
         }
         if (tblAnswers.Rows.Count > 0)
         {
             btnSubmit.Visible = false;
             btnExport.Visible = true;
         }
         else
         {
             btnExport.Visible = false;
             btnSubmit.Visible = true;
         }
         this.SurveyName_L.Text  = info.SurveyName;
         this.Description_L.Text = info.Description;
         this.CreateDate_L.Text  = info.CreateDate.ToString("yyyy-MM-dd");
         qtitle.Visible          = !string.IsNullOrEmpty(info.Description);
         StringBuilder      sb   = new StringBuilder();
         IList <M_Question> list = new List <M_Question>();
         list = B_Survey.GetQueList(Sid);
         for (int i = 0; i < list.Count; i++)
         {
             if (list[i].IsNull)
             {
                 sb.AppendLine("<li id='mao_" + i + "' name='mao_" + i + " '>");
                 IsNull_H.Value += "vote_" + i + ",";
             }
             else
             {
                 sb.AppendLine("<li id='mao_" + i + "' name='mao_" + i + " '>");
             }
             sb.AppendLine("<table id='tbl_" + i + "' style='width:100%;'>");
             sb.AppendLine("<tr style='border-bottom:1px solid #ddd;padding-bottom:5px;'><th>" + (i + 1) + ". " + list[i].QuestionTitle + (list[i].IsNull ? "<span style='color:#f00;margin-left:10px;'>*</span>" : "") + "</th></tr>");
             sb.AppendLine("<tr><td>" + list[i].QuestionContent + "</td></tr>");
             List <string> optionlist  = new List <string>();
             JObject       jobj        = JsonConvert.DeserializeObject <JObject>(list[i].Qoption);
             string[]      OptionValue = list[i].TypeID == 0 ? jobj["sel_op_body"].ToString().Split(',') : jobj["text_str_dp"].ToString().Split(',');
             string        optiontype  = list[i].TypeID == 0 ? jobj["sel_type_rad"].ToString() : jobj["text_type_rad"].ToString();
             if (tblAnswers.Rows.Count > 0)
             {
                 sb.AppendLine(SetAnswers(i, list[i].TypeID, list[i].QuestionID, tblAnswers, OptionValue));
             }
             else
             {
                 sb.AppendLine(SetOptions(i, optiontype, OptionValue));
             }
             sb.AppendLine("</table></li>");
         }
         IsNull_H.Value     = IsNull_H.Value.Trim(',');
         ltlResultHtml.Text = sb.ToString();
     }
 }
示例#8
0
        /// <summary>
        /// 上传答案图片
        /// 因为ajaxfileupload限制,这里不能返回json,所以特殊处理返回string
        /// </summary>
        /// <param name="zyId"></param>
        /// <returns></returns>
        public string UploadAnswerImage(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 = "试用作业仅用于数据展示,不允许进行操作!<br/>注册成为正式用户后即可体验所有功能!";
                r.data    = "";
                return(JsonConvert.SerializeObject(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(JsonConvert.SerializeObject(r));
            }
            #endregion

            //作业提交验证
            T_Answer ans = B_Answer.GetAnswer(id, UserId);
            if (ans != null && ans.Submited)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "作业已提交,不能再上传答案图片!";
                r.data    = "";
                return(JsonConvert.SerializeObject(r));
            }

            //上传
            HttpFileCollection files = System.Web.HttpContext.Current.Request.Files;
            r = ZyImgUploader.Upload(files);
            bool isok = false;
            if (r.code == AjaxResultCodeEnum.Success)
            {
                //入库
                if (ans == null)
                {
                    T_Answer AnsAdd = new T_Answer()
                    {
                        ZyId        = zy.Id,
                        ZyType      = zy.Type,
                        StudentId   = UserId,
                        Submited    = false,
                        CreateDate  = DateTime.Now,
                        AnswerJson  = "",
                        AnswerImg   = r.data,
                        Ip          = ClientUtil.Ip,
                        IMEI        = ClientUtil.IMEI,
                        MobileBrand = ClientUtil.MobileBrand,
                        SystemType  = Request.Browser.Platform.ToString(),
                        Browser     = Request.Browser.Browser.ToString()
                    };
                    isok = B_Answer.InsertZyAnswer(AnsAdd);
                }
                else
                {
                    isok = B_Answer.AddZyImg(zy.Id, UserId, r.data);
                }
            }
            if (!isok)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "入库失败!";
                r.data    = "";
                return(JsonConvert.SerializeObject(r));
            }
            r.data = Util.GetAppSetting("UploadUrlPrefix") + "/" + r.data;
            return(JsonConvert.SerializeObject(r));
        }
示例#9
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));
            }
        }