public function get_merchants_by_long_lat($lat, $long, $around_range = 2000) { import('@.ORG.longlat'); $longlat_class = new longlat(); $location2 = $longlat_class->gpsToBaidu($lat, $long); //转换腾讯坐标到百度坐标 $lat = $location2['lat']; $long = $location2['lng']; $Model = new Model(); $sql = "SELECT s.lat, s.long, s.mer_id, s.name as sname, s.store_id, m.name, m.phone, s.adress, m.pic_info, ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(({$lat}*PI()/180-`s`.`lat`*PI()/180)/2),2)+COS({$lat}*PI()/180)*COS(`s`.`lat`*PI()/180)*POW(SIN(({$long}*PI()/180-`s`.`long`*PI()/180)/2),2)))*1000) as juli FROM " . C('DB_PREFIX') . "merchant_store AS s INNER JOIN " . C('DB_PREFIX') . "merchant AS m ON s.mer_id=m.mer_id WHERE `s`.`status`=1 AND ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(({$lat}*PI()/180-`s`.`lat`*PI()/180)/2),2)+COS({$lat}*PI()/180)*COS(`s`.`lat`*PI()/180)*POW(SIN(({$long}*PI()/180-`s`.`long`*PI()/180)/2),2)))*1000) < '{$around_range}'"; $result = $Model->query($sql); $merchant_image_class = new merchant_image(); foreach ($result as &$r) { $images = explode(";", $r['pic_info']); $images = explode(";", $images[0]); $r['img'] = $merchant_image_class->get_image_by_path($images[0]); $r['url'] = C('config.site_url') . '/wap.php?c=Index&a=index&token=' . $r['mer_id']; } return $result; }
private function special_keyword($key, $data) { $return = array(); if ($key == "附近团购" || $key == "附近订餐") { $dateline = time() - 3600 * 2; if ($long_lat = D("User_long_lat")->field(true)->where("`open_id`='{$data["FromUserName"]}' AND `dateline`>'{$dateline}'")->find()) { import("@.ORG.longlat"); $longlat_class = new longlat(); $location2 = $longlat_class->gpsToBaidu($long_lat["lat"], $long_lat["long"]); $x = $location2["lat"]; $y = $location2["lng"]; if ($key == "附近订餐") { $meals = D("Merchant_store")->field("*, ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(({$x}*PI()/180-`lat`*PI()/180)/2),2)+COS({$x}*PI()/180)*COS(`lat`*PI()/180)*POW(SIN(({$y}*PI()/180-`long`*PI()/180)/2),2)))*1000) AS juli")->where("`have_meal`=1")->order("juli ASC")->limit("0, 10")->select(); $store_image_class = new store_image(); foreach ($meals as $meal) { $images = $store_image_class->get_allImage_by_path($meal["pic_info"]); $meal["image"] = $images ? array_shift($images) : ""; $len = 1000 <= $meal["juli"] ? number_format($meal["juli"] / 1000, 1) . "千米" : $meal["juli"] . "米"; $return[] = array($meal["name"] . "[" . $meal["adress"] . "]约{$len}", $meal["txt_info"], $meal["image"], $this->config["site_url"] . "/wap.php?g=Wap&c=Meal&a=menu&mer_id=" . $meal["mer_id"] . "&store_id=" . $meal["store_id"] . ""); } } else { $meals = D("Merchant_store")->field("*, ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(({$x}*PI()/180-`lat`*PI()/180)/2),2)+COS({$x}*PI()/180)*COS(`lat`*PI()/180)*POW(SIN(({$y}*PI()/180-`long`*PI()/180)/2),2)))*1000) AS juli")->where("`have_group`=1")->order("juli ASC")->limit("0, 10")->select(); $store_image_class = new store_image(); foreach ($meals as $meal) { $images = $store_image_class->get_allImage_by_path($meal["pic_info"]); $meal["image"] = $images ? array_shift($images) : ""; $len = 1000 <= $meal["juli"] ? number_format($meal["juli"] / 1000, 1) . "千米" : $meal["juli"] . "米"; $return[] = array($meal["name"] . "[" . $meal["adress"] . "]约{$len}", $meal["txt_info"], $meal["image"], $this->config["site_url"] . "/wap.php?g=Wap&c=Group&a=shop&store_id=" . $meal["store_id"] . ""); } } } if ($return) { return array($return, "news"); } else { return array("主人【微赢】已经接收到你的指令请发送您的地理位置(对话框右下角点击+号,然后点击“位置”)给我哈", "text"); } } if ($key == "交友") { $return[] = array("交友约会", "结交一些朋友吃喝玩乐", $this->config["site_url"] . "/static/images/jiaoyou.jpg", $this->config["site_url"] . "/wap.php?c=Invitation&a=datelist"); return array($return, "news"); } $platform = D("Platform")->field(true)->where(array("key" => $key))->find(); if ($platform) { $return[] = array($platform["title"], $platform["info"], $this->config["site_url"] . $platform["pic"], $platform["url"]); } else { $keys = D("Keywords")->field(true)->where(array("keyword" => $key))->order("id DESC")->limit("0,9")->select(); $lotteryids = $mealids = $groupids = array(); foreach ($keys as $k) { if ($k["third_type"] == "group") { $groupids[] = $k["third_id"]; } else { if ($k["third_type"] == "Merchant_store") { $mealids[] = $k["third_id"]; } else { if ($k["third_type"] == "lottery") { $lotteryids[] = $k["third_id"]; } } } } if ($groupids) { $list = D("Group")->field(true)->where(array("group_id" => array("in", $groupids)))->select(); $group_image_class = new group_image(); foreach ($list as $li) { $image = $group_image_class->get_image_by_path($li["pic"], "s"); $return[] = array($li["s_name"], $li["name"], $image, $this->config["site_url"] . "/wap.php?g=Wap&c=Group&a=detail&group_id=" . $li["group_id"] . ""); } } if ($mealids) { $list = D("Merchant_store")->field(true)->where(array("store_id" => array("in", $mealids)))->select(); $store_image_class = new store_image(); foreach ($list as $now_store) { $images = $store_image_class->get_allImage_by_path($now_store["pic_info"]); $now_store["image"] = $images ? array_shift($images) : ""; if ($now_store["have_meal"]) { $return[] = array($now_store["name"], $now_store["txt_info"], $now_store["image"], $this->config["site_url"] . "/wap.php?g=Wap&c=Meal&a=menu&mer_id=" . $now_store["mer_id"] . "&store_id=" . $now_store["store_id"] . ""); } else { $return[] = array($now_store["name"], $now_store["txt_info"], $now_store["image"], $this->config["site_url"] . "/wap.php?g=Wap&c=Group&a=shop&store_id=" . $now_store["store_id"] . ""); } } } if ($lotteryids) { $lotterys = D("Lottery")->field(true)->where(array("id" => array("in", $lotteryids), "statdate" => array("lt", time()), "enddate" => array("gt", time())))->select(); foreach ($lotterys as $lottery) { switch ($lottery["type"]) { case 1: $return[] = array("[活动]" . $lottery["title"], $lottery["info"], $this->config["site_url"] . $lottery["starpicurl"], $this->config["site_url"] . "/wap.php?c=Lottery&a=index&token=" . $lottery["token"] . "&id=" . $lottery["id"] . ""); break; case 2: $return[] = array("[活动]" . $lottery["title"], $lottery["info"], $this->config["site_url"] . $lottery["starpicurl"], $this->config["site_url"] . "/wap.php?c=Guajiang&a=index&token=" . $lottery["token"] . "&id=" . $lottery["id"] . ""); break; case 3: $return[] = array("[活动]" . $lottery["title"], $lottery["info"], $this->config["site_url"] . $lottery["starpicurl"], $this->config["site_url"] . "/wap.php?c=Coupon&a=index&token=" . $lottery["token"] / "&id=" . $lottery["id"] . ""); break; case 4: $return[] = array("[活动]" . $lottery["title"], $lottery["info"], $this->config["site_url"] . $lottery["starpicurl"], $this->config["site_url"] . "/wap.php?c=LuckyFruit&a=index&token=" . $lottery["token"] . "&id=" . $lottery["id"] . ""); break; case 5: $return[] = array("[活动]" . $lottery["title"], $lottery["info"], $this->config["site_url"] . $lottery["starpicurl"], $this->config["site_url"] . "/wap.php?c=GoldenEgg&a=index&token=" . $lottery["token"] . "&id=" . $lottery["id"] . ""); break; } } } } if ($return) { return array($return, "news"); } return array("亲,暂时没有找到与“" . $key . "”相关的内容!请更换内容。", "text"); }
public function index() { $area_url = $_GET["area_url"] && $_GET["area_url"] ? htmlspecialchars($_GET["area_url"]) : "all"; $cat_url = $_GET["cat_url"] && $_GET["cat_url"] ? htmlspecialchars($_GET["cat_url"]) : "all"; $all_area_list = D("Area")->get_all_area_list(); $this->assign("all_area_list", $all_area_list); $this->assign("now_area_url", $area_url); $this->assign("now_category_url", $cat_url); $circle_id = 0; if ($area_url != "all") { $tmp_area = D("Area")->get_area_by_areaUrl($area_url); if (empty($tmp_area)) { $this->error("当前区域不存在!"); } $this->assign("now_area", $tmp_area); if ($tmp_area["area_type"] == 3) { $now_area = $tmp_area; } else { $now_circle = $tmp_area; $this->assign("now_circle", $now_circle); $now_area = D("Area")->get_area_by_areaId($tmp_area["area_pid"], true, $cat_url); if (empty($tmp_area)) { $this->error("当前区域不存在!"); } $circle_url = $now_circle["area_url"]; $circle_id = $now_circle["area_id"]; $area_url = $now_area["area_url"]; } $this->assign("top_area", $now_area); $area_id = $now_area["area_id"]; } else { $area_id = 0; } $sort_id = isset($_GET["sort_id"]) ? $_GET["sort_id"] : "juli"; $long_lat = array("lat" => 0, "long" => 0); $_SESSION["openid"] && ($long_lat = D("User_long_lat")->field("long,lat")->where(array("open_id" => $_SESSION["openid"]))->find()); if (0 == $long_lat["long"] || 0 == $long_lat["lat"]) { $sort_id = $sort_id == "juli" ? "store_id" : $sort_id; $sort_array = array(array("sort_id" => "store_id", "sort_value" => "默认排序"), array("sort_id" => "hot", "sort_value" => "人气最高"), array("sort_id" => "price-asc", "sort_value" => "价格最低"), array("sort_id" => "price-desc", "sort_value" => "价格最高"), array("sort_id" => "time", "sort_value" => "最近开业")); } else { import("@.ORG.longlat"); $longlat_class = new longlat(); $location2 = $longlat_class->gpsToBaidu($long_lat["lat"], $long_lat["long"]); $long_lat["lat"] = $location2["lat"]; $long_lat["long"] = $location2["lng"]; $sort_array = array(array("sort_id" => "juli", "sort_value" => "离我最近"), array("sort_id" => "hot", "sort_value" => "人气最高"), array("sort_id" => "price-asc", "sort_value" => "价格最低"), array("sort_id" => "price-desc", "sort_value" => "价格最高"), array("sort_id" => "time", "sort_value" => "最近开业")); } foreach ($sort_array as $key => $value) { if ($sort_id == $value["sort_id"]) { $now_sort_array = $value; break; } } $this->assign("sort_array", $sort_array); $this->assign("now_sort_array", $now_sort_array); $cat_id = 0; if ($cat_url != "all") { $now_category = D("Meal_store_category")->get_category_by_catUrl($cat_url); if (empty($now_category)) { $this->error("此分类不存在!"); } $this->assign("now_category", $now_category); $cat_id = $now_category["cat_id"]; } $arr = D("Merchant_store")->get_list_by_option($area_id, $circle_id, $sort_id, true, $long_lat["lat"], $long_lat["long"], $cat_id); $category_list = D("Meal_store_category")->where("cat_status = '1'")->order('cat_sort DESC')->select(); $this->assign("category_list", $category_list); $this->assign($arr); //- daiding $this->display(); }
public function near_info() { $condition_where = "`status`='1'"; switch ($_POST['type']) { case 'merchant': // $condition_where = ''; break; case 'meal': $condition_where .= " AND `have_meal`='1'"; break; case 'group': $condition_where .= " AND `have_group`='1'"; break; default: $this->error('非法访问!'); } $x = $_POST['lat']; $y = $_POST['long']; import('@.ORG.longlat'); $longlat_class = new longlat(); $location = $longlat_class->gpsToBaidu($x, $y); //转换腾讯坐标到百度坐标 $x = $location['lat']; $y = $location['lng']; if ($this->is_wexin_browser && !empty($_SESSION['openid'])) { $condition_user_long_lat['open_id'] = $_SESSION['openid']; $data_user_long_lat['lat'] = $x; $data_user_long_lat['long'] = $y; $data_user_long_lat['dateline'] = $_SERVER['REQUEST_TIME']; $database_user_long_lat = D('User_long_lat'); if ($database_user_long_lat->field('`open_id`')->where($condition_user_long_lat)->find()) { $database_user_long_lat->where($condition_user_long_lat)->data($data_user_long_lat)->save(); } else { $data_user_long_lat['open_id'] = $_SESSION['openid']; $database_user_long_lat->data($data_user_long_lat)->add(); } } $store_list = D("Merchant_store")->field("*, ROUND(6378.138 * 2 * ASIN(SQRT(POW(SIN(({$x}*PI()/180-`lat`*PI()/180)/2),2)+COS({$x}*PI()/180)*COS(`lat`*PI()/180)*POW(SIN(({$y}*PI()/180-`long`*PI()/180)/2),2)))*1000) AS juli")->where($condition_where)->order('`juli` ASC')->limit('0,6')->select(); if (!empty($store_list)) { $store_image_class = new store_image(); foreach ($store_list as &$store) { $images = $store_image_class->get_allImage_by_path($store['pic_info']); $store['image'] = $images ? array_shift($images) : ''; if ($store['juli'] > 1000) { $store['juli'] = ' ' . floatval(round($store['juli'] / 1000, 1)) . ' 千米'; } else { $store['juli'] = ' ' . $store['juli'] . ' 米'; } switch ($_POST['type']) { case 'merchant': $store['url'] = U('Index/index', array('token' => $store['mer_id'])); break; case 'meal': $store['url'] = U('Meal/menu', array('mer_id' => $store['mer_id'], 'store_id' => $store['store_id'])); break; case 'group': $store['url'] = U('Group/shop', array('store_id' => $store['store_id'])); break; default: $this->error('非法访问!'); } } echo json_encode(array('error' => 0, 'store_list' => $store_list)); } else { echo json_encode(array('error' => 1)); } }
public function index() { //判断分类信息 $cat_url = !empty($_GET['cat_url']) ? $_GET['cat_url'] : ''; $this->assign('now_cat_url', $cat_url); //判断地区信息 $area_url = !empty($_GET['area_url']) ? $_GET['area_url'] : ''; $this->assign('now_area_url', $area_url); $circle_id = 0; if (!empty($area_url)) { $tmp_area = D('Area')->get_area_by_areaUrl($area_url); if (empty($tmp_area)) { $this->error('当前区域不存在!'); } $this->assign('now_area', $tmp_area); if ($tmp_area['area_type'] == 3) { $now_area = $tmp_area; } else { $now_circle = $tmp_area; $this->assign('now_circle', $now_circle); $now_area = D('Area')->get_area_by_areaId($tmp_area['area_pid'], true, $cat_url); if (empty($tmp_area)) { $this->error('当前区域不存在!'); } $circle_url = $now_circle['area_url']; $circle_id = $now_circle['area_id']; $area_url = $now_area['area_url']; } $this->assign('top_area', $now_area); $area_id = $now_area['area_id']; } else { $area_id = 0; } //判断排序信息 $sort_id = !empty($_GET['sort_id']) ? $_GET['sort_id'] : 'juli'; $long_lat = array('lat' => 0, 'long' => 0); $_SESSION['openid'] && ($long_lat = D('User_long_lat')->field('long,lat')->where(array('open_id' => $_SESSION['openid']))->find()); if (empty($long_lat['long']) || empty($long_lat['lat'])) { $sort_id = $sort_id == 'juli' ? 'defaults' : $sort_id; $sort_array = array(array('sort_id' => 'defaults', 'sort_value' => '默认排序'), array('sort_id' => 'rating', 'sort_value' => '评价最高'), array('sort_id' => 'start', 'sort_value' => '最新发布'), array('sort_id' => 'solds', 'sort_value' => '人气最高'), array('sort_id' => 'price', 'sort_value' => '价格最低'), array('sort_id' => 'priceDesc', 'sort_value' => '价格最高')); } else { import('@.ORG.longlat'); $longlat_class = new longlat(); $location2 = $longlat_class->gpsToBaidu($long_lat['lat'], $long_lat['long']); //转换腾讯坐标到百度坐标 $long_lat['lat'] = $location2['lat']; $long_lat['long'] = $location2['lng']; $sort_array = array(array('sort_id' => 'juli', 'sort_value' => '离我最近'), array('sort_id' => 'rating', 'sort_value' => '评价最高'), array('sort_id' => 'start', 'sort_value' => '最新发布'), array('sort_id' => 'solds', 'sort_value' => '人气最高'), array('sort_id' => 'price', 'sort_value' => '价格最低'), array('sort_id' => 'priceDesc', 'sort_value' => '价格最高')); } foreach ($sort_array as $key => $value) { if ($sort_id == $value['sort_id']) { $now_sort_array = $value; break; } } $this->assign('sort_array', $sort_array); $this->assign('now_sort_array', $now_sort_array); //所有分类 包含2级分类 $all_category_list = D('Group_category')->get_all_category(); $this->assign('all_category_list', $all_category_list); //根据分类信息获取分类 if (!empty($cat_url)) { $now_category = D('Group_category')->get_category_by_catUrl($cat_url); if (empty($now_category)) { $this->error_tips('此分类不存在!'); } $this->assign('now_category', $now_category); if (!empty($now_category['cat_fid'])) { $f_category = D('Group_category')->get_category_by_id($now_category['cat_fid']); $all_category_url = $f_category['cat_url']; $category_cat_field = $f_category['cat_field']; $top_category = $f_category; $this->assign('top_category', $f_category); $get_grouplist_catfid = 0; $get_grouplist_catid = $now_category['cat_id']; } else { $all_category_url = $now_category['cat_url']; $category_cat_field = $now_category['cat_field']; $top_category = $now_category; $this->assign('top_category', $now_category); $get_grouplist_catfid = $now_category['cat_id']; $get_grouplist_catid = 0; } // if(!empty($category_cat_field)){ // $cat_field = unserialize($category_cat_field); // foreach($cat_field as $key=>$value){ //包含区域 // if($value['use_field'] && $value['use_field'] == 'area'){ // $all_area_list = D('Area')->get_area_list(); // $this->assign('all_area_list',$all_area_list); // } // } // } } else { //所有区域 // $all_area_list = D('Area')->get_all_area_list(); // $this->assign('all_area_list',$all_area_list); } $all_area_list = D('Area')->get_all_area_list(); $this->assign('all_area_list', $all_area_list); //$long_lat['lat'] = 31.823263; //$long_lat['long'] = 117.235268; $this->assign(D('Group')->wap_get_group_list_by_catid($get_grouplist_catid, $get_grouplist_catfid, $area_id, $sort_id, $long_lat['lat'], $long_lat['long'], $circle_id)); /* 粉丝行为分析 */ $this->behavior(array('model' => 'Group_index')); $this->display(); }