memberChildOfMemberJob.php 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: dingran
  5. * Date: 2018/10/24
  6. * Time: 上午6:32
  7. */
  8. namespace app\Jobs;
  9. use app\backend\modules\member\models\Member;
  10. use app\common\models\member\ChildrenOfMember;
  11. use Illuminate\Bus\Queueable;
  12. use Illuminate\Contracts\Queue\ShouldQueue;
  13. use Illuminate\Queue\InteractsWithQueue;
  14. use Illuminate\Queue\SerializesModels;
  15. class memberChildOfMemberJob implements ShouldQueue
  16. {
  17. use InteractsWithQueue, Queueable, SerializesModels;
  18. private $uniacid;
  19. public $memberModel;
  20. public $childMemberModel;
  21. public function __construct($uniacid)
  22. {
  23. $this->uniacid = $uniacid;
  24. }
  25. public function handle()
  26. {
  27. \Log::debug('-----queue uniacid-----', $this->uniacid);
  28. return $this->synRun($this->uniacid);
  29. }
  30. public function synRun($uniacid)
  31. {
  32. $childMemberModel = new ChildrenOfMember();
  33. $memberModel = new Member();
  34. $memberModel->_allNodes = collect([]);
  35. \Log::debug('--------------清空表数据------------');
  36. //$childMemberModel->DeletedData();
  37. $memberInfo = $memberModel->getTreeAllNodes($uniacid);
  38. if ($memberInfo->isEmpty()) {
  39. \Log::debug('----is empty-----');
  40. return;
  41. }
  42. foreach ($memberInfo as $item) {
  43. $memberModel->_allNodes->put($item->member_id, $item);
  44. }
  45. \Log::debug('--------queue synRun -----');
  46. foreach ($memberInfo as $key => $val) {
  47. $attr = [];
  48. \Log::debug('--------foreach start------', $val->member_id);
  49. $data = $memberModel->getDescendants($uniacid, $val->member_id);
  50. if (!$data->isEmpty()) {
  51. \Log::debug('--------insert init------');
  52. foreach ($data as $k => $v) {
  53. if ($k != $val->member_id) {
  54. $attr[] = [
  55. 'uniacid' => $uniacid,
  56. 'child_id' => $k,
  57. 'level' => $v['depth'] + 1,
  58. 'member_id' => $val->member_id,
  59. 'created_at' => time()
  60. ];
  61. } else {
  62. file_put_contents(storage_path("logs/" . date('Y-m-d') . "_batchchild.log"), print_r([$val->member_id, $v], 1), FILE_APPEND);
  63. }
  64. }
  65. $childMemberModel->createData($attr);
  66. }
  67. }
  68. }
  69. }