'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);
}
}