/** * 获取餐厅列表 * 默认15个,多的在更多餐厅里面显示 */ public function getShopList($user_x, $user_y) { $result = array('shop_list' => array(), 'more_shop' => array()); $result['shop_list']['data'] = array(); $result['more_shop']['data'] = array(); $result['shop_list']['data']['shops'] = array(); # 首先获取所有的活动 $result['shop_list']['data']['activity'] = array(); $activity = Activity::all(); foreach ($activity as $act) { if ($act->aid != '1') { $result['shop_list']['data']['activity'][(string) $act->aid] = $act->name; } } $data['shops'] = array(); $geohash = new Geohash(); $shopArray = $geohash->geohashGet($user_x, $user_y); $shops = $shopArray['data']; $num = 0; // 计数器,只15个 foreach ($shops as $oneshop) { $onestore = array(); $shop = $oneshop['shopData']; $support_activity = explode(',', $shop->support_activity); $onestore['support_activity'] = $support_activity[0] == '' ? [] : $support_activity; // 所有支持的活动id $onestore['isHot'] = $shop->is_hot ? 'true' : 'false'; // 是否是热门餐厅 $onestore['isOnline'] = $this->isOnline($shop->operation_time, date('H:i')) ? true : false; // 是否营业 $onestore['isSupportPay'] = in_array('1', explode(',', $shop->pay_method)); // 是否支持在线支付 $onestore['shop_id'] = $shop->id; // 商家id $onestore['place_id'] = 111111; // -------------------位置经纬度和位置id后期再改数据库 $onestore['shop_url'] = url('shop/' . $shop->id); // 点击跳转到相应商家 $onestore['shop_logo'] = $shop->pic; // 商家的logo图片地址 $onestore['deliver_time'] = (double) $shop->interval; // 送货时间间隔 $onestore['deliver_start'] = $shop->begin_time; // 送货开始时间 $onestore['shop_name'] = $shop->name; // 商家名称 /* echo $onestore['isOnline']; echo $onestore['shop_name']; */ $onestore['shop_type'] = $shop->type; $Level = $this->getLevel($shop); $onestore['shop_level'] = $Level['thing_total']; // 五分制 $onestore['shop_announce'] = $shop->announcement; // 商家公告 $onestore['deliver_state_start'] = $shop->begin_price; $onestore['deliver_start_statement'] = $shop->begin_price; // 起送价描述 $onestore['shop_address'] = $shop->address; // 商家地址 $onestore['is_opening'] = $this->isOnline($shop->operation_time, date('H:i')) ? 0 : 1; // 0是正在营业,1是打烊了,2是太忙了 $onestore['is_ready_for_order'] = $shop->reserve; // 是否接收预定 $onestore['close_msg'] = $shop->close_msg; // 关门信息 $onestore['business_hours'] = $shop->operation_time; // 营业时间 $onestore['shop_summary'] = $shop->intro; // 商家简介 $onestore['order_count'] = (double) $shop->sold_num; // 订单数量 if (!Auth::check()) { $onestore['is_collected'] = false; } else { $user = Auth::user(); $onestore['is_collected'] = in_array($shop->id, $user->collectShop->lists('shop_id')) ? true : false; // 是否被收藏了 } $onestore['additions'] = array(); // 额外的内容 $num = $num + 1; if ($num < 4) { // 更多餐厅和上面那排餐厅的数量 array_push($result['shop_list']['data']['shops'], $onestore); } else { array_push($result['more_shop']['data'], $onestore); } } return $result; }
public function geoHashGet() { $geohash = new Geohash(); /* **此处参数对应经纬度 **返回值为数组,status标识同上 **data对应查到的数据,若不为空,data数组内,geohash对应geohash表的坐标及geohash信息,shop对应shop表里面的店铺数据 */ $get = $geohash->geohashGet(39.98123662, 116.3068369); var_dump($get); }
/** * 获取餐厅列表 * 默认15个,多的在更多餐厅里面显示 */ public function getShopList() { $result = array('shop_list' => array(), 'more_shop' => array()); $result['shop_list']['data'] = array(); $result['more_shop']['data'] = array(); $result['shop_list']['data']['shops'] = array(); # 首先获取所有的活动 $result['shop_list']['data']['activity'] = array(); $activity = Activity::all(); foreach ($activity as $act) { $result['shop_list']['data']['activity'][(string) $act->aid] = $act->name; } $data['shops'] = array(); #TODO:由前端获取用户坐标 $user_x = 39.9812385; $user_y = 116.3068369; $geohash = new Geohash(); $shopArray = $geohash->geohashGet($user_x, $user_y); $shops = $shopArray['data']; #TODO:这个地方的$shops就应该进缓存了 $num = 0; // 计数器,只15个 foreach ($shops as $oneshop) { $onestore = array(); $shop = $oneshop['shopData']; $onestore['support_activity'] = explode(',', $shop->support_activity); // 所有支持的活动id $onestore['isHot'] = $shop->is_hot ? 'true' : 'false'; // 是否是热门餐厅 $onestore['isOnline'] = $shop->is_online ? 'true' : 'false'; // 是否营业 $onestore['isSupportPay'] = in_array('1', explode(',', $shop->pay_method)); // 是否支持在线支付 $onestore['shop_id'] = $shop->id; // 商家id #TODO:place_id不需要 $onestore['place_id'] = '不需要'; // -------------------位置经纬度和位置id后期再改数据库 $onestore['shop_url'] = 'shop/' . $shop->id; // 点击跳转到相应商家 $onestore['shop_logo'] = $shop->pic; // 商家的logo图片地址 $onestore['deliver_time'] = $shop->interval; // 送货时间间隔 $onestore['deliver_start'] = $shop->begin_time; // 送货开始时间 $onestore['shop_name'] = $shop->name; // 商家名称 $onestore['shop_type'] = $shop->type; $Level = $this->getLevel($shop); $onestore['shop_level'] = $Level['thing_total']; // 五分制 $onestore['shop_announce'] = $shop->announcement; // 商家公告 #TODO:模版里用的deliver_state_start $onestore['deliver_state_start'] = $shop->begin_price; $onestore['deliver_start_statement'] = $shop->begin_price; // 起送价描述 $onestore['shop_address'] = $shop->address; // 商家地址 $onestore['is_opening'] = $shop->state; // 0是正在营业,1是打烊了,2是太忙了 $onestore['is_ready_for_order'] = $shop->reserve; // 是否接收预定 $onestore['close_msg'] = $shop->close_msg; // 关门信息 $onestore['business_hours'] = $shop->operation_time; // 营业时间 $onestore['shop_summary'] = $shop->intro; // 商家简介 $onestore['order_count'] = $shop->sold_num; // 订单数量 if (!Auth::check()) { $onestore['is_collected'] = false; } else { $user = Auth::user(); $onestore['is_collected'] = in_array($shop->id, $user->collectShop->lists('shop_id')) ? true : false; // 是否被收藏了 } #TODO:额外内容有什么用 $onestore['additions'] = array(); // 额外的内容 $num = $num + 1; if ($num < 2) { array_push($result['shop_list']['data']['shops'], $onestore); } else { array_push($result['more_shop']['data'], $onestore); } } return $result; }