From a42df1127882cd433ad950ba17004f127aa73546 Mon Sep 17 00:00:00 2001 From: xiaochanghai Date: Wed, 2 Apr 2025 09:56:39 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B2=97=E4=BD=8D=E6=8A=80=E8=83=BD=E7=9F=A9?= =?UTF-8?q?=E9=98=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ViewModels/Extend/TitleSkillMatrix.cs | 3 + .../Ghra/Ghra_TitleServices.cs | 196 ++++++++++++++++-- 2 files changed, 178 insertions(+), 21 deletions(-) diff --git a/Tiobon.Core.Model/ViewModels/Extend/TitleSkillMatrix.cs b/Tiobon.Core.Model/ViewModels/Extend/TitleSkillMatrix.cs index dda2342c..81d2d3bb 100644 --- a/Tiobon.Core.Model/ViewModels/Extend/TitleSkillMatrix.cs +++ b/Tiobon.Core.Model/ViewModels/Extend/TitleSkillMatrix.cs @@ -11,6 +11,9 @@ public class TitleSkillMatrix public int IsEnable { get; set; } public string Type { get; set; } public string CourseSceneName { get; set; } + public string CourseSceneIds { get; set; } + + } diff --git a/Tiobon.Core.Services/Ghra/Ghra_TitleServices.cs b/Tiobon.Core.Services/Ghra/Ghra_TitleServices.cs index 7522d8e4..62f516f0 100644 --- a/Tiobon.Core.Services/Ghra/Ghra_TitleServices.cs +++ b/Tiobon.Core.Services/Ghra/Ghra_TitleServices.cs @@ -29,10 +29,29 @@ public class Ghra_TitleServices : BaseServices(); if (string.IsNullOrWhiteSpace(filter.orderBy)) filter.orderBy = "Type ASC"; - string sql = $"SELECT * FROM Ghre_CourseScene_V WHERE IsEnable=1"; + var rules1 = await ruleSrc.Where(x => x.RuleType == "Required" && x.TrainType == "Title").ToListAsync(); + var rules = Mapper.Map(rules1).ToANew>(); + + rules.ForEach(x => + { + if (x.ZoneId.IsNotEmptyOrNull()) + x.ZoneIds = JsonHelper.JsonToObj>(x.ZoneId); + if (x.DeptId.IsNotEmptyOrNull()) + x.DeptIds = JsonHelper.JsonToObj>(x.DeptId); + + if (x.TitleId.IsNotEmptyOrNull()) + x.TitleIds = JsonHelper.JsonToObj>(x.TitleId); + + if (x.JobId.IsNotEmptyOrNull()) + x.JobIds = JsonHelper.JsonToObj>(x.JobId); + + if (x.GradeId.IsNotEmptyOrNull()) + x.GradeIds = JsonHelper.JsonToObj>(x.GradeId); + }); #region 处理查询条件 //Expression> whereExpression = new Expression>(); @@ -45,26 +64,143 @@ public class Ghra_TitleServices : BaseServices(value); - - //switch (name) - //{ - // case "WaitRecommend": - // if (jsonParam.columnValue.ObjToInt() == 1) - // sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.WaitRecommended}'"; - // break; - // case "HasRecommended": - // if (jsonParam.columnValue.ObjToInt() == 1) - // sql += $" AND C.Status = '{DIC_INTERVIEW_ORDER_STATUS.HasRecommended}'"; - // break; - // case "WaitAppointment": - - // default: - // break; - //} + var jsonParam = JsonHelper.JsonToObj(value); + + switch (name) + { + + case "ZoneId": + switch (jsonParam.operationKey) + { + case "Include": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.ZoneIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "NotInclude": + if (jsonParam.columnValue != null) + rules = rules.Where(x => !x.ZoneIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "IsNull": + rules = rules.Where(x => x.ZoneIds.Count == 0).ToList(); + break; + case "NotNull": + rules = rules.Where(x => x.ZoneIds.Count > 0).ToList(); + break; + default: + break; + } + break; + case "DeptId": + switch (jsonParam.operationKey) + { + case "Include": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.DeptIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "NotInclude": + if (jsonParam.columnValue != null) + rules = rules.Where(x => !x.DeptIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "IsNull": + rules = rules.Where(x => x.DeptIds.Count == 0).ToList(); + break; + case "NotNull": + rules = rules.Where(x => x.DeptIds.Count > 0).ToList(); + break; + default: + break; + } + break; + case "TitleId": + switch (jsonParam.operationKey) + { + case "Include": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.TitleIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "NotInclude": + if (jsonParam.columnValue != null) + rules = rules.Where(x => !x.TitleIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "IsNull": + rules = rules.Where(x => x.TitleIds.Count == 0).ToList(); + break; + case "NotNull": + rules = rules.Where(x => x.TitleIds.Count > 0).ToList(); + break; + default: + break; + } + break; + case "JobId": + switch (jsonParam.operationKey) + { + case "Include": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.JobIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "NotInclude": + if (jsonParam.columnValue != null) + rules = rules.Where(x => !x.JobIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "IsNull": + rules = rules.Where(x => x.JobIds.Count == 0).ToList(); + break; + case "NotNull": + rules = rules.Where(x => x.JobIds.Count > 0).ToList(); + break; + default: + break; + } + break; + case "GradeId": + switch (jsonParam.operationKey) + { + case "Include": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.GradeIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "NotInclude": + if (jsonParam.columnValue != null) + rules = rules.Where(x => !x.GradeIds.Contains(jsonParam.columnValue.ObjToInt())).ToList(); + break; + case "IsNull": + rules = rules.Where(x => x.GradeIds.Count == 0).ToList(); + break; + case "NotNull": + rules = rules.Where(x => x.GradeIds.Count > 0).ToList(); + break; + default: + break; + } + break; + case "CourseId": + switch (jsonParam.operationKey) + { + case "Equal": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.CourseId == jsonParam.columnValue.ObjToLong()).ToList(); + sql += $" AND Id={jsonParam.columnValue}"; + break; + case "NotEqual": + if (jsonParam.columnValue != null) + rules = rules.Where(x => x.CourseId != jsonParam.columnValue.ObjToLong()).ToList(); + sql += $" AND Id !={jsonParam.columnValue}"; + + break; + default: + break; + } + break; + + default: + break; + } } } #endregion + + if (filter.pageSize == 0) filter.pageSize = 10000; @@ -85,7 +221,6 @@ public class Ghra_TitleServices : BaseServices().OrderBy(x => x.SortNo).ToListAsync(); - var rules = await Db.Queryable().Where(x => x.RuleType == "Required" && x.TrainType == "Title").ToListAsync(); var dict = new Dictionary>(); @@ -115,11 +250,30 @@ public class Ghra_TitleServices : BaseServices>(column.CourseSceneIds); + var courseScene = await Db.Queryable().Where(x => courseSceneIds.Contains(x.Id)).ToListAsync(); + CourseSceneName = string.Join(",", courseScene.Select(a => a.SceneName)); + } + else + CourseSceneName = null; + } + else + { + CourseName = CourseSceneName; + CourseSceneName = null; + } + var item = new JObject { new JProperty("Id", column.Id), - new JProperty("CourseNo", column.CourseNo), - new JProperty("CourseName", column.CourseName), + new JProperty("CourseSceneName", CourseSceneName), + new JProperty("CourseName", CourseName), new JProperty("Type", column.Type), };