Пример #1
0
        public static dto_AjaxJsonResult <string> Upload(HttpFileCollection files)
        {
            dto_AjaxJsonResult <string> r = new dto_AjaxJsonResult <string>();

            if (files.Count == 0)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "未找到任何上传的图片!";
                r.data    = "";
                return(r);
            }

            string url = "";

            if (files.Count > 0)
            {
                HttpPostedFile file   = files[0];
                string         result = FileUploader.UploadToServer(file, Const.ImgFunc.SubmitAnswer);
                var            resp   = Newtonsoft.Json.JsonConvert.DeserializeObject <dto_UploadResponseEntity <List <string> > >(result);
                if (resp.Code != (int)dto_UploadResponseCode.Success)
                {
                    r.code    = AjaxResultCodeEnum.Error;
                    r.message = resp.Message;
                    r.data    = "";
                    return(r);
                }
                url = resp.Data[0];
            }

            r.code    = AjaxResultCodeEnum.Success;
            r.message = "";
            r.data    = url;
            return(r);
        }
Пример #2
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));
        }
Пример #3
0
        /// <summary>
        /// 注册
        /// </summary>
        /// <param name="userName"></param>
        /// <param name="passWord"></param>
        /// <returns></returns>
        public JsonResult RegistUser(string userName, string passWord, string token, string checkCode)
        {
            string CorrectCode = B_CheckCodeRedis.GetCheckCode(token);
            dto_AjaxJsonResult <bool> result = new dto_AjaxJsonResult <bool>();

            if (checkCode.ToLower() != CorrectCode.ToLower())
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "验证码错误";
                result.data    = false;
                return(Json(result));
            }
            if (IsUserNameExists(userName) == "1")
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "用户名已被使用";
                result.data    = false;
                return(Json(result));
            }

            T_User u = new T_User()
            {
                UserName       = userName,
                TrueName       = "",
                Psd            = Util.MD5(passWord),
                Mobile         = "",
                FirstLoginDate = DateTime.Parse("2000-01-01 00:00:00"),
                CreateDate     = DateTime.Now,
                Extend1        = passWord,
                ZyPsd          = "",
                ZyPrice        = 0,
                ProvinceId     = 0,
                CityId         = 0,
                DistrictId     = 0,
                SchoolId       = 0,
                GradeId        = 0,
                ClassId        = 0
            };
            int i = B_User.Create(u);

            if (i > 0)
            {
                result.code    = AjaxResultCodeEnum.Success;
                result.message = "";
                result.data    = true;
            }
            else
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "入库失败";
                result.data    = false;
            }
            return(Json(result));
        }
Пример #4
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 = new dto_AjaxJsonResult <dto_Zy>();

            r.code    = AjaxResultCodeEnum.Success;
            r.message = "";
            r.data    = zy;

            return(Json(r));
        }
Пример #5
0
        /// <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));
                }
            }
        }
Пример #6
0
        /// <summary>
        /// 删除关注我的人
        /// </summary>
        /// <param name="userId"></param>
        /// <returns></returns>
        public JsonResult DeleteRelate(int userId)
        {
            dto_AjaxJsonResult <bool> result = new dto_AjaxJsonResult <bool>();
            bool b = B_User.DeleteRelate(UserId, userId);

            if (b)
            {
                result.code    = AjaxResultCodeEnum.Success;
                result.message = "";
                result.data    = true;
            }
            else
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "删除失败!";
                result.data    = false;
            }
            return(Json(result));
        }
Пример #7
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));
        }
Пример #8
0
        /// <summary>
        /// 提交答案
        /// </summary>
        /// <param name="paperId"></param>
        /// <param name="questions"></param>
        /// <param name="answers"></param>
        /// <returns></returns>
        //[LoginFilterAttribute]
        public JsonResult SubmitAnswer(int courseId, long paperId, string questions, string answers)
        {
            dto_AjaxJsonResult <string> r = new dto_AjaxJsonResult <string>();
            string SystemType             = Request.Browser.Platform.ToString();
            string Browser = Request.Browser.Browser.ToString();

            string result = B_Paper.SubmitAnswer(courseId, paperId, UserId, questions, answers, SystemType, Browser);

            if (string.IsNullOrEmpty(result))
            {
                r.code    = AjaxResultCodeEnum.Success;
                r.message = "";
                r.data    = "";
            }
            else
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = result;
                r.data    = "";
            }
            return(Json(r));
        }
Пример #9
0
        /// <summary>
        /// 保存作业
        /// </summary>
        /// <param name="zyName"></param>
        /// <param name="startDate"></param>
        /// <param name="endDate"></param>
        /// <param name="questions"></param>
        /// <returns></returns>
        public JsonResult SaveZy(int courseId, string zyName, string startDate, string endDate, string questions)
        {
            #region 参数验证
            dto_AjaxJsonResult <string> result = new dto_AjaxJsonResult <string>();
            if (zyName.Length > 30)
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "作业名称不能超过30个字!";
                return(Json(result));
            }
            DateTime OpenDate, DueDate;
            if (!DateTime.TryParse(startDate, out OpenDate) || !DateTime.TryParse(endDate, out DueDate))
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "开始时间和结束时间都要设置!";
                return(Json(result));
            }

            if (OpenDate > DueDate)
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "开始时间不能大于结束时间!";
                return(Json(result));
            }

            if (string.IsNullOrEmpty(questions))
            {
                result.code    = AjaxResultCodeEnum.Error;
                result.message = "试题不能为空!";
                return(Json(result));
            }

            #endregion
            int subjectId = 0;
            Const.CourseSubjectMapping.TryGetValue(courseId, out subjectId);
            //保存作业信息
            T_Zy zy = new T_Zy()
            {
                UserId      = UserId,
                ZyName      = zyName,
                OpenDate    = OpenDate,
                DueDate     = DueDate,
                Type        = 0,
                CourseId    = courseId,
                SubjectId   = subjectId,
                CreateDate  = DateTime.Now,
                Ip          = ClientUtil.Ip,
                IMEI        = ClientUtil.IMEI,
                MobileBrand = ClientUtil.MobileBrand,
                SystemType  = Request.Browser.Platform.ToString(),
                Browser     = Request.Browser.Browser.ToString(),
                Status      = 0
            };
            int id = B_Zy.Create(zy);

            //保存作业试题信息
            string[] qs = questions.Split(',');
            if (id > 0)
            {
                SaveZyQuestions(courseId, id, qs);
            }

            //修改试题使用次数
            IncreaseQuesUsageTimes(courseId, qs);

            result.code    = AjaxResultCodeEnum.Success;
            result.message = "";
            return(Json(result));
        }
Пример #10
0
        /// <summary>
        /// 作业的访问鉴权
        /// </summary>
        /// <param name="zyId"></param>
        /// <param name="userId"></param>
        /// <returns></returns>
        protected dto_AjaxJsonResult <dto_Zy> AccessJudge(int userId, dto_Zy zy)
        {
            dto_AjaxJsonResult <dto_Zy> r = new dto_AjaxJsonResult <dto_Zy>();
            //如果状态有问题,只返回少数信息给客户端
            dto_Zy zy2 = new dto_Zy()
            {
                ZyName = zy.ZyName, OpenDate = zy.OpenDate, DueDate = zy.DueDate, OpenDateStr = zy.OpenDateStr, DueDateStr = zy.DueDateStr, Status = zy.Status, Type = zy.Type
            };

            //打开作业时,为了能把作业内容显示出来,不在此处做试用作业判断
            //if (zy.UserId == 0)
            //{
            //    r.code = AjaxResultCodeEnum.Error;
            //    r.message = "试用作业仅用于数据展示,不允许进行操作!";
            //    r.data = zy2;
            //    return r;
            //}
            if (zy.Status == 2)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "作业已删除,不能打开!";
                r.data    = zy2;
                return(r);
            }
            if (zy.Status == 1)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "作业已关闭,不能提交!";
                r.data    = zy2;
                return(r);
            }
            if (zy.OpenDate > DateTime.Now)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "作业没到开放时间!";
                r.data    = zy2;
                return(r);
            }

            if (zy.UserId != 0 && userId == 0)
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "未登录/试用状态,不能打开由正式用户创建的作业,请您先登录!";
                r.data    = zy2;
                return(r);
            }

            if (zy.UserId != 0 && UserInfo != null && (UserInfo.GradeId == 0 || UserInfo.ClassId == 0))
            {
                r.code    = AjaxResultCodeEnum.Error;
                r.message = "请先到个人中心设置自己所在的学校、年级、班级等信息!";
                r.data    = zy2;
                return(r);
            }

            if (zy.UserId != 0)
            {
                int[] rl = B_User.GetBeRelatedUser(zy.UserId);
                if (rl == null || !rl.Any(a => a == userId))
                {
                    r.code    = AjaxResultCodeEnum.Error;
                    r.message = "您尚未关注此老师,不能打开这个作业。您可在个人中心添加关注老师!";
                    r.data    = zy2;
                    return(r);
                }
            }

            r.code    = AjaxResultCodeEnum.Success;
            r.message = "";
            r.data    = zy;
            return(r);
        }
Пример #11
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));
        }
Пример #12
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));
            }
        }