SystemNodeLogic.php 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace app\admin\logic;
  3. use app\admin\model\SystemNode;
  4. use app\admin\service\NodeService;
  5. use app\admin\service\TriggerService;
  6. use app\admin\model\dao\SystemNode as SystemNodeDao;
  7. class SystemNodeLogic
  8. {
  9. public static function getList()
  10. {
  11. $list = (new SystemNode())
  12. ->getNodeTreeList();
  13. return [count($list), $list];
  14. }
  15. public static function refreshNode($force)
  16. {
  17. $nodeList = (new NodeService())->getNodelist();
  18. if (empty($nodeList)) return '暂无需要更新的系统节点';
  19. $model = new SystemNode();
  20. try {
  21. if ($force == 1) {
  22. $updateNodeList = SystemNodeDao::getNodeByNodeList($nodeList);
  23. $formatNodeList = array_format_key($nodeList, 'node');
  24. foreach ($updateNodeList as $vo) {
  25. if (isset($formatNodeList[$vo['node']])) {
  26. SystemNodeDao::update($vo['id'], $formatNodeList[$vo['node']]['title'], $formatNodeList[$vo['node']]['is_auth']);
  27. }
  28. }
  29. }
  30. $existNodeList = SystemNodeDao::getNodeAndTitleAndIsAuth();
  31. foreach ($nodeList as $key => $vo) {
  32. foreach ($existNodeList as $v) {
  33. if ($vo['node'] == $v->node) {
  34. unset($nodeList[$key]);
  35. break;
  36. }
  37. }
  38. }
  39. $model->saveAll($nodeList);
  40. TriggerService::updateNode();
  41. } catch (\Exception $e) {
  42. return '节点更新失败' . $e->getMessage();
  43. }
  44. return true;
  45. }
  46. }