SyncCategory.php 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041
  1. <?php
  2. namespace app\queue\redis;
  3. use app\extra\dyLife\data\BaseData;
  4. use app\model\saas\SaasCategory;
  5. use Webman\RedisQueue\Consumer;
  6. class SyncCategory implements Consumer
  7. {
  8. /**
  9. * 消费队列名
  10. * @var string
  11. */
  12. public string $queue = "sync-category";
  13. /**
  14. * 连接配置
  15. * @var string
  16. */
  17. public string $connection = "default";
  18. public function consume($data): bool
  19. {
  20. echo getDateFull()."==执行同步分类\n";
  21. $result = (new BaseData)->config(['appid' => $data['appid'],'secret' => $data['secret']])->token()->getStoreCategoryData($data['account']);
  22. if (empty($result['category_tree_infos'])) return true;
  23. $model = (new SaasCategory);
  24. $categoryData = extractNodesClean($result['category_tree_infos']);
  25. foreach ($categoryData as $key=>$val) {
  26. $category = $model->where("category_id",$val["category_id"])->findOrEmpty();
  27. if ($category->isEmpty()) {
  28. echo "分类入库=={$val['level']}=={$val['name']}\n";
  29. $state = $category->strict(false)->insertGetId($val);
  30. echo "入库状态==={$state}\n";
  31. }
  32. }
  33. return true;
  34. }
  35. }