| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 | <?phpnamespace app\api\controller;use app\common\controller\Api;use think\Db;/** * 商家联盟 */class Store extends Api{    protected $noNeedLogin = ['*'];    protected $noNeedRight = ['*'];    //分类    public function category(){        $list = Db::name('store_category')->field('id, name')->where('status',1)->order('weigh', 'desc')->select();        $this->success(1,$list);    }    //店铺列表    public function store_list(){        $category_id = input('category_id',0,'intval');        $longitude   = input('longitude',0,'trim');        $latitude    = input('latitude',0,'trim');        $sort        = input('sort','asc','trim');        $where = [];        if($category_id){            $where['category_id'] = $category_id;        }        $field = ['id', 'name', 'image', 'longitude', 'latitude'];        $field[] = '(st_distance(point (' . $longitude . ', ' . $latitude . '),point(longitude,latitude))*111195) as distance';        $list = Db::name('store')->field($field)            ->where('status',1)->where($where)            ->order('distance', $sort)->autopage()->select();        $list = list_domain_image($list, ['image']);        foreach($list as $k=>$v){            $v['distance'] = bcdiv(intval($v['distance']),1000,1).'km';            if($longitude == 0 || $v['longitude'] == 0){                $v['distance'] = '未知';            }            $list[$k] = $v;        }        $this->success(1,$list);    }    //店铺详情    public function store_detail(){        $id = input('id',0,'intval');        $longitude   = input('longitude',0,'trim');        $latitude    = input('latitude',0,'trim');        $longitude   = !empty($longitude) ? $longitude : 0;        $latitude    = !empty($latitude)  ? $latitude : 0;        $field = ['*'];        $field[] = '(st_distance(point (' . $longitude . ', ' . $latitude . '),point(longitude,latitude))*111195) as distance';        $info = Db::name('store')->field($field)->where('id',$id)->find();        $info = info_domain_image($info, ['image','images']);        $info['distance'] = bcdiv(intval($info['distance']),1000,1).'km';        if($longitude == 0 || $info['longitude'] == 0){            $info['distance'] = '未知';        }        $this->success(1,$info);    }}
 |