...
|
...
|
@@ -22,6 +22,7 @@ class IndexController extends RestBaseController |
|
|
* @param name:category_id type:int require:0 desc:技能筛选
|
|
|
* @param name:jing type:varchar require:0 desc:经度
|
|
|
* @param name:wei type:varchar require:0 desc:纬度
|
|
|
* @param name:distance type:int require:0 desc:附近的达人(1)
|
|
|
* @return banner:banner图
|
|
|
* @return skill:技能
|
|
|
* @return data:发布列表
|
...
|
...
|
@@ -73,9 +74,10 @@ class IndexController extends RestBaseController |
|
|
->field('p.*,u.user_nickname,u.avatar,u.jing,u.wei')
|
|
|
->select()->each(function ($item) {
|
|
|
$item['skill'] = Db::name('skill')->alias('s')->join('category c', 's.category_id=c.id')->where('s.id', explode(',', $item['skill_id'])[0])->field('c.name,s.price')->find();
|
|
|
|
|
|
return $item;
|
|
|
});
|
|
|
|
|
|
//技能筛选
|
|
|
if (!empty($param['category_id'])) {
|
|
|
foreach ($data as $k => $v) {
|
|
|
$re = Db::name('skill')->where(['id' => ['in', explode(',', $data[$k]['skill_id'])], 'category_id' => $param['category_id']])->find();
|
...
|
...
|
@@ -84,6 +86,29 @@ class IndexController extends RestBaseController |
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
|
|
|
//距离筛选
|
|
|
if ($param['distance']==1) {
|
|
|
$user=Db::name('user')->where('id', $userId)->find();
|
|
|
foreach ($data as $k => $v) {
|
|
|
$lng1 = $user['jing']; //经度1
|
|
|
$lat1 = $user['wei']; //纬度1
|
|
|
$lng2 = $data[$k]['jing']; //经度2
|
|
|
$lat2 = $data[$k]['wei']; //纬度2
|
|
|
|
|
|
$EARTH_RADIUS = 6378137; //地球半径
|
|
|
$RAD = pi() / 180.0;
|
|
|
|
|
|
$radLat1 = $lat1 * $RAD;
|
|
|
$radLat2 = $lat2 * $RAD;
|
|
|
$a = $radLat1 - $radLat2; // 两点纬度差
|
|
|
$b = ($lng1 - $lng2) * $RAD; // 两点经度差
|
|
|
$s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2)));
|
|
|
$s = $s * $EARTH_RADIUS;
|
|
|
$data[$k]['distance'] = round($s * 10000) / 10000;
|
|
|
}
|
|
|
}
|
|
|
$this->success("获取数据成功", ['banner' => $banner, 'skill' => $skill, 'data' => $data]);
|
|
|
}
|
|
|
|
...
|
...
|
|