From 702e55fa7f7c39f4705b2cd18fd619590d652542 Mon Sep 17 00:00:00 2001 From: yaooo <272523191@qq.com> Date: Mon, 7 Aug 2023 14:51:46 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0=E8=AF=A6=E7=BB=86=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/common/dao/user/UserAddressDao.php | 1 + .../user/UserAddressRepository.php | 2 +- app/controller/api/user/UserAddress.php | 88 ++++++++++++++++++- 3 files changed, 89 insertions(+), 2 deletions(-) diff --git a/app/common/dao/user/UserAddressDao.php b/app/common/dao/user/UserAddressDao.php index d326a4ae..ee4212a7 100644 --- a/app/common/dao/user/UserAddressDao.php +++ b/app/common/dao/user/UserAddressDao.php @@ -50,4 +50,5 @@ class UserAddressDao extends BaseDao { return (($this->getModel()::getDB())->where('uid',$uid)); } + } diff --git a/app/common/repositories/user/UserAddressRepository.php b/app/common/repositories/user/UserAddressRepository.php index ea2aefa6..3adb82a1 100644 --- a/app/common/repositories/user/UserAddressRepository.php +++ b/app/common/repositories/user/UserAddressRepository.php @@ -126,6 +126,6 @@ class UserAddressRepository extends BaseRepository */ public function get($id,$uid) { - return $this->dao->getWhere(['address_id' => $id,'uid' => $uid])->append(['area']); + return $this->dao->getWhere(['address_id' => $id,'uid' => $uid]); } } diff --git a/app/controller/api/user/UserAddress.php b/app/controller/api/user/UserAddress.php index 307b7764..ae057bbc 100644 --- a/app/controller/api/user/UserAddress.php +++ b/app/controller/api/user/UserAddress.php @@ -16,6 +16,12 @@ namespace app\controller\api\user; use app\common\repositories\store\CityAreaRepository; use think\App; use crmeb\basic\BaseController; +use app\common\model\store\GeoProvince; +use app\common\model\store\GeoCity; +use app\common\model\store\GeoArea; +use app\common\model\store\GeoStreet; +use app\common\model\store\GeoVillage; +use app\common\model\store\GeoBrigade; use app\validate\api\UserAddressValidate as validate; use app\common\repositories\user\UserAddressRepository as repository; use think\exception\ValidateException; @@ -50,7 +56,87 @@ class UserAddress extends BaseController if (!$this->repository->existsWhere(['address_id' => $id, 'uid' => $uid])) { return app('json')->fail('地址不存在'); } - return app('json')->success($this->repository->get($id, $uid)); + $addinfo = $this->repository->get($id, $uid); + /* + "brigade_id": 10, + "brigade": "10队" + */ + $area = []; + if (!empty($addinfo['province_id'])) { + $province = GeoProvince::where('province_id', $addinfo['province_id'])->find(); + if ($province) { + $area[] = [ + 'type' => 'province', + 'id' => $province->province_id, + 'level' => 1, + 'name' => $province->province_name ?? '', + 'code' => $province->province_code ?? '' + ]; + } + + } + if (!empty($addinfo['city_id'])) { + $city = GeoCity::where('city_id', $addinfo['city_id'])->find(); + if ($city) { + $area[] = [ + 'type' => 'city', + 'id' => $city['city_id'], + 'level' => 2, + 'name' => $city['city_name'] ?? '', + 'code' => $city['city_code'] ?? '' + ]; + } + } + if (!empty($addinfo['district_id'])) { + $district = GeoArea::where('area_id', $addinfo['district_id'])->find(); + if ($district) { + $area[] = [ + 'type' => 'area', + 'id' => $district['area_id'], + 'level' => 3, + 'name' => $district['area_name'] ?? '', + 'code' => $district['area_code'] ?? '' + ]; + } + } + if (!empty($addinfo['street_id'])) { + $street = GeoStreet::where('street_id', $addinfo['street_id'])->find(); + if ($street) { + $area[] = [ + 'type' => 'street', + 'id' => $street['street_id'], + 'level' => 4, + 'name' => $street['street_name'] ?? '', + 'code' => $street['street_code'] ?? '' + ]; + } + } + if (!empty($addinfo['village_id'])) { + $village = GeoVillage::where('village_id', $addinfo['village_id'])->find(); + if ($village) { + $area[] = [ + 'type' => 'village', + 'id' => $village['village_id'], + 'level' => 5, + 'name' => $village['village_name'] ?? '', + 'code' => $village['village_code'] ?? '' + ]; + } + } + if (!empty($addinfo['brigade_id'])) { + $brigade = GeoBrigade::where('id', $addinfo['brigade_id'])->find(); + if ($brigade) { + $area[] = [ + 'type' => 'brigade', + 'id' => $brigade['id'], + 'level' => 6, + 'name' => $brigade['brigade_name'] ?? '', + 'code' => $brigade['brigade_name'] ?? '' + ]; + } + } + $addinfo->areas = $area; + return app('json')->success($addinfo); } /**