/// <summary> /// 保存问卷填写内容 /// </summary> /// <param name="content">问卷内容</param> /// <param name="message">处理后的结果信息</param> /// <returns></returns> public QssResult QssSaveQuestion(string content, out string message) { JObject quesRoot = (JObject)JsonConvert.DeserializeObject(content); int quesId = Convert.ToInt32(quesRoot["Id"]); // 查看填写问卷权限 if (CheckWtAuth(quesId, out Question question, out message) != QssResult.Success) { return(QssResult.Fail); } // 校验权限 if (CheckWtAuth(quesId, out question, out message) != QssResult.Success) { return(QssResult.Fail); } // 保存题目 var result = new QuesSubjectService().QssSaveQuesWtLog((JArray)quesRoot["Subjects"], question, out List <GetWtQuesSubject> wtSubjects, out message); if (result != QssResult.Success) { return(result); } // 保存填写记录 return(new WtLogService().QssSaveQuesWtLog(question, wtSubjects.ToArray(), CurrentUser, out message)); }
/// <summary> /// 创建问卷 /// Error:跳转 /// </summary> /// <param name="content">问卷内容</param> /// <param name="message">处理结果信息</param> /// <returns></returns> public QssResult QssCreateQues(string content, out string message) { // 获取当前登录用户 QssResult result = DbSession.UserDal.QssGetUserByAccount(User.Identity.Name, out User user); if (result != QssResult.Success) { message = "获取当前用户失败!"; return(QssResult.Error); } if (!user.QssCheckHaveEmail()) { message = "未绑定邮箱!"; return(QssResult.Fail); } // 每人每天只能添加3份问卷 if (user.LastAddQuesTime.AddDays(1) > DateTime.Now && user.AddQuesNum >= 3) { message = "添加问卷失败,每人每天只能添加3份问卷!"; return(QssResult.Error); } // 获取问卷内容 JObject quesRoot = (JObject)JsonConvert.DeserializeObject(content); // 全局变量 JObject quesGlobal = (JObject)quesRoot["Global"]; // 创建问卷 result = QssCreateQuesGlobal(quesGlobal, user, out Question question, out message); if (result != QssResult.Success) { return(result); } // 创建题目 JArray quesSubject = (JArray)quesRoot["Subjects"]; result = new QuesSubjectService().QssCreateQuesSubject(quesSubject, user, question, out message); if (result != QssResult.Success) { return(result); } // 保存问卷内容 result = QssCreateQuesContent(question, out message); if (result != QssResult.Success) { return(result); } // 发送站内信和邮件 return(new QssSendQvLetterEmail <Question>(question).Send(out message)); }