From 6f83038d7f027b5fe815fcf2ee70275679a43e9e Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Wed, 30 Apr 2025 10:10:06 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=80=E7=8F=AD=E6=96=B0=E5=A2=9E=E5=8F=91?= =?UTF-8?q?=E9=80=81=E9=82=AE=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ghre/Ghre_OpenClassController.cs | 10 +++ Tiobon.Core.Api/Tiobon.Core.xml | 7 ++ .../Ghre/IGhre_OpenClassServices.cs | 2 + .../Ghre/Ghre_OpenClassServices.cs | 83 +++++++++++++++++++ Tiobon.Core/Tiobon.Core.Model.xml | 10 +++ Tiobon.Core/Tiobon.Core.xml | 7 ++ 6 files changed, 119 insertions(+) diff --git a/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs b/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs index 9a23215a..f77cdb08 100644 --- a/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs +++ b/Tiobon.Core.Api/Controllers/Ghre/Ghre_OpenClassController.cs @@ -220,4 +220,14 @@ public class Ghre_OpenClassController : BaseController AttendCheckOut(long Id) => await _service.Attend(Id, "CheckOut"); #endregion + + #region 邮件 + /// + /// 邮件 + /// + /// 开班ID + /// + [HttpPost, Route("Email/{Id}")] + public async Task Email(long Id) => await _service.Email(Id); + #endregion } \ No newline at end of file diff --git a/Tiobon.Core.Api/Tiobon.Core.xml b/Tiobon.Core.Api/Tiobon.Core.xml index 1330b0d6..752767ce 100644 --- a/Tiobon.Core.Api/Tiobon.Core.xml +++ b/Tiobon.Core.Api/Tiobon.Core.xml @@ -1260,6 +1260,13 @@ 开班ID + + + 邮件 + + 开班ID + + 开班费用(Controller) diff --git a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs index 8d6929c1..f4bfcaa4 100644 --- a/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs +++ b/Tiobon.Core.IServices/Ghre/IGhre_OpenClassServices.cs @@ -35,4 +35,6 @@ public interface IGhre_OpenClassServices : IBaseServices> QuerySchedule(long Id); Task Attend(long Id, string type); + + Task Email(long Id); } \ No newline at end of file diff --git a/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs b/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs index 7a50e092..6887c4a0 100644 --- a/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs +++ b/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs @@ -669,4 +669,87 @@ WHERE A.OpenClassId = '{Id}' AND A.IsEnable = 1"; return ServiceResult.OprateSuccess("签到成功!"); } #endregion + + #region 邮件 + /// + /// 邮件 + /// + /// 开班ID + /// + public async Task Email(long Id) + { + var entity = await base.QueryById(Id); + var stafffIds = new List(); + if (entity.StaffGroupId.IsNotEmptyOrNull()) + { + + var staffGroups = await _ghre_StaffGroupServices.QueryStaff(entity.StaffGroupId.Value, new QueryBody(), "", true); + + stafffIds = staffGroups.result.DT_TableDataT1.Select(x => x.StaffID).ToList(); + } + + var staffIds1 = await Db.Queryable().Where(x => x.OpenClassId == Id && x.StaffId != null).Select(s => s.StaffId.Value).ToListAsync(); + + stafffIds.AddRange(staffIds1); + stafffIds = stafffIds.Distinct().ToList(); + + var staffs = await Db.Queryable().Where(x => stafffIds.Contains(x.StaffID) && !string.IsNullOrEmpty(x.Email)).Select(x => new { x.StaffID, x.Email }).ToListAsync(); + + + var courseName = await Db.Ado.GetStringAsync($"select CourseName from Ghre_CourseScene_V where id='{entity.LinkId}'"); + + var content = entity.NoticeContent + "
" + + $"开班编号: {entity.OpenClassNo}
" + + $"开班名称: {entity.OpenClassName}
" + + $"课程名称: {courseName}
" + + $"开班起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.EndTime)}
" + + $"报名起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.RegisterStartTime)}
" + + $"考试起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.ExamStartTime)}
"; + for (int i = 0; i < staffs.Count; i++) + { + #region 发送邮件 + var mailOutbox = new Ghrs_MailOutbox(); + mailOutbox.TOMail = staffs[i].Email; + mailOutbox.MailTitle = "开班通知"; + mailOutbox.MailBody = content; + mailOutbox.MailPriority = 1; + mailOutbox.ScheduleTime = DateTime.Now; + mailOutbox.IsEnable = 1; + mailOutbox.SortNo = 1; + mailOutbox.CompanyID = 0; + mailOutbox.IsDefault = 0; + mailOutbox.CreateProg = "OpenClass"; + var id1 = await Db.Insertable(mailOutbox).ExecuteReturnIdentityAsync(); + #endregion + } + + var teacher = await Db.Queryable().Where(x => x.Id == entity.TeacherId).FirstAsync(); + if (teacher != null && teacher.Email.IsNotEmptyOrNull()) + { + content = entity.TeacherNoticeContent + "
" + + $"开班编号: {entity.OpenClassNo}
" + + $"开班名称: {entity.OpenClassName}
" + + $"课程名称: {courseName}
" + + $"开班起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.EndTime)}
" + + $"报名起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.RegisterStartTime)}
" + + $"考试起止日期: {DateTimeHelper.ConvertToMiniuteString(entity.ExamStartTime)}~{DateTimeHelper.ConvertToMiniuteString(entity.ExamStartTime)}
"; + + #region 发送邮件 + var mailOutbox = new Ghrs_MailOutbox(); + mailOutbox.TOMail = teacher.Email; + mailOutbox.MailTitle = "开班通知"; + mailOutbox.MailBody = content; + mailOutbox.MailPriority = 1; + mailOutbox.ScheduleTime = DateTime.Now; + mailOutbox.IsEnable = 1; + mailOutbox.SortNo = 1; + mailOutbox.CompanyID = 0; + mailOutbox.IsDefault = 0; + mailOutbox.CreateProg = "OpenClass"; + await Db.Insertable(mailOutbox).ExecuteReturnIdentityAsync(); + #endregion + } + return ServiceResult.OprateSuccess("发送成功!"); + } + #endregion } \ No newline at end of file diff --git a/Tiobon.Core/Tiobon.Core.Model.xml b/Tiobon.Core/Tiobon.Core.Model.xml index fce35185..68c6702b 100644 --- a/Tiobon.Core/Tiobon.Core.Model.xml +++ b/Tiobon.Core/Tiobon.Core.Model.xml @@ -6855,6 +6855,11 @@ 系统内置
+ + + 外训机构 + + 题目 (Dto.Base) @@ -25472,6 +25477,11 @@ 系统内置 + + + 外训机构 + + 题目 (Model) diff --git a/Tiobon.Core/Tiobon.Core.xml b/Tiobon.Core/Tiobon.Core.xml index 1330b0d6..752767ce 100644 --- a/Tiobon.Core/Tiobon.Core.xml +++ b/Tiobon.Core/Tiobon.Core.xml @@ -1260,6 +1260,13 @@ 开班ID + + + 邮件 + + 开班ID + + 开班费用(Controller)