完善通用接口输入参数

This commit is contained in:
2023-11-21 00:19:45 +08:00
parent 079eec500b
commit 70de358f97
17 changed files with 375 additions and 226 deletions

View File

@@ -5,6 +5,7 @@
using JNPF.Common.Security;
using Mapster;
using Microsoft.AspNetCore.Http;
using Tnb.Core;
namespace Tnb.Vengine.Domain;
@@ -17,6 +18,9 @@ public class VmBaseInput
public object? extra { get; set; }
}
/// <summary>
/// 查询单条数据的输入参数
/// </summary>
public class VmGetInput : VmBaseInput
{
/// <summary>
@@ -27,16 +31,38 @@ public class VmGetInput : VmBaseInput
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
public DObject q { get; set; } = new DObject();
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
/// <summary>
/// 从HttpContext中加载查询参数
/// </summary>
/// <param name="context"></param>
public void LoadFromHttpContext(HttpContext? context)
{
if (context == null) return;
string[] filter = new string[] { "id", "q", "o" };
foreach (var item in context.Request.Query.Where(a => !filter.Contains(a.Key)))
{
if (item.Value.Count > 1)
{
q.Add(item.Key, item.Value.ToArray());
}
else
{
q.Add(item.Key, item.Value.ToString());
}
}
}
}
public class VmGetListInput : VmBaseInput
/// <summary>
/// 查询列表数据的输入参数
/// </summary>
public class VmQueryInput : VmBaseInput
{
/// <summary>
/// 当前页数
@@ -61,48 +87,37 @@ public class VmGetListInput : VmBaseInput
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
public DObject q { get; set; } = new DObject();
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
}
/// <summary>
/// 获取多条数据输入参数
/// </summary>
public class VmQueryInput : VmGetListInput
{
/// <summary>
/// 查询条件
/// </summary>
public new DObject? q { get; set; }
/// <summary>
/// 添加一个查询条件
/// 从HttpContext中加载查询参数
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public void AddQueryPara(string key, object value)
/// <param name="context"></param>
public void LoadFromHttpContext(HttpContext? context)
{
if (q == null) q = new DObject();
q.Add(key, value);
}
/// <summary>
/// 添加一个查询条件
/// </summary>
/// <param name="key"></param>
/// <param name="value"></param>
public void AddQueryParaIf(bool condition, string key, object value)
{
if(condition) AddQueryPara(key, value);
if (context == null) return;
string[] filter = new string[] { "pnum", "psize", "sort", "k", "q", "o" };
foreach (var item in context.Request.Query.Where(a => !filter.Contains(a.Key)))
{
if (item.Value.Count > 1)
{
q.Add(item.Key, item.Value.ToArray());
}
else
{
q.Add(item.Key, item.Value.ToString());
}
}
}
}
/// <summary>
/// 新增数据输入参数
/// 新增或修改数据输入参数
/// </summary>
public class VmEditInput : VmBaseInput
{