// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。 // // 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。 // // 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任! @{ string joinTableName = "u"; Dictionary definedObjects = new Dictionary(); bool haveLikeCdt = false; string RemoteField=""; string PKName=""; foreach (var column in Model.TableField){ if (column.QueryWhether == "Y" && column.QueryType == "like"){ haveLikeCdt = true; } if(column.RemoteVerify){ RemoteField=@column.PropertyName; } if(column.ColumnKey == "True"){ PKName=column.PropertyName; } } } @if(@Model.NameSpace != "Admin.NET.Core"){ @:using Admin.NET.Core; } namespace @(@Model.NameSpace); public partial class @(@Model.ClassName)Mid { /// /// 获取查询 /// /// /// /// public static ISugarQueryable<@(@Model.ClassName)Output> GetQuery(SqlSugarRepository<@(@Model.ClassName)> _@(@Model.LowerClassName)Rep,Page@(@Model.ClassName)Input input) { var sysCacheService = App.GetRequiredService(); var db = App.GetRequiredService(); @if (haveLikeCdt) { @:input.SearchKey = input.SearchKey?.Trim(); } var query = _@(@Model.LowerClassName)Rep.AsQueryable() @{string conditionFlag = "";} @if (haveLikeCdt) { @:.WhereIF(!string.IsNullOrEmpty(input.SearchKey), u => @foreach (var column in Model.TableField){ if (@column.QueryWhether == "Y" && column.QueryType == "like"){ @:@(conditionFlag)u.@(@column.PropertyName).Contains(input.SearchKey) conditionFlag="|| "; } } @:) } @foreach (var column in Model.TableField){ if (@column.QueryWhether == "Y"){ if (@column.NetType?.TrimEnd('?') == "string"){ if(@column.QueryType == "like"){ @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName).Contains(input.@(@column.PropertyName).Trim())) }else{ @:.WhereIF(!string.IsNullOrWhiteSpace(input.@column.PropertyName), u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName)) } }else if(@column.NetType?.TrimEnd('?') == "int" || @column.NetType?.TrimEnd('?') == "long"){ @:.WhereIF(input.@column.PropertyName>0, u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName)) }else if(@column.NetType?.TrimEnd('?') == "DateTime" && @column.QueryType == "~"){ @:.WhereIF(input.@(@column.PropertyName)Range != null && input.@(@column.PropertyName)Range.Length == 2, u => u.@(@column.PropertyName) >= input.@(@column.PropertyName)Range[0] && u.@(@column.PropertyName) <= input.@(@column.PropertyName)Range[1]) }else if(@column.NetType?.TrimEnd('?').EndsWith("Enum") == true) { @:.WhereIF(input.@(@column.PropertyName).HasValue, u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName)) } } } .Select<@(@Model.ClassName)Output>() @if(!string.IsNullOrEmpty(Model.TreeName)){ @:.Mapper(c => c.Name= c.@(@Model.TreeName).ToString()) } @foreach (var column in Model.TableField){ if(@column.EffectType == "Upload"){ @://.Mapper(c => c.@(@column.PropertyName)Attachment, c => c.@(@column.PropertyName)) } else if(@column.EffectType == "ForeignKey"){ @:.Mapper(t => @:{ @: //使用缓存 @: var key = $"@(@column.FkEntityName)_{t.@(@column.PropertyName)}"; @: if (!sysCacheService.ExistKey(key)) @: { @: var m = db.ForTenant<@(@column.FkEntityName)>().Queryable<@(@column.FkEntityName)>().FirstAsync(f => f.@(@column.FkLinkColumnName) == t.@(@column.PropertyName)); @: if (m != null) sysCacheService.Set(key, m); @: } @: t.@(@column.PropertyName)@(@column.FkColumnName) = sysCacheService.Get<@(@column.FkEntityName)>(key)?.@(@column.FkColumnName); @: //t.@(@column.PropertyName)@(@column.FkColumnName)=db.Queryable<@(@column.FkEntityName)>().First(f => f.@(@column.FkLinkColumnName) == t.@(@column.PropertyName))).@(@column.FkColumnName);// @:}) } else if(@column.EffectType == "ApiTreeSelector"){ @:.Mapper(t => @:{ @: //使用缓存 @: var key = $"@(@column.FkEntityName)_{t.@(@column.PropertyName)}"; @: if (!sysCacheService.ExistKey(key)) @: { @: var m = db.ForTenant<@(@column.FkEntityName)>().Queryable<@(@column.FkEntityName)>().First(f => f.@(@column.ValueColumn) == t.@(@column.PropertyName)); @: if (m != null) sysCacheService.Set(key, m); @: } @: t.@(@column.PropertyName)@(@column.DisplayColumn) = sysCacheService.Get<@(@column.FkEntityName)>(key)?.@(@column.DisplayColumn); @: //t.@(@column.PropertyName)@(@column.FkColumnName)=db.Queryable<@(@column.FkEntityName)>().FirstAsync(f => f.@(@column.FkLinkColumnName) == t.@(@column.PropertyName))).@(@column.FkColumnName);// @:}) } } ; return query; } } @{ string LowerFirstLetter(string text) { return text.ToString()[..1].ToLower() + text[1..]; // 首字母小写 } }