正在显示
1 个修改的文件
包含
26 行增加
和
1 行删除
@@ -22,6 +22,7 @@ class IndexController extends RestBaseController | @@ -22,6 +22,7 @@ class IndexController extends RestBaseController | ||
22 | * @param name:category_id type:int require:0 desc:技能筛选 | 22 | * @param name:category_id type:int require:0 desc:技能筛选 |
23 | * @param name:jing type:varchar require:0 desc:经度 | 23 | * @param name:jing type:varchar require:0 desc:经度 |
24 | * @param name:wei type:varchar require:0 desc:纬度 | 24 | * @param name:wei type:varchar require:0 desc:纬度 |
25 | + * @param name:distance type:int require:0 desc:附近的达人(1) | ||
25 | * @return banner:banner图 | 26 | * @return banner:banner图 |
26 | * @return skill:技能 | 27 | * @return skill:技能 |
27 | * @return data:发布列表 | 28 | * @return data:发布列表 |
@@ -73,9 +74,10 @@ class IndexController extends RestBaseController | @@ -73,9 +74,10 @@ class IndexController extends RestBaseController | ||
73 | ->field('p.*,u.user_nickname,u.avatar,u.jing,u.wei') | 74 | ->field('p.*,u.user_nickname,u.avatar,u.jing,u.wei') |
74 | ->select()->each(function ($item) { | 75 | ->select()->each(function ($item) { |
75 | $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(); | 76 | $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(); |
77 | + | ||
76 | return $item; | 78 | return $item; |
77 | }); | 79 | }); |
78 | - | 80 | + //技能筛选 |
79 | if (!empty($param['category_id'])) { | 81 | if (!empty($param['category_id'])) { |
80 | foreach ($data as $k => $v) { | 82 | foreach ($data as $k => $v) { |
81 | $re = Db::name('skill')->where(['id' => ['in', explode(',', $data[$k]['skill_id'])], 'category_id' => $param['category_id']])->find(); | 83 | $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 | @@ -84,6 +86,29 @@ class IndexController extends RestBaseController | ||
84 | } | 86 | } |
85 | } | 87 | } |
86 | } | 88 | } |
89 | + | ||
90 | + | ||
91 | + //距离筛选 | ||
92 | + if ($param['distance']==1) { | ||
93 | + $user=Db::name('user')->where('id', $userId)->find(); | ||
94 | + foreach ($data as $k => $v) { | ||
95 | + $lng1 = $user['jing']; //经度1 | ||
96 | + $lat1 = $user['wei']; //纬度1 | ||
97 | + $lng2 = $data[$k]['jing']; //经度2 | ||
98 | + $lat2 = $data[$k]['wei']; //纬度2 | ||
99 | + | ||
100 | + $EARTH_RADIUS = 6378137; //地球半径 | ||
101 | + $RAD = pi() / 180.0; | ||
102 | + | ||
103 | + $radLat1 = $lat1 * $RAD; | ||
104 | + $radLat2 = $lat2 * $RAD; | ||
105 | + $a = $radLat1 - $radLat2; // 两点纬度差 | ||
106 | + $b = ($lng1 - $lng2) * $RAD; // 两点经度差 | ||
107 | + $s = 2 * asin(sqrt(pow(sin($a / 2), 2) + cos($radLat1) * cos($radLat2) * pow(sin($b / 2), 2))); | ||
108 | + $s = $s * $EARTH_RADIUS; | ||
109 | + $data[$k]['distance'] = round($s * 10000) / 10000; | ||
110 | + } | ||
111 | + } | ||
87 | $this->success("获取数据成功", ['banner' => $banner, 'skill' => $skill, 'data' => $data]); | 112 | $this->success("获取数据成功", ['banner' => $banner, 'skill' => $skill, 'data' => $data]); |
88 | } | 113 | } |
89 | 114 |
-
请 注册 或 登录 后发表评论