Files
tnb.server/visualdev/Tnb.Vengine/Domain/VengineDto.cs
2023-11-16 14:55:37 +08:00

200 lines
4.1 KiB
C#

/////////////////////////////////////////////////////////////////////////////////
// 宁波拓通e智造平台 ToTong Next Builder //
// https://git.tuotong-tech.com/tnb/tnb.server //
/////////////////////////////////////////////////////////////////////////////////
using JNPF.Common.Security;
using Mapster;
using Tnb.Core;
namespace Tnb.Vengine.Domain;
public class VmBaseInput
{
/// <summary>
/// 附加参数
/// </summary>
public object? extra { get; set; }
}
public class VmGetInput : VmBaseInput
{
/// <summary>
/// 要获取数据的id
/// </summary>
public string? id { get; set; }
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
/// <summary>
/// 转换为QueryInput
/// </summary>
/// <param name="primaryKey"></param>
/// <returns></returns>
public VmQueryInput ToQueryInput(string primaryKey)
{
VmQueryInput arg = this.Adapt<VmQueryInput>();
if (!string.IsNullOrEmpty(id))
{
if (arg.q == null) arg.q = new DObject();
arg.q.Add(primaryKey, id);
}
return arg;
}
}
public class VmGetListInput : VmBaseInput
{
/// <summary>
/// 当前页数
/// </summary>
public int pnum { get; set; }
/// <summary>
/// 每页记录数
/// </summary>
public int psize { get; set; }
/// <summary>
/// 排序
/// </summary>
public string? sort { get; set; } = null;
/// <summary>
/// 模糊查询
/// </summary>
public string? k { get; set; }
/// <summary>
/// 过滤条件
/// </summary>
public string? q { get; set; }
/// <summary>
/// 输出字段
/// </summary>
public string o { get; set; } = "*";
/// <summary>
/// 转换为QueryInput
/// </summary>
/// <returns></returns>
public VmQueryInput ToQueryInput()
{
VmQueryInput arg = this.Adapt<VmQueryInput>();
if (!string.IsNullOrEmpty(q))
{
arg.q = q.ToObject<DObject>();
}
return arg;
}
}
/// <summary>
/// 获取多条数据输入参数
/// </summary>
public class VmQueryInput : VmGetListInput
{
/// <summary>
/// 查询条件
/// </summary>
public new DObject? q { get; set; }
}
/// <summary>
/// 新增数据输入参数
/// </summary>
public class VmCreateInput : VmBaseInput
{
/// <summary>
/// 数据
/// </summary>
public DObject? data { get; set; }
/// <summary>
/// 批量添加
/// </summary>
public List<DObject>? items { get; set; }
}
/// <summary>
/// 修改数据输入参数
/// </summary>
public class VmUpdateInput : VmCreateInput
{
///// <summary>
///// 要更新的数据id
///// </summary>
//public string? id { get; set; }
}
/// <summary>
/// 删除数据输入参数
/// </summary>
public class VmDeleteInput : VmBaseInput
{
/// <summary>
/// 要删除的数据id
/// </summary>
public string? id { get; set; }
/// <summary>
/// 要删除的id列表
/// </summary>
public List<string>? ids { get; set; }
}
public class PagedOutput
{
public int total { get; set; }
public object? extra { get; set; }
public static PagedOutput<T> Create<T>(int totalNum, List<T> ls)
{
return new PagedOutput<T>(totalNum, ls);
}
}
/// <summary>
/// 分页列表输出对象
/// </summary>
/// <typeparam name="T"></typeparam>
public class PagedOutput<T> : PagedOutput
{
public List<T> items { get; set; } = new List<T>();
public PagedOutput()
{
}
public PagedOutput(int totalNum, List<T> ls)
{
total = totalNum;
items = ls;
}
}
/// <summary>
/// 动态分页列表输出对象
/// </summary>
public class VmPagedOutput : PagedOutput<DObject>
{
public PagedOutput<T> ToPagedOutput<T>()
{
return new PagedOutput<T>()
{
total = total,
items = items.Adapt<List<T>>()
};
}
}