CategorysService.php 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. <?php
  2. namespace addons\StarChain\common\services;
  3. use addons\StarChain\common\listeners\CategorysImportListener;
  4. use addons\StarChain\common\models\Category;
  5. use common\enums\RabbitMqEnum;
  6. use Yii;
  7. /**
  8. * 分类服务
  9. */
  10. class CategorysService extends BaseService
  11. {
  12. /**
  13. * 导入分类
  14. *
  15. * @return void
  16. */
  17. public function import($id = 0)
  18. {
  19. Yii::$app->services->rabbitMq->push(
  20. RabbitMqEnum::EXCHANGE_ORDER,
  21. RabbitMqEnum::TASK_QUEUE,
  22. [
  23. 'mall_id' => $this->mall_id,
  24. 'id' => $id,
  25. ],
  26. CategorysImportListener::class,
  27. 'async_handle'
  28. );
  29. return true;
  30. }
  31. /**
  32. * 任务执行导入
  33. *
  34. * @param integer $id
  35. * @return boolean
  36. */
  37. public function taskImport($id = 0)
  38. {
  39. $list = $this->api->getCategorys(['id' => $id]);
  40. if (empty($list)) {
  41. return true;
  42. }
  43. $list = array_map(function ($v) use ($id) {
  44. $v['category_id'] = $v['id'];
  45. $v['pid'] = $id;
  46. $v['created_at'] = $v['updated_at'] = time();
  47. unset($v['id']);
  48. return $v;
  49. }, $list);
  50. foreach ($list as $v) {
  51. $this->import($v['category_id']);
  52. }
  53. Category::batchInsert($list);
  54. }
  55. /**
  56. * 分类列表
  57. *
  58. * @return array
  59. */
  60. public function list($pid = 0)
  61. {
  62. return $this->api->getCategorys(['id' => $pid]);
  63. $list = Category::find()->where([
  64. // 'mall_id' => $this->mall_id,
  65. 'pid' => $pid,
  66. ])->asArray()->all();
  67. return $list;
  68. }
  69. }