You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
Tiobon.Web/Tiobon.Core.Services/Ghre/Ghre_OpenClassServices.cs

90 lines
4.1 KiB

namespace Tiobon.Core.Services;
/// <summary>
/// 开班管理 (服务)
/// </summary>
public class Ghre_OpenClassServices : BaseServices<Ghre_OpenClass, Ghre_OpenClassDto, InsertGhre_OpenClassInput, EditGhre_OpenClassInput>, IGhre_OpenClassServices
{
private readonly IBaseRepository<Ghre_OpenClass> _dal;
public Ghre_OpenClassServices(ICaching caching, IBaseRepository<Ghre_OpenClass> dal)
{
this._dal = dal;
base.BaseDal = dal;
base._caching = caching;
}
public override async Task<ServicePageResult<Ghre_OpenClassDto>> QueryFilterPage(QueryBody filter, string condition, bool? IsEnable = true)
{
if (filter.jsonParam != null)
foreach (JProperty jProperty in filter.jsonParam.Properties())
{
var name = jProperty.Name;
var value = jProperty.Value.ToString();
if (name == "StartEndTime")
{
var jsonParam = JsonHelper.JsonToObj<JsonParam>(value);
if (jsonParam.columnValue != null)
{
var ids1 = JsonHelper.JsonToObj<List<string>>(jsonParam.columnValue.ToString());
condition += $" AND ((StartTime>='{ids1[0]} 00:00:00' AND StartTime<='{ids1[1]} 23:59:59')";
condition += $" OR (EndTime>='{ids1[0]} 00:00:00' AND EndTime<='{ids1[1]} 23:59:59'))";
}
}
}
var result = await base.QueryFilterPage(filter, condition, IsEnable);
for (int i = 0; i < result.result.DT_TableDataT1.Count; i++)
{
var DT_TableDataT1 = result.result.DT_TableDataT1[i];
DT_TableDataT1.OpenClassType = await GetParaLabel("TrainingOpenClassType", result.result.DT_TableDataT1[i].OpenClassType);
DT_TableDataT1.OpenClassWay = await GetParaLabel("TrainingOpenClassWay", result.result.DT_TableDataT1[i].OpenClassWay);
DT_TableDataT1.ScoringMethod = await GetParaLabel("ScoreMethod", result.result.DT_TableDataT1[i].ScoringMethod);
if (DT_TableDataT1.LinkType == "Course")
DT_TableDataT1.CourseOrSceneName = (await Db.Queryable<Ghre_Course>().FirstAsync(x => x.Id == DT_TableDataT1.LinkId))?.CourseName;
else
DT_TableDataT1.CourseOrSceneName = (await Db.Queryable<Ghre_CourseScene>().FirstAsync(x => x.Id == DT_TableDataT1.LinkId))?.SceneName;
if (DT_TableDataT1.StartTime != null && DT_TableDataT1.EndTime != null)
DT_TableDataT1.StartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.StartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.EndTime)}";
if (DT_TableDataT1.RegisterStartTime != null && DT_TableDataT1.RegisterEndTime != null)
DT_TableDataT1.RegisterStartEndTime = $"{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterStartTime)}~{DateTimeHelper.ConvertToMiniuteString(DT_TableDataT1.RegisterEndTime)}";
if (DT_TableDataT1.ExamPaperId != null)
DT_TableDataT1.ExamPaperName = (await Db.Queryable<Ghre_ExamPaper>().FirstAsync(x => x.Id == DT_TableDataT1.ExamPaperId))?.PaperName;
if (DT_TableDataT1.ManagerId != null)
DT_TableDataT1.ManagerName = (await Db.Queryable<Ghra_Staff>().FirstAsync(x => x.StaffID == DT_TableDataT1.ManagerId))?.StaffName;
if (DT_TableDataT1.TeacherId != null)
DT_TableDataT1.TeacherName = (await Db.Queryable<Ghre_Teacher>().FirstAsync(x => x.Id == DT_TableDataT1.TeacherId))?.TeacherName;
result.result.DT_TableDataT1[i] = DT_TableDataT1;
}
return result;
}
public override async Task<long> Add(InsertGhre_OpenClassInput entity)
{
var result = await base.Add(entity);
entity.Status = "Temporary";
return result;
}
public override async Task<bool> Update(long Id, EditGhre_OpenClassInput editModel)
{
var result = await base.Update(Id, editModel, null, ["Status"]);
return result;
}
}