public static function getProductsInPurchasesIdsArrByPurchasesIdsArrAndByUserId($user_id, array $purchases_ids_arr) { $orders_models = \App\BusinessLogic\Models\Order::where('user_id', '=', $user_id)->whereIn('purchase_id', $purchases_ids_arr)->orderBy('created_at', 'desc')->get(); if (!$orders_models->count()) { return []; } $products_ids_arr = []; foreach ($orders_models as $order_model) { $products_ids_arr[$order_model->purchase_id][] = $order_model->purchase_id; } return $products_ids_arr; }
/** * Создание Заказа * @dataProvider getOrdersDataArr * @param $purchase_id * @param $product_id * @param $amount * @return array */ public function testMakeOrder($purchase_id, $product_id, $amount) { \Session::start(); $user = \App\User::find(8); $response = $this->actingAs($user)->post('/rest/order', ['_token' => \Session::token(), 'purchase_id' => $purchase_id, 'product_id' => $product_id, 'amount' => $amount], ['X-Requested-With' => 'XMLHttpRequest'])->response; $this->assertResponseOk(); //\Storage::disk('local')->put('tests/makeProduct_'.$this->getDataSetAsString().'.json', $response->content()); $order_mix = json_decode($response->content()); $order_id = $order_mix->id; $order = \App\BusinessLogic\Models\Order::find($order_id); $this->assertNotNull($order); $this->assertEquals($purchase_id, $order->purchase_id); $this->assertEquals($product_id, $order->product_id); $this->assertEquals($user->id, $order->user_id); //\Storage::disk('local')->put('tests/makeProduct.html', $response->content()); }
/** * Возвращает список заказов * @return mixed */ public function getOrdersList() { return \App\BusinessLogic\Models\Order::take(50)->get(); }
/** * Добавление заказа * @param $purchase_id * @param $product_id * @param $amount * @return \App\BusinessLogic\Models\Order */ public function makeOrder($purchase_id, $product_id, $amount) { $purchase_id = intval($purchase_id); $product_id = intval($product_id); $amount = intval($amount); /** * @var $order \App\BusinessLogic\Models\Order */ $order = \App\BusinessLogic\Models\Order::where('purchase_id', '=', $purchase_id)->where('product_id', '=', $product_id)->where('user_id', '=', $this->id)->first(); if ($order) { $order->amount = $order->amount + $amount; $order->save(); return $order; } $order = \App\BusinessLogic\Models\Order::create(['purchase_id' => $purchase_id, 'product_id' => $product_id, 'amount' => $amount, 'user_id' => $this->id]); return $order; }