1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495 |
- <?php
- // +----------------------------------------------------------------------
- // | ThinkAdmin
- // +----------------------------------------------------------------------
- // | 版权所有 2014~2019 广州楚才信息科技有限公司 [ http://www.cuci.cc ]
- // +----------------------------------------------------------------------
- // | 官方网站: http://demo.thinkadmin.top
- // +----------------------------------------------------------------------
- // | 开源协议 ( https://mit-license.org )
- // +----------------------------------------------------------------------
- // | gitee 代码仓库:https://gitee.com/zoujingli/ThinkAdmin
- // | github 代码仓库:https://github.com/zoujingli/ThinkAdmin
- // +----------------------------------------------------------------------
- namespace app\api\controller;
- use app\common\model\ChinaArea;
- use think\Db;
- use hg\apidoc\annotation as Apidoc;
- /**
- * @Apidoc\Title("地址库")
- */
- class Area extends Base
- {
- /**
- * @Apidoc\Title("获取地址库数据")
- * @Apidoc\Desc("获取地址库数据")
- * @Apidoc\Method("GET")
- * @Apidoc\Author("HG")
- * @Apidoc\Tag("地址库")
- * @Apidoc\Query("level", type="int",require=false, desc="查询等级(0全部,1精确到省,2精确到市,3精确到县区,4精确到街道)")
- * @Apidoc\Returned("name", type="string", desc="简称")
- * @Apidoc\Returned("level", type="int", desc="等级(1省,2市,3区,4道)")
- * @Apidoc\Returned("code", type="int", desc="编码")
- * @Apidoc\Returned("lng", type="string", desc="经度")
- * @Apidoc\Returned("lat", type="string", desc="纬度")
- * @Apidoc\Returned("children", type="array", desc="下级(数据字段同上)")
- */
- public function getAreaTree()
- {
- $level = input('level',3);
- if($level){
- $all_area = ChinaArea::where('level','<=',$level)->select();
- }else{
- $all_area = ChinaArea::where('level','>',0)->order('level asc,sort desc,id asc')->select();
- }
- $this->success('ok',['list'=>make_tree($all_area)]);
- }
- /**
- * @Apidoc\Title("获取地址库ID获取下一级")
- * @Apidoc\Desc("获取地址库ID获取下一级")
- * @Apidoc\Method("GET")
- * @Apidoc\Author("HG")
- * @Apidoc\Tag("获取下一级")
- * @Apidoc\Query("id", type="int",require=false, desc="数据表地址记录id")
- * @Apidoc\Returned("name", type="string", desc="名称")
- * @Apidoc\Returned("short_name", type="string", desc="简称")
- * @Apidoc\Returned("level", type="int", desc="等级(1省,2市,3区,4道)")
- * @Apidoc\Returned("code", type="int", desc="编码")
- * @Apidoc\Returned("lng", type="string", desc="经度")
- * @Apidoc\Returned("lat", type="string", desc="纬度")
- * @Apidoc\Returned("children", type="array", desc="下级(数据字段同上)")
- */
- public function getAreaChildrenByID()
- {
- $id = input('id');
- $list = ChinaArea::where('pid',$id)->select()->toArray();
- $this->success('ok',['list'=>$list]);
- }
- /**
- * @Apidoc\Title("获取市级地址")
- * @Apidoc\Desc("获取市级地址")
- * @Apidoc\Method("GET")
- * @Apidoc\Author("HG")
- * @Apidoc\Tag("获取下一级")
- * @Apidoc\Query("name",type="string",require=false,desc="市名(或拼音)模糊查询")
- * @Apidoc\Returned("name", type="string", desc="名称")
- * @Apidoc\Returned("short_name", type="string", desc="简称")
- */
- public function getCityByName()
- {
- $where = [];
- $where[] = ['level','=',2];
- if(input('name')) $where[] = ['name|pinyin','like','%'.input('name').'%'];
- $all_city = ChinaArea::field('id,name,short_name,first')->where($where)->order('sort desc,id asc')->select();
- $this->success('ok',['list'=>$all_city]);
- }
- public function getAllCity()
- {
- $list = ChinaArea::getAllCity();
- $this->success('ok',['list'=>$list]);
- }
- }
|