ServerNodeKindService.cs 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using Attribute;
  2. using Model;
  3. using Model.Base;
  4. using Repository;
  5. using Service;
  6. using Microsoft.AspNetCore.Mvc;
  7. using Vo.Admin;
  8. using Mapster;
  9. namespace Services
  10. {
  11. /// <summary>
  12. /// 逻辑节点分类Service业务层处理
  13. /// </summary>
  14. [AppService(ServiceType = typeof(IServerNodeKindService), ServiceLifetime = LifeTime.Transient)]
  15. public class ServerNodeKindService : BaseService<ServerNodeKind>, IServerNodeKindService
  16. {
  17. /// <summary>
  18. /// 逻辑节点分类-列表
  19. /// </summary>
  20. /// <param name="page">分页参数</param>
  21. /// <returns>列表</returns>
  22. public PagedInfo<GetServerNodeKindListVo> getServerNodeKindList([FromQuery] PagerInfo page)
  23. {
  24. //拼装查询条件
  25. var predicate = Expressionable.Create<ServerNodeKind>();
  26. var response = Queryable()
  27. .Where(predicate.ToExpression())
  28. .OrderByDescending(m => m.id)
  29. .ToPage<ServerNodeKind, GetServerNodeKindListVo>(page);
  30. return response;
  31. }
  32. /// <summary>
  33. /// 逻辑节点分类-节点分类数据
  34. /// </summary>
  35. /// <param name="nodes">节点列表</param>
  36. /// <param name="param">节点分类参数请求体</param>
  37. /// <returns>节点分类数据</returns>
  38. public List<GetServerNodeTreeVo> getServerNodeTree(List<ServerNode> nodes, ServerNodeKind param)
  39. {
  40. //拼装查询条件
  41. var predicate = Expressionable.Create<ServerNodeKind>();
  42. predicate.AndIF(param.testNodeFlag, m => m.testNodeFlag == param.testNodeFlag);
  43. var response = GetList(predicate.ToExpression()).Adapt<List<GetServerNodeTreeVo>>();
  44. foreach(var kind in response)
  45. {
  46. var nodeList = nodes.Where(m => m.nodeKind == kind.id);
  47. if (param.testNodeFlag)
  48. {
  49. nodeList = nodeList.Where(m => m.testNodeFlag == param.testNodeFlag);
  50. }
  51. var nodeItems = nodeList.ToList().Adapt<List<ServerNodeTreeItemVo>>();
  52. kind.logicNodeList = nodeItems;
  53. }
  54. return response;
  55. }
  56. }
  57. }