<?php namespace App\Http\Controllers; use App\Http\Controllers\Controller; use DB; use Illuminate\Support\Facades\Redis as Redis; use App\Model\RegionModel; class RegionController extends Controller { public function getAll() { $provinces = array(); $citys = array(); $towns = array(); $list = RegionModel::orderBy('region_id', 'asc')->get(); foreach (@$list as $val) { if (!$val->parent_id) continue; switch ($val->region_type) { case 1: $provinces[$val->parent_id]['parent_id'] = $val->parent_id; $provinces[$val->parent_id]['children'][] = $val; break; case 2: $citys[$val->parent_id]['parent_id'] = $val->parent_id; $citys[$val->parent_id]['children'][] = $val; break; case 3: $towns[$val->parent_id]['parent_id'] = $val->parent_id; $towns[$val->parent_id]['children'][] = $val; break; } } return array( 'errcode'=>0, 'errmsg'=>'success', 'provinces'=> $provinces, 'citys'=> $citys, 'towns'=> $towns ); } //获取省市县名称 public function getRegionName($region_id) { if (empty($region_id)){ return ""; } $list = RegionModel::select("region_name")->where("region_id",$region_id)->get(); return !$list ? "" : current(objectToArray($list))['region_name']; } // 初始化地址缓存 public function cache() { $RegionModel = new RegionModel(); $province = $RegionModel->getRegion(1); // 获取省 S_str('oms:province', json_encode($province)); $city = $RegionModel->getRegion(2); // 获取城市 foreach($city as $c) { S_hash('oms:city:'.$c['parent_id'], $c['region_id'], json_encode($c)); } $district = $RegionModel->getRegion(3); // 获取区 foreach($district as $d) { S_hash('oms:district:'.$d['parent_id'], $d['region_id'], json_encode($d)); } echo '设置地址缓存成功'; } // 清除缓存 public function clear() { Redis::del('oms:province'); Redis::del(Redis::keys('oms:city:*')); Redis::del(Redis::keys('oms:district:*')); echo '清除地址缓存成功'; } }