获取考试记录明细扩展接口

master
xiaochanghai 12 months ago
parent a2349c8e9b
commit bd8da3bcf4
  1. 13
      Tiobon.Core.Api/Controllers/Ghre/Ghre_ExamRecordController.cs
  2. 2
      Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs
  3. 18
      Tiobon.Core.Model/ViewModels/Extend/Ghre_ExamRecordExtend.cs
  4. 73
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs

@ -28,9 +28,20 @@ public class Ghre_ExamRecordController : BaseController<IGhre_ExamRecordServices
#endregion
[HttpPost, Route("ModifyAdjustScore/{examRecordId}")]
[HttpPost("ModifyAdjustScore/{examRecordId}")]
public async Task<ServiceResult> ModifyAdjustScore(string examRecordId, [FromBody] EditGhre_ExamRecordInput edit)
{
return await _service.ModifyAdjustScore(examRecordId, edit);
}
/// <summary>
/// 获取考试记录明细扩展接口
/// </summary>
/// <param name="examRecordId"></param>
/// <returns></returns>
[HttpPost("QueryExtend/{examRecordId}")]
public async Task<ServiceResult<Ghre_ExamRecordExtend>> ExtendAsync(string examRecordId)
{
return await _service.ExtendAsync(examRecordId);
}
}

@ -13,5 +13,7 @@ namespace Tiobon.Core.IServices
Task<ServicePageResult<Ghre_ExamRecordDto>> Query(string examId, QueryBody body);
Task<ServiceResult> ModifyAdjustScore(string examRecordId, EditGhre_ExamRecordInput edit);
Task<ServiceResult<Ghre_ExamRecordExtend>> ExtendAsync(string examRecordId);
}
}

@ -0,0 +1,18 @@
namespace Tiobon.Core.Model;
public class Ghre_ExamRecordExtend : DefaultGhre_ExamPaperPageData
{
public Ghre_ExamRecordExtendComment commentData { get; set; }
}
public class Ghre_ExamRecordExtendComment
{
public string commentText { get; set; }
public string commentStaffName { get; set; }
public string commentStaffNo { get; set; }
public string commentStaffPhoto { get; set; }
public string commentDeptName { get; set; }
public string commentTitleName { get; set; }
public bool? isFirstTime { get; set; }
}

@ -1,5 +1,4 @@

using Tiobon.Core.IServices;
using Tiobon.Core.IServices;
using Tiobon.Core.Model.Models;
using Tiobon.Core.Services.BASE;
using Tiobon.Core.IRepository.Base;
@ -9,6 +8,7 @@ using Tiobon.Core.Common;
using Tiobon.Core.Model;
using Newtonsoft.Json;
using System.Text.RegularExpressions;
using System.Net;
namespace Tiobon.Core.Services;
@ -155,4 +155,73 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
//return await QueryFilterPage(body, $"ExamId='{examId}'");
}
public async Task<ServiceResult<Ghre_ExamRecordExtend>> ExtendAsync(string examRecordId)
{
var extend = new Ghre_ExamRecordExtend();
var entity = await QuerySingle(examRecordId);
var exampaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == entity.ExamPaperId);
var baseData = new DefaultGhre_ExamPaperBaseData();
baseData.PaperNo = exampaper.PaperNo;
baseData.PaperName = exampaper.PaperName;
baseData.AnswerTime = exampaper.AnswerTime;
baseData.ScoreMethod = exampaper.ScoreMethod;
baseData.TotalScore = exampaper.TotalScore;
baseData.PassScore = exampaper.PassScore;
baseData.RetakeTimes = exampaper.RetakeTimes;
baseData.RemarkSz = exampaper.RemarkSz;
baseData.LinkType = exampaper.LinkType;
baseData.CourseId = exampaper.LinkType == "CourseId" ? exampaper.LinkId : null;
baseData.CourseSceneId = exampaper.LinkType == "CourseSceneId" ? exampaper.LinkId : null;
extend.baseData = baseData;
extend.styleInfo.coverImage = exampaper.CoverUrl;
extend.styleInfo.paperStyle = exampaper.Style;
extend.styleInfo.coverBackGround = exampaper.CoverBackGround;
var questions = await Db.Queryable<Ghre_ExamPaperQuestion>().Where(x => x.ExamPaperId == exampaper.Id).OrderBy(x => x.TaxisNo).ToListAsync();
var previews = questions.Where(x => x.QuestionId != null).Select(x => new DefaultGhre_ExamPaperPreview()
{
Id = x.Id,
ConfigId = x.ConfigId,
parentId = x.ConfigId,
QuestionId = x.QuestionId.Value,
ExamPaperId = x.ExamPaperId
}).ToList();
var questionIds = previews.Select(x => x.QuestionId).Distinct().ToList();
var questions1 = await Db.Queryable<Ghre_Question>().Where(x => questionIds.Contains(x.Id)).ToListAsync();
var answers = await Db.Queryable<Ghre_QuestionAnswer>().Where(x => x.QuestionId != null && questionIds.Contains(x.QuestionId.Value)).OrderBy(x => x.TaxisNo).ToListAsync(); ;
previews.ForEach(x =>
{
var answers1 = answers.Where(y => y.QuestionId == x.QuestionId).ToList();
x.QuestionType = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.QuestionType;
x.QuestionContent = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.QuestionContent;
if (!string.IsNullOrEmpty(x.QuestionContent))
x.QuestionContent = WebUtility.HtmlDecode(x.QuestionContent);
var detail = new FromGhre_QuestionQuestionTypeDetail();
detail.content = x.QuestionContent;
detail.difficulty = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.DifficultyLevel;
detail.answer = answers1.Where(x => x.IsCorrect == true).FirstOrDefault()?.QuestionNo;
detail.answer1 = answers1.Where(x => x.IsCorrect == true).Select(x => x.QuestionNo).ToList();
detail.answerList = answers1.Select(x => new FromGhre_QuestionQuestionAnswerList()
{
No = x.QuestionNo,
label = x.AnswerContent,
imageUrl = x.ImageUrl,
imgWidthPc = x.ImageWidthPc,
imgWidthApp = x.ImageWidthApp,
}).ToList();
x.detail = detail;
});
extend.previewList = previews;
return ServiceResult<Ghre_ExamRecordExtend>.OprateSuccess("查询成功!", extend);
}
}
Loading…
Cancel
Save