StoreActivityForm.php 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?php
  2. namespace app\modules\alliance\models\storeActivity;
  3. use app\constants\OptionSetting;
  4. use app\models\ActivityCutPriceGoods;
  5. use app\models\District;
  6. use app\models\Option;
  7. use app\models\PtActivityGoods;
  8. use app\models\SeckillActivityGoods;
  9. use yii\base\Model;
  10. class StoreActivityForm extends Model
  11. {
  12. public $latitude;
  13. public $longitude;
  14. public function rules()
  15. {
  16. return [
  17. [['latitude', 'longitude'], 'number']
  18. ];
  19. }
  20. //获取区级列表
  21. public function getDistrictList() {
  22. $latitude = !empty($this->latitude) ? $this->latitude : '0.00';
  23. $longitude = !empty($this->longitude) ? $this->longitude : '0.00';
  24. //获取区列表
  25. $tencent_map_key = Option::get('tencent_map_key', 0, 'saas', '')['value'];
  26. if (get_store_id() > 0) {
  27. $tencent_map_key = Option::get(OptionSetting::TENCENT_MAP_KEY, get_store_id(), 'pay', Option::get(OptionSetting::TENCENT_MAP_KEY, get_store_id(), 'store', '')['value'] ?: $tencent_map_key)['value'];
  28. }
  29. $place_url = 'https://apis.map.qq.com/ws/geocoder/v1/?location=' . $latitude . ',' . $longitude . '&key=' . $tencent_map_key;
  30. $json_place = file_get_contents($place_url);
  31. $place_arr = json_decode($json_place, true);
  32. $address = $place_arr['result']['address_component'];
  33. $city_id = District::findOne(['name' => $address['city'], 'level' => 'city'])->id;
  34. $district = [];
  35. if ($city_id) {
  36. $district = District::find()->where(['parent_id' => $city_id, 'level' => 'district'])->select('id, name')->asArray()->all();
  37. }
  38. return [
  39. 'code' => 0,
  40. 'msg' => 'success',
  41. 'data' => [
  42. 'district' => $district,
  43. ]
  44. ];
  45. }
  46. }