Json.php 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091
  1. <?php namespace Area\Lib\Import;
  2. set_time_limit(0);
  3. use Dever;
  4. class Json extends Core
  5. {
  6. private $url = 'https://github.com/modood/Administrative-divisions-of-China';
  7. public function getUrl()
  8. {
  9. return $this->url;
  10. }
  11. public function get()
  12. {
  13. $this->getProvince();
  14. $this->getCity();
  15. $this->getCounty();
  16. $this->getTown();
  17. return 'ok';
  18. }
  19. private function load($type)
  20. {
  21. $file = DEVER_APP_PATH . 'file/'.$type.'.json';
  22. $content = file_get_contents($file);
  23. $content = json_decode($content, true);
  24. return $content;
  25. }
  26. public function getProvince()
  27. {
  28. $data = $this->load('provinces');
  29. if ($data) {
  30. foreach ($data as $k => $v) {
  31. $update['id'] = $this->id($v['code']);
  32. $update['name'] = $v['name'];
  33. $update = Dever::load('data', 'area')->pinyin($update);
  34. $this->up('province', $update['id'], $update);
  35. }
  36. }
  37. }
  38. public function getCity()
  39. {
  40. $data = $this->load('cities');
  41. if ($data) {
  42. foreach ($data as $k => $v) {
  43. $update['id'] = $this->id($v['code']);
  44. $update['name'] = $v['name'];
  45. $update['province_id'] = $this->id($v['provinceCode']);
  46. $update = Dever::load('data', 'area')->pinyin($update);
  47. $this->up('city', $update['id'], $update);
  48. }
  49. }
  50. }
  51. public function getCounty()
  52. {
  53. $data = $this->load('areas');
  54. if ($data) {
  55. foreach ($data as $k => $v) {
  56. $update['id'] = $this->id($v['code']);
  57. $update['name'] = $v['name'];
  58. $update['city_id'] = $this->id($v['cityCode']);
  59. $update['province_id'] = $this->id($v['provinceCode']);
  60. $update['area'] = $update['province_id'] . ',' . $update['city_id'];
  61. $this->setLevelCounty($update);
  62. $update = Dever::load('data', 'area')->pinyin($update);
  63. $this->up('county', $update['id'], $update);
  64. }
  65. }
  66. }
  67. public function getTown()
  68. {
  69. $data = $this->load('streets');
  70. if ($data) {
  71. foreach ($data as $k => $v) {
  72. $update['id'] = $this->id($v['code'], 9);
  73. $update['name'] = $v['name'];
  74. $update['county_id'] = $this->id($v['areaCode']);
  75. $update['city_id'] = $this->id($v['cityCode']);
  76. $update['province_id'] = $this->id($v['provinceCode']);
  77. $update['area'] = $update['province_id'] . ',' . $update['city_id'] . ',' . $update['county_id'];
  78. $this->setLevelCounty($update);
  79. $update = Dever::load('data', 'area')->pinyin($update);
  80. $this->up('town', $update['id'], $update);
  81. }
  82. }
  83. }
  84. }