LogicNodeKindService.cs 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  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(ILogicNodeKindService), ServiceLifetime = LifeTime.Transient)]
  15. public class LogicNodeKindService : BaseService<LogicNodeKind>, ILogicNodeKindService
  16. {
  17. /// <summary>
  18. /// 逻辑节点分类-列表
  19. /// </summary>
  20. /// <param name="page">分页参数</param>
  21. /// <returns>列表</returns>
  22. public PagedInfo<GetLogicNodeKindListVo> getLogicNodeKindList([FromQuery] PagerInfo page)
  23. {
  24. //拼装查询条件
  25. var predicate = Expressionable.Create<LogicNodeKind>();
  26. var response = Queryable()
  27. .Where(predicate.ToExpression())
  28. .OrderByDescending(m => m.id)
  29. .ToPage<LogicNodeKind, GetLogicNodeKindListVo>(page);
  30. return response;
  31. }
  32. /// <summary>
  33. /// 逻辑节点分类-节点分类数据
  34. /// </summary>
  35. /// <param name="page">分页参数</param>
  36. /// <returns>节点分类数据</returns>
  37. public List<GetLogicNodeTreeVo> getLogicNodeTree(List<LogicNode> nodes, LogicNodeKind param)
  38. {
  39. //拼装查询条件
  40. var predicate = Expressionable.Create<LogicNodeKind>();
  41. predicate.AndIF(param.testNodeFlag, m => m.testNodeFlag == param.testNodeFlag);
  42. var response = GetList(predicate.ToExpression()).Adapt<List<GetLogicNodeTreeVo>>();
  43. foreach(var kind in response)
  44. {
  45. var nodeList = nodes.Where(m => m.nodeKind == kind.id);
  46. if (param.testNodeFlag)
  47. {
  48. nodeList = nodeList.Where(m => m.testNodeFlag == param.testNodeFlag);
  49. }
  50. var nodeItems = nodeList.ToList().Adapt<List<LogicNodeTreeItemVo>>();
  51. kind.logicNodeList = nodeItems;
  52. }
  53. return response;
  54. }
  55. }
  56. }