argument('uniacid')); \YunShop::app()->uniacid = $this->argument('uniacid'); \YunShop::app()->weid = $this->argument('uniacid'); \YunShop::app()->acid = $this->argument('uniacid'); \YunShop::app()->account = $account ? $account->toArray() : ''; $this->info('=========start========='); $this->process(); $this->info('=========end========='); } public function t() { $bar = $this->output->createProgressBar(1000); $bar->setFormat(" %elapsed:6s%/%estimated:-6s% 内存消耗: %memory:6s%\n%current%/%max% [%bar%] %percent:3s%%"); for ($i=1; $i<=1000; $i++){ usleep(5000); $bar->advance(); } $bar->finish(); echo "\n"; } public function process() { $parentMemberModle = new ParentOfMember(); $childMemberModel = new ChildrenOfMember(); $memberModel = new Member(); $memberRelation = new MemberRelation(); $memberModel->_allNodes = collect([]); $memberInfo = $memberModel->getTreeAllNodes($this->argument('uniacid')); if ($memberInfo->isEmpty()) { $this->info('----is empty-----'); return; } foreach ($memberInfo as $item) { $memberModel->_allNodes->put($item->member_id, $item); } //获取指定会员所有下级 $data = $memberModel->getDescendants($this->argument('uniacid'), $this->argument('member_id')); if (!$data->isEmpty()) { //导入关系链 foreach ($data as $child_member_id => $val) { $attr = []; $child_attr = []; $this->info('--------foreach start------' . $child_member_id); $memberModel->filter = []; $nodeParents = $memberModel->getNodeParents($this->argument('uniacid'), $child_member_id); if (!$nodeParents->isEmpty()) { $this->info('--------insert init------'); foreach ($nodeParents as $parent_member_id => $v) { $memberRelation->delMemberOfRelation($child_member_id, $parent_member_id); if ($parent_member_id != $child_member_id) { $attr[] = [ 'uniacid' => $this->argument('uniacid'), 'parent_id' => $parent_member_id, 'level' => $v['depth'] + 1, 'member_id' => $child_member_id, 'created_at' => time() ]; $child_attr[] = [ 'uniacid' => $this->argument('uniacid'), 'child_id' => $child_member_id, 'level' => $v['depth'] + 1, 'member_id' => $parent_member_id, 'created_at' => time() ]; } else { $this->info('--------fail------' . $parent_member_id); } } $parentMemberModle->createData($attr); $childMemberModel->createData($child_attr); } } } } }