hasMany(StoreOrderProduct::class, 'order_id', 'order_id'); } public function refundProduct() { return $this->orderProduct()->where('refund_num', '>', 0); } public function merchant() { return $this->hasOne(Merchant::class, 'mer_id', 'mer_id'); } public function user() { return $this->hasOne(User::class, 'uid', 'uid'); } public function groupOrder() { return $this->hasOne(StoreGroupOrder::class, 'group_order_id', 'group_order_id'); } public function verifyService() { return $this->hasOne(StoreService::class, 'service_id', 'verify_service_id'); } public function getTakeAttr() { return app()->make(MerchantTakeRepository::class)->get($this->mer_id); } public function searchDataAttr($query, $value) { return getModelTime($query, $value); } public function presellOrder() { return $this->hasOne(PresellOrder::class, 'order_id', 'order_id'); } public function finalOrder() { return $this->hasOne(PresellOrder::class,'order_id','order_id'); } public function groupUser() { return $this->hasOne(ProductGroupUser::class,'order_id','order_id'); } public function profitsharing() { return $this->hasMany(StoreOrderProfitsharing::class, 'order_id', 'order_id'); } public function firstProfitsharing() { return $this->hasOne(StoreOrderProfitsharing::class, 'order_id', 'order_id')->where('type', 'order'); } public function presellProfitsharing() { return $this->hasOne(StoreOrderProfitsharing::class, 'order_id', 'order_id')->where('type', 'presell'); } public function searchMerIdAttr($query, $value) { return $query->where('mer_id', $value); } public function getRefundStatusAttr() { $day = (int)systemConfig('sys_refund_timer') ?: 15; return ($this->verify_time ? strtotime($this->verify_time) > strtotime('-' . $day . ' day') : true); } }