Files
crm-server/app/controller/AreaController.php
T
2025-07-24 13:42:17 +08:00

75 lines
2.0 KiB
PHP

<?php
namespace app\controller;
use app\model\Area;
use app\model\Country;
use app\util\HttpClient;
use app\util\RedisHelper;
use app\util\Util;
use support\Log;
use support\Redis;
use support\Request;
class AreaController
{
public function getAll (Request $request)
{
$parentId = Util::getParam($request,'parent_id');
$level = Util::getParam($request,'level')?:1;
$list = $this->getRegions($parentId, $level);
return Util::success($list);
}
//递归查询
function getRegions($parentId = null, $level = 1, $child = true) {
$regions = [];
$where= array();
if(!Util::isEmpty($parentId)){
$where['parent_id'] = $parentId;
}
$where['level'] = $level;
$results = Area::where($where)->get();
foreach ($results as $row) {
if($child){
$row['children'] = $this->getRegions($row['id'], $row['level'] + 1);
}
$regions[] = $row;
}
return $regions;
}
public function getCountry (Request $request)
{
$list = RedisHelper::get("rpc_country");
$list = null;
// if(!$list){
// $res = HttpClient::get(config('const.rpc_domain') . '/country/all');
// if ($res['code'] != 200 && $res['data']['code'] != 0){
// Log::info('register_rpc',$res);
// return Util::fail($res, trans('register_fail'));
// }
// $list = $res['data']['data']['data'];
// RedisHelper::set("rpc_country", $list, 600);
// }
$list = Country::get()->toArray();
$name = 'en_addr';
//$language = $request->user['language'];
//$language = 'zh_CN';
$language = $request->language;
if($language == 'zh_CN'){
$name = 'cn_addr';
}
foreach ($list as &$row) {
$row['name'] = $row[$name];
}
return Util::success($list);
}
}