RegionController.php 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. namespace App\Http\Controllers\V1;
  3. use App\Models\Help;
  4. use App\Models\Region;
  5. use Illuminate\Http\Request;
  6. use App\Models\Advertise;
  7. use App\Models\Setting;
  8. use Hamcrest\Type\IsString;
  9. use Illuminate\Support\Facades\Redis;
  10. use Illuminate\Support\Facades\Validator;
  11. class RegionController extends Controller
  12. {
  13. //全国地区
  14. public function allRegion()
  15. {
  16. $regionList = Redis::get('all_region');
  17. if(!empty($regionList)){
  18. return $this->success(json_decode($regionList, true));
  19. }
  20. $list = Region::query()
  21. ->where('type', 1)
  22. ->select('code', 'full_name')
  23. ->get()
  24. ->toArray();
  25. foreach ($list as $key => $val) {
  26. $cityList = Region::query()->where('parent_code', $val['code'])->select('code', 'full_name')->get()->toArray();
  27. foreach ($cityList as $k => $v) {
  28. $areaList = Region::query()->where('parent_code', $v['code'])->select('code', 'full_name')->get()->toArray();
  29. $v['area_list'] = $areaList;
  30. $cityList[$k] = $v;
  31. }
  32. $val['city_list'] = $cityList;
  33. $list[$key] = $val;
  34. }
  35. Redis::setex('all_region', 24*3600, json_encode($list));
  36. return $this->success($list);
  37. }
  38. }