repository = $repository; } /** * 获取城市列表 * * @return mixed */ public function getMovieCity() { return app('json')->success($this->repository->getLocalMovieCity()); } /** * 获取城市分区列表 * * @return mixed */ public function getArea() { $city_sign = $this->request->param('city_sign', ''); if (empty($city_sign)) return app('json')->fail('请选择城市'); return app('json')->success($this->repository->getMovieArea($city_sign)); } /** * 获取影院列表 * * @return mixed */ public function getCinema() { [$page, $limit] = $this->getPage(); $cinema_name = $this->request->param('cinema_name', '');// 影院名称 $longitude = $this->request->param('longitude', '');// 经度 $latitude = $this->request->param('latitude', '');// 纬度 if (empty($longitude)) return app('json')->fail('请授权应用开启定位'); if (empty($latitude)) return app('json')->fail('请授权应用开启定位'); $where = !empty($cinema_name) ? ['cinema_name' => $cinema_name] : []; /** @var CinemaRepository $cinemaRepository */ $cinemaRepository = app()->make(CinemaRepository::class); return app('json')->success($cinemaRepository->getLocalCinema($page, $limit, $longitude, $latitude, $where)); } /** * 获取影片列表 * * @return mixed */ public function getFilm() { [$page, $limit] = $this->getPage(); $type = $this->request->param('type', 0);//热映:0:正在热映,1:即将上映 /** @var FilmRepository $filmRepository */ $filmRepository = app()->make(FilmRepository::class); return app('json')->success($filmRepository->getFilm($page, $limit, $type)); } /** * 获取影片场次日期列表 * * @return mixed */ public function getFilmSchedDate() { $film_sign = $this->request->param('film_sign', ''); if (empty($film_sign)) return app('json')->fail('请选择要观看的影片'); /** @var CinemaSchedRepository $cinemaSchedRepository */ $cinemaSchedRepository = app()->make(CinemaSchedRepository::class); return app('json')->success($cinemaSchedRepository->getFilmSchedDate($film_sign)); } /** * 获取影片场次列表 * * @return mixed */ public function getFilmSched() { [$page, $limit] = $this->getPage(); $film_sign = $this->request->param('film_sign', ''); $longitude = $this->request->param('longitude', '');// 经度 $latitude = $this->request->param('latitude', '');// 纬度 $show_date = $this->request->param('show_date', ''); if (empty($film_sign)) return app('json')->fail('请选择要观看的影片'); if (empty($longitude) || empty($latitude)) return app('json')->fail('请授权应用开启定位'); if (empty($show_date)) return app('json')->fail('请选择观影日期'); /** @var CinemaSchedRepository $cinemaSchedRepository */ $cinemaSchedRepository = app()->make(CinemaSchedRepository::class); return app('json')->success($cinemaSchedRepository->getFilmSched($page, $limit, $film_sign, $longitude, $latitude, $show_date)); } /** * 影院影片场次列表 * * @return mixed */ public function getCinemaFilmSched() { [$page, $limit] = $this->getPage(); $cinema_sign = $this->request->param('cinema_sign', ''); $film_sign = $this->request->param('film_sign', ''); // $longitude = $this->request->param('longitude', '');// 经度 // $latitude = $this->request->param('latitude', '');// 纬度 $show_date = $this->request->param('show_date', ''); if (empty($cinema_sign)) return app('json')->fail('请选择观影影院'); if (empty($film_sign)) return app('json')->fail('请选择观影影片'); // if (empty($longitude) || empty($latitude)) return app('json')->fail('请授权应用开启定位'); if (empty($show_date)) return app('json')->fail('请选择观影日期'); /** @var CinemaSchedRepository $cinemaSchedRepository */ $cinemaSchedRepository = app()->make(CinemaSchedRepository::class); return app('json')->success($cinemaSchedRepository->getCinemaFilmSched($page, $limit, $cinema_sign, $film_sign, date('Y') . '-' . $show_date)); } /** * 获取场次座位 * * @return mixed */ public function getSchedSeat() { $relation_id = $this->request->param('relation_id', ''); if (empty($relation_id)) return app('json')->fail('请选择观影场次'); $sched_sign = $this->request->param('sched_sign', ''); if (empty($sched_sign)) return app('json')->fail('请选择观影场次'); return app('json')->success($this->repository->getSchedSeat($relation_id, $sched_sign)); } /** * 锁座订单 * * @return mixed */ public function submitOrder() { $params = $this->request->params( ['price', 0.00], ['number', 0], ['channel_type', ''], ['pay_type', ''], ['city_sign', ''], ['city_name', ''], ['area_code', ''], ['area_name', ''], ['cinema_sign', ''], ['cinema_name', ''], ['address', ''], ['longitude', ''], ['latitude', ''], ['hall_sign', ''], ['hall_name', ''], ['relation_id', ''], ['sched_sign', ''], ['film_sign', ''], ['film_name', ''], ['show_date', ''], ['show_time', ''], ['sched_seat', ''] ); if (empty($params['sched_sign'])) return app('json')->fail('请选择场次'); if (empty($params['seat_sign'])) return app('json')->fail('请选择座位'); if (empty($params['channel_type'])) return app('json')->fail('请选择购票类型'); $result = $this->repository->submitOrder($this->request->userInfo(), $params); if ($result['code'] == 200) { return app('json')->success($result); } else { return app('json')->fail($result); } } /** * 确认订单 * * @return mixed */ public function confirmOrder() { $order_sn = $this->request->param(['order_sn']); if (empty($order_sn)) return app('json')->fail('订单不存在'); return app('json')->success($this->repository->confirmOrder($this->request->userInfo(), $order_sn)); } /** * 查询订单信息 * * @return mixed */ public function getOrderInfo() { $order_sn = $this->request->param('order_sn', ''); if (empty($order_sn)) return app('json')->fail('订单不存在'); return app('json')->success($this->repository->getOrderInfo($this->request->userInfo(), $order_sn)); } }