From c5ad146e9a8c5b86b0c2cd556412e0fdca7a7485 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Thu, 9 May 2024 10:12:20 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ghre/Ghre_QuestionServices.cs | 726 +++++++++--------- 1 file changed, 351 insertions(+), 375 deletions(-) diff --git a/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs index b4aef1a5..2335a69c 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_QuestionServices.cs @@ -1,339 +1,246 @@  -using Tiobon.Core.IServices; -using Tiobon.Core.Model.Models; -using Tiobon.Core.Services.BASE; -using Tiobon.Core.IRepository.Base; -using Tiobon.Core.Model; -using System.Dynamic; -using Newtonsoft.Json.Linq; -using AgileObjects.AgileMapper; -using Mysqlx.Crud; -using AgileObjects.AgileMapper.Extensions; using System.Data; +using AgileObjects.AgileMapper; using Tiobon.Core.Common; using Tiobon.Core.Common.DB.Dapper; -using MySqlX.XDevAPI.Common; -using System.Collections.Generic; +using Tiobon.Core.IRepository.Base; +using Tiobon.Core.IServices; +using Tiobon.Core.Model; +using Tiobon.Core.Model.Models; +using Tiobon.Core.Services.BASE; -namespace Tiobon.Core.Services +namespace Tiobon.Core.Services; + +/// +/// 题目 (服务) +/// +public class Ghre_QuestionServices : BaseServices, IGhre_QuestionServices { - /// - /// 题目 (服务) - /// - public class Ghre_QuestionServices : BaseServices, IGhre_QuestionServices + private readonly IBaseRepository _dal; + private IGhre_QuestionAnswerServices _ghre_QuestionAnswerServices; + private IGhre_CourseServices _ghre_CourseServices; + private IGhre_CourseClassServices _ghre_CourseClassServices; + public Ghre_QuestionServices(IBaseRepository dal, + IGhre_QuestionAnswerServices ghre_QuestionAnswerServices, + IGhre_CourseServices ghre_CourseServices, + IGhre_CourseClassServices ghre_CourseClassServices) { - private readonly IBaseRepository _dal; - private IGhre_QuestionAnswerServices _ghre_QuestionAnswerServices; - private IGhre_CourseServices _ghre_CourseServices; - private IGhre_CourseClassServices _ghre_CourseClassServices; - public Ghre_QuestionServices(IBaseRepository dal, - IGhre_QuestionAnswerServices ghre_QuestionAnswerServices, - IGhre_CourseServices ghre_CourseServices, - IGhre_CourseClassServices ghre_CourseClassServices) - { - this._dal = dal; - base.BaseDal = dal; - _ghre_QuestionAnswerServices = ghre_QuestionAnswerServices; - _ghre_CourseServices = ghre_CourseServices; - _ghre_CourseClassServices = ghre_CourseClassServices; - } + this._dal = dal; + base.BaseDal = dal; + _ghre_QuestionAnswerServices = ghre_QuestionAnswerServices; + _ghre_CourseServices = ghre_CourseServices; + _ghre_CourseClassServices = ghre_CourseClassServices; + } - public override async Task> QueryFilterPage(QueryBody body) - { - var data1 = await BaseDal.QueryFilterPage(body); - var data = Mapper.Map(data1.result.DT_TableDataT1).ToANew>(); - var courseIds = data.Where(x => x.CourseId != null).Select(x => x.CourseId).ToList(); + public override async Task> QueryFilterPage(QueryBody body) + { + var data1 = await BaseDal.QueryFilterPage(body); + var data = Mapper.Map(data1.result.DT_TableDataT1).ToANew>(); + var courseIds = data.Where(x => x.CourseId != null).Select(x => x.CourseId).ToList(); - var courses = await _ghre_CourseServices.Query(x => courseIds.Contains(x.Id)); - var classs = await _ghre_CourseClassServices.Query(); - data.ForEach(x => + var courses = await _ghre_CourseServices.Query(x => courseIds.Contains(x.Id)); + var classs = await _ghre_CourseClassServices.Query(); + data.ForEach(x => + { + if (x.DifficultyLevel == "Easy") + x.DifficultyLevel = "简单"; + else if (x.DifficultyLevel == "Normal") + x.DifficultyLevel = "普通"; + else if (x.DifficultyLevel == "Hard") + x.DifficultyLevel = "困难"; + x.QuestionType = ConvertQuestionType(x.QuestionType); + + if (x.CourseId != null) { - if (x.DifficultyLevel == "Easy") - x.DifficultyLevel = "简单"; - else if (x.DifficultyLevel == "Normal") - x.DifficultyLevel = "普通"; - else if (x.DifficultyLevel == "Hard") - x.DifficultyLevel = "困难"; - - if (x.QuestionType == "Single") - x.QuestionType = "单选题"; - else if (x.QuestionType == "Multiple") - x.QuestionType = "多选题"; - else if (x.QuestionType == "TrueOrFalse") - x.QuestionType = "判断题"; - else if (x.QuestionType == "Completion") - x.QuestionType = "填空题"; - else if (x.QuestionType == "ShortAnswer") - x.QuestionType = "简答题"; - - if (x.CourseId != null) - { - var course = courses.Where(a => a.Id == x.CourseId).FirstOrDefault(); - x.CourseName = course?.CourseName; - var courseClass = classs.Where(a => a.Id == course.CourseClassId).FirstOrDefault(); - x.CourseType = courseClass.ClassName; - } - }); + var course = courses.Where(a => a.Id == x.CourseId).FirstOrDefault(); + x.CourseName = course?.CourseName; + var courseClass = classs.Where(a => a.Id == course.CourseClassId).FirstOrDefault(); + x.CourseType = courseClass.ClassName; + } + }); + return new ServicePageResult(body.pageNum, data1.result.DT_TablePageInfoT1.TotalCount, body.pageSize, data); + } - return new ServicePageResult(body.pageNum, data1.result.DT_TablePageInfoT1.TotalCount, body.pageSize, data); + /// + /// + /// + /// + /// + public async Task> QueryFrom(long Id) + { + var data = new FromGhre_QuestionInput(); + + #region Column + data.Column.Add(new FromGhre_QuestionColumn() + { + label = "课程名称", + field = "courseID", + elementType = "ApiSelect", + required = true, + multipleSelect = true, + editable = true, + dataSource = "api/Common/GetSelect?type=Ghre_Course" + }); + data.Column.Add(new FromGhre_QuestionColumn() + { + label = "题目编号", + field = "questionNo", + elementType = "Input", + required = false, + multipleSelect = false, + editable = false, + dataSource = "", + placeholder = "保存后自动生成" + }); + #endregion - } + #region PageData - /// - /// - /// - /// - /// - public async Task> QueryFrom(long Id) + var answerList = new List { - var data = new FromGhre_QuestionInput(); - - #region Column - data.Column.Add(new FromGhre_QuestionColumn() + new FromGhre_QuestionQuestionAnswerList() { - label = "课程名称", - field = "courseID", - elementType = "ApiSelect", - required = true, - multipleSelect = true, - editable = true, - dataSource = "api/Common/GetSelect?type=Ghre_Course" - }); - data.Column.Add(new FromGhre_QuestionColumn() + No = "A", + }, + new FromGhre_QuestionQuestionAnswerList() { - label = "题目编号", - field = "questionNo", - elementType = "Input", - required = false, - multipleSelect = false, - editable = false, - dataSource = "", - placeholder = "保存后自动生成" - }); - - #endregion - - #region PageData - - var answerList = new List + No = "B", + }, + new FromGhre_QuestionQuestionAnswerList() { - new FromGhre_QuestionQuestionAnswerList() - { - No = "A", - }, - new FromGhre_QuestionQuestionAnswerList() - { - No = "B", - }, - new FromGhre_QuestionQuestionAnswerList() - { - No = "C", - }, - new FromGhre_QuestionQuestionAnswerList() - { - No = "D", - } - }; - var answerList1 = new List + No = "C", + }, + new FromGhre_QuestionQuestionAnswerList() { - new FromGhre_QuestionQuestionAnswerList() - { - No = "A", - }, - new FromGhre_QuestionQuestionAnswerList() + No = "D", + } + }; + var answerList1 = new List + { + new FromGhre_QuestionQuestionAnswerList() + { + No = "A", + }, + new FromGhre_QuestionQuestionAnswerList() + { + No = "B", + } + }; + data.PageData.questionType = new List + { + new FromGhre_QuestionQuestionType() + { + label = "单选题", + type = "Single", + isActive = 1, + detail= new FromGhre_QuestionQuestionTypeDetail() { - No = "B", + answerList=answerList } - }; - data.PageData.questionType = new List + }, + new FromGhre_QuestionQuestionType() { - new FromGhre_QuestionQuestionType() + label = "多选题", + type = "Multiple", + isActive = 0, + detail= new FromGhre_QuestionQuestionTypeDetail() { - label = "单选题", - type = "Single", - isActive = 1, - detail= new FromGhre_QuestionQuestionTypeDetail() - { - answerList=answerList - } - }, - new FromGhre_QuestionQuestionType() - { - label = "多选题", - type = "Multiple", - isActive = 0, - detail= new FromGhre_QuestionQuestionTypeDetail() - { - answerList=answerList - } - }, - new FromGhre_QuestionQuestionType() - { - label = "判断题", - type = "TrueOrFalse", - isActive = 0, - detail= new FromGhre_QuestionQuestionTypeDetail() - { - answerList=answerList1 - } - }, - new FromGhre_QuestionQuestionType() - { - label = "填空题", - type = "Completion", - isActive = 0, - }, - new FromGhre_QuestionQuestionType() - { - label = "简答题", - type = "ShortAnswer", - isActive = 0, + answerList=answerList } - }; - - if (Id != 0) + }, + new FromGhre_QuestionQuestionType() { - var question = await base.QueryById(Id); - data.PageData.questionType.ForEach(x => x.isActive = 0); - data.PageData.baseData.questionNo = question.QuestionNo; - data.PageData.baseData.courseID.Add(question.CourseId); - - var questionType = data.PageData.questionType.Where(x => x.type == question.QuestionType).FirstOrDefault(); - if (questionType != null) + label = "判断题", + type = "TrueOrFalse", + isActive = 0, + detail= new FromGhre_QuestionQuestionTypeDetail() { - var answers = await _ghre_QuestionAnswerServices.Query(x => x.QuestionId == Id, "TaxisNo ASC"); - questionType.isActive = 1; - questionType.detail.difficulty = question.DifficultyLevel; - questionType.detail.answer = answers.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo; - questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); - questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); - questionType.detail.content = question.QuestionContent; - questionType.detail.RemarkSz = question.QuestionAnalysis; - questionType.detail.answerList = answers.Select(x => new FromGhre_QuestionQuestionAnswerList() - { - No = x.QuestionNo, - label = x.AnswerContent, - imageUrl = x.ImageUrl, - imgWidthPc = x.ImageWidthPc, - imgWidthApp = x.ImageWidthApp, - }).ToList(); + answerList=answerList1 } + }, + new FromGhre_QuestionQuestionType() + { + label = "填空题", + type = "Completion", + isActive = 0, + }, + new FromGhre_QuestionQuestionType() + { + label = "简答题", + type = "ShortAnswer", + isActive = 0, } - #endregion + }; - return ServiceResult.OprateSuccess("查询成功!", data); - } - - public async Task InsertFrom(FromGhre_QuestionPageData insertModel) + if (Id != 0) { - var questionType = insertModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); - string questionTypeName = string.Empty; - if (questionType.type == "Single") - questionTypeName = "单选题"; - else if (questionType.type == "Multiple") - questionTypeName = "多选题"; - else if (questionType.type == "TrueOrFalse") - questionTypeName = "判断题"; - else if (questionType.type == "Completion") - questionTypeName = "填空题"; - else if (questionType.type == "ShortAnswer") - questionTypeName = "简答题"; - - #region 判断是否重复 - for (int j = 0; j < insertModel.baseData.courseID.Count; j++) - { - var courseID = insertModel.baseData.courseID[j]; - string sql = "SELECT * FROM Ghre_Question where QuestionType='{0}' and CourseId='{1}' and QuestionContent ='{2}'"; - sql = string.Format(sql, questionType.type, courseID, questionType.detail.content); - DataTable dt = Db.Ado.GetDataTable(sql); - if (dt.Rows.Count > 0) - { - var course = await _ghre_CourseServices.QueryById(courseID); - throw new Exception($"课程【{course.CourseName}】存在相同内容【{questionTypeName}】"); - } - } - #endregion + var question = await base.QueryById(Id); + data.PageData.questionType.ForEach(x => x.isActive = 0); + data.PageData.baseData.questionNo = question.QuestionNo; + data.PageData.baseData.courseID.Add(question.CourseId); - for (int j = 0; j < insertModel.baseData.courseID.Count; j++) + var questionType = data.PageData.questionType.Where(x => x.type == question.QuestionType).FirstOrDefault(); + if (questionType != null) { - var courseID = insertModel.baseData.courseID[j]; - var insert = new InsertGhre_QuestionInput(); - insert.CourseId = courseID; - - insert.QuestionType = questionType.type; - insert.DifficultyLevel = questionType.detail.difficulty; - insert.QuestionContent = questionType.detail.content; - insert.QuestionAnalysis = questionType.detail.RemarkSz; - insert.QuestionNo = GenerateContinuousSequence(insert.QuestionType.Substring(0, 1)); - - var id = await base.Add(insert); - - var insertAnswers = questionType.detail.answerList.Select(x => new InsertGhre_QuestionAnswerInput() + var answers = await _ghre_QuestionAnswerServices.Query(x => x.QuestionId == Id, "TaxisNo ASC"); + questionType.isActive = 1; + questionType.detail.difficulty = question.DifficultyLevel; + questionType.detail.answer = answers.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo; + questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); + questionType.detail.answer1 = answers.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList(); + questionType.detail.content = question.QuestionContent; + questionType.detail.RemarkSz = question.QuestionAnalysis; + questionType.detail.answerList = answers.Select(x => new FromGhre_QuestionQuestionAnswerList() { - QuestionNo = x.No, - AnswerContent = x.label, - ImageUrl = x.imageUrl, - ImageWidthPc = x.imgWidthPc, - ImageWidthApp = x.imgWidthApp, + No = x.QuestionNo, + label = x.AnswerContent, + imageUrl = x.ImageUrl, + imgWidthPc = x.ImageWidthPc, + imgWidthApp = x.ImageWidthApp, }).ToList(); - int i = 100; - insertAnswers.ForEach(x => - { - x.TaxisNo = i; - x.QuestionId = id; - if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") - x.IsCorrect = true; - i = i + 100; - }); - await _ghre_QuestionAnswerServices.Add(insertAnswers); } - - return ServiceResult.OprateSuccess("新增成功!"); } + #endregion + + return ServiceResult.OprateSuccess("查询成功!", data); + } - public async Task UpdareFrom(long Id, FromGhre_QuestionPageData editModel) + public async Task InsertFrom(FromGhre_QuestionPageData insertModel) + { + var questionType = insertModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); + string questionTypeName = ConvertQuestionType(questionType.type); + + #region 判断是否重复 + for (int j = 0; j < insertModel.baseData.courseID.Count; j++) { - var questionType = editModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); - string questionTypeName = string.Empty; - if (questionType.type == "Single") - questionTypeName = "单选题"; - else if (questionType.type == "Multiple") - questionTypeName = "多选题"; - else if (questionType.type == "TrueOrFalse") - questionTypeName = "判断题"; - else if (questionType.type == "Completion") - questionTypeName = "填空题"; - else if (questionType.type == "ShortAnswer") - questionTypeName = "简答题"; - - #region 判断是否重复 - for (int j = 0; j < editModel.baseData.courseID.Count; j++) + var courseID = insertModel.baseData.courseID[j]; + string sql = "SELECT * FROM Ghre_Question where QuestionType='{0}' and CourseId='{1}' and QuestionContent ='{2}'"; + sql = string.Format(sql, questionType.type, courseID, questionType.detail.content); + DataTable dt = Db.Ado.GetDataTable(sql); + if (dt.Rows.Count > 0) { - var courseID = editModel.baseData.courseID[j]; - string sql = "SELECT * FROM Ghre_Question where QuestionType='{0}' and CourseId='{1}' and QuestionContent ='{2}' AND Id !='{3}'"; - sql = string.Format(sql, questionType.type, courseID, questionType.detail.content, Id); - DataTable dt = Db.Ado.GetDataTable(sql); - if (dt.Rows.Count > 0) - { - var course = await _ghre_CourseServices.QueryById(courseID); - throw new Exception($"课程【{course.CourseName}】存在相同内容【{questionTypeName}】"); - } + var course = await _ghre_CourseServices.QueryById(courseID); + throw new Exception($"课程【{course.CourseName}】存在相同内容【{questionTypeName}】"); } - #endregion + } + #endregion - var data = await base.QueryById(Id); - await _ghre_QuestionAnswerServices.Delete(x => x.QuestionId == Id); - var edit = Mapper.Map(data).ToANew(); - edit.CourseId = editModel.baseData.courseID[0]; + for (int j = 0; j < insertModel.baseData.courseID.Count; j++) + { + var courseID = insertModel.baseData.courseID[j]; + var insert = new InsertGhre_QuestionInput(); + insert.CourseId = courseID; - edit.QuestionType = questionType.type; - edit.DifficultyLevel = questionType.detail.difficulty; - edit.QuestionContent = questionType.detail.content; - edit.QuestionAnalysis = questionType.detail.RemarkSz; + insert.QuestionType = questionType.type; + insert.DifficultyLevel = questionType.detail.difficulty; + insert.QuestionContent = questionType.detail.content; + insert.QuestionAnalysis = questionType.detail.RemarkSz; + insert.QuestionNo = GenerateContinuousSequence(insert.QuestionType.Substring(0, 1)); + + var id = await base.Add(insert); - await base.Update(Id, edit); var insertAnswers = questionType.detail.answerList.Select(x => new InsertGhre_QuestionAnswerInput() { QuestionNo = x.No, @@ -346,113 +253,182 @@ namespace Tiobon.Core.Services insertAnswers.ForEach(x => { x.TaxisNo = i; - x.QuestionId = Id; - if (questionType.detail.answer == x.QuestionNo && edit.QuestionType == "Single") + x.QuestionId = id; + if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") x.IsCorrect = true; i = i + 100; }); await _ghre_QuestionAnswerServices.Add(insertAnswers); + } + + return ServiceResult.OprateSuccess("新增成功!"); + } + + public async Task UpdareFrom(long Id, FromGhre_QuestionPageData editModel) + { + var questionType = editModel.questionType.Where(x => x.isActive == 1).FirstOrDefault(); + string questionTypeName = ConvertQuestionType(questionType.type); - for (int j = 0; j < editModel.baseData.courseID.Count; j++) + #region 判断是否重复 + for (int j = 0; j < editModel.baseData.courseID.Count; j++) + { + var courseID = editModel.baseData.courseID[j]; + string sql = "SELECT * FROM Ghre_Question where QuestionType='{0}' and CourseId='{1}' and QuestionContent ='{2}' AND Id !='{3}'"; + sql = string.Format(sql, questionType.type, courseID, questionType.detail.content, Id); + DataTable dt = Db.Ado.GetDataTable(sql); + if (dt.Rows.Count > 0) { - if (j == 0) - continue; + var course = await _ghre_CourseServices.QueryById(courseID); + throw new Exception($"课程【{course.CourseName}】存在相同内容【{questionTypeName}】"); + } + } + #endregion - var courseID = editModel.baseData.courseID[j]; - var insert = new InsertGhre_QuestionInput(); - insert.CourseId = courseID; + var data = await base.QueryById(Id); + await _ghre_QuestionAnswerServices.Delete(x => x.QuestionId == Id); + var edit = Mapper.Map(data).ToANew(); + edit.CourseId = editModel.baseData.courseID[0]; - insert.QuestionType = questionType.type; - insert.DifficultyLevel = questionType.detail.difficulty; - insert.QuestionContent = questionType.detail.content; - insert.QuestionAnalysis = questionType.detail.RemarkSz; - insert.QuestionNo = GenerateContinuousSequence(insert.QuestionType.Substring(0, 1)); + edit.QuestionType = questionType.type; + edit.DifficultyLevel = questionType.detail.difficulty; + edit.QuestionContent = questionType.detail.content; + edit.QuestionAnalysis = questionType.detail.RemarkSz; - var id = await base.Add(insert); + await base.Update(Id, edit); + var insertAnswers = questionType.detail.answerList.Select(x => new InsertGhre_QuestionAnswerInput() + { + QuestionNo = x.No, + AnswerContent = x.label, + ImageUrl = x.imageUrl, + ImageWidthPc = x.imgWidthPc, + ImageWidthApp = x.imgWidthApp, + }).ToList(); + int i = 100; + insertAnswers.ForEach(x => + { + x.TaxisNo = i; + x.QuestionId = Id; + if (questionType.detail.answer == x.QuestionNo && edit.QuestionType == "Single") + x.IsCorrect = true; + i = i + 100; + }); + await _ghre_QuestionAnswerServices.Add(insertAnswers); + + for (int j = 0; j < editModel.baseData.courseID.Count; j++) + { + if (j == 0) + continue; - insertAnswers = questionType.detail.answerList.Select(x => new InsertGhre_QuestionAnswerInput() - { - QuestionNo = x.No, - AnswerContent = x.label, - ImageUrl = x.imageUrl, - ImageWidthPc = x.imgWidthPc, - ImageWidthApp = x.imgWidthApp, - }).ToList(); - i = 100; - insertAnswers.ForEach(x => - { - x.TaxisNo = i; - x.QuestionId = id; - if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") - x.IsCorrect = true; - i = i + 100; - }); - await _ghre_QuestionAnswerServices.Add(insertAnswers); - } + var courseID = editModel.baseData.courseID[j]; + var insert = new InsertGhre_QuestionInput(); + insert.CourseId = courseID; - return ServiceResult.OprateSuccess("更新成功!"); - } + insert.QuestionType = questionType.type; + insert.DifficultyLevel = questionType.detail.difficulty; + insert.QuestionContent = questionType.detail.content; + insert.QuestionAnalysis = questionType.detail.RemarkSz; + insert.QuestionNo = GenerateContinuousSequence(insert.QuestionType.Substring(0, 1)); - public static string GenerateContinuousSequence(string prefixTemp) - { - try + var id = await base.Add(insert); + + insertAnswers = questionType.detail.answerList.Select(x => new InsertGhre_QuestionAnswerInput() { - string result = string.Empty; - string tableCode = "Ghre_Question"; - string columnCode = "QuestionNo"; - int length = 7; - int tempLength = 6; - int sequence; + QuestionNo = x.No, + AnswerContent = x.label, + ImageUrl = x.imageUrl, + ImageWidthPc = x.imgWidthPc, + ImageWidthApp = x.imgWidthApp, + }).ToList(); + i = 100; + insertAnswers.ForEach(x => + { + x.TaxisNo = i; + x.QuestionId = id; + if (questionType.detail.answer == x.QuestionNo && insert.QuestionType == "Single") + x.IsCorrect = true; + i = i + 100; + }); + await _ghre_QuestionAnswerServices.Add(insertAnswers); + } - #region 查询 - DbSelect dbSelect = new DbSelect(tableCode + " A", "A", null); - dbSelect.IsInitDefaultValue = false; + return ServiceResult.OprateSuccess("更新成功!"); + } + public static string GenerateContinuousSequence(string prefixTemp) + { + try + { + string result = string.Empty; + string tableCode = "Ghre_Question"; + string columnCode = "QuestionNo"; + int length = 7; + int tempLength = 6; + int sequence; + + #region 查询 + DbSelect dbSelect = new DbSelect(tableCode + " A", "A", null); + dbSelect.IsInitDefaultValue = false; + + if (!string.IsNullOrEmpty(prefixTemp)) + dbSelect.Select("MAX(SUBSTRING(A." + columnCode + "," + (prefixTemp.Length + 1).ToString() + "," + tempLength.ToString() + "))"); + else + dbSelect.Select("MAX(A." + columnCode + ")"); + //} + //dbSelect.Select("MAX(CONVERT(DECIMAL,SUBSTRING(A.ISSUE_NO," + (prefix.Length + dateString.Length + 1).ToString() + "," + tempLength.ToString() + ")))"); + if (!string.IsNullOrEmpty(prefixTemp)) + dbSelect.Where("SUBSTRING(A." + columnCode + ",1," + (prefixTemp.Length).ToString() + ")", " = ", prefixTemp); + dbSelect.Where("LEN(A." + columnCode + ")", "=", length); + string sql = dbSelect.GetSql(); + string maxSequence = Convert.ToString(DbAccess.Instance.ExecuteScalar(sql)); + #endregion + //tempLength = tempLength - dateString.Length; + if (string.IsNullOrEmpty(maxSequence)) + result = prefixTemp + Convert.ToString(1).PadLeft(tempLength, '0'); + else + { if (!string.IsNullOrEmpty(prefixTemp)) - dbSelect.Select("MAX(SUBSTRING(A." + columnCode + "," + (prefixTemp.Length + 1).ToString() + "," + tempLength.ToString() + "))"); - else - dbSelect.Select("MAX(A." + columnCode + ")"); - //} - //dbSelect.Select("MAX(CONVERT(DECIMAL,SUBSTRING(A.ISSUE_NO," + (prefix.Length + dateString.Length + 1).ToString() + "," + tempLength.ToString() + ")))"); - if (!string.IsNullOrEmpty(prefixTemp)) - dbSelect.Where("SUBSTRING(A." + columnCode + ",1," + (prefixTemp.Length).ToString() + ")", " = ", prefixTemp); - dbSelect.Where("LEN(A." + columnCode + ")", "=", length); - string sql = dbSelect.GetSql(); - string maxSequence = Convert.ToString(DbAccess.Instance.ExecuteScalar(sql)); - #endregion - //tempLength = tempLength - dateString.Length; - if (string.IsNullOrEmpty(maxSequence)) - result = prefixTemp + Convert.ToString(1).PadLeft(tempLength, '0'); - else { - if (!string.IsNullOrEmpty(prefixTemp)) + if (int.TryParse(maxSequence, out sequence)) { - if (int.TryParse(maxSequence, out sequence)) - { - sequence += 1; - if (sequence.ToString().Length > tempLength) - throw new Exception("自动生成字串长度已经超过设定长度!"); - } - else - throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!"); - result = prefixTemp + sequence.ToString().PadLeft(tempLength, '0'); + sequence += 1; + if (sequence.ToString().Length > tempLength) + throw new Exception("自动生成字串长度已经超过设定长度!"); } else + throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!"); + result = prefixTemp + sequence.ToString().PadLeft(tempLength, '0'); + } + else + { + if (int.TryParse(maxSequence, out sequence)) { - if (int.TryParse(maxSequence, out sequence)) - { - sequence += 1; - if (sequence.ToString().Length > length) - throw new Exception("自动生成字串长度已经超过设定长度!"); - } - else - throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!"); - result = sequence.ToString().PadLeft(length, '0'); + sequence += 1; + if (sequence.ToString().Length > length) + throw new Exception("自动生成字串长度已经超过设定长度!"); } + else + throw new Exception("表中的数据无法进行自动编号,请联系软件开发商!"); + result = sequence.ToString().PadLeft(length, '0'); } - return result; } - catch (Exception) { throw; } + return result; } + catch (Exception) { throw; } + } + + public static string ConvertQuestionType(string type) + { + string questionTypeName = string.Empty; + if (type == "Single") + questionTypeName = "单选题"; + else if (type == "Multiple") + questionTypeName = "多选题"; + else if (type == "TrueOrFalse") + questionTypeName = "判断题"; + else if (type == "Completion") + questionTypeName = "填空题"; + else if (type == "ShortAnswer") + questionTypeName = "简答题"; + return questionTypeName; } } \ No newline at end of file