where('coupon_name', $search['coupon_name']); } if ($search['share_uid']) { $model->shareUid($search['share_uid']); } if ($search['receive_uid']) { $model->receiveUid($search['receive_uid']); } if ($search['share_name']) { $model->whereHas('shareMember', function ($member) use ($search) { $member = $member->select('uid', 'nickname', 'realname', 'mobile', 'avatar') ->where('realname', 'like', '%' . $search['share_name'] . '%') ->orWhere('mobile', 'like', '%' . $search['share_name'] . '%') ->orWhere('nickname', 'like', '%' . $search['share_name'] . '%'); return $member; }); } if ($search['receive_name']) { $model->whereHas('receiveMember', function ($member) use ($search) { $member = $member->select('uid', 'nickname', 'realname', 'mobile', 'avatar') ->where('realname', 'like', '%' . $search['receive_name'] . '%') ->orWhere('mobile', 'like', '%' . $search['receive_name'] . '%') ->orWhere('nickname', 'like', '%' . $search['receive_name'] . '%'); return $member; }); } if ($search['time_search']) { $range = [$search['time']['start'], $search['time']['end']]; $model->whereBetween('created_at', $range); } $model->with('shareMember', 'receiveMember'); return $model; } //以领取记录 public static function yiLog($order_ids) { return self::uniacid()->with('receiveMember')->whereIn('order_id', $order_ids); } //分享者 public function scopeShareUid(Builder $query, $uid) { return $query->where('share_uid', $uid); } //领取者 public function scopeReceiveUid(Builder $query, $uid) { return $query->where('receive_uid', $uid); } //分析记录 public function scopeShareCouponId(Builder $query, $share_coupon_id) { return $query->where('share_coupon_id', $share_coupon_id); } public function shareMember() { return $this->belongsTo(Member::class, 'share_uid', 'uid'); } public function receiveMember() { return $this->belongsTo(Member::class, 'receive_uid', 'uid'); } public function hasOneCoupon() { return $this->belongsTo(Coupon::class, 'coupon_id', 'id'); } }