GenerateAddressJs.php 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. <?php
  2. /**
  3. * Created by PhpStorm.
  4. * User: Administrator
  5. * Date: 2019/7/17
  6. * Time: 10:10
  7. */
  8. namespace app\common\services\address;
  9. use Illuminate\Support\Facades\DB;
  10. use app\common\models\Address;
  11. use app\common\services\Utils;
  12. class GenerateAddressJs
  13. {
  14. public function address()
  15. {
  16. if (config('app.framework') == 'platform') {
  17. $file_dir = base_path().DIRECTORY_SEPARATOR.'addons'.DIRECTORY_SEPARATOR.'yun_shop'.DIRECTORY_SEPARATOR.'static';
  18. } else {
  19. $file_dir = base_path().DIRECTORY_SEPARATOR.'static';
  20. }
  21. $b = $this->abcd();
  22. $b = json_encode($b, JSON_UNESCAPED_UNICODE);
  23. $str = 'var district ='.$b.';if (typeof define === "function") {define(district)} else {window.YDUI_DISTRICT = district}';
  24. $ccc = file_put_contents($file_dir.DIRECTORY_SEPARATOR.'gov_province_city_area_id.js', $str);
  25. return $ccc;
  26. }
  27. public function abcd($parentId = 0, $level = 1)
  28. {
  29. $a = Address::where('parentid', $parentId)->where('level', $level)->get()->toArray();
  30. if (empty($a)) return [];
  31. foreach ($a as $key => $value) {
  32. $address[$key]['v'] = $value['id'];
  33. $address[$key]['n'] = $value['areaname'];
  34. $address[$key]['c'] = $this->abcd($value['id'], ($value['level'] + 1));
  35. }
  36. return $address;
  37. }
  38. }