|
|
|
@ -1,4 +1,8 @@ |
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
using static Tiobon.Core.Model.Consts; |
|
|
|
|
using Tiobon.Core.Common.DB.Dapper.Extensions; |
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
|
|
|
|
namespace Tiobon.Core.Services; |
|
|
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
/// 培训证书规则 (服务) |
|
|
|
@ -50,10 +54,37 @@ public class Ghre_CertificateRuleServices : BaseServices<Ghre_CertificateRule, G |
|
|
|
|
condition = condition1; |
|
|
|
|
else condition += " AND " + condition1; |
|
|
|
|
var data = await base.QueryFilterPage(filter, condition, IsEnable); |
|
|
|
|
var courseIds = data.result.DT_TableDataT1.Where(x => x.CourseSceneId != null || x.CourseId != null).Select(x => x.CourseId ?? x.CourseSceneId).Distinct().ToList(); |
|
|
|
|
|
|
|
|
|
var courseIds = new List<long?>(); |
|
|
|
|
var courseSceneIds = new List<long?>(); |
|
|
|
|
data.result.DT_TableDataT1.ForEach(x => |
|
|
|
|
{ |
|
|
|
|
if (x.CourseId1.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
x.CourseIds = JsonHelper.JsonToObj<List<long?>>(x.CourseId1); |
|
|
|
|
courseIds.AddRange(x.CourseIds); |
|
|
|
|
} |
|
|
|
|
else if (x.CourseId != null) |
|
|
|
|
{ |
|
|
|
|
courseIds.Add(x.CourseId); |
|
|
|
|
x.CourseIds = [x.CourseId]; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (x.CourseSceneId1.IsNotEmptyOrNull()) |
|
|
|
|
{ |
|
|
|
|
x.CourseSceneIds = JsonHelper.JsonToObj<List<long?>>(x.CourseSceneId1); |
|
|
|
|
courseSceneIds.AddRange(x.CourseSceneIds); |
|
|
|
|
} |
|
|
|
|
else if (x.CourseSceneId != null) |
|
|
|
|
{ |
|
|
|
|
courseSceneIds.Add(x.CourseSceneId); |
|
|
|
|
x.CourseSceneIds = [x.CourseSceneId]; |
|
|
|
|
} |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var courses = await _ghre_CourseServices.Query(x => courseIds.Contains(x.Id)); |
|
|
|
|
var courseScenes = await _ghre_CourseSceneServices.Query(x => courseIds.Contains(x.Id)); |
|
|
|
|
var courseScenes = await _ghre_CourseSceneServices.Query(x => courseSceneIds.Contains(x.Id)); |
|
|
|
|
|
|
|
|
|
data.result.DT_TableDataT1.ForEach(async x => |
|
|
|
|
{ |
|
|
|
@ -69,13 +100,51 @@ public class Ghre_CertificateRuleServices : BaseServices<Ghre_CertificateRule, G |
|
|
|
|
else |
|
|
|
|
if (x.ValidityType == "Option") |
|
|
|
|
x.ValidityLabel = $"有效期至【{x.ValidityTime.Value.ToString("yyyy-MM-dd")}】"; |
|
|
|
|
if (x.CourseSceneId != null) |
|
|
|
|
x.SceneOrCourseName = courseScenes.FirstOrDefault(o => o.Id == x.CourseSceneId)?.SceneName; |
|
|
|
|
if (x.CourseIds != null && x.CourseIds.Any()) |
|
|
|
|
{ |
|
|
|
|
x.SceneOrCourseName = string.Join("、", courses.Where(o => x.CourseIds.Contains(o.Id)).Select(o => o.CourseName)); |
|
|
|
|
} |
|
|
|
|
// |
|
|
|
|
|
|
|
|
|
if (x.CourseId != null) |
|
|
|
|
x.SceneOrCourseName = courses.FirstOrDefault(o => o.Id == x.CourseId)?.CourseName; |
|
|
|
|
if (x.CourseSceneIds != null && x.CourseSceneIds.Any()) |
|
|
|
|
x.SceneOrCourseName = string.Join("、", courseScenes.Where(o => x.CourseSceneIds.Contains(o.Id)).Select(o => o.SceneName)); |
|
|
|
|
}); |
|
|
|
|
return data; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<long> Add(InsertGhre_CertificateRuleInput entity) |
|
|
|
|
{ |
|
|
|
|
if (entity.CourseSceneIds != null) |
|
|
|
|
entity.CourseSceneId1 = JsonHelper.ObjToJson(entity.CourseSceneIds); |
|
|
|
|
if (entity.CourseIds != null) |
|
|
|
|
entity.CourseId1 = JsonHelper.ObjToJson(entity.CourseIds); |
|
|
|
|
var result = await base.Add(entity); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<bool> Update(long Id, EditGhre_CertificateRuleInput editModel) |
|
|
|
|
{ |
|
|
|
|
if (editModel.CourseSceneIds != null) |
|
|
|
|
editModel.CourseSceneId1 = JsonHelper.ObjToJson(editModel.CourseSceneIds); |
|
|
|
|
if (editModel.CourseIds != null) |
|
|
|
|
editModel.CourseId1 = JsonHelper.ObjToJson(editModel.CourseIds); |
|
|
|
|
var result = await base.Update(Id, editModel); |
|
|
|
|
return result; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
public override async Task<ServiceFormResult<Ghre_CertificateRuleDto>> QueryForm(QueryForm body) |
|
|
|
|
{ |
|
|
|
|
var result = await base.QueryForm(body); |
|
|
|
|
string CourseId1 = result.result.DT_TableDataT1[0].CourseId1; |
|
|
|
|
if (!string.IsNullOrWhiteSpace(CourseId1)) |
|
|
|
|
result.result.DT_TableDataT1[0].CourseIds = JsonConvert.DeserializeObject<List<long?>>(CourseId1); |
|
|
|
|
string CourseSceneId1 = result.result.DT_TableDataT1[0].CourseSceneId1; |
|
|
|
|
if (!string.IsNullOrWhiteSpace(CourseSceneId1)) |
|
|
|
|
result.result.DT_TableDataT1[0].CourseSceneIds = JsonConvert.DeserializeObject<List<long?>>(CourseSceneId1); |
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |