Area.php 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879
  1. <?php
  2. namespace app\api\controller;
  3. use app\common\controller\Api;
  4. use think\Db;
  5. /**
  6. * 地区接口
  7. */
  8. class Area extends Api
  9. {
  10. protected $noNeedLogin = ['*'];
  11. protected $noNeedRight = ['*'];
  12. public function city_area(){
  13. $zimuarr = ['A'=>[],'B'=>[],'C'=>[],'D'=>[],'E'=>[],'F'=>[],'G'=>[],'H'=>[],'I'=>[],'J'=>[],'K'=>[],'L'=>[],'M'=>[],'N'=>[],'O'=>[],'P'=>[],'Q'=>[],'R'=>[],'S'=>[],'T'=>[],'U'=>[],'V'=>[],'W'=>[],'X'=>[],'Y'=>[],'Z'];
  14. $list = Db::name('area')->field('id,name,first')->where('level',2)->select();
  15. foreach($list as $key => $val){
  16. if(isset($zimuarr[$val['first']])){
  17. $zimuarr[$val['first']][] = $val;
  18. }
  19. }
  20. $this->success(1,$zimuarr);
  21. }
  22. public function area_list(){
  23. $pid = input_post('pid',0);
  24. $list = Db::name('area')->field('id,pid,name')->where('pid',$pid)->order('id asc')->select();
  25. $this->success('success',$list);
  26. }
  27. //给ios用的
  28. //一个接口全部数据都给到
  29. public function area_json(){
  30. $list = Db::name('area')->field('id,pid,name,level')->order('id asc')->select();
  31. //按级拆分
  32. $list_1 = [];
  33. $list_2 = [];
  34. $list_3 = [];
  35. foreach($list as $key => $value){
  36. if($value['level'] == 1){
  37. $list_1[] = $value;
  38. }
  39. if($value['level'] == 2){
  40. $list_2[] = $value;
  41. }
  42. if($value['level'] == 3){
  43. $list_3[] = $value;
  44. }
  45. }
  46. //三级并到市级
  47. foreach($list_2 as $k2 => $v2){
  48. foreach($list_3 as $k3 => $v3){
  49. if($v2['id'] == $v3['pid']){
  50. $list_2[$k2]['child'][] = $v3;
  51. }
  52. }
  53. }
  54. //市级并到省级
  55. foreach($list_1 as $k1 => $v1){
  56. foreach($list_2 as $k2 => $v2){
  57. if($v1['id'] == $v2['pid']){
  58. $list_1[$k1]['child'][] = $v2;
  59. }
  60. }
  61. }
  62. $this->success('success',$list_1);
  63. }
  64. }