Address.php 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <?php
  2. /**
  3. * Niushop商城系统 - 团队十年电商经验汇集巨献!
  4. * =========================================================
  5. * Copy right 2019-2029 山西牛酷信息科技有限公司, 保留所有权利。
  6. * ----------------------------------------------
  7. * 官方网址: https://www.niushop.com.cn
  8. * 这不是一个自由软件!您只能在不用于商业目的的前提下对程序代码进行修改和使用。
  9. * 任何企业和个人不允许对程序代码以任何形式任何目的再发布。
  10. * =========================================================
  11. */
  12. namespace app\admin\controller;
  13. use app\Controller;
  14. use app\model\system\Address as AddressModel;
  15. /**
  16. * 地址查询 控制器 不控权限 不入菜单
  17. */
  18. class Address extends Controller
  19. {
  20. /**
  21. * 获取省列表
  22. */
  23. public function getProvince()
  24. {
  25. $address_model = new AddressModel();
  26. $condition = [
  27. ['pid', '=', 0],
  28. ['level', '=', 1],
  29. ['status', '=', 1],
  30. ];
  31. $province_list = $address_model->getAreaList($condition, '*', 'sort asc');
  32. return $province_list['data'];
  33. }
  34. /**
  35. * 获取城市列表
  36. */
  37. public function getCity()
  38. {
  39. $address_model = new AddressModel();
  40. $province_id = request()->post('province_id', 0);
  41. $condition = [
  42. ['pid', '=', $province_id],
  43. ['level', '=', 2],
  44. ['status', '=', 1],
  45. ];
  46. $city_list = $address_model->getAreaList($condition, '*', 'sort asc');
  47. return $city_list['data'];
  48. }
  49. /**
  50. * 获取区域列表
  51. */
  52. public function getDistrict()
  53. {
  54. $address_model = new AddressModel();
  55. $city_id = request()->post('city_id', 0);
  56. $condition = [
  57. ['pid', '=', $city_id],
  58. ['level', '=', 3],
  59. ['status', '=', 1],
  60. ];
  61. $district_list = $address_model->getAreaList($condition, '*', 'sort asc');
  62. return $district_list['data'];
  63. }
  64. /**
  65. * 获取街道列表
  66. */
  67. public function getStreet()
  68. {
  69. $address_model = new AddressModel();
  70. $district_id = request()->post('district_id', 0);
  71. $condition = [
  72. ['pid', '=', $district_id],
  73. ['level', '=', 4],
  74. ['status', '=', 1],
  75. ];
  76. $street_list = $address_model->getAreaList($condition, '*', 'sort asc');
  77. return $street_list['data'];
  78. }
  79. /**
  80. * 通过ajax得到运费模板的地区数据
  81. */
  82. public function getAreaList()
  83. {
  84. $address_model = new AddressModel();
  85. $level = input('level', 1);
  86. $pid = input("pid", 0);
  87. $condition = array(
  88. "level" => $level,
  89. "pid" => $pid
  90. );
  91. $list = $address_model->getAreaList($condition, "id, pid, name, level", "id asc");
  92. return $list;
  93. }
  94. /**
  95. * 获取地理位置id
  96. */
  97. public function getGeographicId()
  98. {
  99. $address_model = new AddressModel();
  100. $address = request()->post("address", ",,");
  101. $address_array = explode(",", $address);
  102. $province = $address_array[0];
  103. $city = $address_array[1];
  104. $district = $address_array[2];
  105. $subdistrict = $address_array[3];
  106. $province_list = $address_model->getAreaList([ "name" => $province, "level" => 1 ], "id", '');
  107. $province_id = !empty($province_list["data"]) ? $province_list["data"][0]["id"] : 0;
  108. $city_list = ($province_id > 0) && !empty($city) ? $address_model->getAreaList([ "name" => $city, "level" => 2, "pid" => $province_id ], "id", '') : [];
  109. $city_id = !empty($city_list["data"]) ? $city_list["data"][0]["id"] : 0;
  110. $district_list = !empty($district) && $city_id > 0 && $province_id > 0 ? $address_model->getAreaList([ "name" => $district, "level" => 3, "pid" => $city_id ], "id", '') : [];
  111. $district_id = !empty($district_list["data"]) ? $district_list["data"][0]["id"] : 0;
  112. $subdistrict_list = !empty($subdistrict) && $city_id > 0 && $province_id > 0 && $district_id > 0 ? $address_model->getAreaList([ "name" => $subdistrict, "level" => 4, "pid" => $district_id ], "id", '') : [];
  113. $subdistrict_id = !empty($subdistrict_list["data"]) ? $subdistrict_list["data"][0]["id"] : 0;
  114. return [ "province_id" => $province_id, "city_id" => $city_id, "district_id" => $district_id, "subdistrict_id" => $subdistrict_id ];
  115. }
  116. }