You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
91 lines
2.4 KiB
91 lines
2.4 KiB
<?php
|
|
// +----------------------------------------------------------------------
|
|
// | Niucloud-admin 企业快速开发的多应用管理平台
|
|
// +----------------------------------------------------------------------
|
|
// | 官方网址:https://www.niucloud.com
|
|
// +----------------------------------------------------------------------
|
|
// | niucloud团队 版权所有 开源版本可自由商用
|
|
// +----------------------------------------------------------------------
|
|
// | Author: Niucloud Team
|
|
// +----------------------------------------------------------------------
|
|
|
|
namespace app\api\controller\sys;
|
|
|
|
use addon\zhjw\app\service\admin\common\CommonService;
|
|
use app\model\sys\SysArea;
|
|
use app\service\api\sys\AreaService;
|
|
use core\base\BaseApiController;
|
|
use think\facade\Cache;
|
|
use think\Response;
|
|
|
|
class Area extends BaseApiController
|
|
{
|
|
/**
|
|
* 拖过pid获取子项列表
|
|
* @param int $pid
|
|
* @return Response
|
|
*/
|
|
public function listByPid(int $pid)
|
|
{
|
|
return success((new AreaService())->getListByPid($pid));
|
|
}
|
|
|
|
/**
|
|
* 获取层级列表
|
|
* @param int $level
|
|
* @return Response
|
|
*/
|
|
public function tree(int $level)
|
|
{
|
|
return success((new AreaService())->getAreaTree($level));
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @return void
|
|
*/
|
|
/**
|
|
* 通过编码查询地址信息
|
|
*/
|
|
public function areaByAreaCode(string $code) {
|
|
return success((new AreaService())->getAreaByAreaCode($code));
|
|
}
|
|
|
|
/**
|
|
* 通过经纬度查询地址
|
|
* @param int $level
|
|
* @return Response
|
|
*/
|
|
public function getAddressByLatlng()
|
|
{
|
|
$data = $this->request->params([
|
|
['latlng', '']
|
|
]);
|
|
return success((new AreaService())->getAddressByLatlng($data));
|
|
}
|
|
|
|
//获取地区树形结构
|
|
public function getAreaTree()
|
|
{
|
|
// 获取所有地址数据
|
|
|
|
//获取缓存getAreaTree
|
|
$getAreaTree = Cache::get('getAreaTree');
|
|
|
|
if ($getAreaTree) {
|
|
return success($getAreaTree);
|
|
}else{
|
|
$areas = SysArea::where('status', 1)
|
|
->order('sort', 'asc')
|
|
->select()
|
|
->toArray();
|
|
|
|
// 构建树形结构
|
|
$getAreaTree = (new CommonService())->areaBuildTree($areas);
|
|
//设置缓存
|
|
Cache::set('getAreaTree', $getAreaTree, 3600);//缓存一个小时
|
|
return success($getAreaTree);
|
|
}
|
|
|
|
}
|
|
}
|
|
|