作者 潘浩文
1 个管道 的构建 通过 耗费 2 秒

个人中心接口设计

... ... @@ -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]);
}
... ...