using Attribute;
using Model;
using Model.Base;
using Repository;
using Service;
using Microsoft.AspNetCore.Mvc;
using Vo.Admin;
using Mapster;
namespace Services
{
///
/// 逻辑节点分类Service业务层处理
///
[AppService(ServiceType = typeof(IServerNodeKindService), ServiceLifetime = LifeTime.Transient)]
public class ServerNodeKindService : BaseService, IServerNodeKindService
{
///
/// 逻辑节点分类-列表
///
/// 分页参数
/// 列表
public PagedInfo getServerNodeKindList([FromQuery] PagerInfo page)
{
//拼装查询条件
var predicate = Expressionable.Create();
var response = Queryable()
.Where(predicate.ToExpression())
.OrderByDescending(m => m.id)
.ToPage(page);
return response;
}
///
/// 逻辑节点分类-节点分类数据
///
/// 节点列表
/// 节点分类参数请求体
/// 节点分类数据
public List getServerNodeTree(List nodes, ServerNodeKind param)
{
//拼装查询条件
var predicate = Expressionable.Create();
predicate.AndIF(param.testNodeFlag, m => m.testNodeFlag == param.testNodeFlag);
var response = GetList(predicate.ToExpression()).Adapt>();
foreach(var kind in response)
{
var nodeList = nodes.Where(m => m.nodeKind == kind.id);
if (param.testNodeFlag)
{
nodeList = nodeList.Where(m => m.testNodeFlag == param.testNodeFlag);
}
var nodeItems = nodeList.ToList().Adapt>();
kind.logicNodeList = nodeItems;
}
return response;
}
}
}