master
xiaochanghai 11 months ago
parent e099d4d68e
commit d94d1ecb85
  1. 8
      Model/Tiobon.Web.pdm
  2. 15
      Tiobon.Core.Api/Tiobon.Core.Model.xml
  3. 2
      Tiobon.Core.Model/Base/Ghre/Ghre_QuestionAnswer.Dto.Base.cs
  4. 17
      Tiobon.Core.Model/Consts.cs
  5. 2
      Tiobon.Core.Model/Models/Ghre/Ghre_QuestionAnswer.cs
  6. 2
      Tiobon.Core.Model/ViewModels/Extend/Ghre_StudyRecordCourse.cs
  7. 16
      Tiobon.Core.Services/Ghre/Ghre_CourseServices.cs
  8. 5
      Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs
  9. 18
      Tiobon.Core.Services/Ghre/Ghre_StudyRecordServices.cs
  10. 35
      Tiobon.Core/Tiobon.Core.Model.xml

@ -1,5 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1723097700" Name="Tiobon" Objects="7362" Symbols="309" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?>
<?PowerDesigner AppLocale="UTF16" ID="{C294868A-C3F3-41AD-98CC-78B6D4E0CC40}" Label="" LastModificationDate="1723109984" Name="Tiobon" Objects="7362" Symbols="309" Target="Microsoft SQL Server 2008" Type="{CDE44E21-9669-11D1-9914-006097355D9B}" signature="PDM_DATA_MODEL_XML" version="15.0.0.2613"?>
<!-- do not edit this file -->
<Model xmlns:a="attribute" xmlns:c="collection" xmlns:o="object">
@ -108817,11 +108817,11 @@ LABL 0 Arial Unicode MS,8,N</a:FontList>
<a:Code>ImageUrl</a:Code>
<a:CreationDate>1714101462</a:CreationDate>
<a:Creator>Administrator</a:Creator>
<a:ModificationDate>1714101683</a:ModificationDate>
<a:ModificationDate>1723109984</a:ModificationDate>
<a:Modifier>Administrator</a:Modifier>
<a:Comment>图片地址</a:Comment>
<a:DataType>nvarchar(64)</a:DataType>
<a:Length>64</a:Length>
<a:DataType>nvarchar(128)</a:DataType>
<a:Length>128</a:Length>
</o:Column>
<o:Column Id="o6597">
<a:ObjectID>7A58B7A7-4156-4865-85C6-E997C3C3A410</a:ObjectID>

@ -12687,6 +12687,21 @@
随机出题
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD">
<summary>
试卷管理-评分方式
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD.MANUAL">
<summary>
手动评分
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM">
<summary>
系统评分
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_EXAM_STATUS">
<summary>
考试管理-状态

@ -51,7 +51,7 @@ namespace Tiobon.Core.Model.Models
/// <summary>
/// 图片地址
/// </summary>
[Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 64 个字符")]
[Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 128 个字符")]
public string ImageUrl { get; set; }
/// <summary>

@ -66,6 +66,23 @@ public class Consts
/// </summary>
public const string RANDOM = "random";
}
/// <summary>
/// 试卷管理-评分方式
/// </summary>
public static class DIC_EXAM_PAPER_SCORE_METHOD
{
/// <summary>
/// 手动评分
/// </summary>
public const string MANUAL = "Manual";
/// <summary>
/// 系统评分
/// </summary>
public const string SYSTEM = "System";
}
#endregion

@ -53,7 +53,7 @@ namespace Tiobon.Core.Model.Models
/// <summary>
/// 图片地址
/// </summary>
[Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 64 个字符")]
[Display(Name = "ImageUrl"), Description("图片地址"), MaxLength(64, ErrorMessage = "图片地址 不能超过 128 个字符")]
public string ImageUrl { get; set; }
/// <summary>

@ -21,6 +21,8 @@ public class Ghre_StudyRecordCourse
public string TeacherPhotoUrl { get; set; }
public string DeptOrSchoolName { get; set; }
public string TeacherRemarkSz { get; set; }
public DateTime? CourseBeginTime { get; set; }
public DateTime? CourseEndTime { get; set; }
public List<Ghre_StudyRecordCourseWare> CourseWareList { get; set; }

@ -386,9 +386,12 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
if (!entity.CourseWareId.IsNull())
{
var ware = await Db.Queryable<Ghre_CourseWare>().FirstAsync(x => x.Id == entity.CourseWareId);
if (!string.IsNullOrWhiteSpace(ware.CourseIds))
if (ware != null)
{
var courseIds2 = JsonConvert.DeserializeObject<List<long>>(ware.CourseIds);
var courseIds2 = new List<long>();
if (!string.IsNullOrWhiteSpace(ware.CourseIds))
courseIds2 = JsonConvert.DeserializeObject<List<long>>(ware.CourseIds);
if (!courseIds2.Any(x => x == result))
{
courseIds2.Add(result);
@ -397,7 +400,6 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
await Db.Updateable<Ghre_CourseWare>().SetColumns(it => it.CourseIds == ware.CourseIds).Where(it => it.Id == ware.Id).ExecuteCommandAsync();
}
}
}
#endregion
@ -449,9 +451,12 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
if (!editModel.CourseWareId.IsNull())
{
var ware = await Db.Queryable<Ghre_CourseWare>().FirstAsync(x => x.Id == editModel.CourseWareId);
if (!string.IsNullOrWhiteSpace(ware.CourseIds))
if (ware != null)
{
var courseIds2 = JsonConvert.DeserializeObject<List<long>>(ware.CourseIds);
var courseIds2 = new List<long>();
if (!string.IsNullOrWhiteSpace(ware.CourseIds))
courseIds2 = JsonConvert.DeserializeObject<List<long>>(ware.CourseIds);
if (!courseIds2.Any(x => x == Id))
{
courseIds2.Add(Id);
@ -460,7 +465,6 @@ public class Ghre_CourseServices : BaseServices<Ghre_Course, Ghre_CourseDto, Ins
await Db.Updateable<Ghre_CourseWare>().SetColumns(it => it.CourseIds == ware.CourseIds).Where(it => it.Id == ware.Id).ExecuteCommandAsync();
}
}
}
#endregion
return result;

@ -242,6 +242,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
imgWidthPc = x.ImageWidthPc,
imgWidthApp = x.ImageWidthApp,
}).ToList();
detail.RemarkSz = questions1.FirstOrDefault(a => a.Id == x.QuestionId)?.QuestionAnalysis;
x.detail = detail;
@ -659,7 +660,6 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
return ServiceResult.OprateSuccess("成功!");
}
public async Task<ServiceResult> RetakeExamAsync(long examRecordId)
{
var entity = await base.QuerySingle(examRecordId);
@ -691,6 +691,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
var record = await base.QuerySingle(x => x.Id == studyRecordId);
if (record is null) return ServiceResult.OprateFailed("无效的考试ID");
using var _context = ContextFactory.CreateContext();
var exampaper = await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == record.ExamPaperId);
var dt = Db.GetDate();
var endTime = record.EndTime.Value.AddDays(1).AddSeconds(9);
@ -818,7 +819,7 @@ public class Ghre_ExamRecordServices : BaseServices<Ghre_ExamRecord, Ghre_ExamRe
record.ActualEndTime = DateTime.Now;
#region 打分
if (record.ScoreStatus == Consts.DIC_EXAM_RECORD_SCORE_STATUS.NO_SCORE && record.Status == Consts.DIC_EXAM_RECORD_STATUS.EXAM_END)
if (record.ScoreStatus == Consts.DIC_EXAM_RECORD_SCORE_STATUS.NO_SCORE && record.Status == Consts.DIC_EXAM_RECORD_STATUS.EXAM_END && exampaper.ScoreMethod == DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM)
{
await ExamHelper.SystemMarkAsync(Db, record, recordDetails, recordDetailAnswers);
record.ScoreStatus = Consts.DIC_EXAM_RECORD_SCORE_STATUS.HAS_SCORE;

@ -158,7 +158,7 @@ namespace Tiobon.Core.Services
label = "学习状态",
field = "StudyStatus",
elementType = "ApiSelect",
dataSource = "TBParaDetail_Train_CourseIsOpen",
dataSource = "TBParaDetail_Train_TrainingStudyStatus",
editable = true,
required = false,
multipleSelect = false,
@ -372,7 +372,9 @@ namespace Tiobon.Core.Services
B.StandardHour,
B.CreditPoints,
B.Outline CourseRemarkSz,
A.StudyProgress
A.StudyProgress,
A.CourseBeginTime,
A.CourseEndTime
FROM Ghre_StudyRecord A
LEFT JOIN Ghre_Course B ON A.CourseId = B.Id
LEFT JOIN Ghra_Staff c ON B.TeacherId = c.StaffID
@ -471,6 +473,9 @@ namespace Tiobon.Core.Services
course.CourseWareList[j].Attachments = await Db.Queryable<Ghre_CourseWareAttachment>().Where(x => x.CourseWareId == course.CourseWareList[j].Id).ToListAsync();
}
if (course.CourseBeginTime != null && course.CourseEndTime != null)
course.CourseDateString = DateTimeHelper.ConvertToDayString(course.CourseBeginTime) + "~" + DateTimeHelper.ConvertToDayString(course.CourseEndTime);
return ServiceResult<Ghre_StudyRecordCourse>.OprateSuccess("查询成功!", course);
}
@ -544,10 +549,17 @@ namespace Tiobon.Core.Services
var studyStatus = DicStudyRecordStudyStatus.NO_FINISH;
if (studyProgress == 100)
studyStatus = DicStudyRecordStudyStatus.HAS_FINISH;
sql = $"UPDATE Ghre_StudyRecord SET StudyProgress = ISNULL(StudyProgress, 0)+{studyProgress},StudyStatus='{studyStatus}' WHERE Id='{studyRecordId}'";
sql = $"UPDATE Ghre_StudyRecord SET StudyProgress = {studyProgress},StudyStatus='{studyStatus}' WHERE Id='{studyRecordId}'";
if (studyProgress > 0) await Db.Ado.ExecuteCommandAsync(sql);
sql = $"UPDATE Ghre_StudyRecord SET BeginTime=GETDATE(),StudyStatus='{studyStatus}' WHERE BeginTime IS NULL AND Id='{studyRecordId}'";
await Db.Ado.ExecuteCommandAsync(sql);
if (studyProgress == 100)
{
sql = $"UPDATE Ghre_StudyRecord SET EndTime=GETDATE() WHERE EndTime IS NULL AND Id='{studyRecordId}'";
await Db.Ado.ExecuteCommandAsync(sql);
}
return true;
}
#endregion

@ -2400,6 +2400,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamBase.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_ExamBase.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLogBase">
<summary>
考试通知记录 (Dto.Base)
@ -8176,6 +8186,16 @@
预留字段12
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Exam.UseDefaultCoverImage">
<summary>
是否使用默认封面
</summary>
</member>
<member name="P:Tiobon.Core.Model.Models.Ghre_Exam.DefaultCoverImageName">
<summary>
默认封面图Name
</summary>
</member>
<member name="T:Tiobon.Core.Model.Models.Ghre_ExamMessageLog">
<summary>
考试通知记录 (Model)
@ -12667,6 +12687,21 @@
随机出题
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD">
<summary>
试卷管理-评分方式
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD.MANUAL">
<summary>
手动评分
</summary>
</member>
<member name="F:Tiobon.Core.Model.Consts.DIC_EXAM_PAPER_SCORE_METHOD.SYSTEM">
<summary>
系统评分
</summary>
</member>
<member name="T:Tiobon.Core.Model.Consts.DIC_EXAM_STATUS">
<summary>
考试管理-状态

Loading…
Cancel
Save