diff --git a/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs index 8bf7d7e7..53633113 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_ExamRecordServices.cs @@ -1,7 +1,5 @@ using Tiobon.Core.Common; -using Tiobon.Core.IServices.BASE; using Tiobon.Core.Model; -using Tiobon.Core.Model.Models; namespace Tiobon.Core.IServices; @@ -32,4 +30,10 @@ public interface IGhre_ExamRecordServices : IBaseServices ModifyFinallyIsPass(string examRecordId, EditGhre_ExamRecordInput edit); Task SubmitAttachment(long examRecordId, List attachments); + + /// + /// 发放证书 + /// + /// + Task IssueCertificate(); } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs b/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs index 3eb92945..83cec488 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_ExamRecordServices.cs @@ -1441,4 +1441,18 @@ public class Ghre_ExamRecordServices : BaseServices + /// 发放证书 + /// + /// + public async Task IssueCertificate() + { + + //抓取当天提交考试的数据 + + return ServiceResult.OprateSuccess("发放成功!"); + } + #endregion } \ No newline at end of file diff --git a/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_AutoIssueCertificate_Quartz.cs b/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_AutoIssueCertificate_Quartz.cs new file mode 100644 index 00000000..d02f18d3 --- /dev/null +++ b/Tiobon.Core.Tasks/QuartzNet/Jobs/Job_AutoIssueCertificate_Quartz.cs @@ -0,0 +1,36 @@ +using Microsoft.Extensions.Logging; + +/// +/// 这里要注意下,命名空间和程序集是一样的,不然反射不到(任务类要去JobSetup添加注入) +/// +namespace Tiobon.Core.Tasks; + +public class Job_AutoIssueCertificate_Quartz : JobBase, IJob +{ + private readonly ILogger _logger; + private readonly IGhre_ExamRecordServices _services; + + public Job_AutoIssueCertificate_Quartz(ILogger logger, + ITasksQzServices tasksQzServices, + ITasksLogServices tasksLogServices, + IGhre_ExamRecordServices services) + : base(tasksQzServices, tasksLogServices) + { + _tasksQzServices = tasksQzServices; + _logger = logger; + _services = services; + } + public async Task Execute(IJobExecutionContext context) + { + // 可以直接获取 JobDetail 的值 + var jobKey = context.JobDetail.Key; + var jobId = jobKey.Name; + var executeLog = await ExecuteJob(context, async () => await Run(context, jobId.ObjToInt())); + + } + public async Task Run(IJobExecutionContext context, int jobid) + { + if (jobid > 0) + await _services.IssueCertificate(); + } +}