get( ' INSERT INTO public.basket ( user_id, letter, last_mod ) VALUES ( :user_id, :letter, CURRENT_TIMESTAMP ) RETURNING user_id ', [ 'user_id' => $data['user_id'], 'letter' => $data['letter'] ], -1 ); foreach ($data['items'] as $item) { $this->get( ' INSERT INTO public.basket_items ( user_id, item_id, count ) VALUES ( :user_id, :item_id, :count ) RETURNING id ', [ 'user_id' => $data['user_id'], 'item_id' => $item['item_id'], 'count' => $item['count_items'] ], -1 ); } return 'User #'.$query_basket[0]['user_id'].' added'; } /** * @param $user_id * @return bool */ public function checkUserExist($user_id) { $query = $this->get( ' SELECT * FROM public.basket WHERE user_id = :user_id LIMIT 1 ', [ 'user_id' => $user_id ], -1 ); if (!empty($query[0]['id'])) { return true; } else { return false; } } /** * @param $user_id * @param $item_id * @return bool */ public function checkItemExist($user_id, $item_id) { $query = $this->get( ' SELECT * FROM public.basket_items WHERE user_id = :user_id AND item_id = :item_id LIMIT 1 ', [ 'user_id' => $user_id, 'item_id' => $item_id ], -1 ); if (!empty($query[0]['id'])) { return true; } else { return false; } } public function updateData($data) { $query_basket = $this->exec( ' UPDATE public.basket SET letter = :letter, last_mod = CURRENT_TIMESTAMP WHERE user_id = :user_id RETURNING user_id ', [ 'user_id' => $data['user_id'], 'letter' => $data['letter'] ], -1 ); foreach ($data['items'] as $item) { if ($this->checkItemExist($data['user_id'], $item['item_id'])) { $query_basket_items = $this->get( ' UPDATE public.basket_items SET item_id = :item_id, count = :count WHERE user_id = :user_id AND item_id = :item_id RETURNING id ', [ 'user_id' => $data['user_id'], 'item_id' => $item['item_id'], 'count' => $item['count_items'] ], -1 ); } else { $query_basket_items = $this->get( ' INSERT INTO public.basket_items ( user_id, item_id, count ) VALUES ( :user_id, :item_id, :count ) RETURNING id ', [ 'user_id' => $data['user_id'], 'item_id' => $item['item_id'], 'count' => $item['count_items'] ], -1 ); } } return 'User #'.$query_basket[0]['user_id'].' updated'; } }