Merge pull request 'HJ:1如果有软删除,使用软删除 2树型结构可以自动生成子列表,无需自己写了 3优化树型接口查询' (#381) from HJ20250723 into v2
Reviewed-on: https://code.adminnet.top/Admin.NET/Admin.NET.Pro/pulls/381
This commit is contained in:
commit
42dfb4da4b
@ -71,7 +71,14 @@ public partial class @(@Model.ClassName)Mid
|
||||
@:.WhereIF(input.@(@column.PropertyName).HasValue, u => u.@(@column.PropertyName) @column.QueryType input.@(@column.PropertyName))
|
||||
}
|
||||
}
|
||||
if(@column.PropertyName == "IsDelete") {
|
||||
@:.Where( u => u.IsDelete == false)
|
||||
}
|
||||
}
|
||||
@if (Model.TableField.Any(c => c.PropertyName == "OrderNo"))
|
||||
{
|
||||
@:.OrderBy(u => u.OrderNo)
|
||||
}
|
||||
|
||||
.Select<@(@Model.ClassName)Output>()
|
||||
@if(!string.IsNullOrEmpty(Model.TreeName)){
|
||||
|
||||
@ -7,11 +7,13 @@
|
||||
namespace @Model.NameSpace;
|
||||
|
||||
/// <summary>
|
||||
/// HJ:这里做优化 如果是富文本不传入
|
||||
/// @(@Model.BusName)输出参数
|
||||
/// </summary>
|
||||
public partial class @(@Model.ClassName)Output
|
||||
{
|
||||
@foreach (var column in Model.TableField){
|
||||
|
||||
@:/// <summary>
|
||||
@:/// @column.ColumnComment
|
||||
@:/// </summary>
|
||||
@ -31,9 +33,17 @@ if(column.EffectType == "ForeignKey")
|
||||
@:public @column.NetType @column.PropertyName { get; set; }
|
||||
@:
|
||||
@:/// <summary>
|
||||
@:/// @(column.ColumnComment) 描述
|
||||
@:/// 树型@(column.ColumnComment) 描述
|
||||
@:/// </summary>
|
||||
@:public string? @(@column.PropertyName)@(@column.DisplayColumn) { get; set; }
|
||||
@:
|
||||
@:/// <summary>
|
||||
@:/// 树型分类子项
|
||||
@:/// </summary>
|
||||
@:public List<@(@Model.ClassName)Output> Children { get; set; } = [];
|
||||
|
||||
}else if(column.EffectType == "RichTextEditor"){
|
||||
@:/// HJ:富文本不传,提高性能
|
||||
}else{
|
||||
@:public @column.NetType @(@column.PropertyName) { get; set; }
|
||||
}
|
||||
@ -62,3 +72,7 @@ if (@column.EffectType == "ApiTreeSelector"){
|
||||
@:*/
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@ -86,11 +86,8 @@ public partial class @(@Model.ClassName)Service : IDynamicApiController, ITransi
|
||||
[DisplayName("分页查询@(@Model.BusName)")]
|
||||
public async Task<SqlSugarPagedList<@(@Model.ClassName)Output>> Page(Page@(@Model.ClassName)Input input)
|
||||
{
|
||||
//var query= @(@Model.ClassName)Mid.GetQuery(_@(@Model.LowerClassName)Rep, input);
|
||||
//var list = await @(@Model.ClassName)Mid.GetQuery(_@(@Model.LowerClassName)Rep, input).MergeTable().ToPagedListAsync(input.Page, input.PageSize);
|
||||
var list = await @(@Model.ClassName)Mid.GetQuery(_@(@Model.LowerClassName)Rep, input).OrderBuilder(input).ToPagedListAsync(input.Page, input.PageSize);
|
||||
return list;
|
||||
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -129,8 +126,16 @@ if (@column.ColumnKey == "True"){
|
||||
@:var entity = await _@(@Model.LowerClassName)Rep.GetFirstAsync(u => u.@(@column.PropertyName) == input.@(@column.PropertyName)) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
|
||||
}
|
||||
}
|
||||
//await _@(@Model.LowerClassName)Rep.FakeDeleteAsync(entity); // 假删除
|
||||
await _@(@Model.LowerClassName)Rep.DeleteAsync(entity); // 真删除
|
||||
|
||||
//HJ:通过模板判断是否存在IsDelete字段,决定删除方式
|
||||
@if (Model.TableField.Any(c => c.PropertyName == "IsDelete"))
|
||||
{
|
||||
@:await _@(Model.LowerClassName)Rep.FakeDeleteAsync(entity); // 假删除(存在IsDelete字段)
|
||||
}
|
||||
else
|
||||
{
|
||||
@:await _@(Model.LowerClassName)Rep.DeleteAsync(entity); // 真删除(不存在IsDelete字段)
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
@ -156,7 +161,7 @@ if (@column.ColumnKey == "True"){
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 获取@(@Model.BusName)
|
||||
/// 获取@(@Model.BusName)详情
|
||||
/// </summary>
|
||||
/// <param name="input"></param>
|
||||
/// <returns></returns>
|
||||
@ -375,43 +380,12 @@ if(@column.EffectType == "ApiTreeSelector" && !definedObjects.ContainsKey("@(@co
|
||||
|
||||
@:if (isSearch||!string.IsNullOrEmpty(input.SearchKey?.Trim()))
|
||||
@:{
|
||||
|
||||
@:return await _@(@Model.LowerClassName)Rep.AsQueryable()
|
||||
|
||||
@{string conditionFlag = "";}
|
||||
@if (haveLikeCdt) {
|
||||
@:.WhereIF(!string.IsNullOrEmpty(input.SearchKey?.Trim()), u =>
|
||||
@foreach (var columnTree in Model.TableField){
|
||||
if (@columnTree.QueryWhether == "Y" && columnTree.QueryType == "like"){
|
||||
@:@(conditionFlag)u.@(@columnTree.PropertyName).Contains(input.SearchKey.Trim())
|
||||
conditionFlag="|| ";
|
||||
}
|
||||
}
|
||||
@:)
|
||||
}
|
||||
foreach (var columnTree in Model.TableField){
|
||||
if (@columnTree.QueryWhether == "Y"){if (@columnTree.NetType?.TrimEnd('?') == "string"){if(@columnTree.QueryType == "like"){
|
||||
@:.WhereIF(!string.IsNullOrWhiteSpace(input.@columnTree.PropertyName), u => u.@(@columnTree.PropertyName).Contains(input.@(@columnTree.PropertyName).Trim()))
|
||||
}else{
|
||||
@:.WhereIF(!string.IsNullOrWhiteSpace(input.@columnTree.PropertyName), u => u.@(@columnTree.PropertyName) @columnTree.QueryType input.@(@columnTree.PropertyName))
|
||||
}}else if(@columnTree.NetType?.TrimEnd('?') == "int" || @columnTree.NetType?.TrimEnd('?') == "long"){
|
||||
@:.WhereIF(input.@columnTree.PropertyName>0, u => (int)u.@(@columnTree.PropertyName) @columnTree.QueryType input.@(@columnTree.PropertyName))
|
||||
}else if(@columnTree.NetType?.TrimEnd('?') == "DateTime" && @columnTree.QueryType == "~"){
|
||||
@:.WhereIF(input.@(@columnTree.PropertyName)Range != null && input.@(@columnTree.PropertyName)Range.Length == 2, u => u.@(@columnTree.PropertyName) >= input.@(@columnTree.PropertyName)Range[0] && u.@(@columnTree.PropertyName) <= input.@(@columnTree.PropertyName)Range[1])
|
||||
}else if(@columnTree.NetType?.TrimEnd('?').EndsWith("Enum") == true) {
|
||||
@:.WhereIF(input.@(@columnTree.PropertyName).HasValue, u => u.@(@columnTree.PropertyName) @columnTree.QueryType input.@(@columnTree.PropertyName))
|
||||
}}}
|
||||
//HJ @:.OrderBy(u => u.OrderNo)
|
||||
@:.OrderByDescending(u => u.Id)
|
||||
@:.Distinct().ToListAsync();
|
||||
@:// 有筛选条件时返回列表
|
||||
@:return await @(@Model.ClassName)Mid.GetQuery(_@(@Model.LowerClassName)Rep, input).OrderBuilder(input).Distinct().ToListAsync();
|
||||
@:}
|
||||
|
||||
@:// 无筛选条件时返回树列表
|
||||
@:return await _@(@Model.LowerClassName)Rep.AsQueryable()
|
||||
//HJ @:.OrderBy(u => u.OrderNo)
|
||||
@:.OrderByDescending(u => u.Id)
|
||||
@:.ToTreeAsync(u => u.Children, u => u.Pid, 0, u => u.Id);
|
||||
|
||||
@:return await @(@Model.ClassName)Mid.GetQuery(_@(@Model.LowerClassName)Rep, input).OrderBuilder(input).ToTreeAsync(u => u.Children, u => u.Pid, 0, u => u.Id);
|
||||
@:}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user