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

个人中心接口设计

@@ -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