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); }
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)); }
/// <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)); }
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> /// <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="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)); }
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)); }
/// <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)); }
/// <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)); }
/// <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); }
/// <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)); }
/// <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)); } }