'array', 'social_result' => 'array' ]; //内部人员yingyingli const INSIDER = 60; //特殊时效人员 const IS_EXPIRED = 442; /** * 筛选出 除超管用户自己所分配的站点下的文章 * @param Builder $query * @return Builder */ public function scopeUser(Builder $query) { $user = auth()->user(); if ($user->is_super || in_array($user->role_id, [ Role::TYPE_PROPAGANDA, Role::TYPE_ARTICLE, Role::TYPE_LINK, Role::TYPE_MANAGE_LEADER, Role::TYPE_CHONGQING_MANAGER ])) { return $query; } return $query->whereExists(function (\Illuminate\Database\Query\Builder $builder) use ($user) { $builder->select(DB::raw(1))->from('user_has_sites') ->whereRaw(sprintf('user_id=%s AND user_has_sites.site_id=articles.site_id', $user->id)); }); } public function site() { return $this->hasOne( Site::class, 'id', 'site_id' ); } public function translator() { return $this->hasOne( User::class, 'id', 'translator_id' ); } public function auditor() { return $this->hasOne( User::class, 'id', 'auditor_id' ); } const STATUS_PENDING = 1; const STATUS_TRANSLATING = 2; const STATUS_AUDITING = 3; const STATUS_FAILED = 4; const STATUS_PASSED = 5; const STATUS_CALC = 6; // public function identifier() // { // return sprintf('A%s%s-%s', date('ym'), $this->newQuery()->max('id') + 1, mt_rand(100, 999)); // } public function getStatusWithCssAttribute() { $format = ''; switch ($this->status ?? 0) { case 1: return sprintf($format, '待翻译'); case 2: return sprintf($format, '翻译中'); case 3: return sprintf($format, '待审核'); case 4: return sprintf($format, '未通过'); case 5: return sprintf($format, '已通过'); case 6: return sprintf($format, '已结算'); default: return ''; } } public function getCheckStatusWithCssAttribute() { $format = ''; switch ($this->be_applicable ?? 0) { case 0: return sprintf($format, '待定'); case 1: return sprintf($format, '适用'); case 2: return sprintf($format, '不适用'); default: return ''; } } public function scopeFilter($query, DemoFilter $filters) { return $filters->apply($query); } }