<?php

// 获取用户附近的圈子
require_once ("../user_include.inc");

ErrorLogger::doOutput("Compass...ajax_get_nearby_circle_list.php....Start.", 0);

//获取参数
$unionId = ParamUtil::getRequestString("unionId");
$longitude = ParamUtil::getRequestString("longitude");//用户位置的经度
$latitude = ParamUtil::getRequestString("latitude");//用户位置的纬度

$result = array();

//参数检查
if(empty($unionId) || empty($longitude) || empty($latitude)) {
	$result["message"] = "参数错误!";
	responseNG($result);
}

//判断用户是否存在
$param = array();
$param['unionid'] = $unionId;
$param['delete_flg'] = false;
$userList = UserMst::getList($param,'id','desc', 0, 1);
if(empty($userList)) {
	$result["message"] = "用户不存在!";
	responseNG($result);
}

$userMst = $userList[0];

//获取用户当前所处的区县
$lbsUrl = 'https://apis.map.qq.com/ws/geocoder/v1?key=' . LBS_KEY . '&location=' . $latitude . ',' . $longitude;
$lbsObj =  file_get_contents($lbsUrl);
$jsonObj = json_decode($lbsObj); //对JSON格式的字符串进行编码
$lbsArray = get_object_vars($jsonObj);//转换成数组
$resultObj = $lbsArray['result'];
if($lbsArray['status'] != "0" || $resultObj->ad_info->nation_code!=156) {
	$result["message"] = "位置信息错误!";
	responseNG($result);
}

$province = $resultObj->address_component->province;
$city = $resultObj->address_component->city;
$district = $resultObj->address_component->district;

//获取用户附近的圈子
$circleList = array();

//查询圈子列表
$param = array();
$param['province'] = $province;
$param['city'] = $city;
$param['district'] = $district;
$param['delete_flg'] = false;
$tmpCircleList = CircleDat::getList($param,'id','desc');

//循环计算距离当前的距离
if(!empty($tmpCircleList)) {
	foreach($tmpCircleList as $tmp) {
		$from = $latitude . "," . $longitude;
		$to = $tmp->latitude . "," . $tmp->longitude;
		
		//距离比较
		$distanceUrl = 'https://apis.map.qq.com/ws/distance/v1/?from=' . $from . '&key=' . LBS_KEY . '&mode=driving&to=' . $to;
		$distanceObj =  file_get_contents($distanceUrl);
		$jsonObj = json_decode($distanceObj); //对JSON格式的字符串进行编码
		$distanceArray = get_object_vars($jsonObj);//转换成数组
		if($distanceArray['status'] == "0" && $distanceArray['result']->elements[0]->distance <= 3000) {
			$circleList[] = array("circle_id"=>$tmp->id, "circle_title"=>$tmp->title, "member_count"=>$tmp->member_count, "front_image"=>$tmp->front_image);
		}
	}
}


//组装返回数据
$result["circleList"] = $circleList;

ErrorLogger::doOutput("Compass...ajax_get_nearby_circle_list.php....End.", 0);

//返回结果
responseOK($result);

function responseNG($result) {
	$result = array("status"=>"NG", "result"=>$result);
	print json_encode($result);
	exit;
}
function responseOK($result) {
	$result = array("status"=>"OK", "result"=>$result);
	print json_encode($result);
	exit;
}
?>