DealerLvl::None, 'is_manager' => false, 'is_settle' => false, ]; protected $casts = [ 'lvl' => DealerLvl::class, 'is_manager' => 'bool', 'start_at' => 'datetime', 'end_at' => 'datetime', 'status' => DealerManagerSubsidyStatus::class, 'is_settle' => 'bool', ]; protected $fillable = [ 'user_id', 'lvl', 'is_manager', 'total_amount', 'real_amount', 'fee', 'fee_rate', 'start_at', 'end_at', 'status', 'remark', 'is_settle', ]; /** * 仅查询已结算的订单 * * @param \Illuminate\Database\Eloquent\Builder $query * @return \Illuminate\Database\Eloquent\Builder */ public function scopeSettled($query) { return $query->where('is_settle', true); } public function user() { return $this->belongsTo(User::class, 'user_id'); } public function userinfo() { return $this->belongsTo(UserInfo::class, 'user_id', 'user_id'); } /** * 此管理津贴所属的经销商 */ public function dealer() { return $this->belongsTo(Dealer::class, 'user_id', 'user_id'); } public function earning() { return $this->morphOne(DealerEarning::class, 'earningable'); } /** * 仅查询待付款的管理津贴 * * @return bool */ public function isPending(): bool { return $this->is_settle && $this->status === DealerManagerSubsidyStatus::Pending; } public function isCompleted() { return $this->status === DealerManagerSubsidyStatus::Completed; } }