Store.php 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 商家联盟
  7. */
  8. class Store extends Api
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. //分类
  13. public function category(){
  14. $list = Db::name('store_category')->field('id, name')->where('status',1)->order('weigh', 'desc')->select();
  15. $this->success(1,$list);
  16. }
  17. //店铺列表
  18. public function store_list(){
  19. $category_id = input('category_id',0,'intval');
  20. $longitude = input('longitude',0,'trim');
  21. $latitude = input('latitude',0,'trim');
  22. $sort = input('sort','asc','trim');
  23. $where = [];
  24. if($category_id){
  25. $where['category_id'] = $category_id;
  26. }
  27. $field = ['id', 'name', 'image', 'longitude', 'latitude'];
  28. $field[] = '(st_distance(point (' . $longitude . ', ' . $latitude . '),point(longitude,latitude))*111195) as distance';
  29. $list = Db::name('store')->field($field)
  30. ->where('status',1)->where($where)
  31. ->order('distance', $sort)->autopage()->select();
  32. $list = list_domain_image($list, ['image']);
  33. foreach($list as $k=>$v){
  34. $v['distance'] = bcdiv(intval($v['distance']),1000,1).'km';
  35. if($longitude == 0 || $v['longitude'] == 0){
  36. $v['distance'] = '未知';
  37. }
  38. $list[$k] = $v;
  39. }
  40. $this->success(1,$list);
  41. }
  42. //店铺详情
  43. public function store_detail(){
  44. $id = input('id',0,'intval');
  45. $longitude = input('longitude',0,'trim');
  46. $latitude = input('latitude',0,'trim');
  47. $field = ['*'];
  48. $field[] = '(st_distance(point (' . $longitude . ', ' . $latitude . '),point(longitude,latitude))*111195) as distance';
  49. $info = Db::name('store')->field($field)->where('id',$id)->find();
  50. $info = info_domain_image($info, ['image','images']);
  51. $info['distance'] = bcdiv(intval($info['distance']),1000,1).'km';
  52. if($longitude == 0 || $info['longitude'] == 0){
  53. $info['distance'] = '未知';
  54. }
  55. $this->success(1,$info);
  56. }
  57. }