/** * Execute the console command. * * @return mixed */ public function handle() { $accountId = $this->argument('account_id'); /* * 1 获取Account */ $account = $this->getAccount($accountId); $fanGroupModel = new FanGroupModel(); /* * 2 初始化 SDK Config, 构建 SDK 对象 */ $groupService = new Group($account->app_id, $account->app_secret); $groups = $groupService->lists(); if ($groups) { $insert = []; $this->output->progressStart(count($groups)); foreach ($groups as $groupKey => $group) { $insert[$groupKey]['group_id'] = $group['id']; $insert[$groupKey]['account_id'] = $account->id; $insert[$groupKey]['title'] = $group['name']; $insert[$groupKey]['fan_count'] = $group['count']; $insert[$groupKey]['is_default'] = in_array($group['name'], ['默认组', '屏蔽组', '星标组']) ? 1 : 0; $this->info("\t{$group['name']} created!"); $this->output->progressAdvance(); } /* * clean */ $fanGroupModel->where('account_id', $account->id)->forceDelete(); $result = $fanGroupModel->insert($insert); } $this->output->progressFinish(); }
/** * 粉丝组更新完成后执行. * * @param \App\Models\FanGroup $fanGroupModel */ public function updated(FanGroup $fanGroupModel) { /* * 1 获取更新的属性 */ $updateArr = $fanGroupModel->getDirty(); if (isset($updateArr['title'])) { /* * 1.1 更改的粉丝组名称同步到线上, 自带分组不能改 */ if ($fanGroupModel->group_id > 2) { $this->group->update($fanGroupModel->group_id, $updateArr['title']); } } }
/** * Bootstrap the application services. */ public function boot() { User::observe('App\\Observers\\UserObserver'); Reply::observe('App\\Observers\\ReplyObserver'); Event::observe('App\\Observers\\EventObserver'); Material::observe('App\\Observers\\MaterialObserver'); Account::observe('App\\Observers\\AccountObserver'); FanGroup::observe('App\\Observers\\FanGroupObserver'); Fan::observe('App\\Observers\\FanObserver'); }