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(ITestNodeKindService), ServiceLifetime = LifeTime.Transient)]
public class TestNodeKindService : BaseService, ITestNodeKindService
{
///
/// 逻辑节点分类-列表
///
/// 分页参数
/// 列表
public PagedInfo getTestNodeKindList([FromQuery] PagerInfo page)
{
//拼装查询条件
var predicate = Expressionable.Create();
var response = Queryable()
.Where(predicate.ToExpression())
.OrderByDescending(m => m.id)
.ToPage(page);
return response;
}
///
/// 逻辑节点分类-节点分类数据
///
/// 节点列表
/// 节点分类参数请求体
/// 节点分类数据
public List getTestNodeTree(List nodes, TestNodeKind 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;
}
}
}