From 73b874c72ad55eb9eef21c36160ac0de58f0189e Mon Sep 17 00:00:00 2001
From: quanwei <419654421@qq.com>
Date: Thu, 05 Feb 2026 10:30:43 +0800
Subject: [PATCH] 优化名片
---
admin/app/common/model/user/UserAddress.php | 43 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 43 insertions(+), 0 deletions(-)
diff --git a/admin/app/common/model/user/UserAddress.php b/admin/app/common/model/user/UserAddress.php
index ef3a5ab..fb69ab1 100644
--- a/admin/app/common/model/user/UserAddress.php
+++ b/admin/app/common/model/user/UserAddress.php
@@ -27,4 +27,47 @@
: Region::getNameById($data['region_id']),
];
}
+
+ /**
+ * 整理地图选择的地址 by lyzflash
+ */
+ public function setLocationAddress($address)
+ {
+ $region = $this->checkPCA($address);
+ $short_address = str_replace($region['province'] . $region['city'] . $region['area'], '', $address);
+ if (in_array($region['province'], array('北京市', '天津市', '天津市', '天津市'))) {
+ $region['area'] = $region['city'];
+ $region['city'] = $region['province'];
+ }
+ $province_id = Region::getIdByName($region['province'], 1);
+ $city_id = Region::getIdByName($region['city'], 2, $province_id);
+ $region_id = Region::getIdByName($region['area'], 3, $city_id);
+ return ['cityCode'=> [$province_id, $city_id, $region_id], 'region' => [$region['province'], $region['city'], $region['area']], 'short_address' => $short_address];
+ }
+
+ /**
+ * 截取省市区 by lyzflash
+ */
+ private function checkPCA($address) {
+ preg_match('/(.*?(省|自治区|北京市|天津市|上海市|重庆市))/', $address, $matches);
+ if (count($matches) > 1) {
+ $province = $matches[count($matches) - 2];
+ $address = str_replace($province, '', $address);
+ }
+ preg_match('/(.*?(市|自治州|地区|区划|县))/', $address, $matches);
+ if (count($matches) > 1) {
+ $city = $matches[count($matches) - 2];
+ $address = str_replace($city, '', $address);
+ }
+ preg_match('/(.*?(市|区|县))/', $address, $matches);
+ if (count($matches) > 1) {
+ $area = $matches[count($matches) - 2];
+ $address = str_replace($area, '', $address);
+ }
+ return [
+ 'province' => isset($province) ? $province : '',
+ 'city' => isset($city) ? $city : '',
+ 'area' => isset($area) ? $area : '',
+ ];
+ }
}
\ No newline at end of file
--
Gitblit v1.9.2