| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162 |
- <?php
- namespace General\Services;
- use General\Models\Channel\Channel;
- use General\Models\Channel\ChannelUser;
- use General\Models\Config\CompanyAuthConfig;
- /**
- * 基础授权配置信息
- * @property-read string $app_id;
- * @property-read CompanyAuthConfig $config 授权配置信息
- * @property-read int $company_id 授权公司ID
- * @property-read array $channel_user_ids 所有渠道用户id
- * @property-read array $channel_ids 所有渠道id
- * @property-read array $phones 所有渠道手机号
- */
- trait BaseAuthConfig
- {
- protected $fields = [];
- public function __get($name)
- {
- if (!isset($this->fields[$name])) {
- $config = $this->getGlobalConfig();
- switch ($name) {
- case 'app_id':
- $this->fields[$name] = $config->app_id;
- break;
- case 'config':
- $this->fields[$name] = $config->config;
- break;
- case 'company_id':
- $this->fields[$name] = $config->company_id;
- break;
- case 'channel_user_ids':
- $this->fields[$name] = ChannelUser::where('company_id', $this->company_id)->pluck('id')->all();
- break;
- case 'phones':
- $this->fields[$name] = ChannelUser::where('company_id', $this->company_id)->pluck('phone')->all();
- break;
- case 'channel_ids':
- $this->fields[$name] = Channel::whereIn('channel_user_id', $this->channel_user_ids)->pluck('id')->all();
- break;
- }
- }
- return $this->fields[$name];
- }
- public function setGlobalConfig(CompanyAuthConfig $config)
- {
- $company_config = app()->make('company_config');
- $company_config->app_id = $config->app_id;
- $company_config->config = $config->config;
- $company_config->company_id = $config->company_id;
- }
- public function getGlobalConfig()
- {
- return app()->make('company_config');
- }
- }
|