diff --git a/VideoAnalysis/Components/Layouts/BasicLayout.razor.cs b/VideoAnalysis/Components/Layouts/BasicLayout.razor.cs index 6387c3c..49d3bbb 100644 --- a/VideoAnalysis/Components/Layouts/BasicLayout.razor.cs +++ b/VideoAnalysis/Components/Layouts/BasicLayout.razor.cs @@ -23,9 +23,9 @@ namespace VideoAnalysisRazor.Layouts new MenuDataItem { Path = "/", - Name = "首页", - Key = "hone", - Icon = "home", + Name = "课堂指标", + Key = "EvaluationProject", + Icon = "EvaluationProject", } }; } diff --git a/VideoAnalysis/Components/Pages/EvaluationProject.razor.cs b/VideoAnalysis/Components/Pages/EvaluationProject.razor.cs index 0290b01..eb292fd 100644 --- a/VideoAnalysis/Components/Pages/EvaluationProject.razor.cs +++ b/VideoAnalysis/Components/Pages/EvaluationProject.razor.cs @@ -29,13 +29,13 @@ namespace Learn.VideoAnalysis.Components.Pages async void OnChange(QueryModel query) { tableLoading = true; - Expression> where = null; + List where = default!; if (query.FilterModel != null && ((query.FilterModel?.Count() ?? 0) > 0)) { - where = query.GetFilterExpression(); + where = query.ToSqlSugerWhere(); } _dataSource = await criteria.AsQueryable() - .WhereIF(where != null, where) + .Where(where) .ToPageListAsync(query.PageIndex - 1, query.PageSize, _total); tableLoading = false; StateHasChanged(); diff --git a/VideoAnalysis/Learn.VideoAnalysis.csproj b/VideoAnalysis/Learn.VideoAnalysis.csproj index 11594ac..384c983 100644 --- a/VideoAnalysis/Learn.VideoAnalysis.csproj +++ b/VideoAnalysis/Learn.VideoAnalysis.csproj @@ -24,7 +24,6 @@ - diff --git a/VideoAnalysisCore/Common/AppCommon.cs b/VideoAnalysisCore/Common/AppCommon.cs index 9855ad8..d2978ee 100644 --- a/VideoAnalysisCore/Common/AppCommon.cs +++ b/VideoAnalysisCore/Common/AppCommon.cs @@ -1,4 +1,6 @@ -using FreeRedis; +using AntDesign; +using AntDesign.TableModels; +using FreeRedis; using Microsoft.Extensions.DependencyModel; using SqlSugar; using SqlSugar.IOC; @@ -71,7 +73,43 @@ namespace VideoAnalysisCore.Common /// public static class ExpandFunction { - + /// + /// 转换 ant 查询枚举 到 sqlsuger枚举 + /// + /// ant 查询枚举 + /// + /// + public static ConditionalType ConvertToConditionalType(TableFilterCompareOperator filterOperator) + { + return filterOperator switch + { + TableFilterCompareOperator.Equals => ConditionalType.Equal, + TableFilterCompareOperator.Contains => ConditionalType.Like, + TableFilterCompareOperator.StartsWith => ConditionalType.LikeLeft, + TableFilterCompareOperator.EndsWith => ConditionalType.LikeRight, + TableFilterCompareOperator.GreaterThan => ConditionalType.GreaterThan, + TableFilterCompareOperator.LessThan => ConditionalType.LessThan, + TableFilterCompareOperator.GreaterThanOrEquals => ConditionalType.GreaterThanOrEqual, + TableFilterCompareOperator.LessThanOrEquals => ConditionalType.LessThanOrEqual, + TableFilterCompareOperator.Condition => ConditionalType.In, + TableFilterCompareOperator.NotEquals => ConditionalType.NoEqual, + TableFilterCompareOperator.IsNull => ConditionalType.IsNullOrEmpty, + TableFilterCompareOperator.IsNotNull => ConditionalType.IsNot, + TableFilterCompareOperator.NotContains => ConditionalType.NoLike, + TableFilterCompareOperator.TheSameDateWith => ConditionalType.EqualNull, + TableFilterCompareOperator.Between => ConditionalType.Range, + _ => throw new ArgumentOutOfRangeException(nameof(filterOperator), filterOperator, "未知的枚举类型!") + }; + } + public static List ToSqlSugerWhere(this QueryModel qm ) + { + return qm.FilterModel.SelectMany(s => s.Filters.Select(x => new ConditionalModel() + { + FieldName = s.FieldName, + ConditionalType = ConvertToConditionalType( x.FilterCompareOperator), + FieldValue = x.Value.ToString(), + } as IConditionalModel)).ToList(); + } /// /// 获取应用有效程序集 /// diff --git a/VideoAnalysisCore/VideoAnalysisCore.csproj b/VideoAnalysisCore/VideoAnalysisCore.csproj index 6be7135..af346ad 100644 --- a/VideoAnalysisCore/VideoAnalysisCore.csproj +++ b/VideoAnalysisCore/VideoAnalysisCore.csproj @@ -55,5 +55,6 @@ +